aboutsummaryrefslogtreecommitdiff
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
parenta88f4804345de28d0e3ea79fb7c1acb28a7fe453 (diff)
parent094091958654bae07a9ad53a63fd69468efcd3e3 (diff)
downloadgcc-20bb2dac9e47ac35252f5166f22856f73cd40d5f.zip
gcc-20bb2dac9e47ac35252f5166f22856f73cd40d5f.tar.gz
gcc-20bb2dac9e47ac35252f5166f22856f73cd40d5f.tar.bz2
Merge commit 'ce7a757fd9ecb99c4f54cfde5cf5ef9a9e7819fc^' into HEAD
-rw-r--r--ChangeLog19
-rw-r--r--MAINTAINERS2
-rw-r--r--Makefile.in1
-rw-r--r--Makefile.tpl1
-rw-r--r--config-ml.in10
-rw-r--r--config/ChangeLog7
-rw-r--r--config/mt-loongarch-elf1
-rw-r--r--config/mt-loongarch-gnu2
-rw-r--r--config/mt-loongarch-mlib1
-rwxr-xr-xconfigure6
-rw-r--r--configure.ac6
-rw-r--r--contrib/ChangeLog11
-rwxr-xr-xcontrib/gcc_update2
-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
-rw-r--r--libgm2/ChangeLog15
-rw-r--r--libgm2/libm2cor/Makefile.am2
-rw-r--r--libgm2/libm2cor/Makefile.in2
-rw-r--r--libgm2/libm2iso/Makefile.am2
-rw-r--r--libgm2/libm2iso/Makefile.in2
-rw-r--r--libgm2/libm2log/Makefile.am2
-rw-r--r--libgm2/libm2log/Makefile.in2
-rw-r--r--libgm2/libm2pim/Makefile.am2
-rw-r--r--libgm2/libm2pim/Makefile.in2
-rw-r--r--libgo/Makefile.in1
-rwxr-xr-xlibgo/configure7
-rw-r--r--libgo/configure.ac2
-rw-r--r--libgo/testsuite/Makefile.in1
-rw-r--r--libgo/testsuite/lib/libgo.exp8
-rw-r--r--libgo/testsuite/libgo-test-support.exp.in2
-rw-r--r--libgomp/ChangeLog22
-rw-r--r--libgomp/Makefile.in2
-rwxr-xr-xlibgomp/configure17
-rw-r--r--libgomp/configure.ac15
-rw-r--r--libgomp/team.c2
-rw-r--r--libgomp/testsuite/Makefile.in2
-rw-r--r--libgomp/testsuite/lib/libgomp.exp18
-rw-r--r--libgomp/testsuite/libgomp-site-extra.exp.in4
-rw-r--r--libgomp/testsuite/libgomp.c++/c++.exp6
-rw-r--r--libgomp/testsuite/libgomp.oacc-c++/c++.exp6
-rw-r--r--libstdc++-v3/ChangeLog1777
-rw-r--r--libstdc++-v3/acinclude.m431
-rw-r--r--libstdc++-v3/config.h.in3
-rw-r--r--libstdc++-v3/config/abi/pre/gnu.ver2
-rw-r--r--libstdc++-v3/config/io/basic_file_stdio.cc18
-rw-r--r--libstdc++-v3/config/io/basic_file_stdio.h13
-rwxr-xr-xlibstdc++-v3/configure57
-rw-r--r--libstdc++-v3/configure.ac3
-rw-r--r--libstdc++-v3/doc/html/manual/configure.html4
-rw-r--r--libstdc++-v3/doc/html/manual/setup.html28
-rw-r--r--libstdc++-v3/doc/html/manual/status.html257
-rw-r--r--libstdc++-v3/doc/html/manual/test.html46
-rw-r--r--libstdc++-v3/doc/xml/manual/configure.xml4
-rw-r--r--libstdc++-v3/doc/xml/manual/intro.xml8
-rw-r--r--libstdc++-v3/doc/xml/manual/prerequisites.xml21
-rw-r--r--libstdc++-v3/doc/xml/manual/status_cxx2020.xml46
-rw-r--r--libstdc++-v3/doc/xml/manual/status_cxx2023.xml474
-rw-r--r--libstdc++-v3/doc/xml/manual/test.xml52
-rw-r--r--libstdc++-v3/include/bits/c++config10
-rw-r--r--libstdc++-v3/include/bits/version.def16
-rw-r--r--libstdc++-v3/include/bits/version.h310
-rw-r--r--libstdc++-v3/include/experimental/io_context4
-rw-r--r--libstdc++-v3/include/experimental/memory_resource12
-rw-r--r--libstdc++-v3/include/std/bit54
-rw-r--r--libstdc++-v3/include/std/charconv6
-rw-r--r--libstdc++-v3/include/std/format8
-rw-r--r--libstdc++-v3/include/std/fstream60
-rw-r--r--libstdc++-v3/include/std/functional89
-rw-r--r--libstdc++-v3/include/std/variant28
-rw-r--r--libstdc++-v3/python/libstdcxx/v6/printers.py651
-rw-r--r--libstdc++-v3/python/libstdcxx/v6/xmethods.py58
-rw-r--r--libstdc++-v3/src/c++11/Makefile.am22
-rw-r--r--libstdc++-v3/src/c++11/Makefile.in45
-rw-r--r--libstdc++-v3/src/c++11/assert_fail.cc44
-rw-r--r--libstdc++-v3/src/c++11/debug.cc50
-rw-r--r--libstdc++-v3/src/c++11/locale_init.cc (renamed from libstdc++-v3/src/c++98/locale_init.cc)0
-rw-r--r--libstdc++-v3/src/c++11/localename.cc (renamed from libstdc++-v3/src/c++98/localename.cc)0
-rw-r--r--libstdc++-v3/src/c++17/default_resource.h6
-rw-r--r--libstdc++-v3/src/c++17/memory_resource.cc35
-rw-r--r--libstdc++-v3/src/c++98/Makefile.am22
-rw-r--r--libstdc++-v3/src/c++98/Makefile.in39
-rw-r--r--libstdc++-v3/testsuite/18_support/comparisons/algorithms/fallback.cc1
-rw-r--r--libstdc++-v3/testsuite/18_support/comparisons/algorithms/partial_order.cc3
-rw-r--r--libstdc++-v3/testsuite/18_support/comparisons/algorithms/strong_order.cc3
-rw-r--r--libstdc++-v3/testsuite/18_support/comparisons/algorithms/strong_order_floats.cc1
-rw-r--r--libstdc++-v3/testsuite/18_support/comparisons/algorithms/weak_order.cc3
-rw-r--r--libstdc++-v3/testsuite/18_support/comparisons/categories/94565.cc3
-rw-r--r--libstdc++-v3/testsuite/18_support/comparisons/categories/partialord.cc3
-rw-r--r--libstdc++-v3/testsuite/18_support/comparisons/categories/strongord.cc3
-rw-r--r--libstdc++-v3/testsuite/18_support/comparisons/categories/weakord.cc3
-rw-r--r--libstdc++-v3/testsuite/18_support/comparisons/categories/zero_neg.cc4
-rw-r--r--libstdc++-v3/testsuite/18_support/comparisons/common/1.cc3
-rw-r--r--libstdc++-v3/testsuite/18_support/comparisons/object/93479.cc3
-rw-r--r--libstdc++-v3/testsuite/18_support/comparisons/object/lwg3530.cc3
-rw-r--r--libstdc++-v3/testsuite/18_support/coroutines/95917.cc4
-rw-r--r--libstdc++-v3/testsuite/18_support/coroutines/hash.cc3
-rw-r--r--libstdc++-v3/testsuite/18_support/coroutines/lwg3460.cc3
-rw-r--r--libstdc++-v3/testsuite/18_support/destroying_delete.cc3
-rw-r--r--libstdc++-v3/testsuite/18_support/headers/limits/synopsis_cxx23.cc1
-rw-r--r--libstdc++-v3/testsuite/18_support/headers/stdfloat/types_std.cc1
-rw-r--r--libstdc++-v3/testsuite/18_support/source_location/1.cc4
-rw-r--r--libstdc++-v3/testsuite/18_support/source_location/consteval.cc5
-rw-r--r--libstdc++-v3/testsuite/18_support/source_location/version.cc3
-rw-r--r--libstdc++-v3/testsuite/18_support/type_info/constexpr.cc2
-rw-r--r--libstdc++-v3/testsuite/19_diagnostics/error_category/operators/three_way.cc3
-rw-r--r--libstdc++-v3/testsuite/19_diagnostics/error_code/operators/three_way.cc3
-rw-r--r--libstdc++-v3/testsuite/19_diagnostics/error_condition/operators/three_way.cc3
-rw-r--r--libstdc++-v3/testsuite/19_diagnostics/stacktrace/current.cc2
-rw-r--r--libstdc++-v3/testsuite/19_diagnostics/stacktrace/entry.cc2
-rw-r--r--libstdc++-v3/testsuite/19_diagnostics/stacktrace/output.cc1
-rw-r--r--libstdc++-v3/testsuite/19_diagnostics/stacktrace/stacktrace.cc2
-rw-r--r--libstdc++-v3/testsuite/19_diagnostics/stacktrace/synopsis.cc2
-rw-r--r--libstdc++-v3/testsuite/19_diagnostics/stacktrace/version.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/aligned_storage/deprecated-2b.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/aligned_union/deprecated-2b.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/allocator/105975.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/allocator/rebind_c++20.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/allocator/requirements/constexpr.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs_c++20.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/allocator_traits/header-2.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/allocator_traits/header.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/allocator_traits/members/92878_92947.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/any/assign/92878_92947.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/any/cons/92878_92947.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/assume_aligned/1.cc4
-rw-r--r--libstdc++-v3/testsuite/20_util/assume_aligned/2_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/assume_aligned/3.cc4
-rw-r--r--libstdc++-v3/testsuite/20_util/assume_aligned/97132.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/bind/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/bitset/access/constexpr.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/bitset/cons/constexpr_c++23.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/bitset/count/constexpr.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/bitset/ext/constexpr.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/bitset/operations/96303.cc4
-rw-r--r--libstdc++-v3/testsuite/20_util/bitset/operations/constexpr_c++23.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/bitset/version.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/common_reference/100894.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/common_reference/requirements/alias_decl.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/common_reference/requirements/explicit_instantiation.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/common_reference/requirements/typedefs.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/duration/arithmetic/overflow_c++20.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/duration/comparison_operators/three_way.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/duration/io.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/exchange/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/exchange/noexcept.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/expected/assign.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/expected/bad.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/expected/cons.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/expected/equality.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/expected/illformed_neg.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/expected/lwg3877.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/expected/lwg3938.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/expected/monadic.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/expected/observers.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/expected/requirements.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/expected/swap.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/expected/synopsis.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/expected/unexpected.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/expected/version.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/from_chars/1_c++20_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/from_chars/8.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/from_chars/compare.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/from_chars/constexpr.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/from_chars/result.cc21
-rw-r--r--libstdc++-v3/testsuite/20_util/function/cons/deduction_c++23.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/function_objects/bind_front/1.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/function_objects/bind_front/107784.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/function_objects/bind_front/111327.cc40
-rw-r--r--libstdc++-v3/testsuite/20_util/function_objects/bind_front/2.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/function_objects/bind_front/97101.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/function_objects/bind_front/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/function_objects/constexpr_searcher.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/function_objects/identity/1.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/function_objects/invoke/4.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/function_objects/invoke/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/function_objects/invoke/dangling_ref.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/function_objects/mem_fn/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/function_objects/not_fn/111327.cc29
-rw-r--r--libstdc++-v3/testsuite/20_util/function_objects/not_fn/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/function_objects/range.cmp/equal_to.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/function_objects/range.cmp/greater.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/function_objects/range.cmp/greater_equal.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/function_objects/range.cmp/less.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/function_objects/range.cmp/less_equal.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/function_objects/range.cmp/lwg3530.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/function_objects/range.cmp/not_equal_to.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/integer_comparisons/1.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/integer_comparisons/2.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/integer_comparisons/equal.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/integer_comparisons/equal_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/integer_comparisons/greater.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/integer_comparisons/greater_equal.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/integer_comparisons/greater_equal_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/integer_comparisons/greater_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/integer_comparisons/in_range.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/integer_comparisons/in_range_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/integer_comparisons/less.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/integer_comparisons/less_equal.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/integer_comparisons/less_equal_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/integer_comparisons/less_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/integer_comparisons/not_equal.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/integer_comparisons/not_equal_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/integer_sequence/pr111357.cc34
-rw-r--r--libstdc++-v3/testsuite/20_util/is_bounded_array/requirements/explicit_instantiation.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/is_bounded_array/requirements/typedefs.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/is_bounded_array/value.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/is_constant_evaluated/1.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/is_constant_evaluated/noexcept.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/is_constructible/92878_92947.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/is_layout_compatible/is_corresponding_member.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/is_layout_compatible/value.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/is_layout_compatible/version.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/is_nothrow_constructible/value_c++20.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/is_nothrow_convertible/requirements/explicit_instantiation.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/is_nothrow_convertible/value.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/is_pod/deprecated-2a.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/is_pointer_interconvertible/value.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/is_pointer_interconvertible/version.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/is_pointer_interconvertible/with_class.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/is_scoped_enum/value.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/is_scoped_enum/version.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/is_unbounded_array/requirements/explicit_instantiation.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/is_unbounded_array/requirements/typedefs.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/is_unbounded_array/value.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/move_only_function/call.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/move_only_function/cons.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/move_only_function/move.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/move_only_function/version.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/optional/assignment/92878_92947.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/optional/cons/92878_92947.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/optional/constexpr/assign.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/optional/constexpr/cons/conv.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/optional/constexpr/modifiers.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/optional/constexpr/swap.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/optional/monadic/and_then.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/optional/monadic/or_else.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/optional/monadic/or_else_neg.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/optional/monadic/pr109242.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/optional/monadic/transform.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/optional/relops/96269.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/optional/relops/three_way.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/pair/comparison_operators/constexpr_c++20.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/pair/cons/92878_92947.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/pair/constexpr_assign.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/pair/constexpr_swap.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/pair/p2321r2.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/pair/requirements/structural.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/pointer_traits/pointer_to_constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/polymorphic_allocator/allocate_object.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/polymorphic_allocator/construct_c++2a.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/polymorphic_allocator/lwg3237.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/reference_from_temporary/value.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/reference_from_temporary/value2.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/reference_from_temporary/version.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/reference_wrapper/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/reference_wrapper/incomplete.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/remove_cvref/requirements/alias_decl.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/remove_cvref/value.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/atomic/3.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/casts/rval.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/cons/alias-rval.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/creation/92878_92947.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/creation/array.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/creation/overwrite.cc2
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/creation/version.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/1.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/92878_92947.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/95788.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/specialized_algorithms/destroy/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/94017.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/94017.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/synchronized_pool_resource/allocate.cc6
-rw-r--r--libstdc++-v3/testsuite/20_util/synchronized_pool_resource/allocate_single.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/synchronized_pool_resource/cons.cc6
-rw-r--r--libstdc++-v3/testsuite/20_util/synchronized_pool_resource/cons_single.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/synchronized_pool_resource/is_equal.cc6
-rw-r--r--libstdc++-v3/testsuite/20_util/synchronized_pool_resource/multithreaded.cc6
-rw-r--r--libstdc++-v3/testsuite/20_util/synchronized_pool_resource/options.cc6
-rw-r--r--libstdc++-v3/testsuite/20_util/synchronized_pool_resource/release.cc6
-rw-r--r--libstdc++-v3/testsuite/20_util/synchronized_pool_resource/release_single.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/time_point/4.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/time_point/comparison_operators/three_way.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/to_address/1.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/to_address/1_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/to_address/debug.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/to_address/lwg3545.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/to_chars/compare.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/to_chars/constexpr.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/to_chars/float128_c++23.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/to_chars/float16_c++23.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/to_chars/result.cc25
-rw-r--r--libstdc++-v3/testsuite/20_util/to_chars/version.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/to_underlying/1.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/to_underlying/version.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/tuple/comparison_operators/three_way.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/tuple/cons/102270.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/tuple/constexpr_swap.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/tuple/p2321r2.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/type_identity/requirements/alias_decl.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/type_identity/requirements/explicit_instantiation.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/type_identity/requirements/typedefs.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/typeindex/comparison_operators_c++20.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/unique_ptr/assign/constexpr.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/unique_ptr/comparison/compare_c++20.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/unique_ptr/comparison/constexpr.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/unique_ptr/creation/92878_92947.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/unique_ptr/creation/constexpr.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/unique_ptr/creation/for_overwrite.cc4
-rw-r--r--libstdc++-v3/testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/unique_ptr/io/lwg2948.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/constexpr.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/unreachable/1.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/unreachable/version.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/unwrap_reference/1.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/unwrap_reference/2.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/unwrap_reference/3.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/uses_allocator/92878_92947.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/uses_allocator/lwg3527.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/uses_allocator/lwg3677.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/uses_allocator/make_obj.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/uses_allocator/uninitialized_construct.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/variant/92878_92947.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/variant/95915.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/variant/constexpr.cc1
-rw-r--r--libstdc++-v3/testsuite/20_util/variant/default_ctor.cc11
-rw-r--r--libstdc++-v3/testsuite/20_util/variant/relops/three_way.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/variant/visit_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/variant/visit_r.cc3
-rw-r--r--libstdc++-v3/testsuite/20_util/weak_ptr/atomic_weak_ptr.cc1
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc1
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/cons/char/105995.cc1
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/cons/char/constexpr.cc1
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc1
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/erasure.cc3
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/hash/hash_char8_t.cc3
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/literals/constexpr.cc1
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/modifiers/constexpr.cc1
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/modifiers/swap/constexpr-wchar_t.cc1
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/modifiers/swap/constexpr.cc1
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/operations/contains/char.cc1
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/operations/contains/nonnull.cc2
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/operations/contains/wchar_t.cc1
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/operations/ends_with/char.cc3
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc2
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc3
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/operations/starts_with/char.cc3
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc2
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc3
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/operators/char/cmp_c++20.cc3
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/cmp_c++20.cc3
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/range.cc1
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc1
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc1
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/char.cc1
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/char/2.cc1
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc2
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/wchar_t.cc1
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string_view/operations/ends_with/char.cc3
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc2
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t.cc3
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string_view/operations/starts_with/char.cc3
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc2
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t.cc3
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string_view/operators/char/cmp_c++20.cc3
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string_view/operators/wchar_t/cmp_c++20.cc3
-rw-r--r--libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/constexpr_iter.cc3
-rw-r--r--libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc1
-rw-r--r--libstdc++-v3/testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc1
-rw-r--r--libstdc++-v3/testsuite/23_containers/array/comparison_operators/96851.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/array/comparison_operators/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/array/creation/1.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/array/creation/110167.cc1
-rw-r--r--libstdc++-v3/testsuite/23_containers/array/creation/2.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/array/creation/3_neg.cc4
-rw-r--r--libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_fill.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_swap.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/deque/48101-2_neg.cc4
-rw-r--r--libstdc++-v3/testsuite/23_containers/deque/48101-3_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/deque/erasure.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/deque/modifiers/emplace/92878_92947.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/deque/operators/cmp_c++20.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/forward_list/48101-2_neg.cc4
-rw-r--r--libstdc++-v3/testsuite/23_containers/forward_list/48101-3_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/forward_list/cmp_c++20.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/forward_list/erasure.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/forward_list/modifiers/92878_92947.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/forward_list/operations/remove_cxx20_return.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/forward_list/operations/unique_cxx20_return.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/list/48101-2_neg.cc4
-rw-r--r--libstdc++-v3/testsuite/23_containers/list/48101-3_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/list/cmp_c++20.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/list/erasure.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/list/modifiers/emplace/92878_92947.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/list/operations/remove_cxx20_return.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/list/operations/unique_cxx20_return.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/map/48101-2_neg.cc4
-rw-r--r--libstdc++-v3/testsuite/23_containers/map/48101-3_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/map/48101_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/map/erasure.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/map/modifiers/emplace/92878_92947.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/map/operations/contains.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/map/operators/cmp_c++20.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/multimap/48101-2_neg.cc4
-rw-r--r--libstdc++-v3/testsuite/23_containers/multimap/48101-3_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/multimap/48101_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/multimap/modifiers/emplace/92878_92947.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/multimap/operations/contains.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/multimap/operators/cmp_c++20.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/multiset/48101-2_neg.cc4
-rw-r--r--libstdc++-v3/testsuite/23_containers/multiset/48101-3_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/multiset/modifiers/emplace/92878_92947.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/multiset/operations/contains.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/multiset/operators/cmp_c++20.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/priority_queue/92878_92947.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/queue/92878_92947.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/queue/cmp_c++20.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/queue/cons_from_iters.cc1
-rw-r--r--libstdc++-v3/testsuite/23_containers/set/48101-2_neg.cc4
-rw-r--r--libstdc++-v3/testsuite/23_containers/set/48101-3_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/set/erasure.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/set/modifiers/emplace/92878_92947.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/set/operations/contains.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/set/operators/cmp_c++20.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/span/1.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/span/101411.cc1
-rw-r--r--libstdc++-v3/testsuite/23_containers/span/2.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/span/back_assert_neg.cc5
-rw-r--r--libstdc++-v3/testsuite/23_containers/span/back_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/span/cons_1_assert_neg.cc5
-rw-r--r--libstdc++-v3/testsuite/23_containers/span/cons_2_assert_neg.cc5
-rw-r--r--libstdc++-v3/testsuite/23_containers/span/contiguous_range_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/span/deduction.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/span/everything.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/span/explicit.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/span/first_2_assert_neg.cc5
-rw-r--r--libstdc++-v3/testsuite/23_containers/span/first_assert_neg.cc5
-rw-r--r--libstdc++-v3/testsuite/23_containers/span/first_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/span/front_assert_neg.cc5
-rw-r--r--libstdc++-v3/testsuite/23_containers/span/front_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/span/index_op_assert_neg.cc5
-rw-r--r--libstdc++-v3/testsuite/23_containers/span/index_op_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/span/last_2_assert_neg.cc5
-rw-r--r--libstdc++-v3/testsuite/23_containers/span/last_assert_neg.cc5
-rw-r--r--libstdc++-v3/testsuite/23_containers/span/last_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/span/layout_compat.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/span/lwg3255.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/span/nothrow_cons.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/span/subspan_2_assert_neg.cc5
-rw-r--r--libstdc++-v3/testsuite/23_containers/span/subspan_3_assert_neg.cc5
-rw-r--r--libstdc++-v3/testsuite/23_containers/span/subspan_4_assert_neg.cc5
-rw-r--r--libstdc++-v3/testsuite/23_containers/span/subspan_5_assert_neg.cc5
-rw-r--r--libstdc++-v3/testsuite/23_containers/span/subspan_6_assert_neg.cc5
-rw-r--r--libstdc++-v3/testsuite/23_containers/span/subspan_assert_neg.cc5
-rw-r--r--libstdc++-v3/testsuite/23_containers/span/subspan_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/span/trivially_copyable.cc1
-rw-r--r--libstdc++-v3/testsuite/23_containers/stack/92878_92947.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/stack/cmp_c++20.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/stack/cons_from_iters.cc1
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_map/48101-2_neg.cc4
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_map/48101-3_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_map/erasure.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/92878_92947.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_map/operations/1.cc1
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_map/operations/contains.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_multimap/48101-2_neg.cc4
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_multimap/48101-3_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/92878_92947.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_multimap/operations/1.cc1
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_multimap/operations/contains.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_multiset/48101-2_neg.cc4
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_multiset/48101-3_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/92878_92947.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_multiset/operations/1.cc1
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_multiset/operations/contains.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_set/48101-2_neg.cc4
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_set/48101-3_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_set/erasure.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/92878_92947.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_set/operations/1.cc1
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_set/operations/contains.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/48101-2_neg.cc4
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/48101-3_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/bool/capacity/constexpr.cc1
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/bool/cmp_c++20.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/bool/cons/constexpr.cc1
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/bool/element_access/1.cc1
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/bool/element_access/constexpr.cc1
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/bool/iterator_c++20.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/assign/constexpr.cc1
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/constexpr.cc1
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/swap/constexpr.cc1
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/capacity/constexpr.cc1
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/cmp_c++20.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/cons/constexpr.cc1
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/data_access/constexpr.cc1
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/element_access/constexpr.cc1
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/erasure.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/modifiers/assign/constexpr.cc1
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/modifiers/constexpr.cc1
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/modifiers/emplace/92878_92947.cc3
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/modifiers/swap/constexpr.cc1
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/requirements/version.cc1
-rw-r--r--libstdc++-v3/testsuite/24_iterators/aliases.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/associated_types/incrementable.traits.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/associated_types/iterator.traits.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/associated_types/readable.traits.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/back_insert_iterator/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/back_insert_iterator/pr93884.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/bidirectional/concept.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/common_iterator/1.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/common_iterator/100823.cc2
-rw-r--r--libstdc++-v3/testsuite/24_iterators/common_iterator/2.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/const_iterator/1.cc1
-rw-r--r--libstdc++-v3/testsuite/24_iterators/contiguous/concept.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/contiguous/tag.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/counted_iterator/1.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/counted_iterator/lwg3389.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/counted_iterator/lwg3643.cc1
-rw-r--r--libstdc++-v3/testsuite/24_iterators/customization_points/92894.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/customization_points/iter_move.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/customization_points/iter_swap.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/customization_points/lwg3420.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/forward/concept.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/front_insert_iterator/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/front_insert_iterator/pr93884.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++20.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/indirect_callable/92894.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/indirect_callable/projected-adl.cc1
-rw-r--r--libstdc++-v3/testsuite/24_iterators/indirect_callable/projected.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/input/concept.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/insert_iterator/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/istream_iterator/cons/sentinel.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/istream_iterator/sentinel.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/sentinel.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/move_iterator/cust.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/move_iterator/dr3435.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/move_iterator/input_iterator.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3390.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3391.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/move_iterator/move_only.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/move_iterator/p2520r0.cc1
-rw-r--r--libstdc++-v3/testsuite/24_iterators/move_iterator/rel_ops_c++20.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/move_iterator/sentinel.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/normal_iterator/cmp_c++20.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/output/concept.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/random_access/concept.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp20.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp20_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/range_operations/100768.cc1
-rw-r--r--libstdc++-v3/testsuite/24_iterators/range_operations/advance.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/range_operations/advance_debug_neg.cc5
-rw-r--r--libstdc++-v3/testsuite/24_iterators/range_operations/advance_overflow.cc1
-rw-r--r--libstdc++-v3/testsuite/24_iterators/range_operations/distance.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/range_operations/lwg3392.cc1
-rw-r--r--libstdc++-v3/testsuite/24_iterators/range_operations/next.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/range_operations/prev.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/reverse_iterator/100639.cc4
-rw-r--r--libstdc++-v3/testsuite/24_iterators/reverse_iterator/cust.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/reverse_iterator/dr3435.cc3
-rw-r--r--libstdc++-v3/testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/adjacent_find/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/adjacent_find/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/all_of/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/all_of/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/any_of/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/any_of/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/binary_search/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/binary_search/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/clamp/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/constexpr_macro.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/contains/1.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/contains_subrange/1.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/copy/95578.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/copy/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/copy/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/copy/debug/constexpr_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/copy_backward/95578.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/copy_backward/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/copy_backward/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/copy_if/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/copy_if/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/copy_n/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/copy_n/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/count/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/count/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/count_if/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/count_if/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/cpp_lib_constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/equal/95578.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/equal/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/equal/constexpr_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/equal/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/equal/debug/constexpr_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/equal_range/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/equal_range/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/fill/94017.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/fill/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/fill/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/fill_n/94017.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/fill_n/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/fill_n/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/find/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/find/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/find_end/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/find_end/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/find_first_of/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/find_first_of/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/find_if/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/find_if/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/find_if_not/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/find_if_not/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/find_last/1.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/find_last_if/1.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/find_last_if_not/1.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/fold_left/1.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/fold_right/1.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/for_each/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/for_each/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/generate/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/generate/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/generate_n/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/generate_n/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/heap/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/includes/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/inplace_merge/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/iota/1.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/is_heap/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/is_heap_until/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/is_partitioned/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/is_partitioned/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/is_permutation/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/is_permutation/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/is_sorted/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/is_sorted/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/is_sorted_until/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/is_sorted_until/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/iter_swap/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/93972.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/95578.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/lexicographical_compare_three_way/1.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/lexicographical_compare_three_way/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/lower_bound/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/lower_bound/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/make_heap/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/max/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/max_element/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/merge/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/merge/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/min/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/min_element/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/minmax/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/minmax_element/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/mismatch/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/mismatch/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/move/93872.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/move/95578.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/move/constexpr.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/move/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/move_backward/93872.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/move_backward/95578.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/move_backward/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/next_permutation/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/next_permutation/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/none_of/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/none_of/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/nth_element/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/nth_element/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/partial_sort/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/partial_sort/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/partition/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/partition/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/partition_copy/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/partition_copy/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/partition_point/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/partition_point/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/pop_heap/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/prev_permutation/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/prev_permutation/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/push_heap/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/remove/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/remove/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/remove_copy/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/remove_copy/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/remove_copy_if/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/remove_copy_if/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/remove_if/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/remove_if/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/replace/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/replace_copy/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/replace_copy/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/replace_copy_if/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/replace_copy_if/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/replace_if/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/replace_if/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/reverse/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/reverse/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/reverse_copy/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/reverse_copy/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/rotate/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/rotate/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/rotate_copy/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/rotate_copy/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/sample/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/search/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/search/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/search_n/97828.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/search_n/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/search_n/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/set_difference/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/set_difference/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/set_intersection/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/set_intersection/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/set_union/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/set_union/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/shift_left/1.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/shift_right/1.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/shuffle/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/sort/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/sort/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/sort_heap/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/stable_partition/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/stable_sort/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/swap/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/swap_ranges/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/swap_ranges/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/transform/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/transform/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/unique/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/unique/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/unique_copy/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/unique_copy/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/upper_bound/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/upper_bound/constrained.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/accumulate/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/accumulate/lwg2055.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/adjacent_difference/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/adjacent_difference/lwg2055.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/bit/bit.byteswap/byteswap.cc1
-rw-r--r--libstdc++-v3/testsuite/26_numerics/bit/bit.byteswap/version.cc1
-rw-r--r--libstdc++-v3/testsuite/26_numerics/bit/bit.cast/105027.cc1
-rw-r--r--libstdc++-v3/testsuite/26_numerics/bit/bit.cast/bit_cast.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/bit/bit.cast/version.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/bit/bit.count/countl_one.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/bit/bit.count/countl_zero.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/bit/bit.count/countr_one.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/bit/bit.count/countr_zero.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/bit/bit.count/popcount.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_ceil_neg.cc4
-rw-r--r--libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_width.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/lwg3656.cc1
-rw-r--r--libstdc++-v3/testsuite/26_numerics/bit/bit.rotate/rotl.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/bit/bit.rotate/rotr.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/bit/header-2.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/bit/header.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/complex/1.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/complex/2.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/complex/comparison_operators/more_constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/complex/ext_c++23.cc1
-rw-r--r--libstdc++-v3/testsuite/26_numerics/complex/operators/more_constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/complex/requirements/more_constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/complex/value_operations/more_constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/endian/1.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/endian/2.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/endian/3.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/exclusive_scan/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c++23.cc1
-rw-r--r--libstdc++-v3/testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc1
-rw-r--r--libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_std_c++23.cc1
-rw-r--r--libstdc++-v3/testsuite/26_numerics/headers/cmath/nextafter_c++23.cc1
-rw-r--r--libstdc++-v3/testsuite/26_numerics/inclusive_scan/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/inner_product/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/inner_product/lwg2055.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/iota/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/lerp/1.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/lerp/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/lerp/version.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/midpoint/floating.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/midpoint/integral.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/midpoint/pointer.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/midpoint/pointer_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/midpoint/version.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/numbers/1.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/numbers/2.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/numbers/3.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/numbers/4.cc1
-rw-r--r--libstdc++-v3/testsuite/26_numerics/numbers/float128.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/numbers/nonfloat_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/partial_sum/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/partial_sum/lwg2055.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/random/concept.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/reduce/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/slice/compare.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/transform_exclusive_scan/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/transform_inclusive_scan/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/26_numerics/transform_reduce/constexpr.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_filebuf/native_handle/char/1.cc61
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_filebuf/native_handle/version.cc10
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_filebuf/native_handle/wchar_t/1.cc55
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc4
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc4
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/1-io.cc4
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/2-io.cc4
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_fstream/native_handle/char/1.cc21
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_fstream/native_handle/wchar_t/1.cc21
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ifstream/native_handle/char/1.cc21
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ifstream/native_handle/wchar_t/1.cc21
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/lwg2499.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_istringstream/cons/char/1.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_istringstream/cons/wchar_t/1.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_istringstream/str/char/2.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_istringstream/str/wchar_t/2.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_istringstream/view/char/1.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_istringstream/view/wchar_t/1.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ofstream/native_handle/char/1.cc21
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ofstream/native_handle/wchar_t/1.cc21
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ostream/emit/1.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc2
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/char/1.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/wchar_t/1.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ostringstream/str/char/3.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ostringstream/str/wchar_t/3.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ostringstream/view/char/1.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/char/2.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/wchar_t/2.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/4.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/4.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_stringbuf/view/char/1.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_stringstream/cons/char/1.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_stringstream/cons/char/97719.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_stringstream/cons/wchar_t/1.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/5.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/5.cc.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_stringstream/view/char/1.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_stringstream/view/wchar_t/1.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_syncbuf/1.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_syncbuf/2.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_syncbuf/basic_ops/1.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_syncbuf/requirements/types.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_syncbuf/sync_ops/1.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_syncstream/1.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_syncstream/2.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_syncstream/basic_ops/1.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/basic_syncstream/requirements/types.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/filesystem/iterators/106201.cc1
-rw-r--r--libstdc++-v3/testsuite/27_io/filesystem/iterators/lwg3719.cc1
-rw-r--r--libstdc++-v3/testsuite/27_io/filesystem/path/factory/u8path-depr.cc1
-rw-r--r--libstdc++-v3/testsuite/27_io/filesystem/path/native/conv_c++23.cc1
-rw-r--r--libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/cmp_c++20.cc3
-rw-r--r--libstdc++-v3/testsuite/27_io/spanstream/1.cc1
-rw-r--r--libstdc++-v3/testsuite/27_io/spanstream/2.cc1
-rw-r--r--libstdc++-v3/testsuite/27_io/spanstream/version.cc1
-rw-r--r--libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/lwg3719.cc1
-rw-r--r--libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc1
-rw-r--r--libstdc++-v3/testsuite/28_regex/sub_match/compare_c++20.cc3
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc2
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc4
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic/lock_free_aliases.cc1
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic/requirements/types_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/1.cc3
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/100334.cc3
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/102994.cc1
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/2.cc3
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/bool.cc3
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/generic.cc3
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/pointers.cc3
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/value_init.cc3
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_flag/test/explicit.cc3
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_flag/test/implicit.cc3
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_flag/wait_notify/1.cc3
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_float/1.cc3
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_float/95282.cc3
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_float/requirements.cc3
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_float/requirements_cxx23.cc1
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_float/value_init.cc4
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_float/wait_notify.cc3
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/value_init.cc4
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_integral/wait_notify.cc3
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc2
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_ref/deduction.cc3
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_ref/float.cc3
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_ref/generic.cc4
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_ref/integral.cc4
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_ref/pointer.cc4
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_ref/requirements.cc3
-rw-r--r--libstdc++-v3/testsuite/29_atomics/atomic_ref/wait_notify.cc5
-rw-r--r--libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++20.cc3
-rw-r--r--libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++2a.cc3
-rw-r--r--libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc8
-rw-r--r--libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/c_compat.cc1
-rw-r--r--libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/version.cc1
-rw-r--r--libstdc++-v3/testsuite/30_threads/barrier/1.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/barrier/2.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/barrier/arrive.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/barrier/arrive_and_drop.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/barrier/arrive_and_wait.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/barrier/completion.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/condition_variable/members/clock_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/condition_variable_any/members/clock_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/1.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/2.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc6
-rw-r--r--libstdc++-v3/testsuite/30_threads/future/members/clock_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/headers/stop_token/synopsis.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/headers/thread/types_std_c++20.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/jthread/1.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/jthread/100612.cc1
-rw-r--r--libstdc++-v3/testsuite/30_threads/jthread/3.cc5
-rw-r--r--libstdc++-v3/testsuite/30_threads/jthread/95989.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/jthread/jthread.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/jthread/version.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/latch/1.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/latch/2.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/latch/3.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/packaged_task/cons/deduction_c++23.cc1
-rw-r--r--libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/clock_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/semaphore/1.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/semaphore/100806.cc5
-rw-r--r--libstdc++-v3/testsuite/30_threads/semaphore/2.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/semaphore/least_max_value_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/semaphore/try_acquire.cc5
-rw-r--r--libstdc++-v3/testsuite/30_threads/semaphore/try_acquire_for.cc5
-rw-r--r--libstdc++-v3/testsuite/30_threads/semaphore/try_acquire_posix.cc5
-rw-r--r--libstdc++-v3/testsuite/30_threads/semaphore/try_acquire_until.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/shared_future/members/clock_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/shared_lock/locking/clock_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock_until/clock_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/stop_token/1.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/stop_token/2.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/stop_token/stop_callback.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/deadlock-mt.cc5
-rw-r--r--libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/deadlock.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/destroy.cc5
-rw-r--r--libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/destructible_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/invocable_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/invoke.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/stop_token/stop_source.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/stop_token/stop_source/assign.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/stop_token/stop_token.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/stop_token/stop_token/stop_possible.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/thread/id/operators_c++20.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/clock_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/30_threads/unique_lock/locking/clock_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/Makefile.am1
-rw-r--r--libstdc++-v3/testsuite/Makefile.in1
-rw-r--r--libstdc++-v3/testsuite/experimental/filesystem/iterators/106201.cc1
-rw-r--r--libstdc++-v3/testsuite/experimental/filesystem/path/native/conv_c++23.cc1
-rw-r--r--libstdc++-v3/testsuite/experimental/scopeguard/exit.cc1
-rw-r--r--libstdc++-v3/testsuite/experimental/scopeguard/uniqueres.cc1
-rw-r--r--libstdc++-v3/testsuite/lib/dg-options.exp15
-rw-r--r--libstdc++-v3/testsuite/lib/libstdc++.exp116
-rw-r--r--libstdc++-v3/testsuite/libstdc++-dg/conformance.exp4
-rw-r--r--libstdc++-v3/testsuite/std/concepts/1.cc3
-rw-r--r--libstdc++-v3/testsuite/std/concepts/2.cc3
-rw-r--r--libstdc++-v3/testsuite/std/concepts/concepts.callable/invocable.cc3
-rw-r--r--libstdc++-v3/testsuite/std/concepts/concepts.callable/regular_invocable.cc3
-rw-r--r--libstdc++-v3/testsuite/std/concepts/concepts.callable/relation.cc3
-rw-r--r--libstdc++-v3/testsuite/std/concepts/concepts.callable/strictweakorder.cc3
-rw-r--r--libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/floating_point.cc3
-rw-r--r--libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc3
-rw-r--r--libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc3
-rw-r--r--libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc3
-rw-r--r--libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.assignable/1.cc3
-rw-r--r--libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.common/1.cc3
-rw-r--r--libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.commonref/1.cc3
-rw-r--r--libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.constructible/1.cc3
-rw-r--r--libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.convertible/1.cc3
-rw-r--r--libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.copyconstructible/1.cc3
-rw-r--r--libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.defaultinitializable/1.cc3
-rw-r--r--libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.defaultinitializable/lwg3149.cc3
-rw-r--r--libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.derived/1.cc3
-rw-r--r--libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.destructible/1.cc3
-rw-r--r--libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.moveconstructible/1.cc3
-rw-r--r--libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.same/1.cc3
-rw-r--r--libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc3
-rw-r--r--libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.swappable/swappable.cc3
-rw-r--r--libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.swappable/swappable_with.cc3
-rw-r--r--libstdc++-v3/testsuite/std/concepts/concepts.object/copyable.cc3
-rw-r--r--libstdc++-v3/testsuite/std/concepts/concepts.object/movable.cc3
-rw-r--r--libstdc++-v3/testsuite/std/concepts/concepts.object/regular.cc3
-rw-r--r--libstdc++-v3/testsuite/std/concepts/concepts.object/semiregular.cc3
-rw-r--r--libstdc++-v3/testsuite/std/format/arguments/args.cc1
-rw-r--r--libstdc++-v3/testsuite/std/format/arguments/lwg3810.cc1
-rw-r--r--libstdc++-v3/testsuite/std/format/error.cc1
-rw-r--r--libstdc++-v3/testsuite/std/format/format_string.cc1
-rw-r--r--libstdc++-v3/testsuite/std/format/formatter/concept.cc1
-rw-r--r--libstdc++-v3/testsuite/std/format/formatter/ext_float.cc1
-rw-r--r--libstdc++-v3/testsuite/std/format/formatter/requirements.cc1
-rw-r--r--libstdc++-v3/testsuite/std/format/functions/107871.cc1
-rw-r--r--libstdc++-v3/testsuite/std/format/functions/format.cc1
-rw-r--r--libstdc++-v3/testsuite/std/format/functions/format_c++23.cc5
-rw-r--r--libstdc++-v3/testsuite/std/format/functions/format_to.cc1
-rw-r--r--libstdc++-v3/testsuite/std/format/functions/format_to_n.cc1
-rw-r--r--libstdc++-v3/testsuite/std/format/functions/size.cc1
-rw-r--r--libstdc++-v3/testsuite/std/format/functions/vformat_to.cc1
-rw-r--r--libstdc++-v3/testsuite/std/format/parse_ctx.cc1
-rw-r--r--libstdc++-v3/testsuite/std/format/string.cc1
-rw-r--r--libstdc++-v3/testsuite/std/format/string_neg.cc1
-rw-r--r--libstdc++-v3/testsuite/std/ranges/97600.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/access/101782.cc2
-rw-r--r--libstdc++-v3/testsuite/std/ranges/access/begin.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/access/begin_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/access/cbegin.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/access/cdata.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/access/cend.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/access/crbegin.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/access/crend.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/access/data.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/access/empty.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/access/end.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/access/end_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/access/lwg3467.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/access/p2602.cc1
-rw-r--r--libstdc++-v3/testsuite/std/ranges/access/rbegin.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/access/rend.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/access/size.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/access/size_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/access/ssize.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/100479.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/100577.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/93978.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/95322.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/99433.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/adjacent/1.cc1
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/adjacent_transform/1.cc1
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/all.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/as_const/1.cc1
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/as_rvalue/1.cc1
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/chunk/1.cc1
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/chunk_by/1.cc1
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/common.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/conditionally_borrowed.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/counted.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/detail/copyable_box.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/drop.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/drop_while.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/elements.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/enumerate/1.cc1
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/filter.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/join.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/join_with/1.cc1
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/lwg3286.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/lwg3313_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/lwg3325_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/lwg3406.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/lwg3715.cc1
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/p1739.cc1
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/p2281.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/p2770r0.cc1
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/reverse.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/sizeof.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/slide/1.cc1
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/split.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/stride/1.cc1
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/take.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/take_while.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/adaptors/transform.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/cartesian_product/1.cc1
-rw-r--r--libstdc++-v3/testsuite/std/ranges/empty_view.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/headers/ranges/synopsis.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/iota/93267.cc4
-rw-r--r--libstdc++-v3/testsuite/std/ranges/iota/96042.cc4
-rw-r--r--libstdc++-v3/testsuite/std/ranges/iota/difference_type.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/iota/iota_view.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/iota/iterator.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/iota/lwg3292_neg.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/iota/max_size_type.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/iota/size.cc2
-rw-r--r--libstdc++-v3/testsuite/std/ranges/istream_view.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/p2259.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/p2325.cc1
-rw-r--r--libstdc++-v3/testsuite/std/ranges/p2367.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/range.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/range_adaptor_closure.cc1
-rw-r--r--libstdc++-v3/testsuite/std/ranges/refinements.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/repeat/1.cc1
-rw-r--r--libstdc++-v3/testsuite/std/ranges/safe_range.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/safe_range_types.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/single_view.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/sized.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/subrange/1.cc1
-rw-r--r--libstdc++-v3/testsuite/std/ranges/subrange/96042.cc4
-rw-r--r--libstdc++-v3/testsuite/std/ranges/subrange/97512.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/subrange/constexpr.cc1
-rw-r--r--libstdc++-v3/testsuite/std/ranges/subrange/lwg3282_neg.cc7
-rw-r--r--libstdc++-v3/testsuite/std/ranges/subrange/lwg3286.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/subrange/lwg3433.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/subrange/sizeof.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/subrange/tuple_like.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/version_c++23.cc1
-rw-r--r--libstdc++-v3/testsuite/std/ranges/view.cc3
-rw-r--r--libstdc++-v3/testsuite/std/ranges/zip/1.cc1
-rw-r--r--libstdc++-v3/testsuite/std/ranges/zip_transform/1.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/clock/file/io.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/clock/file/members.cc3
-rw-r--r--libstdc++-v3/testsuite/std/time/clock/file/overview.cc3
-rw-r--r--libstdc++-v3/testsuite/std/time/clock/gps/1.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/clock/gps/io.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/clock/local/io.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/clock/system/io.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/clock/tai/1.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/clock/tai/io.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/clock/utc/1.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/clock/utc/io.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/clock/utc/leap_second_info.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/day/1.cc3
-rw-r--r--libstdc++-v3/testsuite/std/time/day/io.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/exceptions.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/format.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/hh_mm_ss/1.cc3
-rw-r--r--libstdc++-v3/testsuite/std/time/hh_mm_ss/109772.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/hh_mm_ss/io.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/is_am/1.cc3
-rw-r--r--libstdc++-v3/testsuite/std/time/is_pm/1.cc3
-rw-r--r--libstdc++-v3/testsuite/std/time/make12/1.cc3
-rw-r--r--libstdc++-v3/testsuite/std/time/make24/1.cc3
-rw-r--r--libstdc++-v3/testsuite/std/time/month/1.cc3
-rw-r--r--libstdc++-v3/testsuite/std/time/month/io.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/month_day/1.cc3
-rw-r--r--libstdc++-v3/testsuite/std/time/month_day/io.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/month_day_last/1.cc3
-rw-r--r--libstdc++-v3/testsuite/std/time/month_day_last/io.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/month_weekday/1.cc3
-rw-r--r--libstdc++-v3/testsuite/std/time/month_weekday/io.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/month_weekday_last/1.cc3
-rw-r--r--libstdc++-v3/testsuite/std/time/month_weekday_last/io.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/parse.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/syn_c++20.cc3
-rw-r--r--libstdc++-v3/testsuite/std/time/time_zone/get_info_local.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/time_zone/get_info_sys.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/time_zone/requirements.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/traits/is_clock.cc3
-rw-r--r--libstdc++-v3/testsuite/std/time/tzdb/1.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/tzdb/leap_seconds.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/tzdb_list/1.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/tzdb_list/requirements.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/weekday/1.cc3
-rw-r--r--libstdc++-v3/testsuite/std/time/weekday/io.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/weekday_indexed/1.cc3
-rw-r--r--libstdc++-v3/testsuite/std/time/weekday_indexed/io.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/weekday_last/1.cc3
-rw-r--r--libstdc++-v3/testsuite/std/time/weekday_last/io.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/year/1.cc3
-rw-r--r--libstdc++-v3/testsuite/std/time/year/2.cc3
-rw-r--r--libstdc++-v3/testsuite/std/time/year/io.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/year_month/1.cc3
-rw-r--r--libstdc++-v3/testsuite/std/time/year_month/2.cc3
-rw-r--r--libstdc++-v3/testsuite/std/time/year_month/io.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/year_month_day/1.cc3
-rw-r--r--libstdc++-v3/testsuite/std/time/year_month_day/2.cc3
-rw-r--r--libstdc++-v3/testsuite/std/time/year_month_day/3.cc3
-rw-r--r--libstdc++-v3/testsuite/std/time/year_month_day/4.cc3
-rw-r--r--libstdc++-v3/testsuite/std/time/year_month_day/io.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/year_month_day_last/1.cc3
-rw-r--r--libstdc++-v3/testsuite/std/time/year_month_day_last/2.cc3
-rw-r--r--libstdc++-v3/testsuite/std/time/year_month_day_last/io.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/year_month_weekday/1.cc3
-rw-r--r--libstdc++-v3/testsuite/std/time/year_month_weekday/2.cc3
-rw-r--r--libstdc++-v3/testsuite/std/time/year_month_weekday/3.cc3
-rw-r--r--libstdc++-v3/testsuite/std/time/year_month_weekday/io.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/year_month_weekday_last/1.cc3
-rw-r--r--libstdc++-v3/testsuite/std/time/year_month_weekday_last/2.cc3
-rw-r--r--libstdc++-v3/testsuite/std/time/year_month_weekday_last/io.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/zoned_time/1.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/zoned_time/custom.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/zoned_time/deduction.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/zoned_time/io.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/zoned_time/req_neg.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/zoned_time/requirements.cc1
-rw-r--r--libstdc++-v3/testsuite/std/time/zoned_traits.cc1
-rw-r--r--libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/compile_cxx17.cc2
-rw-r--r--libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/compile_cxx17.cc2
2083 files changed, 198508 insertions, 6397 deletions
diff --git a/ChangeLog b/ChangeLog
index 172dd69..87ffdb2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,22 @@
+2023-09-15 Yang Yujie <yangyujie@loongson.cn>
+
+ * config-ml.in: Remove unneeded loongarch clause.
+ * configure.ac: Register custom makefile fragments mt-loongarch-*
+ for loongarch targets.
+ * configure: Regenerate.
+
+2023-09-12 Edwin Lu <ewlu@rivosinc.com>
+
+ * MAINTAINERS: Add myself
+
+2023-09-12 Thomas Schwinge <thomas@codesourcery.com>
+ Chung-Lin Tang <cltang@codesourcery.com>
+
+ PR testsuite/109951
+ * Makefile.tpl (BASE_TARGET_EXPORTS): Add
+ 'SYSROOT_CFLAGS_FOR_TARGET'.
+ * Makefile.in: Regenerate.
+
2023-09-05 Yang Yujie <yangyujie@loongson.cn>
* config-ml.in: Do not build the multilib library variant
diff --git a/MAINTAINERS b/MAINTAINERS
index de31a27..f34048e 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -425,6 +425,7 @@ Gary Funck <gary@intrepid.com>
Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
Eric Gallager <egall@gwmail.gwu.edu>
Gopalasubramanian Ganesh <Ganesh.Gopalasubramanian@amd.com>
+Fei Gao <gaofei@eswincomputing.com>
Kaveh Ghazi <ghazi@gcc.gnu.org>
Doug Gilmore <Doug.Gilmore@imgtec.com>
Matthew Gingell <gingell@gnat.com>
@@ -542,6 +543,7 @@ Gabor Loki <loki@inf.u-szeged.hu>
Manuel López-Ibáñez <manu@gcc.gnu.org>
Carl Love <cel@us.ibm.com>
Martin v. Löwis <loewis@informatik.hu-berlin.de>
+Edwin Lu <ewlu@rivosinc.com>
H.J. Lu <hjl.tools@gmail.com>
Xiong Hu Luo <luoxhu@gcc.gnu.org>
Bin Bin Lv <shlb@linux.ibm.com>
diff --git a/Makefile.in b/Makefile.in
index bc4fa2c..c17e921 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -321,6 +321,7 @@ BASE_TARGET_EXPORTS = \
RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \
READELF="$(READELF_FOR_TARGET)"; export READELF; \
STRIP="$(STRIP_FOR_TARGET)"; export STRIP; \
+ SYSROOT_CFLAGS_FOR_TARGET="$(SYSROOT_CFLAGS_FOR_TARGET)"; export SYSROOT_CFLAGS_FOR_TARGET; \
WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \
WINDMC="$(WINDMC_FOR_TARGET)"; export WINDMC; \
@if gcc-bootstrap
diff --git a/Makefile.tpl b/Makefile.tpl
index 36fa209..5872dd0 100644
--- a/Makefile.tpl
+++ b/Makefile.tpl
@@ -324,6 +324,7 @@ BASE_TARGET_EXPORTS = \
RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \
READELF="$(READELF_FOR_TARGET)"; export READELF; \
STRIP="$(STRIP_FOR_TARGET)"; export STRIP; \
+ SYSROOT_CFLAGS_FOR_TARGET="$(SYSROOT_CFLAGS_FOR_TARGET)"; export SYSROOT_CFLAGS_FOR_TARGET; \
WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \
WINDMC="$(WINDMC_FOR_TARGET)"; export WINDMC; \
@if gcc-bootstrap
diff --git a/config-ml.in b/config-ml.in
index ad0db07..68854a4 100644
--- a/config-ml.in
+++ b/config-ml.in
@@ -301,16 +301,6 @@ arm-*-*)
done
fi
;;
-loongarch*-*)
- old_multidirs="${multidirs}"
- multidirs=""
- for x in ${old_multidirs}; do
- case "$x" in
- `${CC-gcc} --print-multi-directory`) : ;;
- *) multidirs="${multidirs} ${x}" ;;
- esac
- done
- ;;
m68*-*-*)
if [ x$enable_softfloat = xno ]
then
diff --git a/config/ChangeLog b/config/ChangeLog
index b42f2bc..1c5e8b6 100644
--- a/config/ChangeLog
+++ b/config/ChangeLog
@@ -1,3 +1,10 @@
+2023-09-15 Yang Yujie <yangyujie@loongson.cn>
+
+ * mt-loongarch-mlib: New file. Pass -fmultiflags when building
+ target libraries (FLAGS_FOR_TARGET).
+ * mt-loongarch-elf: New file.
+ * mt-loongarch-gnu: New file.
+
2023-08-11 Joseph Myers <joseph@codesourcery.com>
* gcc-plugin.m4 (GCC_ENABLE_PLUGINS): Use
diff --git a/config/mt-loongarch-elf b/config/mt-loongarch-elf
new file mode 100644
index 0000000..bbf29bb
--- /dev/null
+++ b/config/mt-loongarch-elf
@@ -0,0 +1 @@
+include $(srcdir)/config/mt-loongarch-mlib
diff --git a/config/mt-loongarch-gnu b/config/mt-loongarch-gnu
new file mode 100644
index 0000000..dfefb44
--- /dev/null
+++ b/config/mt-loongarch-gnu
@@ -0,0 +1,2 @@
+include $(srcdir)/config/mt-gnu
+include $(srcdir)/config/mt-loongarch-mlib
diff --git a/config/mt-loongarch-mlib b/config/mt-loongarch-mlib
new file mode 100644
index 0000000..4cfe568
--- /dev/null
+++ b/config/mt-loongarch-mlib
@@ -0,0 +1 @@
+FLAGS_FOR_TARGET += -fmultiflags
diff --git a/configure b/configure
index ff8f07a..8e288ce 100755
--- a/configure
+++ b/configure
@@ -9695,6 +9695,12 @@ case "${target}" in
spu-*-*)
target_makefile_frag="config/mt-spu"
;;
+ loongarch*-*linux* | loongarch*-*gnu*)
+ target_makefile_frag="config/mt-loongarch-gnu"
+ ;;
+ loongarch*-*elf*)
+ target_makefile_frag="config/mt-loongarch-elf"
+ ;;
mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*)
target_makefile_frag="config/mt-sde"
;;
diff --git a/configure.ac b/configure.ac
index d083cc8..052b522 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2822,6 +2822,12 @@ case "${target}" in
spu-*-*)
target_makefile_frag="config/mt-spu"
;;
+ loongarch*-*linux* | loongarch*-*gnu*)
+ target_makefile_frag="config/mt-loongarch-gnu"
+ ;;
+ loongarch*-*elf*)
+ target_makefile_frag="config/mt-loongarch-elf"
+ ;;
mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*)
target_makefile_frag="config/mt-sde"
;;
diff --git a/contrib/ChangeLog b/contrib/ChangeLog
index 403a095..fc11bcd 100644
--- a/contrib/ChangeLog
+++ b/contrib/ChangeLog
@@ -1,3 +1,14 @@
+2023-09-12 Jonathan Wakely <jwakely@redhat.com>
+
+ PR other/111360
+ * gcc_update: Quote variable.
+
+2023-09-11 Jonathan Wakely <jwakely@redhat.com>
+
+ PR other/111359
+ * gcc-git-customization.sh: Check for getent before using it.
+ Use id on macOS.
+
2023-09-07 Tobias Burnus <tobias@codesourcery.com>
* gcc-changelog/git_commit.py (GitCommit.__init__,
diff --git a/contrib/gcc_update b/contrib/gcc_update
index 1d7bfab..cda2bdb 100755
--- a/contrib/gcc_update
+++ b/contrib/gcc_update
@@ -343,7 +343,7 @@ case $vcs_type in
revision=`$GCC_GIT log -n1 --pretty=tformat:%h`
r=`$GCC_GIT describe --all --match 'basepoints/gcc-[0-9]*' HEAD \
| sed -n 's,^\(tags/\)\?basepoints/gcc-\([0-9]\+\)-\([0-9]\+\)-g[0-9a-f]*$,r\2-\3,p;s,^\(tags/\)\?basepoints/gcc-\([0-9]\+\)$,r\2-0,p'`;
- if test -n $r; then
+ if test -n "$r"; then
o=`$GCC_GIT config --get gcc-config.upstream`;
rr=`echo $r | sed -n 's,^r\([0-9]\+\)-[0-9]\+\(-g[0-9a-f]\+\)\?$,\1,p'`;
if $GCC_GIT rev-parse --verify --quiet ${o:-origin}/releases/gcc-$rr >/dev/null; then
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
diff --git a/libgm2/ChangeLog b/libgm2/ChangeLog
index 2213846..8dec03c 100644
--- a/libgm2/ChangeLog
+++ b/libgm2/ChangeLog
@@ -1,3 +1,18 @@
+2023-09-13 Gaius Mulley <gaiusmod2@gmail.com>
+
+ * libm2cor/Makefile.am (libm2cor_la_M2FLAGS): Add
+ -Wcase-enum.
+ * libm2cor/Makefile.in: Regenerate.
+ * libm2iso/Makefile.am (libm2iso_la_M2FLAGS): Add
+ -Wcase-enum.
+ * libm2iso/Makefile.in: Regenerate.
+ * libm2log/Makefile.am (libm2log_la_M2FLAGS): Add
+ -Wcase-enum.
+ * libm2log/Makefile.in: Regenerate.
+ * libm2pim/Makefile.am (libm2pim_la_M2FLAGS): Add
+ -Wcase-enum.
+ * libm2pim/Makefile.in: Regenerate.
+
2023-08-12 Gaius Mulley <gaiusmod2@gmail.com>
PR modula2/110779
diff --git a/libgm2/libm2cor/Makefile.am b/libgm2/libm2cor/Makefile.am
index 48de40c..ae96b4b 100644
--- a/libgm2/libm2cor/Makefile.am
+++ b/libgm2/libm2cor/Makefile.am
@@ -117,7 +117,7 @@ libm2cor_la_M2FLAGS = \
-fm2-pathname=m2cor -I. -I$(GM2_SRC)/gm2-libs-coroutines \
-fm2-pathname=m2pim -I$(GM2_SRC)/gm2-libs \
-fm2-pathname=m2iso -I$(GM2_SRC)/gm2-libs-iso \
- -fm2-g -g -Wreturn-type -fcase -fm2-prefix=m2cor
+ -fm2-g -g -Wcase-enum -Wreturn-type -fcase -fm2-prefix=m2cor
if TARGET_DARWIN
libm2cor_la_link_flags = -Wl,-undefined,dynamic_lookup
else
diff --git a/libgm2/libm2cor/Makefile.in b/libgm2/libm2cor/Makefile.in
index 98221ab..4257801 100644
--- a/libgm2/libm2cor/Makefile.in
+++ b/libgm2/libm2cor/Makefile.in
@@ -466,7 +466,7 @@ FLAGS_TO_PASS = $(AM_MAKEFLAGS)
@BUILD_CORLIB_TRUE@ -fm2-pathname=m2cor -I. -I$(GM2_SRC)/gm2-libs-coroutines \
@BUILD_CORLIB_TRUE@ -fm2-pathname=m2pim -I$(GM2_SRC)/gm2-libs \
@BUILD_CORLIB_TRUE@ -fm2-pathname=m2iso -I$(GM2_SRC)/gm2-libs-iso \
-@BUILD_CORLIB_TRUE@ -fm2-g -g -Wreturn-type -fcase -fm2-prefix=m2cor
+@BUILD_CORLIB_TRUE@ -fm2-g -g -Wcase-enum -Wreturn-type -fcase -fm2-prefix=m2cor
@BUILD_CORLIB_TRUE@@TARGET_DARWIN_FALSE@libm2cor_la_link_flags =
@BUILD_CORLIB_TRUE@@TARGET_DARWIN_TRUE@libm2cor_la_link_flags = -Wl,-undefined,dynamic_lookup
diff --git a/libgm2/libm2iso/Makefile.am b/libgm2/libm2iso/Makefile.am
index 1386f15..90d344f 100644
--- a/libgm2/libm2iso/Makefile.am
+++ b/libgm2/libm2iso/Makefile.am
@@ -191,7 +191,7 @@ libm2iso_la_CFLAGS = $(C_INCLUDES) -I. -I.. -I$(GM2_SRC)/gm2-libs-iso -I$(GM2_SR
libm2iso_la_M2FLAGS = \
-fm2-pathname=m2iso -I. -Ilibm2iso -I$(GM2_SRC)/gm2-libs-iso \
-fm2-pathname=m2pim -I$(GM2_SRC)/gm2-libs \
- -fiso -fextended-opaque -fm2-g -g -Wreturn-type -fcase -fm2-prefix=m2iso
+ -fiso -fextended-opaque -fm2-g -g -Wcase-enum -Wreturn-type -fcase -fm2-prefix=m2iso
if TARGET_DARWIN
libm2iso_la_link_flags = -Wl,-undefined,dynamic_lookup
else
diff --git a/libgm2/libm2iso/Makefile.in b/libgm2/libm2iso/Makefile.in
index fd518a1..54aa5aa 100644
--- a/libgm2/libm2iso/Makefile.in
+++ b/libgm2/libm2iso/Makefile.in
@@ -567,7 +567,7 @@ FLAGS_TO_PASS = $(AM_MAKEFLAGS)
@BUILD_ISOLIB_TRUE@libm2iso_la_M2FLAGS = \
@BUILD_ISOLIB_TRUE@ -fm2-pathname=m2iso -I. -Ilibm2iso -I$(GM2_SRC)/gm2-libs-iso \
@BUILD_ISOLIB_TRUE@ -fm2-pathname=m2pim -I$(GM2_SRC)/gm2-libs \
-@BUILD_ISOLIB_TRUE@ -fiso -fextended-opaque -fm2-g -g -Wreturn-type -fcase -fm2-prefix=m2iso
+@BUILD_ISOLIB_TRUE@ -fiso -fextended-opaque -fm2-g -g -Wcase-enum -Wreturn-type -fcase -fm2-prefix=m2iso
@BUILD_ISOLIB_TRUE@@TARGET_DARWIN_FALSE@libm2iso_la_link_flags =
@BUILD_ISOLIB_TRUE@@TARGET_DARWIN_TRUE@libm2iso_la_link_flags = -Wl,-undefined,dynamic_lookup
diff --git a/libgm2/libm2log/Makefile.am b/libgm2/libm2log/Makefile.am
index a15747f..27f3840 100644
--- a/libgm2/libm2log/Makefile.am
+++ b/libgm2/libm2log/Makefile.am
@@ -136,7 +136,7 @@ libm2log_la_M2FLAGS = \
-fm2-pathname=m2log -I$(GM2_SRC)/gm2-libs-log \
-fm2-pathname=m2pim -I$(GM2_SRC)/gm2-libs \
-fm2-pathname=m2iso -I$(GM2_SRC)/gm2-libs-iso \
- -Wreturn-type -fcase -fm2-prefix=m2log
+ -Wcase-enum -Wreturn-type -fcase -fm2-prefix=m2log
if TARGET_DARWIN
libm2log_la_link_flags = -Wl,-undefined,dynamic_lookup
else
diff --git a/libgm2/libm2log/Makefile.in b/libgm2/libm2log/Makefile.in
index 28c9182..823528c 100644
--- a/libgm2/libm2log/Makefile.in
+++ b/libgm2/libm2log/Makefile.in
@@ -475,7 +475,7 @@ FLAGS_TO_PASS = $(AM_MAKEFLAGS)
@BUILD_LOGLIB_TRUE@ -fm2-pathname=m2log -I$(GM2_SRC)/gm2-libs-log \
@BUILD_LOGLIB_TRUE@ -fm2-pathname=m2pim -I$(GM2_SRC)/gm2-libs \
@BUILD_LOGLIB_TRUE@ -fm2-pathname=m2iso -I$(GM2_SRC)/gm2-libs-iso \
-@BUILD_LOGLIB_TRUE@ -Wreturn-type -fcase -fm2-prefix=m2log
+@BUILD_LOGLIB_TRUE@ -Wcase-enum -Wreturn-type -fcase -fm2-prefix=m2log
@BUILD_LOGLIB_TRUE@@TARGET_DARWIN_FALSE@libm2log_la_link_flags =
@BUILD_LOGLIB_TRUE@@TARGET_DARWIN_TRUE@libm2log_la_link_flags = -Wl,-undefined,dynamic_lookup
diff --git a/libgm2/libm2pim/Makefile.am b/libgm2/libm2pim/Makefile.am
index ebfeba1..ac172b9 100644
--- a/libgm2/libm2pim/Makefile.am
+++ b/libgm2/libm2pim/Makefile.am
@@ -169,7 +169,7 @@ libm2pim_la_CFLAGS = -I. -I.. -I$(GM2_SRC)/gm2-libs -I$(GM2_SRC)/gm2-libs-iso -D
libm2pim_la_M2FLAGS = \
-fm2-pathname=m2pim -I. -I$(GM2_SRC)/gm2-libs \
-fm2-pathname=m2iso -I$(GM2_SRC)/gm2-libs-iso \
- -fm2-g -g -Wreturn-type -fcase -fm2-prefix=m2pim
+ -fm2-g -g -Wcase-enum -Wreturn-type -fcase -fm2-prefix=m2pim
if TARGET_DARWIN
libm2pim_la_link_flags = -Wl,-undefined,dynamic_lookup
else
diff --git a/libgm2/libm2pim/Makefile.in b/libgm2/libm2pim/Makefile.in
index 90c8c2c..b78db97 100644
--- a/libgm2/libm2pim/Makefile.in
+++ b/libgm2/libm2pim/Makefile.in
@@ -536,7 +536,7 @@ FLAGS_TO_PASS = $(AM_MAKEFLAGS)
@BUILD_PIMLIB_TRUE@libm2pim_la_M2FLAGS = \
@BUILD_PIMLIB_TRUE@ -fm2-pathname=m2pim -I. -I$(GM2_SRC)/gm2-libs \
@BUILD_PIMLIB_TRUE@ -fm2-pathname=m2iso -I$(GM2_SRC)/gm2-libs-iso \
-@BUILD_PIMLIB_TRUE@ -fm2-g -g -Wreturn-type -fcase -fm2-prefix=m2pim
+@BUILD_PIMLIB_TRUE@ -fm2-g -g -Wcase-enum -Wreturn-type -fcase -fm2-prefix=m2pim
@BUILD_PIMLIB_TRUE@@TARGET_DARWIN_FALSE@libm2pim_la_link_flags =
@BUILD_PIMLIB_TRUE@@TARGET_DARWIN_TRUE@libm2pim_la_link_flags = -Wl,-undefined,dynamic_lookup
diff --git a/libgo/Makefile.in b/libgo/Makefile.in
index 40340bf..8dcb6d6 100644
--- a/libgo/Makefile.in
+++ b/libgo/Makefile.in
@@ -474,6 +474,7 @@ SPLIT_STACK = @SPLIT_STACK@
STRINGOPS_FLAG = @STRINGOPS_FLAG@
STRIP = @STRIP@
STRUCT_EPOLL_EVENT_FD_OFFSET = @STRUCT_EPOLL_EVENT_FD_OFFSET@
+SYSROOT_CFLAGS_FOR_TARGET = @SYSROOT_CFLAGS_FOR_TARGET@
USE_DEJAGNU = @USE_DEJAGNU@
VERSION = @VERSION@
WARN_FLAGS = @WARN_FLAGS@
diff --git a/libgo/configure b/libgo/configure
index a607dbf..2f1609b 100755
--- a/libgo/configure
+++ b/libgo/configure
@@ -633,6 +633,7 @@ ac_subst_vars='am__EXEEXT_FALSE
am__EXEEXT_TRUE
LTLIBOBJS
LIBOBJS
+SYSROOT_CFLAGS_FOR_TARGET
HAVE_STATIC_LINK_FALSE
HAVE_STATIC_LINK_TRUE
HAVE_STAT_TIMESPEC_FALSE
@@ -11544,7 +11545,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11547 "configure"
+#line 11548 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11650,7 +11651,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11653 "configure"
+#line 11654 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -16147,6 +16148,8 @@ else
fi
+
+
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure
diff --git a/libgo/configure.ac b/libgo/configure.ac
index a59aa09..54c35c0 100644
--- a/libgo/configure.ac
+++ b/libgo/configure.ac
@@ -913,6 +913,8 @@ AC_LINK_IFELSE([AC_LANG_PROGRAM(,)],
LDFLAGS=$LDFLAGS_hold])
AM_CONDITIONAL(HAVE_STATIC_LINK, test "$libgo_cv_ld_static" = yes)
+AC_SUBST(SYSROOT_CFLAGS_FOR_TARGET)
+
AC_CACHE_SAVE
if test ${multilib} = yes; then
diff --git a/libgo/testsuite/Makefile.in b/libgo/testsuite/Makefile.in
index 7869265..7c2e2e6 100644
--- a/libgo/testsuite/Makefile.in
+++ b/libgo/testsuite/Makefile.in
@@ -223,6 +223,7 @@ SPLIT_STACK = @SPLIT_STACK@
STRINGOPS_FLAG = @STRINGOPS_FLAG@
STRIP = @STRIP@
STRUCT_EPOLL_EVENT_FD_OFFSET = @STRUCT_EPOLL_EVENT_FD_OFFSET@
+SYSROOT_CFLAGS_FOR_TARGET = @SYSROOT_CFLAGS_FOR_TARGET@
USE_DEJAGNU = @USE_DEJAGNU@
VERSION = @VERSION@
WARN_FLAGS = @WARN_FLAGS@
diff --git a/libgo/testsuite/lib/libgo.exp b/libgo/testsuite/lib/libgo.exp
index b5833bb..638bf86 100644
--- a/libgo/testsuite/lib/libgo.exp
+++ b/libgo/testsuite/lib/libgo.exp
@@ -53,5 +53,13 @@ load_gcc_lib timeout.exp
load_gcc_lib go.exp
proc libgo_init { args } {
+ global TESTING_IN_BUILD_TREE
+ if { [info exists TESTING_IN_BUILD_TREE] } {
+ # If '--with-build-sysroot=[...]' was specified, use it for build-tree
+ # testing.
+ global TEST_ALWAYS_FLAGS SYSROOT_CFLAGS_FOR_TARGET
+ set TEST_ALWAYS_FLAGS $SYSROOT_CFLAGS_FOR_TARGET
+ }
+
go_init $args
}
diff --git a/libgo/testsuite/libgo-test-support.exp.in b/libgo/testsuite/libgo-test-support.exp.in
index aaa6c5e..effd6f1 100644
--- a/libgo/testsuite/libgo-test-support.exp.in
+++ b/libgo/testsuite/libgo-test-support.exp.in
@@ -14,4 +14,4 @@
# along with GCC; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>.
-set GOC_UNDER_TEST {@GOC@}
+set SYSROOT_CFLAGS_FOR_TARGET {@SYSROOT_CFLAGS_FOR_TARGET@}
diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog
index fb96155..9de28eb 100644
--- a/libgomp/ChangeLog
+++ b/libgomp/ChangeLog
@@ -1,3 +1,25 @@
+2023-09-12 Thomas Schwinge <thomas@codesourcery.com>
+ Chung-Lin Tang <cltang@codesourcery.com>
+
+ PR testsuite/91884
+ PR testsuite/109951
+ * configure.ac: Revert earlier changes, instead
+ 'AC_SUBST(SYSROOT_CFLAGS_FOR_TARGET)'.
+ * Makefile.in: Regenerate.
+ * configure: Likewise.
+ * testsuite/Makefile.in: Likewise.
+ * testsuite/lib/libgomp.exp (libgomp_init): Remove
+ "Fix up '-funconfigured-libstdc++-v3' in 'GXX_UNDER_TEST'" code.
+ If '--with-build-sysroot=[...]' was specified, use it for
+ build-tree testing.
+ * testsuite/libgomp-site-extra.exp.in (GCC_UNDER_TEST)
+ (GXX_UNDER_TEST, GFORTRAN_UNDER_TEST): Don't set.
+ (SYSROOT_CFLAGS_FOR_TARGET): Set.
+ * testsuite/libgomp.c++/c++.exp (lang_source_re)
+ (lang_include_flags): Set for build-tree testing.
+ * testsuite/libgomp.oacc-c++/c++.exp (lang_source_re)
+ (lang_include_flags): Likewise.
+
2023-09-07 Tobias Burnus <tobias@codesourcery.com>
* libgomp.texi (Memory Management Routines): New; add documentation for
diff --git a/libgomp/Makefile.in b/libgomp/Makefile.in
index 3ef05e6..431bc87 100644
--- a/libgomp/Makefile.in
+++ b/libgomp/Makefile.in
@@ -368,7 +368,6 @@ CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CPU_COUNT = @CPU_COUNT@
-CXX = @CXX@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
@@ -436,6 +435,7 @@ SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
+SYSROOT_CFLAGS_FOR_TARGET = @SYSROOT_CFLAGS_FOR_TARGET@
VERSION = @VERSION@
XCFLAGS = @XCFLAGS@
XLDFLAGS = @XLDFLAGS@
diff --git a/libgomp/configure b/libgomp/configure
index a12b30f..498bc08 100755
--- a/libgomp/configure
+++ b/libgomp/configure
@@ -656,6 +656,7 @@ tmake_file
XLDFLAGS
XCFLAGS
config_path
+SYSROOT_CFLAGS_FOR_TARGET
FLOCK
CPU_COUNT
LIBGOMP_BUILD_VERSIONED_SHLIB_SUN_FALSE
@@ -679,7 +680,6 @@ libtool_VERSION
ac_ct_FC
FCFLAGS
FC
-CXX
MAINT
MAINTAINER_MODE_FALSE
MAINTAINER_MODE_TRUE
@@ -11808,22 +11808,11 @@ fi
-# We optionally test libgomp C++ support, and for that want to use the proper
-# C++ driver, 'g++' (or 'xg++' for build-tree testing). Given that build of
-# target libstdc++-v3 depends on target libgomp (see '../Makefile.def'), we
-# cannot make build of target libgomp depend on target libstdc++-v3: circular
-# dependency. We thus cannot instantiate 'AC_PROG_CXX' here: we'd get
-# '-funconfigured-libstdc++-v3' (see '../configure.ac'). Therefore, just
-# capture 'CXX', and we'll fix this up at 'make check' time (see
-# 'testsuite/lib/libgomp.exp:libgomp_init').
-
-
# Create a spec file, so that compile/link tests don't fail
test -f libgfortran.spec || touch libgfortran.spec
FCFLAGS="$FCFLAGS -L."
-# We need 'gfortran' to compile parts of the library, and test libgomp Fortran
-# support.
+# We need gfortran to compile parts of the library
# We can't use AC_PROG_FC because it expects a fully working gfortran.
#AC_PROG_FC(gfortran)
case `echo $GFORTRAN` in
@@ -16580,6 +16569,8 @@ fi
fi
+
+
# Get target configury.
. ${srcdir}/configure.tgt
CFLAGS="$save_CFLAGS $XCFLAGS"
diff --git a/libgomp/configure.ac b/libgomp/configure.ac
index 1aad83a..49f7fb0 100644
--- a/libgomp/configure.ac
+++ b/libgomp/configure.ac
@@ -151,22 +151,11 @@ AC_SUBST(enable_static)
AM_MAINTAINER_MODE
-# We optionally test libgomp C++ support, and for that want to use the proper
-# C++ driver, 'g++' (or 'xg++' for build-tree testing). Given that build of
-# target libstdc++-v3 depends on target libgomp (see '../Makefile.def'), we
-# cannot make build of target libgomp depend on target libstdc++-v3: circular
-# dependency. We thus cannot instantiate 'AC_PROG_CXX' here: we'd get
-# '-funconfigured-libstdc++-v3' (see '../configure.ac'). Therefore, just
-# capture 'CXX', and we'll fix this up at 'make check' time (see
-# 'testsuite/lib/libgomp.exp:libgomp_init').
-AC_SUBST(CXX)
-
# Create a spec file, so that compile/link tests don't fail
test -f libgfortran.spec || touch libgfortran.spec
FCFLAGS="$FCFLAGS -L."
-# We need 'gfortran' to compile parts of the library, and test libgomp Fortran
-# support.
+# We need gfortran to compile parts of the library
# We can't use AC_PROG_FC because it expects a fully working gfortran.
#AC_PROG_FC(gfortran)
case `echo $GFORTRAN` in
@@ -356,6 +345,8 @@ if test -z "$FLOCK"; then
AC_CHECK_PROG(FLOCK, perl, $srcdir/testsuite/flock)
fi
+AC_SUBST(SYSROOT_CFLAGS_FOR_TARGET)
+
# Get target configury.
. ${srcdir}/configure.tgt
CFLAGS="$save_CFLAGS $XCFLAGS"
diff --git a/libgomp/team.c b/libgomp/team.c
index 54dfca8..b4fd6f2 100644
--- a/libgomp/team.c
+++ b/libgomp/team.c
@@ -756,6 +756,8 @@ gomp_team_start (void (*fn) (void *), void *data, unsigned nthreads,
attr = &thread_attr;
}
+ if (i >= nthreads)
+ __builtin_unreachable ();
start_data = gomp_alloca (sizeof (struct gomp_thread_start_data)
* (nthreads - i));
diff --git a/libgomp/testsuite/Makefile.in b/libgomp/testsuite/Makefile.in
index d743e46..4155350 100644
--- a/libgomp/testsuite/Makefile.in
+++ b/libgomp/testsuite/Makefile.in
@@ -147,7 +147,6 @@ CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CPU_COUNT = @CPU_COUNT@
-CXX = @CXX@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
@@ -215,6 +214,7 @@ SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
+SYSROOT_CFLAGS_FOR_TARGET = @SYSROOT_CFLAGS_FOR_TARGET@
VERSION = @VERSION@
XCFLAGS = @XCFLAGS@
XLDFLAGS = @XLDFLAGS@
diff --git a/libgomp/testsuite/lib/libgomp.exp b/libgomp/testsuite/lib/libgomp.exp
index a143b5d..cab926a 100644
--- a/libgomp/testsuite/lib/libgomp.exp
+++ b/libgomp/testsuite/lib/libgomp.exp
@@ -91,19 +91,6 @@ proc libgomp_init { args } {
setenv LANG C.ASCII
}
- if { $blddir != "" } {
- # Fix up '-funconfigured-libstdc++-v3' in 'GXX_UNDER_TEST' (see
- # '../../configure.ac').
- set flags_file "${blddir}/../libstdc++-v3/scripts/testsuite_flags"
- if { [file exists $flags_file] } {
- set flags [exec sh $flags_file --build-includes]
- verbose -log "GXX_UNDER_TEST = $GXX_UNDER_TEST"
- set GXX_UNDER_TEST [string map [list \
- " -funconfigured-libstdc++-v3 " " $flags " \
- ] $GXX_UNDER_TEST]
- verbose -log "GXX_UNDER_TEST = $GXX_UNDER_TEST"
- }
- }
if ![info exists GCC_UNDER_TEST] then {
if [info exists TOOL_EXECUTABLE] {
set GCC_UNDER_TEST $TOOL_EXECUTABLE
@@ -185,6 +172,11 @@ proc libgomp_init { args } {
set ALWAYS_CFLAGS ""
if { $blddir != "" } {
+ # If '--with-build-sysroot=[...]' was specified, use it for build-tree
+ # testing.
+ global SYSROOT_CFLAGS_FOR_TARGET
+ lappend ALWAYS_CFLAGS "additional_flags=${SYSROOT_CFLAGS_FOR_TARGET}"
+
lappend ALWAYS_CFLAGS "additional_flags=-B${blddir}/"
# targets that use libgomp.a%s in their specs need a -B option
# for uninstalled testing.
diff --git a/libgomp/testsuite/libgomp-site-extra.exp.in b/libgomp/testsuite/libgomp-site-extra.exp.in
index c824d85..8de14f4 100644
--- a/libgomp/testsuite/libgomp-site-extra.exp.in
+++ b/libgomp/testsuite/libgomp-site-extra.exp.in
@@ -1,4 +1,2 @@
set FLOCK {@FLOCK@}
-set GCC_UNDER_TEST {@CC@}
-set GXX_UNDER_TEST {@CXX@}
-set GFORTRAN_UNDER_TEST {@FC@}
+set SYSROOT_CFLAGS_FOR_TARGET {@SYSROOT_CFLAGS_FOR_TARGET@}
diff --git a/libgomp/testsuite/libgomp.c++/c++.exp b/libgomp/testsuite/libgomp.c++/c++.exp
index 8b4563b..ed096e1 100644
--- a/libgomp/testsuite/libgomp.c++/c++.exp
+++ b/libgomp/testsuite/libgomp.c++/c++.exp
@@ -15,6 +15,10 @@ if { $blddir != "" } {
verbose -log "GXX_UNDER_TEST not defined, will not execute c++ tests"
return
}
+if { $blddir != "" } {
+ set lang_source_re {^.*\.[cC]$}
+ set lang_include_flags [exec sh ${blddir}/../libstdc++-v3/scripts/testsuite_flags --build-includes]
+}
lappend ALWAYS_CFLAGS "compiler=$GXX_UNDER_TEST"
# If a testcase doesn't have special options, use these.
@@ -44,6 +48,8 @@ set_ld_library_path_env_vars
dg-runtest $tests "" $DEFAULT_CFLAGS
if { $blddir != "" } {
+ unset lang_source_re
+ unset lang_include_flags
unset libstdc++_library_path
unset lang_library_paths
}
diff --git a/libgomp/testsuite/libgomp.oacc-c++/c++.exp b/libgomp/testsuite/libgomp.oacc-c++/c++.exp
index 79df401..7b2315e 100644
--- a/libgomp/testsuite/libgomp.oacc-c++/c++.exp
+++ b/libgomp/testsuite/libgomp.oacc-c++/c++.exp
@@ -25,6 +25,10 @@ if { $blddir != "" } {
verbose -log "GXX_UNDER_TEST not defined, will not execute c++ tests"
return
}
+if { $blddir != "" } {
+ set lang_source_re {^.*\.[cC]$}
+ set lang_include_flags [exec sh ${blddir}/../libstdc++-v3/scripts/testsuite_flags --build-includes]
+}
lappend ALWAYS_CFLAGS "compiler=$GXX_UNDER_TEST"
# Initialize dg.
@@ -121,6 +125,8 @@ foreach offload_target [concat [split $offload_targets ","] "disable"] {
unset offload_target
if { $blddir != "" } {
+ unset lang_source_re
+ unset lang_include_flags
unset libstdc++_library_path
unset lang_library_paths
}
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 1dc3798..6ed7ddb 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,1780 @@
+2023-09-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/29_atomics/atomic_ref/wait_notify.cc: Do not
+ restrict to pthreads targets.
+ * testsuite/30_threads/jthread/3.cc: Likewise.
+ * testsuite/30_threads/semaphore/100806.cc: Likewise.
+ * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
+ * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
+ * testsuite/30_threads/semaphore/try_acquire_posix.cc: Likewise.
+
+2023-09-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/18_support/coroutines/95917.cc: Remove dg-options
+ -std=gnu++2a.
+ * testsuite/18_support/coroutines/hash.cc: Likewise.
+ * testsuite/18_support/coroutines/lwg3460.cc: Likewise.
+ * testsuite/18_support/destroying_delete.cc: Likewise.
+ * testsuite/18_support/source_location/1.cc: Likewise.
+ * testsuite/18_support/source_location/consteval.cc: Likewise.
+ * testsuite/18_support/source_location/version.cc: Likewise.
+ * testsuite/19_diagnostics/error_category/operators/three_way.cc:
+ Likewise.
+ * testsuite/19_diagnostics/error_code/operators/three_way.cc:
+ Likewise.
+ * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
+ Likewise.
+ * testsuite/19_diagnostics/stacktrace/output.cc: Likewise.
+ * testsuite/26_numerics/adjacent_difference/lwg2055.cc:
+ Likewise.
+ * testsuite/26_numerics/bit/bit.count/countl_zero.cc: Likewise.
+ * testsuite/26_numerics/bit/bit.count/countr_one.cc: Likewise.
+ * testsuite/26_numerics/bit/bit.count/countr_zero.cc: Likewise.
+ * testsuite/26_numerics/bit/bit.count/popcount.cc: Likewise.
+ * testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc: Likewise.
+ * testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc:
+ Likewise.
+ * testsuite/28_regex/iterators/regex_iterator/lwg3719.cc:
+ Likewise.
+ * testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc:
+ Likewise.
+ * testsuite/28_regex/sub_match/compare_c++20.cc: Likewise.
+ * testsuite/experimental/filesystem/iterators/106201.cc:
+ Likewise.
+ * testsuite/experimental/scopeguard/exit.cc: Likewise.
+ * testsuite/experimental/scopeguard/uniqueres.cc: Likewise.
+
+2023-09-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/30_threads/barrier/1.cc: Remove dg-options
+ -std=gnu++20.
+ * testsuite/30_threads/barrier/2.cc: Likewise.
+ * testsuite/30_threads/barrier/arrive.cc: Likewise.
+ * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
+ * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
+ * testsuite/30_threads/barrier/completion.cc: Likewise.
+ * testsuite/30_threads/condition_variable/members/clock_neg.cc:
+ Likewise.
+ * testsuite/30_threads/condition_variable_any/members/clock_neg.cc:
+ Likewise.
+ * testsuite/30_threads/condition_variable_any/stop_token/1.cc:
+ Likewise.
+ * testsuite/30_threads/condition_variable_any/stop_token/2.cc:
+ Likewise.
+ * testsuite/30_threads/future/members/clock_neg.cc: Likewise.
+ * testsuite/30_threads/headers/stop_token/synopsis.cc: Likewise.
+ * testsuite/30_threads/headers/thread/types_std_c++20.cc:
+ Likewise.
+ * testsuite/30_threads/jthread/1.cc: Likewise.
+ * testsuite/30_threads/jthread/100612.cc: Likewise.
+ * testsuite/30_threads/jthread/95989.cc: Likewise.
+ * testsuite/30_threads/jthread/jthread.cc: Likewise.
+ * testsuite/30_threads/jthread/version.cc: Likewise.
+ * testsuite/30_threads/latch/1.cc: Likewise.
+ * testsuite/30_threads/latch/2.cc: Likewise.
+ * testsuite/30_threads/latch/3.cc: Likewise.
+ * testsuite/30_threads/recursive_timed_mutex/try_lock_until/clock_neg.cc:
+ Likewise.
+ * testsuite/30_threads/semaphore/1.cc: Likewise.
+ * testsuite/30_threads/semaphore/2.cc: Likewise.
+ * testsuite/30_threads/semaphore/least_max_value_neg.cc:
+ Likewise.
+ * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
+ * testsuite/30_threads/shared_future/members/clock_neg.cc:
+ Likewise.
+ * testsuite/30_threads/shared_lock/locking/clock_neg.cc:
+ Likewise.
+ * testsuite/30_threads/shared_timed_mutex/try_lock_until/clock_neg.cc:
+ Likewise.
+ * testsuite/30_threads/stop_token/1.cc: Likewise.
+ * testsuite/30_threads/stop_token/2.cc: Likewise.
+ * testsuite/30_threads/stop_token/stop_callback.cc: Likewise.
+ * testsuite/30_threads/stop_token/stop_callback/deadlock.cc:
+ Likewise.
+ * testsuite/30_threads/stop_token/stop_callback/destructible_neg.cc:
+ Likewise.
+ * testsuite/30_threads/stop_token/stop_callback/invocable_neg.cc:
+ Likewise.
+ * testsuite/30_threads/stop_token/stop_callback/invoke.cc:
+ Likewise.
+ * testsuite/30_threads/stop_token/stop_source.cc: Likewise.
+ * testsuite/30_threads/stop_token/stop_source/assign.cc:
+ Likewise.
+ * testsuite/30_threads/stop_token/stop_token.cc: Likewise.
+ * testsuite/30_threads/stop_token/stop_token/stop_possible.cc:
+ Likewise.
+ * testsuite/30_threads/thread/id/operators_c++20.cc: Likewise.
+ * testsuite/30_threads/timed_mutex/try_lock_until/clock_neg.cc:
+ Likewise.
+ * testsuite/30_threads/unique_lock/locking/clock_neg.cc:
+ Likewise.
+
+2023-09-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/27_io/basic_istream/extractors_character/char/lwg2499.cc:
+ Remove dg-options -std=gnu++2a.
+ * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
+ Likewise.
+ * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499.cc:
+ Likewise.
+ * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
+ Likewise.
+ * testsuite/27_io/basic_istringstream/cons/char/1.cc: Likewise.
+ * testsuite/27_io/basic_istringstream/cons/wchar_t/1.cc:
+ Likewise.
+ * testsuite/27_io/basic_istringstream/str/char/2.cc: Likewise.
+ * testsuite/27_io/basic_istringstream/str/wchar_t/2.cc:
+ Likewise.
+ * testsuite/27_io/basic_istringstream/view/char/1.cc: Likewise.
+ * testsuite/27_io/basic_istringstream/view/wchar_t/1.cc:
+ Likewise.
+ * testsuite/27_io/basic_ostream/emit/1.cc: Likewise.
+ * testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc:
+ Likewise.
+ * testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc:
+ Likewise.
+ * testsuite/27_io/basic_ostringstream/cons/char/1.cc: Likewise.
+ * testsuite/27_io/basic_ostringstream/cons/wchar_t/1.cc:
+ Likewise.
+ * testsuite/27_io/basic_ostringstream/str/char/3.cc: Likewise.
+ * testsuite/27_io/basic_ostringstream/str/wchar_t/3.cc:
+ Likewise.
+ * testsuite/27_io/basic_ostringstream/view/char/1.cc: Likewise.
+ * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc:
+ Likewise.
+ * testsuite/27_io/basic_stringbuf/cons/char/2.cc: Likewise.
+ * testsuite/27_io/basic_stringbuf/cons/wchar_t/2.cc: Likewise.
+ * testsuite/27_io/basic_stringbuf/str/char/4.cc: Likewise.
+ * testsuite/27_io/basic_stringbuf/str/wchar_t/4.cc: Likewise.
+ * testsuite/27_io/basic_stringbuf/view/char/1.cc: Likewise.
+ * testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc: Likewise.
+ * testsuite/27_io/basic_stringstream/cons/char/1.cc: Likewise.
+ * testsuite/27_io/basic_stringstream/cons/char/97719.cc:
+ Likewise.
+ * testsuite/27_io/basic_stringstream/cons/wchar_t/1.cc:
+ Likewise.
+ * testsuite/27_io/basic_stringstream/str/char/5.cc: Likewise.
+ * testsuite/27_io/basic_stringstream/str/wchar_t/5.cc.cc:
+ Likewise.
+ * testsuite/27_io/basic_stringstream/view/char/1.cc: Likewise.
+ * testsuite/27_io/basic_stringstream/view/wchar_t/1.cc:
+ Likewise.
+ * testsuite/27_io/basic_syncbuf/1.cc: Likewise.
+ * testsuite/27_io/basic_syncbuf/2.cc: Likewise.
+ * testsuite/27_io/basic_syncbuf/basic_ops/1.cc: Likewise.
+ * testsuite/27_io/basic_syncbuf/requirements/types.cc: Likewise.
+ * testsuite/27_io/basic_syncbuf/sync_ops/1.cc: Likewise.
+ * testsuite/27_io/basic_syncstream/1.cc: Likewise.
+ * testsuite/27_io/basic_syncstream/2.cc: Likewise.
+ * testsuite/27_io/basic_syncstream/basic_ops/1.cc: Likewise.
+ * testsuite/27_io/basic_syncstream/requirements/types.cc:
+ Likewise.
+ * testsuite/27_io/filesystem/iterators/106201.cc: Likewise.
+ * testsuite/27_io/filesystem/iterators/lwg3719.cc: Likewise.
+ * testsuite/27_io/filesystem/path/factory/u8path-depr.cc:
+ Likewise.
+ * testsuite/27_io/filesystem/path/nonmember/cmp_c++20.cc:
+ Likewise.
+
+2023-09-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/26_numerics/accumulate/constexpr.cc: Remove
+ dg-options -std=gnu++2a.
+ * testsuite/26_numerics/accumulate/lwg2055.cc: Likewise.
+ * testsuite/26_numerics/adjacent_difference/constexpr.cc:
+ Likewise.
+ * testsuite/26_numerics/bit/bit.cast/105027.cc: Likewise.
+ * testsuite/26_numerics/bit/bit.cast/bit_cast.cc: Likewise.
+ * testsuite/26_numerics/bit/bit.cast/version.cc: Likewise.
+ * testsuite/26_numerics/bit/bit.count/countl_one.cc: Likewise.
+ * testsuite/26_numerics/bit/bit.pow.two/bit_ceil_neg.cc:
+ Likewise.
+ * testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc: Likewise.
+ * testsuite/26_numerics/bit/bit.pow.two/bit_width.cc: Likewise.
+ * testsuite/26_numerics/bit/bit.pow.two/lwg3656.cc: Likewise.
+ * testsuite/26_numerics/bit/bit.rotate/rotl.cc: Likewise.
+ * testsuite/26_numerics/bit/bit.rotate/rotr.cc: Likewise.
+ * testsuite/26_numerics/bit/header-2.cc: Likewise.
+ * testsuite/26_numerics/bit/header.cc: Likewise.
+ * testsuite/26_numerics/complex/1.cc: Likewise.
+ * testsuite/26_numerics/complex/2.cc: Likewise.
+ * testsuite/26_numerics/complex/comparison_operators/more_constexpr.cc:
+ Likewise.
+ * testsuite/26_numerics/complex/operators/more_constexpr.cc:
+ Likewise.
+ * testsuite/26_numerics/complex/requirements/more_constexpr.cc:
+ Likewise.
+ * testsuite/26_numerics/complex/value_operations/more_constexpr.cc:
+ Likewise.
+ * testsuite/26_numerics/endian/1.cc: Likewise.
+ * testsuite/26_numerics/endian/2.cc: Likewise.
+ * testsuite/26_numerics/endian/3.cc: Likewise.
+ * testsuite/26_numerics/exclusive_scan/constexpr.cc: Likewise.
+ * testsuite/26_numerics/inclusive_scan/constexpr.cc: Likewise.
+ * testsuite/26_numerics/inner_product/constexpr.cc: Likewise.
+ * testsuite/26_numerics/inner_product/lwg2055.cc: Likewise.
+ * testsuite/26_numerics/iota/constexpr.cc: Likewise.
+ * testsuite/26_numerics/lerp/1.cc: Likewise.
+ * testsuite/26_numerics/lerp/constexpr.cc: Likewise.
+ * testsuite/26_numerics/lerp/version.cc: Likewise.
+ * testsuite/26_numerics/midpoint/floating.cc: Likewise.
+ * testsuite/26_numerics/midpoint/integral.cc: Likewise.
+ * testsuite/26_numerics/midpoint/pointer.cc: Likewise.
+ * testsuite/26_numerics/midpoint/pointer_neg.cc: Likewise.
+ * testsuite/26_numerics/midpoint/version.cc: Likewise.
+ * testsuite/26_numerics/numbers/1.cc: Likewise.
+ * testsuite/26_numerics/numbers/2.cc: Likewise.
+ * testsuite/26_numerics/numbers/3.cc: Likewise.
+ * testsuite/26_numerics/numbers/float128.cc: Likewise.
+ * testsuite/26_numerics/numbers/nonfloat_neg.cc: Likewise.
+ * testsuite/26_numerics/partial_sum/constexpr.cc: Likewise.
+ * testsuite/26_numerics/partial_sum/lwg2055.cc: Likewise.
+ * testsuite/26_numerics/random/concept.cc: Likewise.
+ * testsuite/26_numerics/reduce/constexpr.cc: Likewise.
+ * testsuite/26_numerics/slice/compare.cc: Likewise.
+ * testsuite/26_numerics/transform_exclusive_scan/constexpr.cc:
+ Likewise.
+ * testsuite/26_numerics/transform_inclusive_scan/constexpr.cc:
+ Likewise.
+ * testsuite/26_numerics/transform_reduce/constexpr.cc: Likewise.
+
+2023-09-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/24_iterators/aliases.cc: Remove dg-options
+ -std=gnu++2a.
+ * testsuite/24_iterators/associated_types/incrementable.traits.cc:
+ Likewise.
+ * testsuite/24_iterators/associated_types/iterator.traits.cc:
+ Likewise.
+ * testsuite/24_iterators/associated_types/readable.traits.cc:
+ Likewise.
+ * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
+ Likewise.
+ * testsuite/24_iterators/back_insert_iterator/pr93884.cc:
+ Likewise.
+ * testsuite/24_iterators/bidirectional/concept.cc: Likewise.
+ * testsuite/24_iterators/common_iterator/1.cc: Likewise.
+ * testsuite/24_iterators/common_iterator/100823.cc: Likewise.
+ * testsuite/24_iterators/common_iterator/2.cc: Likewise.
+ * testsuite/24_iterators/contiguous/concept.cc: Likewise.
+ * testsuite/24_iterators/contiguous/tag.cc: Likewise.
+ * testsuite/24_iterators/counted_iterator/1.cc: Likewise.
+ * testsuite/24_iterators/counted_iterator/lwg3389.cc: Likewise.
+ * testsuite/24_iterators/counted_iterator/lwg3643.cc: Likewise.
+ * testsuite/24_iterators/customization_points/92894.cc:
+ Likewise.
+ * testsuite/24_iterators/customization_points/iter_move.cc:
+ Likewise.
+ * testsuite/24_iterators/customization_points/iter_swap.cc:
+ Likewise.
+ * testsuite/24_iterators/customization_points/lwg3420.cc:
+ Likewise.
+ * testsuite/24_iterators/forward/concept.cc: Likewise.
+ * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
+ Likewise.
+ * testsuite/24_iterators/front_insert_iterator/pr93884.cc:
+ Likewise.
+ * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
+ Likewise.
+ * testsuite/24_iterators/indirect_callable/92894.cc: Likewise.
+ * testsuite/24_iterators/indirect_callable/projected-adl.cc:
+ Likewise.
+ * testsuite/24_iterators/indirect_callable/projected.cc:
+ Likewise.
+ * testsuite/24_iterators/input/concept.cc: Likewise.
+ * testsuite/24_iterators/insert_iterator/constexpr.cc: Likewise.
+ * testsuite/24_iterators/istream_iterator/cons/sentinel.cc:
+ Likewise.
+ * testsuite/24_iterators/istream_iterator/sentinel.cc: Likewise.
+ * testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc:
+ Likewise.
+ * testsuite/24_iterators/istreambuf_iterator/sentinel.cc:
+ Likewise.
+ * testsuite/24_iterators/move_iterator/cust.cc: Likewise.
+ * testsuite/24_iterators/move_iterator/dr3435.cc: Likewise.
+ * testsuite/24_iterators/move_iterator/input_iterator.cc:
+ Likewise.
+ * testsuite/24_iterators/move_iterator/lwg3390.cc: Likewise.
+ * testsuite/24_iterators/move_iterator/lwg3391.cc: Likewise.
+ * testsuite/24_iterators/move_iterator/move_only.cc: Likewise.
+ * testsuite/24_iterators/move_iterator/p2520r0.cc: Likewise.
+ * testsuite/24_iterators/move_iterator/rel_ops_c++20.cc:
+ Likewise.
+ * testsuite/24_iterators/move_iterator/sentinel.cc: Likewise.
+ * testsuite/24_iterators/normal_iterator/cmp_c++20.cc: Likewise.
+ * testsuite/24_iterators/output/concept.cc: Likewise.
+ * testsuite/24_iterators/random_access/concept.cc: Likewise.
+ * testsuite/24_iterators/range_access/range_access_cpp20.cc:
+ Likewise.
+ * testsuite/24_iterators/range_access/range_access_cpp20_neg.cc:
+ Likewise.
+ * testsuite/24_iterators/range_operations/100768.cc: Likewise.
+ * testsuite/24_iterators/range_operations/advance.cc: Likewise.
+ * testsuite/24_iterators/range_operations/advance_overflow.cc:
+ Likewise.
+ * testsuite/24_iterators/range_operations/distance.cc: Likewise.
+ * testsuite/24_iterators/range_operations/lwg3392.cc: Likewise.
+ * testsuite/24_iterators/range_operations/next.cc: Likewise.
+ * testsuite/24_iterators/range_operations/prev.cc: Likewise.
+ * testsuite/24_iterators/reverse_iterator/cust.cc: Likewise.
+ * testsuite/24_iterators/reverse_iterator/dr3435.cc: Likewise.
+ * testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc:
+ Likewise.
+
+2023-09-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/23_containers/array/comparison_operators/96851.cc:
+ Remove dg-options -std=gnu++2a.
+ * testsuite/23_containers/array/comparison_operators/constexpr.cc:
+ Likewise.
+ * testsuite/23_containers/array/creation/1.cc: Likewise.
+ * testsuite/23_containers/array/creation/110167.cc: Likewise.
+ * testsuite/23_containers/array/creation/2.cc: Likewise.
+ * testsuite/23_containers/array/creation/3_neg.cc: Likewise.
+ * testsuite/23_containers/array/requirements/constexpr_fill.cc:
+ Likewise.
+ * testsuite/23_containers/array/requirements/constexpr_swap.cc:
+ Likewise.
+ * testsuite/23_containers/deque/48101-3_neg.cc: Likewise.
+ * testsuite/23_containers/deque/erasure.cc: Likewise.
+ * testsuite/23_containers/deque/modifiers/emplace/92878_92947.cc:
+ Likewise.
+ * testsuite/23_containers/deque/operators/cmp_c++20.cc:
+ Likewise.
+ * testsuite/23_containers/forward_list/48101-3_neg.cc: Likewise.
+ * testsuite/23_containers/forward_list/cmp_c++20.cc: Likewise.
+ * testsuite/23_containers/forward_list/erasure.cc: Likewise.
+ * testsuite/23_containers/forward_list/modifiers/92878_92947.cc:
+ Likewise.
+ * testsuite/23_containers/forward_list/operations/remove_cxx20_return.cc:
+ Likewise.
+ * testsuite/23_containers/forward_list/operations/unique_cxx20_return.cc:
+ Likewise.
+ * testsuite/23_containers/list/48101-3_neg.cc: Likewise.
+ * testsuite/23_containers/list/cmp_c++20.cc: Likewise.
+ * testsuite/23_containers/list/erasure.cc: Likewise.
+ * testsuite/23_containers/list/modifiers/emplace/92878_92947.cc:
+ Likewise.
+ * testsuite/23_containers/list/operations/remove_cxx20_return.cc:
+ Likewise.
+ * testsuite/23_containers/list/operations/unique_cxx20_return.cc:
+ Likewise.
+ * testsuite/23_containers/map/48101-3_neg.cc: Likewise.
+ * testsuite/23_containers/map/erasure.cc: Likewise.
+ * testsuite/23_containers/map/modifiers/emplace/92878_92947.cc:
+ Likewise.
+ * testsuite/23_containers/map/operations/contains.cc: Likewise.
+ * testsuite/23_containers/map/operators/cmp_c++20.cc: Likewise.
+ * testsuite/23_containers/multimap/48101-3_neg.cc: Likewise.
+ * testsuite/23_containers/multimap/modifiers/emplace/92878_92947.cc:
+ Likewise.
+ * testsuite/23_containers/multimap/operations/contains.cc:
+ Likewise.
+ * testsuite/23_containers/multimap/operators/cmp_c++20.cc:
+ Likewise.
+ * testsuite/23_containers/multiset/48101-3_neg.cc: Likewise.
+ * testsuite/23_containers/multiset/modifiers/emplace/92878_92947.cc:
+ Likewise.
+ * testsuite/23_containers/multiset/operations/contains.cc:
+ Likewise.
+ * testsuite/23_containers/multiset/operators/cmp_c++20.cc:
+ Likewise.
+ * testsuite/23_containers/priority_queue/92878_92947.cc:
+ Likewise.
+ * testsuite/23_containers/queue/92878_92947.cc: Likewise.
+ * testsuite/23_containers/queue/cmp_c++20.cc: Likewise.
+ * testsuite/23_containers/set/48101-3_neg.cc: Likewise.
+ * testsuite/23_containers/set/erasure.cc: Likewise.
+ * testsuite/23_containers/set/modifiers/emplace/92878_92947.cc:
+ Likewise.
+ * testsuite/23_containers/set/operations/contains.cc: Likewise.
+ * testsuite/23_containers/set/operators/cmp_c++20.cc: Likewise.
+ * testsuite/23_containers/span/1.cc: Likewise.
+ * testsuite/23_containers/span/101411.cc: Likewise.
+ * testsuite/23_containers/span/2.cc: Likewise.
+ * testsuite/23_containers/span/deduction.cc: Likewise.
+ * testsuite/23_containers/span/explicit.cc: Likewise.
+ * testsuite/23_containers/span/layout_compat.cc: Likewise.
+ * testsuite/23_containers/span/lwg3255.cc: Likewise.
+ * testsuite/23_containers/span/nothrow_cons.cc: Likewise.
+ * testsuite/23_containers/span/trivially_copyable.cc: Likewise.
+ * testsuite/23_containers/stack/92878_92947.cc: Likewise.
+ * testsuite/23_containers/stack/cmp_c++20.cc: Likewise.
+ * testsuite/23_containers/unordered_map/48101-3_neg.cc:
+ Likewise.
+ * testsuite/23_containers/unordered_map/erasure.cc: Likewise.
+ * testsuite/23_containers/unordered_map/modifiers/92878_92947.cc:
+ Likewise.
+ * testsuite/23_containers/unordered_map/operations/1.cc:
+ Likewise.
+ * testsuite/23_containers/unordered_map/operations/contains.cc:
+ Likewise.
+ * testsuite/23_containers/unordered_multimap/48101-3_neg.cc:
+ Likewise.
+ * testsuite/23_containers/unordered_multimap/modifiers/92878_92947.cc:
+ Likewise.
+ * testsuite/23_containers/unordered_multimap/operations/1.cc:
+ Likewise.
+ * testsuite/23_containers/unordered_multimap/operations/contains.cc:
+ Likewise.
+ * testsuite/23_containers/unordered_multiset/48101-3_neg.cc:
+ Likewise.
+ * testsuite/23_containers/unordered_multiset/modifiers/92878_92947.cc:
+ Likewise.
+ * testsuite/23_containers/unordered_multiset/operations/1.cc:
+ Likewise.
+ * testsuite/23_containers/unordered_multiset/operations/contains.cc:
+ Likewise.
+ * testsuite/23_containers/unordered_set/48101-3_neg.cc:
+ Likewise.
+ * testsuite/23_containers/unordered_set/erasure.cc: Likewise.
+ * testsuite/23_containers/unordered_set/modifiers/92878_92947.cc:
+ Likewise.
+ * testsuite/23_containers/unordered_set/operations/1.cc:
+ Likewise.
+ * testsuite/23_containers/unordered_set/operations/contains.cc:
+ Likewise.
+ * testsuite/23_containers/vector/48101-3_neg.cc: Likewise.
+ * testsuite/23_containers/vector/bool/capacity/constexpr.cc:
+ Likewise.
+ * testsuite/23_containers/vector/bool/cmp_c++20.cc: Likewise.
+ * testsuite/23_containers/vector/bool/cons/constexpr.cc:
+ Likewise.
+ * testsuite/23_containers/vector/bool/element_access/constexpr.cc:
+ Likewise.
+ * testsuite/23_containers/vector/bool/iterator_c++20.cc:
+ Likewise.
+ * testsuite/23_containers/vector/bool/modifiers/assign/constexpr.cc:
+ Likewise.
+ * testsuite/23_containers/vector/bool/modifiers/constexpr.cc:
+ Likewise.
+ * testsuite/23_containers/vector/bool/modifiers/swap/constexpr.cc:
+ Likewise.
+ * testsuite/23_containers/vector/capacity/constexpr.cc:
+ Likewise.
+ * testsuite/23_containers/vector/cmp_c++20.cc: Likewise.
+ * testsuite/23_containers/vector/cons/constexpr.cc: Likewise.
+ * testsuite/23_containers/vector/data_access/constexpr.cc:
+ Likewise.
+ * testsuite/23_containers/vector/element_access/constexpr.cc:
+ Likewise.
+ * testsuite/23_containers/vector/erasure.cc: Likewise.
+ * testsuite/23_containers/vector/modifiers/assign/constexpr.cc:
+ Likewise.
+ * testsuite/23_containers/vector/modifiers/constexpr.cc:
+ Likewise.
+ * testsuite/23_containers/vector/modifiers/emplace/92878_92947.cc:
+ Likewise.
+ * testsuite/23_containers/vector/modifiers/swap/constexpr.cc:
+ Likewise.
+ * testsuite/23_containers/vector/requirements/version.cc:
+ Likewise.
+
+2023-09-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/21_strings/basic_string/cons/char/105995.cc: Remove
+ dg-options -std=gnu++20.
+ * testsuite/21_strings/basic_string/cons/char/constexpr.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/erasure.cc: Likewise.
+ * testsuite/21_strings/basic_string/hash/hash_char8_t.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/literals/constexpr.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/modifiers/constexpr.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/modifiers/swap/constexpr-wchar_t.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/modifiers/swap/constexpr.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/operations/ends_with/char.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/operations/starts_with/char.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/operators/char/cmp_c++20.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/operators/wchar_t/cmp_c++20.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string_view/cons/char/range.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/constexpr.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string_view/operations/ends_with/char.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string_view/operations/starts_with/char.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string_view/operators/char/cmp_c++20.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string_view/operators/wchar_t/cmp_c++20.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string_view/requirements/constexpr_iter.cc:
+ Likewise.
+ * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
+ Likewise.
+
+2023-09-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/20_util/allocator/105975.cc: Remove dg-options
+ -std=gnu++2a.
+ * testsuite/20_util/allocator/rebind_c++20.cc: Likewise.
+ * testsuite/20_util/allocator/requirements/constexpr.cc:
+ Likewise.
+ * testsuite/20_util/allocator/requirements/typedefs_c++20.cc:
+ Likewise.
+ * testsuite/20_util/allocator_traits/header-2.cc: Likewise.
+ * testsuite/20_util/allocator_traits/header.cc: Likewise.
+ * testsuite/20_util/allocator_traits/members/92878_92947.cc:
+ Likewise.
+ * testsuite/20_util/any/assign/92878_92947.cc: Likewise.
+ * testsuite/20_util/any/cons/92878_92947.cc: Likewise.
+ * testsuite/20_util/assume_aligned/1.cc: Likewise.
+ * testsuite/20_util/assume_aligned/2_neg.cc: Likewise.
+ * testsuite/20_util/assume_aligned/3.cc: Likewise.
+ * testsuite/20_util/assume_aligned/97132.cc: Likewise.
+ * testsuite/20_util/bind/constexpr.cc: Likewise.
+ * testsuite/20_util/bitset/operations/96303.cc: Likewise.
+ * testsuite/20_util/common_reference/100894.cc: Likewise.
+ * testsuite/20_util/common_reference/requirements/alias_decl.cc:
+ Likewise.
+ * testsuite/20_util/common_reference/requirements/explicit_instantiation.cc:
+ Likewise.
+ * testsuite/20_util/common_reference/requirements/typedefs.cc:
+ Likewise.
+ * testsuite/20_util/duration/comparison_operators/three_way.cc:
+ Likewise.
+ * testsuite/20_util/exchange/constexpr.cc: Likewise.
+ * testsuite/20_util/exchange/noexcept.cc: Likewise.
+ * testsuite/20_util/from_chars/1_c++20_neg.cc: Likewise.
+ * testsuite/20_util/from_chars/compare.cc: Likewise.
+ * testsuite/20_util/function_objects/bind_front/1.cc: Likewise.
+ * testsuite/20_util/function_objects/bind_front/107784.cc:
+ Likewise.
+ * testsuite/20_util/function_objects/bind_front/111327.cc:
+ Likewise.
+ * testsuite/20_util/function_objects/bind_front/2.cc: Likewise.
+ * testsuite/20_util/function_objects/bind_front/97101.cc:
+ Likewise.
+ * testsuite/20_util/function_objects/bind_front/constexpr.cc:
+ Likewise.
+ * testsuite/20_util/function_objects/constexpr_searcher.cc:
+ Likewise.
+ * testsuite/20_util/function_objects/identity/1.cc: Likewise.
+ * testsuite/20_util/function_objects/invoke/constexpr.cc:
+ Likewise.
+ * testsuite/20_util/function_objects/mem_fn/constexpr.cc:
+ Likewise.
+ * testsuite/20_util/function_objects/not_fn/constexpr.cc:
+ Likewise.
+ * testsuite/20_util/integer_comparisons/1.cc: Likewise.
+ * testsuite/20_util/integer_comparisons/2.cc: Likewise.
+ * testsuite/20_util/integer_comparisons/equal.cc: Likewise.
+ * testsuite/20_util/integer_comparisons/equal_neg.cc: Likewise.
+ * testsuite/20_util/integer_comparisons/greater.cc: Likewise.
+ * testsuite/20_util/integer_comparisons/greater_equal.cc:
+ Likewise.
+ * testsuite/20_util/integer_comparisons/greater_equal_neg.cc:
+ Likewise.
+ * testsuite/20_util/integer_comparisons/greater_neg.cc:
+ Likewise.
+ * testsuite/20_util/integer_comparisons/in_range.cc: Likewise.
+ * testsuite/20_util/integer_comparisons/in_range_neg.cc:
+ Likewise.
+ * testsuite/20_util/integer_comparisons/less.cc: Likewise.
+ * testsuite/20_util/integer_comparisons/less_equal.cc: Likewise.
+ * testsuite/20_util/integer_comparisons/less_equal_neg.cc:
+ Likewise.
+ * testsuite/20_util/integer_comparisons/less_neg.cc: Likewise.
+ * testsuite/20_util/integer_comparisons/not_equal.cc: Likewise.
+ * testsuite/20_util/integer_comparisons/not_equal_neg.cc:
+ Likewise.
+ * testsuite/20_util/is_bounded_array/requirements/explicit_instantiation.cc:
+ Likewise.
+ * testsuite/20_util/is_bounded_array/requirements/typedefs.cc:
+ Likewise.
+ * testsuite/20_util/is_bounded_array/value.cc: Likewise.
+ * testsuite/20_util/is_constant_evaluated/1.cc: Likewise.
+ * testsuite/20_util/is_constant_evaluated/noexcept.cc: Likewise.
+ * testsuite/20_util/is_constructible/92878_92947.cc: Likewise.
+ * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc:
+ Likewise.
+ * testsuite/20_util/is_layout_compatible/value.cc: Likewise.
+ * testsuite/20_util/is_layout_compatible/version.cc: Likewise.
+ * testsuite/20_util/is_nothrow_constructible/value_c++20.cc:
+ Likewise.
+ * testsuite/20_util/is_nothrow_convertible/requirements/explicit_instantiation.cc:
+ Likewise.
+ * testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc:
+ Likewise.
+ * testsuite/20_util/is_nothrow_convertible/value.cc: Likewise.
+ * testsuite/20_util/is_pod/deprecated-2a.cc: Likewise.
+ * testsuite/20_util/is_pointer_interconvertible/value.cc:
+ Likewise.
+ * testsuite/20_util/is_pointer_interconvertible/version.cc:
+ Likewise.
+ * testsuite/20_util/is_pointer_interconvertible/with_class.cc:
+ Likewise.
+ * testsuite/20_util/is_unbounded_array/requirements/explicit_instantiation.cc:
+ Likewise.
+ * testsuite/20_util/is_unbounded_array/requirements/typedefs.cc:
+ Likewise.
+ * testsuite/20_util/is_unbounded_array/value.cc: Likewise.
+ * testsuite/20_util/optional/assignment/92878_92947.cc:
+ Likewise.
+ * testsuite/20_util/optional/cons/92878_92947.cc: Likewise.
+ * testsuite/20_util/optional/constexpr/assign.cc: Likewise.
+ * testsuite/20_util/optional/constexpr/cons/conv.cc: Likewise.
+ * testsuite/20_util/optional/constexpr/modifiers.cc: Likewise.
+ * testsuite/20_util/optional/constexpr/swap.cc: Likewise.
+ * testsuite/20_util/optional/relops/96269.cc: Likewise.
+ * testsuite/20_util/optional/relops/three_way.cc: Likewise.
+ * testsuite/20_util/pair/comparison_operators/constexpr_c++20.cc:
+ Likewise.
+ * testsuite/20_util/pair/cons/92878_92947.cc: Likewise.
+ * testsuite/20_util/pair/constexpr_assign.cc: Likewise.
+ * testsuite/20_util/pair/constexpr_swap.cc: Likewise.
+ * testsuite/20_util/pair/requirements/structural.cc: Likewise.
+ * testsuite/20_util/pointer_traits/pointer_to_constexpr.cc:
+ Likewise.
+ * testsuite/20_util/polymorphic_allocator/allocate_object.cc:
+ Likewise.
+ * testsuite/20_util/polymorphic_allocator/construct_c++2a.cc:
+ Likewise.
+ * testsuite/20_util/polymorphic_allocator/lwg3237.cc: Likewise.
+ * testsuite/20_util/reference_wrapper/constexpr.cc: Likewise.
+ * testsuite/20_util/reference_wrapper/incomplete.cc: Likewise.
+ * testsuite/20_util/remove_cvref/requirements/alias_decl.cc:
+ Likewise.
+ * testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc:
+ Likewise.
+ * testsuite/20_util/remove_cvref/value.cc: Likewise.
+ * testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc:
+ Likewise.
+ * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
+ Likewise.
+ * testsuite/20_util/shared_ptr/casts/rval.cc: Likewise.
+ * testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc:
+ Likewise.
+ * testsuite/20_util/shared_ptr/cons/alias-rval.cc: Likewise.
+ * testsuite/20_util/shared_ptr/creation/92878_92947.cc:
+ Likewise.
+ * testsuite/20_util/shared_ptr/creation/array.cc: Likewise.
+ * testsuite/20_util/shared_ptr/creation/overwrite.cc: Likewise.
+ * testsuite/20_util/shared_ptr/creation/version.cc: Likewise.
+ * testsuite/20_util/time_point/4.cc: Likewise.
+ * testsuite/20_util/time_point/comparison_operators/three_way.cc:
+ Likewise.
+ * testsuite/20_util/to_address/1.cc: Likewise.
+ * testsuite/20_util/to_address/1_neg.cc: Likewise.
+ * testsuite/20_util/to_address/debug.cc: Likewise.
+ * testsuite/20_util/to_address/lwg3545.cc: Likewise.
+ * testsuite/20_util/to_chars/compare.cc: Likewise.
+ * testsuite/20_util/tuple/comparison_operators/three_way.cc:
+ Likewise.
+ * testsuite/20_util/tuple/cons/102270.cc: Likewise.
+ * testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc:
+ Likewise.
+ * testsuite/20_util/tuple/constexpr_swap.cc: Likewise.
+ * testsuite/20_util/type_identity/requirements/alias_decl.cc:
+ Likewise.
+ * testsuite/20_util/type_identity/requirements/explicit_instantiation.cc:
+ Likewise.
+ * testsuite/20_util/type_identity/requirements/typedefs.cc:
+ Likewise.
+ * testsuite/20_util/typeindex/comparison_operators_c++20.cc:
+ Likewise.
+ * testsuite/20_util/unique_ptr/comparison/compare_c++20.cc:
+ Likewise.
+ * testsuite/20_util/unique_ptr/creation/92878_92947.cc:
+ Likewise.
+ * testsuite/20_util/unique_ptr/creation/for_overwrite.cc:
+ Likewise.
+ * testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc:
+ Likewise.
+ * testsuite/20_util/unique_ptr/io/lwg2948.cc: Likewise.
+ * testsuite/20_util/unwrap_reference/1.cc: Likewise.
+ * testsuite/20_util/unwrap_reference/2.cc: Likewise.
+ * testsuite/20_util/unwrap_reference/3.cc: Likewise.
+ * testsuite/20_util/uses_allocator/92878_92947.cc: Likewise.
+ * testsuite/20_util/uses_allocator/lwg3527.cc: Likewise.
+ * testsuite/20_util/uses_allocator/make_obj.cc: Likewise.
+ * testsuite/20_util/uses_allocator/uninitialized_construct.cc:
+ Likewise.
+ * testsuite/20_util/variant/92878_92947.cc: Likewise.
+ * testsuite/20_util/variant/95915.cc: Likewise.
+ * testsuite/20_util/variant/constexpr.cc: Likewise.
+ * testsuite/20_util/variant/relops/three_way.cc: Likewise.
+ * testsuite/20_util/variant/visit_neg.cc: Likewise.
+ * testsuite/20_util/variant/visit_r.cc: Likewise.
+ * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise.
+
+2023-09-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/18_support/comparisons/algorithms/fallback.cc:
+ Remove dg-options -std=gnu++2a.
+ * testsuite/18_support/comparisons/algorithms/partial_order.cc:
+ Likewise.
+ * testsuite/18_support/comparisons/algorithms/strong_order.cc:
+ Likewise.
+ * testsuite/18_support/comparisons/algorithms/strong_order_floats.cc:
+ Likewise.
+ * testsuite/18_support/comparisons/algorithms/weak_order.cc:
+ Likewise.
+ * testsuite/18_support/comparisons/categories/94565.cc:
+ Likewise.
+ * testsuite/18_support/comparisons/categories/partialord.cc:
+ Likewise.
+ * testsuite/18_support/comparisons/categories/strongord.cc:
+ Likewise.
+ * testsuite/18_support/comparisons/categories/weakord.cc:
+ Likewise.
+ * testsuite/18_support/comparisons/categories/zero_neg.cc:
+ Likewise.
+ * testsuite/18_support/comparisons/common/1.cc: Likewise.
+ * testsuite/18_support/comparisons/object/93479.cc: Likewise.
+ * testsuite/18_support/comparisons/object/lwg3530.cc: Likewise.
+
+2023-09-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/29_atomics/atomic/compare_exchange_padding.cc:
+ Remove dg-options -std=gnu++2a.
+ * testsuite/29_atomics/atomic/cons/value_init.cc: Likewise.
+ * testsuite/29_atomics/atomic/lock_free_aliases.cc: Likewise.
+ * testsuite/29_atomics/atomic/requirements/types_neg.cc:
+ Likewise.
+ * testsuite/29_atomics/atomic/wait_notify/1.cc: Likewise.
+ * testsuite/29_atomics/atomic/wait_notify/100334.cc: Likewise.
+ * testsuite/29_atomics/atomic/wait_notify/102994.cc: Likewise.
+ * testsuite/29_atomics/atomic/wait_notify/2.cc: Likewise.
+ * testsuite/29_atomics/atomic/wait_notify/bool.cc: Likewise.
+ * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
+ * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
+ * testsuite/29_atomics/atomic_flag/cons/value_init.cc: Likewise.
+ * testsuite/29_atomics/atomic_flag/test/explicit.cc: Likewise.
+ * testsuite/29_atomics/atomic_flag/test/implicit.cc: Likewise.
+ * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
+ * testsuite/29_atomics/atomic_float/1.cc: Likewise.
+ * testsuite/29_atomics/atomic_float/95282.cc: Likewise.
+ * testsuite/29_atomics/atomic_float/requirements.cc: Likewise.
+ * testsuite/29_atomics/atomic_float/value_init.cc: Likewise.
+ * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
+ * testsuite/29_atomics/atomic_integral/cons/value_init.cc:
+ Likewise.
+ * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
+ * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
+ Likewise.
+ * testsuite/29_atomics/atomic_ref/deduction.cc: Likewise.
+ * testsuite/29_atomics/atomic_ref/float.cc: Likewise.
+ * testsuite/29_atomics/atomic_ref/generic.cc: Likewise.
+ * testsuite/29_atomics/atomic_ref/integral.cc: Likewise.
+ * testsuite/29_atomics/atomic_ref/pointer.cc: Likewise.
+ * testsuite/29_atomics/atomic_ref/requirements.cc: Likewise.
+ * testsuite/29_atomics/headers/atomic/types_std_c++20.cc:
+ Likewise.
+ * testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc:
+ Likewise.
+ * testsuite/29_atomics/headers/atomic/types_std_c++2a.cc:
+ Likewise.
+ * testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc:
+ Likewise.
+
+2023-09-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/27_io/basic_filebuf/native_handle/char/1.cc: New test.
+ * testsuite/27_io/basic_filebuf/native_handle/wchar_t/1.cc: New test.
+
+2023-09-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * acinclude.m4 (GLIBCXX_CHECK_FILEBUF_NATIVE_HANDLES): New
+ macro.
+ * config.h.in: Regenerate.
+ * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Export new
+ basic_filebuf members.
+ * config/io/basic_file_stdio.cc (__basic_file::native_handle):
+ Define new function.
+ * config/io/basic_file_stdio.h (__basic_file::native_handle):
+ Declare new function.
+ * configure: Regenerate.
+ * configure.ac: Use GLIBCXX_CHECK_FILEBUF_NATIVE_HANDLES.
+ * include/bits/version.def (fstream_native_handles): New macro.
+ * include/bits/version.h: Regenerate.
+ * include/std/fstream (basic_filebuf::native_handle)
+ (basic_fstream::native_handle, basic_ifstream::native_handle)
+ (basic_ofstream::native_handle): New functions.
+ * src/c++11/Makefile.am: Move compilation of basic_file.cc,
+ locale_init.cc and localename.cc to here.
+ * src/c++11/Makefile.in: Regenerate.
+ * src/c++98/locale_init.cc: Moved to...
+ * src/c++11/locale_init.cc: ...here.
+ * src/c++98/localename.cc: Moved to...
+ * src/c++11/localename.cc: ...here.
+ * src/c++98/Makefile.am: Remove basic_file.cc, locale_init.cc
+ and localename.cc from here.
+ * src/c++98/Makefile.in: Regenerate.
+ * testsuite/27_io/basic_filebuf/native_handle/version.cc: New test.
+ * testsuite/27_io/basic_fstream/native_handle/char/1.cc: New test.
+ * testsuite/27_io/basic_fstream/native_handle/wchar_t/1.cc: New test.
+ * testsuite/27_io/basic_ifstream/native_handle/char/1.cc: New test.
+ * testsuite/27_io/basic_ifstream/native_handle/wchar_t/1.cc: New test.
+ * testsuite/27_io/basic_ofstream/native_handle/char/1.cc: New test.
+ * testsuite/27_io/basic_ofstream/native_handle/wchar_t/1.cc: New test.
+
+2023-09-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/libstdc++-dg/conformance.exp: Add log line when
+ using testsuite_files.
+
+2023-09-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/20_util/shared_ptr/atomic/3.cc: Simplify dg
+ directives.
+ * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
+ Likewise.
+ * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc:
+ Likewise.
+ * testsuite/20_util/synchronized_pool_resource/allocate.cc:
+ Likewise.
+ * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
+ Likewise.
+ * testsuite/20_util/synchronized_pool_resource/cons.cc:
+ Likewise.
+ * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
+ Likewise.
+ * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
+ Likewise.
+ * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
+ Likewise.
+ * testsuite/20_util/synchronized_pool_resource/options.cc:
+ Likewise.
+ * testsuite/20_util/synchronized_pool_resource/release.cc:
+ Likewise.
+ * testsuite/20_util/synchronized_pool_resource/release_single.cc:
+ Likewise.
+ * testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc:
+ Likewise.
+ * testsuite/30_threads/stop_token/stop_callback/deadlock-mt.cc:
+ Likewise.
+ * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
+ Likewise.
+
+2023-09-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/23_containers/span/back_assert_neg.cc: Remove
+ dg-options and add effective target selector to dg-do. Add
+ no_pch.
+ * testsuite/23_containers/span/back_neg.cc: Likewise.
+ * testsuite/23_containers/span/cons_1_assert_neg.cc: Likewise.
+ * testsuite/23_containers/span/cons_2_assert_neg.cc: Likewise.
+ * testsuite/23_containers/span/first_2_assert_neg.cc: Likewise.
+ * testsuite/23_containers/span/first_assert_neg.cc: Likewise.
+ * testsuite/23_containers/span/first_neg.cc: Likewise.
+ * testsuite/23_containers/span/front_assert_neg.cc: Likewise.
+ * testsuite/23_containers/span/front_neg.cc: Likewise.
+ * testsuite/23_containers/span/index_op_assert_neg.cc: Likewise.
+ * testsuite/23_containers/span/index_op_neg.cc: Likewise.
+ * testsuite/23_containers/span/last_2_assert_neg.cc: Likewise.
+ * testsuite/23_containers/span/last_assert_neg.cc: Likewise.
+ * testsuite/23_containers/span/last_neg.cc: Likewise.
+ * testsuite/23_containers/span/subspan_2_assert_neg.cc:
+ Likewise.
+ * testsuite/23_containers/span/subspan_3_assert_neg.cc:
+ Likewise.
+ * testsuite/23_containers/span/subspan_4_assert_neg.cc:
+ Likewise.
+ * testsuite/23_containers/span/subspan_5_assert_neg.cc:
+ Likewise.
+ * testsuite/23_containers/span/subspan_6_assert_neg.cc:
+ Likewise.
+ * testsuite/23_containers/span/subspan_assert_neg.cc: Likewise.
+ * testsuite/23_containers/span/subspan_neg.cc: Likewise.
+ * testsuite/24_iterators/range_operations/advance_debug_neg.cc:
+ Likewise.
+
+2023-09-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/18_support/headers/limits/synopsis_cxx23.cc: Remove
+ dg-options.
+ * testsuite/18_support/headers/stdfloat/types_std.cc: Likewise.
+ * testsuite/18_support/type_info/constexpr.cc: Likewise.
+ * testsuite/19_diagnostics/stacktrace/current.cc: Likewise.
+ * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
+ * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.
+ * testsuite/19_diagnostics/stacktrace/synopsis.cc: Likewise.
+ * testsuite/19_diagnostics/stacktrace/version.cc: Likewise.
+ * testsuite/20_util/aligned_storage/deprecated-2b.cc: Likewise.
+ * testsuite/20_util/aligned_union/deprecated-2b.cc: Likewise.
+ * testsuite/20_util/bitset/access/constexpr.cc: Likewise.
+ * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Likewise.
+ * testsuite/20_util/bitset/count/constexpr.cc: Likewise.
+ * testsuite/20_util/bitset/ext/constexpr.cc: Likewise.
+ * testsuite/20_util/bitset/operations/constexpr_c++23.cc:
+ Likewise.
+ * testsuite/20_util/bitset/version.cc: Likewise.
+ * testsuite/20_util/from_chars/8.cc: Likewise.
+ * testsuite/20_util/from_chars/constexpr.cc: Likewise.
+ * testsuite/20_util/function/cons/deduction_c++23.cc: Likewise.
+ * testsuite/20_util/function_objects/invoke/4.cc: Likewise.
+ * testsuite/20_util/function_objects/invoke/dangling_ref.cc:
+ Likewise.
+ * testsuite/20_util/is_scoped_enum/value.cc: Likewise.
+ * testsuite/20_util/is_scoped_enum/version.cc: Likewise.
+ * testsuite/20_util/move_only_function/call.cc: Likewise.
+ * testsuite/20_util/move_only_function/cons.cc: Likewise.
+ * testsuite/20_util/move_only_function/move.cc: Likewise.
+ * testsuite/20_util/move_only_function/version.cc: Likewise.
+ * testsuite/20_util/optional/monadic/and_then.cc: Likewise.
+ * testsuite/20_util/optional/monadic/or_else.cc: Likewise.
+ * testsuite/20_util/optional/monadic/or_else_neg.cc: Likewise.
+ * testsuite/20_util/optional/monadic/pr109242.cc: Likewise.
+ * testsuite/20_util/optional/monadic/transform.cc: Likewise.
+ * testsuite/20_util/pair/p2321r2.cc: Likewise.
+ * testsuite/20_util/reference_from_temporary/value.cc: Likewise.
+ * testsuite/20_util/reference_from_temporary/value2.cc:
+ Likewise.
+ * testsuite/20_util/reference_from_temporary/version.cc:
+ Likewise.
+ * testsuite/20_util/to_chars/constexpr.cc: Likewise.
+ * testsuite/20_util/to_chars/float128_c++23.cc: Likewise.
+ * testsuite/20_util/to_chars/float16_c++23.cc: Likewise.
+ * testsuite/20_util/to_chars/version.cc: Likewise.
+ * testsuite/20_util/to_underlying/1.cc: Likewise.
+ * testsuite/20_util/to_underlying/version.cc: Likewise.
+ * testsuite/20_util/tuple/p2321r2.cc: Likewise.
+ * testsuite/20_util/unique_ptr/assign/constexpr.cc: Likewise.
+ * testsuite/20_util/unique_ptr/comparison/constexpr.cc:
+ Likewise.
+ * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc:
+ Likewise.
+ * testsuite/20_util/unique_ptr/creation/constexpr.cc: Likewise.
+ * testsuite/20_util/unique_ptr/modifiers/constexpr.cc: Likewise.
+ * testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc: Likewise.
+ * testsuite/20_util/unreachable/1.cc: Likewise.
+ * testsuite/20_util/unreachable/version.cc: Likewise.
+ * testsuite/20_util/uses_allocator/lwg3677.cc: Likewise.
+ * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc: Likewise.
+ * testsuite/21_strings/basic_string/operations/contains/char.cc:
+ Likewise.
+ * testsuite/21_strings/basic_string/operations/contains/nonnull.cc: Likewise.
+ * testsuite/21_strings/basic_string/operations/contains/wchar_t.cc: Likewise.
+ * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: Likewise.
+ * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: Likewise.
+ * testsuite/21_strings/basic_string_view/operations/contains/char.cc: Likewise.
+ * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: Likewise.
+ * testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc: Likewise.
+ * testsuite/21_strings/basic_string_view/operations/contains/wchar_t.cc: Likewise.
+ * testsuite/23_containers/queue/cons_from_iters.cc: Likewise.
+ * testsuite/23_containers/stack/cons_from_iters.cc: Likewise.
+ * testsuite/23_containers/vector/bool/element_access/1.cc:
+ Likewise.
+ * testsuite/24_iterators/const_iterator/1.cc: Likewise.
+ * testsuite/25_algorithms/contains/1.cc: Likewise.
+ * testsuite/25_algorithms/contains_subrange/1.cc: Likewise.
+ * testsuite/25_algorithms/find_last/1.cc: Likewise.
+ * testsuite/25_algorithms/find_last_if/1.cc: Likewise.
+ * testsuite/25_algorithms/find_last_if_not/1.cc: Likewise.
+ * testsuite/25_algorithms/fold_left/1.cc: Likewise.
+ * testsuite/25_algorithms/fold_right/1.cc: Likewise.
+ * testsuite/25_algorithms/iota/1.cc: Likewise.
+ * testsuite/26_numerics/bit/bit.byteswap/byteswap.cc: Likewise.
+ * testsuite/26_numerics/bit/bit.byteswap/version.cc: Likewise.
+ * testsuite/26_numerics/complex/ext_c++23.cc: Likewise.
+ * testsuite/26_numerics/headers/cmath/c99_classification_macros_c++23.cc: Likewise.
+ * testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc:
+ Likewise.
+ * testsuite/26_numerics/headers/cmath/functions_std_c++23.cc:
+ Likewise.
+ * testsuite/26_numerics/headers/cmath/nextafter_c++23.cc:
+ Likewise.
+ * testsuite/26_numerics/numbers/4.cc: Likewise.
+ * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc: Likewise.
+ * testsuite/27_io/filesystem/path/native/conv_c++23.cc:
+ Likewise.
+ * testsuite/27_io/spanstream/1.cc: Likewise.
+ * testsuite/27_io/spanstream/2.cc: Likewise.
+ * testsuite/27_io/spanstream/version.cc: Likewise.
+ * testsuite/29_atomics/atomic_float/requirements_cxx23.cc:
+ Likewise.
+ * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
+ Likewise.
+ * testsuite/29_atomics/headers/stdatomic.h/version.cc: Likewise.
+ * testsuite/30_threads/packaged_task/cons/deduction_c++23.cc:
+ Likewise.
+ * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
+ Likewise.
+ * testsuite/std/ranges/adaptors/adjacent/1.cc: Likewise.
+ * testsuite/std/ranges/adaptors/adjacent_transform/1.cc:
+ Likewise.
+ * testsuite/std/ranges/adaptors/as_const/1.cc: Likewise.
+ * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Likewise.
+ * testsuite/std/ranges/adaptors/chunk/1.cc: Likewise.
+ * testsuite/std/ranges/adaptors/chunk_by/1.cc: Likewise.
+ * testsuite/std/ranges/adaptors/enumerate/1.cc: Likewise.
+ * testsuite/std/ranges/adaptors/join_with/1.cc: Likewise.
+ * testsuite/std/ranges/adaptors/lwg3715.cc: Likewise.
+ * testsuite/std/ranges/adaptors/slide/1.cc: Likewise.
+ * testsuite/std/ranges/adaptors/stride/1.cc: Likewise.
+ * testsuite/std/ranges/cartesian_product/1.cc: Likewise.
+ * testsuite/std/ranges/range_adaptor_closure.cc: Likewise.
+ * testsuite/std/ranges/repeat/1.cc: Likewise.
+ * testsuite/std/ranges/version_c++23.cc: Likewise.
+ * testsuite/std/ranges/zip/1.cc: Likewise.
+ * testsuite/std/ranges/zip_transform/1.cc: Likewise.
+
+2023-09-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/20_util/expected/assign.cc: Remove dg-options.
+ * testsuite/20_util/expected/bad.cc: Likewise.
+ * testsuite/20_util/expected/cons.cc: Likewise.
+ * testsuite/20_util/expected/equality.cc: Likewise.
+ * testsuite/20_util/expected/illformed_neg.cc: Likewise.
+ * testsuite/20_util/expected/lwg3877.cc: Likewise.
+ * testsuite/20_util/expected/lwg3938.cc: Likewise.
+ * testsuite/20_util/expected/monadic.cc: Likewise.
+ * testsuite/20_util/expected/observers.cc: Likewise.
+ * testsuite/20_util/expected/requirements.cc: Likewise.
+ * testsuite/20_util/expected/swap.cc: Likewise.
+ * testsuite/20_util/expected/synopsis.cc: Likewise.
+ * testsuite/20_util/expected/unexpected.cc: Likewise.
+ * testsuite/20_util/expected/version.cc: Likewise.
+
+2023-09-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/20_util/duration/arithmetic/overflow_c++20.cc:
+ Remove dg-options.
+ * testsuite/20_util/duration/io.cc: Likewise.
+ * testsuite/std/time/clock/file/io.cc: Likewise.
+ * testsuite/std/time/clock/file/members.cc: Likewise.
+ * testsuite/std/time/clock/file/overview.cc: Likewise.
+ * testsuite/std/time/clock/gps/1.cc: Likewise.
+ * testsuite/std/time/clock/gps/io.cc: Likewise.
+ * testsuite/std/time/clock/local/io.cc: Likewise.
+ * testsuite/std/time/clock/system/io.cc: Likewise.
+ * testsuite/std/time/clock/tai/1.cc: Likewise.
+ * testsuite/std/time/clock/tai/io.cc: Likewise.
+ * testsuite/std/time/clock/utc/1.cc: Likewise.
+ * testsuite/std/time/clock/utc/io.cc: Likewise.
+ * testsuite/std/time/clock/utc/leap_second_info.cc: Likewise.
+ * testsuite/std/time/day/1.cc: Likewise.
+ * testsuite/std/time/day/io.cc: Likewise.
+ * testsuite/std/time/exceptions.cc: Likewise.
+ * testsuite/std/time/format.cc: Likewise.
+ * testsuite/std/time/hh_mm_ss/1.cc: Likewise.
+ * testsuite/std/time/hh_mm_ss/109772.cc: Likewise.
+ * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
+ * testsuite/std/time/is_am/1.cc: Likewise.
+ * testsuite/std/time/is_pm/1.cc: Likewise.
+ * testsuite/std/time/make12/1.cc: Likewise.
+ * testsuite/std/time/make24/1.cc: Likewise.
+ * testsuite/std/time/month/1.cc: Likewise.
+ * testsuite/std/time/month/io.cc: Likewise.
+ * testsuite/std/time/month_day/1.cc: Likewise.
+ * testsuite/std/time/month_day/io.cc: Likewise.
+ * testsuite/std/time/month_day_last/1.cc: Likewise.
+ * testsuite/std/time/month_day_last/io.cc: Likewise.
+ * testsuite/std/time/month_weekday/1.cc: Likewise.
+ * testsuite/std/time/month_weekday/io.cc: Likewise.
+ * testsuite/std/time/month_weekday_last/1.cc: Likewise.
+ * testsuite/std/time/month_weekday_last/io.cc: Likewise.
+ * testsuite/std/time/parse.cc: Likewise.
+ * testsuite/std/time/syn_c++20.cc: Likewise.
+ * testsuite/std/time/time_zone/get_info_local.cc: Likewise.
+ * testsuite/std/time/time_zone/get_info_sys.cc: Likewise.
+ * testsuite/std/time/time_zone/requirements.cc: Likewise.
+ * testsuite/std/time/traits/is_clock.cc: Likewise.
+ * testsuite/std/time/tzdb/1.cc: Likewise.
+ * testsuite/std/time/tzdb/leap_seconds.cc: Likewise.
+ * testsuite/std/time/tzdb_list/1.cc: Likewise.
+ * testsuite/std/time/tzdb_list/requirements.cc: Likewise.
+ * testsuite/std/time/weekday/1.cc: Likewise.
+ * testsuite/std/time/weekday/io.cc: Likewise.
+ * testsuite/std/time/weekday_indexed/io.cc: Likewise.
+ * testsuite/std/time/weekday_last/1.cc: Likewise.
+ * testsuite/std/time/weekday_last/io.cc: Likewise.
+ * testsuite/std/time/year/1.cc: Likewise.
+ * testsuite/std/time/year/2.cc: Likewise.
+ * testsuite/std/time/year/io.cc: Likewise.
+ * testsuite/std/time/weekday_indexed/1.cc: Likewise.
+ * testsuite/std/time/year_month/1.cc: Likewise.
+ * testsuite/std/time/year_month/2.cc: Likewise.
+ * testsuite/std/time/year_month/io.cc: Likewise.
+ * testsuite/std/time/year_month_day/1.cc: Likewise.
+ * testsuite/std/time/year_month_day/2.cc: Likewise.
+ * testsuite/std/time/year_month_day/3.cc: Likewise.
+ * testsuite/std/time/year_month_day/4.cc: Likewise.
+ * testsuite/std/time/year_month_day/io.cc: Likewise.
+ * testsuite/std/time/year_month_day_last/1.cc: Likewise.
+ * testsuite/std/time/year_month_day_last/2.cc: Likewise.
+ * testsuite/std/time/year_month_day_last/io.cc: Likewise.
+ * testsuite/std/time/year_month_weekday/1.cc: Likewise.
+ * testsuite/std/time/year_month_weekday/2.cc: Likewise.
+ * testsuite/std/time/year_month_weekday/3.cc: Likewise.
+ * testsuite/std/time/year_month_weekday/io.cc: Likewise.
+ * testsuite/std/time/year_month_weekday_last/1.cc: Likewise.
+ * testsuite/std/time/year_month_weekday_last/2.cc: Likewise.
+ * testsuite/std/time/year_month_weekday_last/io.cc: Likewise.
+ * testsuite/std/time/zoned_time/1.cc: Likewise.
+ * testsuite/std/time/zoned_time/custom.cc: Likewise.
+ * testsuite/std/time/zoned_time/deduction.cc: Likewise.
+ * testsuite/std/time/zoned_time/io.cc: Likewise.
+ * testsuite/std/time/zoned_time/req_neg.cc: Likewise.
+ * testsuite/std/time/zoned_time/requirements.cc: Likewise.
+ * testsuite/std/time/zoned_traits.cc: Likewise.
+
+2023-09-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/std/format/arguments/args.cc: Remove dg-options.
+ * testsuite/std/format/arguments/lwg3810.cc: Likewise.
+ * testsuite/std/format/error.cc: Likewise.
+ * testsuite/std/format/format_string.cc: Likewise.
+ * testsuite/std/format/formatter/concept.cc: Likewise.
+ * testsuite/std/format/formatter/ext_float.cc: Likewise.
+ * testsuite/std/format/formatter/requirements.cc: Likewise.
+ * testsuite/std/format/functions/107871.cc: Likewise.
+ * testsuite/std/format/functions/format.cc: Likewise.
+ * testsuite/std/format/functions/format_to.cc: Likewise.
+ * testsuite/std/format/functions/format_to_n.cc: Likewise.
+ * testsuite/std/format/functions/size.cc: Likewise.
+ * testsuite/std/format/functions/vformat_to.cc: Likewise.
+ * testsuite/std/format/parse_ctx.cc: Likewise.
+ * testsuite/std/format/string.cc: Likewise.
+ * testsuite/std/format/string_neg.cc: Likewise.
+ * testsuite/std/format/functions/format_c++23.cc: Removed.
+
+2023-09-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/20_util/function_objects/range.cmp/equal_to.cc:
+ Remove dg-options.
+ * testsuite/20_util/function_objects/range.cmp/greater.cc:
+ Likewise.
+ * testsuite/20_util/function_objects/range.cmp/greater_equal.cc:
+ Likewise.
+ * testsuite/20_util/function_objects/range.cmp/less.cc:
+ Likewise.
+ * testsuite/20_util/function_objects/range.cmp/less_equal.cc:
+ Likewise.
+ * testsuite/20_util/function_objects/range.cmp/lwg3530.cc:
+ Likewise.
+ * testsuite/20_util/function_objects/range.cmp/not_equal_to.cc:
+ Likewise.
+ * testsuite/20_util/specialized_algorithms/construct_at/1.cc:
+ Likewise.
+ * testsuite/20_util/specialized_algorithms/construct_at/92878_92947.cc:
+ Likewise.
+ * testsuite/20_util/specialized_algorithms/construct_at/95788.cc:
+ Likewise.
+ * testsuite/20_util/specialized_algorithms/destroy/constrained.cc:
+ Likewise.
+ * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
+ Likewise.
+ * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc:
+ Likewise.
+ * testsuite/20_util/specialized_algorithms/uninitialized_fill/94017.cc:
+ Likewise.
+ * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
+ Likewise.
+ * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/94017.cc:
+ Likewise.
+ * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
+ Likewise.
+ * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
+ Likewise.
+ * testsuite/25_algorithms/adjacent_find/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/adjacent_find/constrained.cc:
+ Likewise.
+ * testsuite/25_algorithms/all_of/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/all_of/constrained.cc: Likewise.
+ * testsuite/25_algorithms/any_of/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/any_of/constrained.cc: Likewise.
+ * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/binary_search/constrained.cc:
+ Likewise.
+ * testsuite/25_algorithms/clamp/constrained.cc: Likewise.
+ * testsuite/25_algorithms/constexpr_macro.cc: Likewise.
+ * testsuite/25_algorithms/copy/95578.cc: Likewise.
+ * testsuite/25_algorithms/copy/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/copy/constrained.cc: Likewise.
+ * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Likewise.
+ * testsuite/25_algorithms/copy_backward/95578.cc: Likewise.
+ * testsuite/25_algorithms/copy_backward/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/copy_backward/constrained.cc:
+ Likewise.
+ * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc:
+ Likewise.
+ * testsuite/25_algorithms/copy_if/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/copy_if/constrained.cc: Likewise.
+ * testsuite/25_algorithms/copy_n/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/copy_n/constrained.cc: Likewise.
+ * testsuite/25_algorithms/count/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/count/constrained.cc: Likewise.
+ * testsuite/25_algorithms/count_if/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/count_if/constrained.cc: Likewise.
+ * testsuite/25_algorithms/cpp_lib_constexpr.cc: Likewise.
+ * testsuite/25_algorithms/equal/95578.cc: Likewise.
+ * testsuite/25_algorithms/equal/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/equal/constexpr_neg.cc: Likewise.
+ * testsuite/25_algorithms/equal/constrained.cc: Likewise.
+ * testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
+ Likewise.
+ * testsuite/25_algorithms/equal_range/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/equal_range/constrained.cc: Likewise.
+ * testsuite/25_algorithms/fill/94017.cc: Likewise.
+ * testsuite/25_algorithms/fill/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/fill/constrained.cc: Likewise.
+ * testsuite/25_algorithms/fill_n/94017.cc: Likewise.
+ * testsuite/25_algorithms/fill_n/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/fill_n/constrained.cc: Likewise.
+ * testsuite/25_algorithms/find/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/find/constrained.cc: Likewise.
+ * testsuite/25_algorithms/find_end/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/find_end/constrained.cc: Likewise.
+ * testsuite/25_algorithms/find_first_of/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/find_first_of/constrained.cc:
+ Likewise.
+ * testsuite/25_algorithms/find_if/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/find_if/constrained.cc: Likewise.
+ * testsuite/25_algorithms/find_if_not/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/find_if_not/constrained.cc: Likewise.
+ * testsuite/25_algorithms/for_each/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/for_each/constrained.cc: Likewise.
+ * testsuite/25_algorithms/generate/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/generate/constrained.cc: Likewise.
+ * testsuite/25_algorithms/generate_n/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/generate_n/constrained.cc: Likewise.
+ * testsuite/25_algorithms/heap/constrained.cc: Likewise.
+ * testsuite/25_algorithms/includes/constrained.cc: Likewise.
+ * testsuite/25_algorithms/inplace_merge/constrained.cc:
+ Likewise.
+ * testsuite/25_algorithms/is_heap/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/is_heap_until/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/is_partitioned/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/is_partitioned/constrained.cc:
+ Likewise.
+ * testsuite/25_algorithms/is_permutation/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/is_permutation/constrained.cc:
+ Likewise.
+ * testsuite/25_algorithms/is_sorted/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
+ * testsuite/25_algorithms/is_sorted_until/constexpr.cc:
+ Likewise.
+ * testsuite/25_algorithms/is_sorted_until/constrained.cc:
+ Likewise.
+ * testsuite/25_algorithms/iter_swap/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/lexicographical_compare/93972.cc:
+ Likewise.
+ * testsuite/25_algorithms/lexicographical_compare/95578.cc:
+ Likewise.
+ * testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
+ Likewise.
+ * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
+ Likewise.
+ * testsuite/25_algorithms/lexicographical_compare_three_way/1.cc:
+ Likewise.
+ * testsuite/25_algorithms/lexicographical_compare_three_way/constexpr.cc:
+ Likewise.
+ * testsuite/25_algorithms/lower_bound/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/lower_bound/constrained.cc: Likewise.
+ * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc:
+ Likewise.
+ * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc:
+ Likewise.
+ * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc:
+ Likewise.
+ * testsuite/25_algorithms/make_heap/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/max/constrained.cc: Likewise.
+ * testsuite/25_algorithms/max_element/constrained.cc: Likewise.
+ * testsuite/25_algorithms/merge/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/merge/constrained.cc: Likewise.
+ * testsuite/25_algorithms/min/constrained.cc: Likewise.
+ * testsuite/25_algorithms/min_element/constrained.cc: Likewise.
+ * testsuite/25_algorithms/minmax/constrained.cc: Likewise.
+ * testsuite/25_algorithms/minmax_element/constrained.cc:
+ Likewise.
+ * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/mismatch/constrained.cc: Likewise.
+ * testsuite/25_algorithms/move/93872.cc: Likewise.
+ * testsuite/25_algorithms/move/95578.cc: Likewise.
+ * testsuite/25_algorithms/move/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/move/constrained.cc: Likewise.
+ * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
+ * testsuite/25_algorithms/move_backward/95578.cc: Likewise.
+ * testsuite/25_algorithms/move_backward/constrained.cc:
+ Likewise.
+ * testsuite/25_algorithms/next_permutation/constexpr.cc:
+ Likewise.
+ * testsuite/25_algorithms/next_permutation/constrained.cc:
+ Likewise.
+ * testsuite/25_algorithms/none_of/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/none_of/constrained.cc: Likewise.
+ * testsuite/25_algorithms/nth_element/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/nth_element/constrained.cc: Likewise.
+ * testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/partial_sort/constrained.cc: Likewise.
+ * testsuite/25_algorithms/partial_sort_copy/constexpr.cc:
+ Likewise.
+ * testsuite/25_algorithms/partial_sort_copy/constrained.cc:
+ Likewise.
+ * testsuite/25_algorithms/partition/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/partition/constrained.cc: Likewise.
+ * testsuite/25_algorithms/partition_copy/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/partition_copy/constrained.cc:
+ Likewise.
+ * testsuite/25_algorithms/partition_point/constexpr.cc:
+ Likewise.
+ * testsuite/25_algorithms/partition_point/constrained.cc:
+ Likewise.
+ * testsuite/25_algorithms/pop_heap/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/prev_permutation/constexpr.cc:
+ Likewise.
+ * testsuite/25_algorithms/prev_permutation/constrained.cc:
+ Likewise.
+ * testsuite/25_algorithms/push_heap/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/remove/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/remove/constrained.cc: Likewise.
+ * testsuite/25_algorithms/remove_copy/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/remove_copy/constrained.cc: Likewise.
+ * testsuite/25_algorithms/remove_copy_if/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/remove_copy_if/constrained.cc:
+ Likewise.
+ * testsuite/25_algorithms/remove_if/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/remove_if/constrained.cc: Likewise.
+ * testsuite/25_algorithms/replace/constrained.cc: Likewise.
+ * testsuite/25_algorithms/replace_copy/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/replace_copy/constrained.cc: Likewise.
+ * testsuite/25_algorithms/replace_copy_if/constexpr.cc:
+ Likewise.
+ * testsuite/25_algorithms/replace_copy_if/constrained.cc:
+ Likewise.
+ * testsuite/25_algorithms/replace_if/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/replace_if/constrained.cc: Likewise.
+ * testsuite/25_algorithms/reverse/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/reverse/constrained.cc: Likewise.
+ * testsuite/25_algorithms/reverse_copy/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/reverse_copy/constrained.cc: Likewise.
+ * testsuite/25_algorithms/rotate/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/rotate/constrained.cc: Likewise.
+ * testsuite/25_algorithms/rotate_copy/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/rotate_copy/constrained.cc: Likewise.
+ * testsuite/25_algorithms/sample/constrained.cc: Likewise.
+ * testsuite/25_algorithms/search/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/search/constrained.cc: Likewise.
+ * testsuite/25_algorithms/search_n/97828.cc: Likewise.
+ * testsuite/25_algorithms/search_n/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/search_n/constrained.cc: Likewise.
+ * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/set_difference/constrained.cc:
+ Likewise.
+ * testsuite/25_algorithms/set_intersection/constexpr.cc:
+ Likewise.
+ * testsuite/25_algorithms/set_intersection/constrained.cc:
+ Likewise.
+ * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
+ Likewise.
+ * testsuite/25_algorithms/set_symmetric_difference/constrained.cc:
+ Likewise.
+ * testsuite/25_algorithms/set_union/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/set_union/constrained.cc: Likewise.
+ * testsuite/25_algorithms/shift_left/1.cc: Likewise.
+ * testsuite/25_algorithms/shift_right/1.cc: Likewise.
+ * testsuite/25_algorithms/shuffle/constrained.cc: Likewise.
+ * testsuite/25_algorithms/sort/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/sort/constrained.cc: Likewise.
+ * testsuite/25_algorithms/sort_heap/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/stable_partition/constrained.cc:
+ Likewise.
+ * testsuite/25_algorithms/stable_sort/constrained.cc: Likewise.
+ * testsuite/25_algorithms/swap/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/swap_ranges/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/swap_ranges/constrained.cc: Likewise.
+ * testsuite/25_algorithms/transform/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/transform/constrained.cc: Likewise.
+ * testsuite/25_algorithms/unique/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/unique/constrained.cc: Likewise.
+ * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/unique_copy/constrained.cc: Likewise.
+ * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise.
+ * testsuite/25_algorithms/upper_bound/constrained.cc: Likewise.
+ * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc:
+ Likewise.
+ * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc:
+ Likewise.
+ * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc:
+ Likewise.
+
+2023-09-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/std/concepts/1.cc: Remove dg-options.
+ * testsuite/std/concepts/2.cc: Likewise.
+ * testsuite/std/concepts/concepts.callable/invocable.cc:
+ Likewise.
+ * testsuite/std/concepts/concepts.callable/regular_invocable.cc:
+ Likewise.
+ * testsuite/std/concepts/concepts.callable/relation.cc:
+ Likewise.
+ * testsuite/std/concepts/concepts.callable/strictweakorder.cc:
+ Likewise.
+ * testsuite/std/concepts/concepts.lang/concept.arithmetic/floating_point.cc: Likewise.
+ * testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc: Likewise.
+ * testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc: Likewise.
+ * testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc: Likewise.
+ * testsuite/std/concepts/concepts.lang/concept.assignable/1.cc:
+ Likewise.
+ * testsuite/std/concepts/concepts.lang/concept.common/1.cc:
+ Likewise.
+ * testsuite/std/concepts/concepts.lang/concept.commonref/1.cc:
+ Likewise.
+ * testsuite/std/concepts/concepts.lang/concept.constructible/1.cc: Likewise.
+ * testsuite/std/concepts/concepts.lang/concept.convertible/1.cc:
+ Likewise.
+ * testsuite/std/concepts/concepts.lang/concept.copyconstructible/1.cc: Likewise.
+ * testsuite/std/concepts/concepts.lang/concept.defaultinitializable/1.cc: Likewise.
+ * testsuite/std/concepts/concepts.lang/concept.defaultinitializable/lwg3149.cc: Likewise.
+ * testsuite/std/concepts/concepts.lang/concept.derived/1.cc:
+ Likewise.
+ * testsuite/std/concepts/concepts.lang/concept.destructible/1.cc: Likewise.
+ * testsuite/std/concepts/concepts.lang/concept.moveconstructible/1.cc: Likewise.
+ * testsuite/std/concepts/concepts.lang/concept.same/1.cc:
+ Likewise.
+ * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc: Likewise.
+ * testsuite/std/concepts/concepts.lang/concept.swappable/swappable.cc: Likewise.
+ * testsuite/std/concepts/concepts.lang/concept.swappable/swappable_with.cc: Likewise.
+ * testsuite/std/concepts/concepts.object/copyable.cc: Likewise.
+ * testsuite/std/concepts/concepts.object/movable.cc: Likewise.
+ * testsuite/std/concepts/concepts.object/regular.cc: Likewise.
+ * testsuite/std/concepts/concepts.object/semiregular.cc:
+ Likewise.
+ * testsuite/std/ranges/97600.cc: Likewise.
+ * testsuite/std/ranges/access/101782.cc: Likewise.
+ * testsuite/std/ranges/access/begin.cc: Likewise.
+ * testsuite/std/ranges/access/begin_neg.cc: Likewise.
+ * testsuite/std/ranges/access/cbegin.cc: Likewise.
+ * testsuite/std/ranges/access/cdata.cc: Likewise.
+ * testsuite/std/ranges/access/cend.cc: Likewise.
+ * testsuite/std/ranges/access/crbegin.cc: Likewise.
+ * testsuite/std/ranges/access/crend.cc: Likewise.
+ * testsuite/std/ranges/access/data.cc: Likewise.
+ * testsuite/std/ranges/access/empty.cc: Likewise.
+ * testsuite/std/ranges/access/end.cc: Likewise.
+ * testsuite/std/ranges/access/end_neg.cc: Likewise.
+ * testsuite/std/ranges/access/lwg3467.cc: Likewise.
+ * testsuite/std/ranges/access/p2602.cc: Likewise.
+ * testsuite/std/ranges/access/rbegin.cc: Likewise.
+ * testsuite/std/ranges/access/rend.cc: Likewise.
+ * testsuite/std/ranges/access/size.cc: Likewise.
+ * testsuite/std/ranges/access/size_neg.cc: Likewise.
+ * testsuite/std/ranges/access/ssize.cc: Likewise.
+ * testsuite/std/ranges/adaptors/100479.cc: Likewise.
+ * testsuite/std/ranges/adaptors/100577.cc: Likewise.
+ * testsuite/std/ranges/adaptors/93978.cc: Likewise.
+ * testsuite/std/ranges/adaptors/95322.cc: Likewise.
+ * testsuite/std/ranges/adaptors/99433.cc: Likewise.
+ * testsuite/std/ranges/adaptors/all.cc: Likewise.
+ * testsuite/std/ranges/adaptors/common.cc: Likewise.
+ * testsuite/std/ranges/adaptors/conditionally_borrowed.cc:
+ Likewise.
+ * testsuite/std/ranges/adaptors/counted.cc: Likewise.
+ * testsuite/std/ranges/adaptors/detail/copyable_box.cc:
+ Likewise.
+ * testsuite/std/ranges/adaptors/drop.cc: Likewise.
+ * testsuite/std/ranges/adaptors/drop_while.cc: Likewise.
+ * testsuite/std/ranges/adaptors/elements.cc: Likewise.
+ * testsuite/std/ranges/adaptors/filter.cc: Likewise.
+ * testsuite/std/ranges/adaptors/join.cc: Likewise.
+ * testsuite/std/ranges/adaptors/lazy_split.cc: Likewise.
+ * testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise.
+ * testsuite/std/ranges/adaptors/lwg3286.cc: Likewise.
+ * testsuite/std/ranges/adaptors/lwg3313_neg.cc: Likewise.
+ * testsuite/std/ranges/adaptors/lwg3325_neg.cc: Likewise.
+ * testsuite/std/ranges/adaptors/lwg3406.cc: Likewise.
+ * testsuite/std/ranges/adaptors/p1739.cc: Likewise.
+ * testsuite/std/ranges/adaptors/p2281.cc: Likewise.
+ * testsuite/std/ranges/adaptors/p2770r0.cc: Likewise.
+ * testsuite/std/ranges/adaptors/reverse.cc: Likewise.
+ * testsuite/std/ranges/adaptors/sizeof.cc: Likewise.
+ * testsuite/std/ranges/adaptors/split.cc: Likewise.
+ * testsuite/std/ranges/adaptors/take.cc: Likewise.
+ * testsuite/std/ranges/adaptors/take_while.cc: Likewise.
+ * testsuite/std/ranges/adaptors/transform.cc: Likewise.
+ * testsuite/std/ranges/empty_view.cc: Likewise.
+ * testsuite/std/ranges/headers/ranges/synopsis.cc: Likewise.
+ * testsuite/std/ranges/iota/difference_type.cc: Likewise.
+ * testsuite/std/ranges/iota/iota_view.cc: Likewise.
+ * testsuite/std/ranges/iota/iterator.cc: Likewise.
+ * testsuite/std/ranges/iota/lwg3292_neg.cc: Likewise.
+ * testsuite/std/ranges/iota/max_size_type.cc: Likewise.
+ * testsuite/std/ranges/istream_view.cc: Likewise.
+ * testsuite/std/ranges/p2259.cc: Likewise.
+ * testsuite/std/ranges/p2325.cc: Likewise.
+ * testsuite/std/ranges/p2367.cc: Likewise.
+ * testsuite/std/ranges/range.cc: Likewise.
+ * testsuite/std/ranges/refinements.cc: Likewise.
+ * testsuite/std/ranges/safe_range.cc: Likewise.
+ * testsuite/std/ranges/safe_range_types.cc: Likewise.
+ * testsuite/std/ranges/single_view.cc: Likewise.
+ * testsuite/std/ranges/sized.cc: Likewise.
+ * testsuite/std/ranges/subrange/1.cc: Likewise.
+ * testsuite/std/ranges/subrange/97512.cc: Likewise.
+ * testsuite/std/ranges/subrange/constexpr.cc: Likewise.
+ * testsuite/std/ranges/subrange/lwg3282_neg.cc: Likewise.
+ * testsuite/std/ranges/subrange/lwg3286.cc: Likewise.
+ * testsuite/std/ranges/subrange/lwg3433.cc: Likewise.
+ * testsuite/std/ranges/subrange/sizeof.cc: Likewise.
+ * testsuite/std/ranges/subrange/tuple_like.cc: Likewise.
+ * testsuite/std/ranges/view.cc: Likewise.
+
+2023-09-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
+ Remove dg-options.
+ * testsuite/23_containers/span/contiguous_range_neg.cc:
+ Likewise.
+ * testsuite/23_containers/span/everything.cc: Likewise.
+
+2023-09-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/24_iterators/reverse_iterator/100639.cc: Remove
+ dg-options and add dg-add-options strict_std.
+ * testsuite/std/ranges/iota/93267.cc: Likewise.
+ * testsuite/std/ranges/iota/96042.cc: Likewise.
+ * testsuite/std/ranges/iota/size.cc: Likewise.
+ * testsuite/std/ranges/subrange/96042.cc: Likewise.
+
+2023-09-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/compile_cxx17.cc:
+ Replace dg-options -std=c++17 with dg-add-options strict_std.
+ * testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/compile_cxx17.cc:
+ Likewise.
+
+2023-09-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/23_containers/deque/48101-2_neg.cc: Replace
+ dg-options with target selector.
+ * testsuite/23_containers/forward_list/48101-2_neg.cc: Likewise.
+ * testsuite/23_containers/list/48101-2_neg.cc: Likewise.
+ * testsuite/23_containers/map/48101-2_neg.cc: Likewise.
+ * testsuite/23_containers/map/48101_neg.cc: Likewise.
+ * testsuite/23_containers/multimap/48101-2_neg.cc: Likewise.
+ * testsuite/23_containers/multimap/48101_neg.cc: Likewise.
+ * testsuite/23_containers/multiset/48101-2_neg.cc: Likewise.
+ * testsuite/23_containers/set/48101-2_neg.cc: Likewise.
+ * testsuite/23_containers/unordered_map/48101-2_neg.cc:
+ Likewise.
+ * testsuite/23_containers/unordered_multimap/48101-2_neg.cc:
+ Likewise.
+ * testsuite/23_containers/unordered_multiset/48101-2_neg.cc:
+ Likewise.
+ * testsuite/23_containers/unordered_set/48101-2_neg.cc:
+ Likewise.
+ * testsuite/23_containers/vector/48101-2_neg.cc: Likewise.
+
+2023-09-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * doc/xml/manual/test.xml: Update documentation on running and
+ writing tests.
+ * doc/html/manual/test.html: Regenerate.
+ * testsuite/Makefile.am: Add v3-use-std-list to site.tmp
+ * testsuite/Makefile.in: Regenerate.
+ * testsuite/lib/dg-options.exp (add_options_for_strict_std): New
+ proc.
+ * testsuite/lib/libstdc++.exp (search_for): New utility proc.
+ (v3-dg-runtest): New proc to replace dg-runtest.
+ * testsuite/libstdc++-dg/conformance.exp: Use v3-dg-runtest.
+
+2023-09-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc:
+ Fix test to work for C++23 and C++26 too.
+
+2023-09-15 Patrick Palka <ppalka@redhat.com>
+
+ * include/std/bit: Include <concepts>.
+ (byteswap): Use a type-constraint instead of enable_if_t
+ inside the return type, and use std::integral.
+ (_If_is_unsigned_integer): Replace with ...
+ (__unsigned_integer): ... this.
+ (rotl): Use a type-constraint instead of enable_if_t inside
+ the return type.
+ (countl_zero): Likewise.
+ (countl_one): Likewise.
+ (countr_zero): Likewise.
+ (countr_one): Likewise.
+ (popcount): Likewise.
+ (has_single_bit): Likewise.
+ (bit_ceil): Likewise.
+ (bit_floor): Likewise.
+ (bit_width): Likewise.
+
+2023-09-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/variant (variant): Remove derivation from
+ _Enable_default_constructor base class.
+ (variant::variant()): Constrain.
+ * testsuite/20_util/variant/default_ctor.cc: New test.
+
+2023-09-15 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/111172
+ * include/std/variant (get<T>): Remove !is_void static
+ assertions.
+
+2023-09-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/version.def (to_chars): Define new value for
+ C++26.
+ * include/bits/version.h: Regenerate.
+ * include/std/charconv (to_chars_result::operator bool): New
+ function.
+ (from_chars_result::operator bool): New function.
+ * testsuite/20_util/to_chars/version.cc: Update expected value.
+ * testsuite/20_util/from_chars/result.cc: New test.
+ * testsuite/20_util/to_chars/result.cc: New test.
+
+2023-09-14 Jonathan Wakely <jwakely@redhat.com>
+
+ PR c++/111357
+ * testsuite/20_util/integer_sequence/pr111357.cc: New test.
+
+2023-09-14 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc: Use
+ dg-additional-files. Remove @require@ and @diff@ comments.
+ * testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc: Likewise.
+ * testsuite/27_io/basic_filebuf/seekpos/char/1-io.cc: Likewise.
+ * testsuite/27_io/basic_filebuf/seekpos/char/2-io.cc: Likewise.
+ * testsuite/lib/dg-options.exp (v3_additional_files): New
+ global variable.
+ (dg-additional-files): New proc.
+ * testsuite/lib/libstdc++.exp (v3_target_compile): Copy
+ additional files to test directory.
+
+2023-09-14 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/experimental/io_context (io_context) [!_GLIBCXX_HAS_GTHREADS]:
+ Use a plain integer for _M_work_count for single-threaded
+ targets.
+ * include/experimental/memory_resource (__get_default_resource)
+ [!_GLIBCXX_HAS_GTHREADS]: Use unsynchronized type for
+ single-threaded targets.
+ * src/c++17/default_resource.h: Adjust preprocessor conditions
+ to match memory_resource.cc.
+ * src/c++17/memory_resource.cc [!_GLIBCXX_HAS_GTHREADS]
+ (atomic_mem_res): Use unsynchronized type for single-threaded
+ targets.
+
+2023-09-14 Christophe Lyon <christophe.lyon@linaro.org>
+
+ * testsuite/29_atomics/atomic/compare_exchange_padding.cc: Likewise.
+ * testsuite/29_atomics/atomic/cons/value_init.cc: Likewise.
+ * testsuite/29_atomics/atomic_float/value_init.cc: Likewise.
+ * testsuite/29_atomics/atomic_integral/cons/value_init.cc: Likewise.
+ * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc: Likewise.
+ * testsuite/29_atomics/atomic_ref/generic.cc: Likewise.
+ * testsuite/29_atomics/atomic_ref/integral.cc: Likewise.
+ * testsuite/29_atomics/atomic_ref/pointer.cc: Likewise.
+
+2023-09-14 François Dumont <fdumont@gcc.gnu.org>
+
+ * testsuite/19_diagnostics/stacktrace/synopsis.cc: Add
+ { dg-require-normal-namespace "" }.
+
+2023-09-13 François Dumont <fdumont@gcc.gnu.org>
+
+ * include/std/format (std::__format::_Arg_store): Explicit version
+ namespace on make_format_args friend declaration.
+
+2023-09-12 Patrick Palka <ppalka@redhat.com>
+
+ PR libstdc++/111327
+ * include/std/functional (_GLIBCXX_NOT_FN_CALL_OP): Also define
+ a deleted fallback operator() overload. Constrain both the
+ enabled and deleted overloads accordingly.
+ * testsuite/20_util/function_objects/not_fn/111327.cc: New test.
+
+2023-09-12 Patrick Palka <ppalka@redhat.com>
+
+ PR libstdc++/111327
+ * include/std/functional (_Bind_front::operator()): Add deleted
+ fallback overloads for each const/ref qualifier pair. Give the
+ enabled overloads dummy constraints to make each one more
+ specialized than the corresponding deleted overload.
+ * testsuite/20_util/function_objects/bind_front/111327.cc: New test.
+
+2023-09-12 Patrick Palka <ppalka@redhat.com>
+
+ * include/std/functional (_Bind_front0): Remove.
+ (_Bind_front_t): Adjust.
+
+2023-09-12 Jonathan Wakely <jwakely@redhat.com>
+
+ * python/libstdcxx/v6/printers.py: Reformat.
+ * python/libstdcxx/v6/xmethods.py: Likewise.
+
+2023-09-11 Jonathan Wakely <jwakely@redhat.com>
+
+ * src/c++11/debug.cc (acquire_sequence_ptr_for_lock): New
+ function.
+ (reset_sequence_ptr): New function.
+ (_Safe_iterator_base::_M_detach)
+ (_Safe_local_iterator_base::_M_detach): Replace bare atomic_load
+ with acquire_sequence_ptr_for_lock.
+ (_Safe_iterator_base::_M_reset): Replace bare atomic_store with
+ reset_sequence_ptr.
+
+2023-09-11 Jonathan Wakely <jwakely@redhat.com>
+
+ * src/c++11/Makefile.am: Add new file.
+ * src/c++11/Makefile.in: Regenerate.
+ * src/c++11/debug.cc (__glibcxx_assert_fail): Move to ...
+ * src/c++11/assert_fail.cc: New file.
+
+2023-09-11 Ken Matsui <kmatsui@gcc.gnu.org>
+
+ * include/bits/c++config (_GLIBCXX_HAS_BUILTIN): Do not undef.
+ (_GLIBCXX_USE_BUILTIN_TRAIT): Define.
+
+2023-09-11 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/version.def (__cpp_lib_formatters): Define.
+ * include/bits/version.h: Regenerate.
+ * include/std/stacktrace (formatter<stacktrace_entry>)
+ (formatter<basic_stacktrace<Alloc>>): Define.
+ * include/std/thread (formatter<thread::id, charT>): Define.
+ * testsuite/19_diagnostics/stacktrace/output.cc: New test.
+ * testsuite/19_diagnostics/stacktrace/synopsis.cc: Add
+ std::formatter specializations.
+ * testsuite/19_diagnostics/stacktrace/version.cc: Check
+ __cpp_lib_formatters macro.
+ * testsuite/30_threads/thread/id/hash.cc: Remove gthreads
+ dependency.
+ * testsuite/30_threads/thread/id/operators.cc: Likewise.
+ * testsuite/30_threads/thread/id/operators_c++20.cc: Likewise.
+ * testsuite/30_threads/thread/id/output.cc: New test.
+
+2023-09-11 Pekka Seppänen <pexu@gcc.mail.kapsi.fi>
+
+ * src/c++11/cow-locale_init.cc: Add [[maybe_unused]] attribute.
+ * src/c++17/fs_path.cc (path::_S_convert_loc): Likewise.
+ * src/filesystem/path.cc (path::_S_convert_loc): Likewise.
+
2023-09-08 Jonathan Wakely <jwakely@redhat.com>
* acinclude.m4 (GLIBCXX_CONFIGURE): Add c++23 directory.
diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4
index 34faa3c..d8f0ba1 100644
--- a/libstdc++-v3/acinclude.m4
+++ b/libstdc++-v3/acinclude.m4
@@ -5786,6 +5786,37 @@ AC_LANG_SAVE
AC_LANG_RESTORE
])
+dnl
+dnl Check whether the Windows CRT function _get_osfhandle is available.
+dnl
+dnl Defines:
+dnl _GLIBCXX_USE__GET_OSFHANDLE if _get_osfhandle is in <io.h> for Windows.
+dnl
+AC_DEFUN([GLIBCXX_CHECK_FILEBUF_NATIVE_HANDLES], [
+AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+
+ AC_MSG_CHECKING([whether _get_osfhandle is defined in <io.h>])
+ AC_TRY_COMPILE([
+ #if defined(_WIN32) && !defined(__CYGWIN__)
+ # include <stdint.h>
+ # include <io.h>
+ #endif
+ ],[
+ FILE* file = 0;
+ int fd = fileno(file);
+ intptr_t crt_handle = _get_osfhandle(fd);
+ void* win32_handle = reinterpret_cast<void*>(crt_handle);
+ ], [ac_get_osfhandle=yes], [ac_get_osfhandle=no])
+ if test "$ac_objext" = yes; then
+ AC_DEFINE_UNQUOTED(_GLIBCXX_USE__GET_OSFHANDLE, 1,
+ [Define if _get_osfhandle should be used for filebuf::native_handle().])
+ fi
+ AC_MSG_RESULT($ac_get_osfhandle)
+
+ AC_LANG_RESTORE
+])
+
# Macros from the top-level gcc directory.
m4_include([../config/gc++filt.m4])
m4_include([../config/tls.m4])
diff --git a/libstdc++-v3/config.h.in b/libstdc++-v3/config.h.in
index 0abe62a..4af7339 100644
--- a/libstdc++-v3/config.h.in
+++ b/libstdc++-v3/config.h.in
@@ -1095,6 +1095,9 @@
/* Defined if Sleep exists. */
#undef _GLIBCXX_USE_WIN32_SLEEP
+/* Define if _get_osfhandle should be used for filebuf::native_handle(). */
+#undef _GLIBCXX_USE__GET_OSFHANDLE
+
/* Define to 1 if a verbose library is built, or 0 otherwise. */
#undef _GLIBCXX_VERBOSE
diff --git a/libstdc++-v3/config/abi/pre/gnu.ver b/libstdc++-v3/config/abi/pre/gnu.ver
index a2e5f3b..15b50d5 100644
--- a/libstdc++-v3/config/abi/pre/gnu.ver
+++ b/libstdc++-v3/config/abi/pre/gnu.ver
@@ -2519,6 +2519,8 @@ GLIBCXX_3.4.31 {
GLIBCXX_3.4.32 {
_ZSt21ios_base_library_initv;
_ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EE11_S_allocateERS3_[jmy];
+ # std::basic_file<>::native_handle()
+ _ZNKSt12__basic_fileI[cw]E13native_handleEv;
} GLIBCXX_3.4.31;
# Symbols in the support library (libsupc++) have their own tag.
diff --git a/libstdc++-v3/config/io/basic_file_stdio.cc b/libstdc++-v3/config/io/basic_file_stdio.cc
index 7b1729a..a33b53b 100644
--- a/libstdc++-v3/config/io/basic_file_stdio.cc
+++ b/libstdc++-v3/config/io/basic_file_stdio.cc
@@ -66,6 +66,11 @@
#include <limits> // For <off_t>::max() and min() and <streamsize>::max()
+#if _GLIBCXX_USE__GET_OSFHANDLE
+# include <stdint.h> // For intptr_t
+# include <io.h> // For _get_osfhandle
+#endif
+
namespace
{
// Map ios_base::openmode flags to a string for use in fopen().
@@ -460,6 +465,19 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
return 0;
}
+ __basic_file<char>::native_handle_type
+ __basic_file<char>::native_handle() const noexcept
+ {
+#ifdef _GLIBCXX_USE_STDIO_PURE
+ return _M_cfile;
+#elif _GLIBCXX_USE__GET_OSFHANDLE
+ const intptr_t handle = _M_cfile ? _get_osfhandle(fileno(_M_cfile)) : -1;
+ return reinterpret_cast<native_handle>(handle);
+#else
+ return fileno(_M_cfile);
+#endif
+ }
+
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace
diff --git a/libstdc++-v3/config/io/basic_file_stdio.h b/libstdc++-v3/config/io/basic_file_stdio.h
index 29bd653..7b735654 100644
--- a/libstdc++-v3/config/io/basic_file_stdio.h
+++ b/libstdc++-v3/config/io/basic_file_stdio.h
@@ -127,6 +127,19 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
streamsize
showmanyc();
+
+#if __cplusplus >= 201103L
+#ifdef _GLIBCXX_USE_STDIO_PURE
+ using native_handle_type = __c_file*; // FILE*
+#elif _GLIBCXX_USE__GET_OSFHANDLE
+ using native_handle_type = void*; // HANDLE
+#else
+ using native_handle_type = int; // POSIX file descriptor
+#endif
+
+ native_handle_type
+ native_handle() const noexcept;
+#endif
};
_GLIBCXX_END_NAMESPACE_VERSION
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
index 9ac6771..13fc03b 100755
--- a/libstdc++-v3/configure
+++ b/libstdc++-v3/configure
@@ -73906,6 +73906,63 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+# For __basic_file::native_handle()
+
+
+ ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether _get_osfhandle is defined in <io.h>" >&5
+$as_echo_n "checking whether _get_osfhandle is defined in <io.h>... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #if defined(_WIN32) && !defined(__CYGWIN__)
+ # include <stdint.h>
+ # include <io.h>
+ #endif
+
+int
+main ()
+{
+
+ FILE* file = 0;
+ int fd = fileno(file);
+ intptr_t crt_handle = _get_osfhandle(fd);
+ void* win32_handle = reinterpret_cast<void*>(crt_handle);
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_get_osfhandle=yes
+else
+ ac_get_osfhandle=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ if test "$ac_objext" = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define _GLIBCXX_USE__GET_OSFHANDLE 1
+_ACEOF
+
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_get_osfhandle" >&5
+$as_echo "$ac_get_osfhandle" >&6; }
+
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
# Define documentation rules conditionally.
# See if makeinfo has been installed and is modern enough
diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac
index fc0f252..b3991cc 100644
--- a/libstdc++-v3/configure.ac
+++ b/libstdc++-v3/configure.ac
@@ -553,6 +553,9 @@ GLIBCXX_CHECK_ALIGNAS_CACHELINE
# For using init_priority in ios_init.cc
GLIBCXX_CHECK_INIT_PRIORITY
+# For __basic_file::native_handle()
+GLIBCXX_CHECK_FILEBUF_NATIVE_HANDLES
+
# Define documentation rules conditionally.
# See if makeinfo has been installed and is modern enough
diff --git a/libstdc++-v3/doc/html/manual/configure.html b/libstdc++-v3/doc/html/manual/configure.html
index c81e599..346b5d3 100644
--- a/libstdc++-v3/doc/html/manual/configure.html
+++ b/libstdc++-v3/doc/html/manual/configure.html
@@ -208,8 +208,8 @@
C++ includes. If enabled (as by default), and the compiler
seems capable of passing the simple sanity checks thrown at
it, try to build stdc++.h.gch as part of the make process.
- In addition, this generated file is used later on (by appending <code class="code">
- --include bits/stdc++.h </code> to CXXFLAGS) when running the
+ In addition, this generated file is used later on (by appending
+ <code class="code">-include bits/stdc++.h</code> to CXXFLAGS) when running the
testsuite.
</p></dd><dt><span class="term"><code class="code">--enable-extern-template</code>[default]</span></dt><dd><p>Use extern template to pre-instantiate all required
specializations for certain types defined in the standard libraries.
diff --git a/libstdc++-v3/doc/html/manual/setup.html b/libstdc++-v3/doc/html/manual/setup.html
index f27b8d8..1963cdf 100644
--- a/libstdc++-v3/doc/html/manual/setup.html
+++ b/libstdc++-v3/doc/html/manual/setup.html
@@ -2,11 +2,11 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 2. Setup</title><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="intro.html" title="Part I.  Introduction" /><link rel="prev" href="bugs.html" title="Bugs" /><link rel="next" href="configure.html" title="Configure" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 2. Setup</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="bugs.html">Prev</a> </td><th width="60%" align="center">Part I. 
Introduction
-</th><td width="20%" align="right"> <a accesskey="n" href="configure.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.setup"></a>Chapter 2. Setup</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="setup.html#manual.intro.setup.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="configure.html">Configure</a></span></dt><dt><span class="section"><a href="make.html">Make</a></span></dt></dl></div><p>To transform libstdc++ sources into installed include files
+</th><td width="20%" align="right"> <a accesskey="n" href="configure.html">Next</a></td></tr></table><hr /></div><div class="chapter"><div class="titlepage"><div><div><h2 class="title"><a id="manual.intro.setup"></a>Chapter 2. Setup</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="setup.html#manual.intro.setup.prereq">Prerequisites</a></span></dt><dt><span class="section"><a href="configure.html">Configure</a></span></dt><dt><span class="section"><a href="make.html">Make</a></span></dt></dl></div><p>Transforming libstdc++ sources into installed include files
and properly built binaries useful for linking to other software is
- a multi-step process. Steps include getting the sources,
- configuring and building the sources, testing, and installation.
- </p><p>The general outline of commands is something like:
+ done as part of building GCC. Building libstdc++ separately from the
+ rest of GCC is not supported.
+ </p><p>The general outline of commands to build GCC is something like:
</p><pre class="programlisting">
<em class="replaceable"><code>get gcc sources</code></em>
<em class="replaceable"><code>extract into gccsrcdir</code></em>
@@ -77,8 +77,10 @@ ln -s libiconv-1.16 libiconv
</p></li></ul></div><p>
If GCC 3.1.0 or later on is being used on GNU/Linux, an attempt
will be made to use "C" library functionality necessary for
- C++ named locale support. For GCC 4.6.0 and later, this
- means that glibc 2.3 or later is required.
+ C++ named locale support, e.g. the <code class="function">newlocale</code>
+ and <code class="function">uselocale</code> functions.
+ For GCC 4.6.0 and later,
+ this means that glibc 2.3 or later is required.
</p><p>
If the 'gnu' locale model is being used, the following
locales are used and tested in the libstdc++ testsuites.
@@ -116,7 +118,17 @@ zh_TW BIG5
libstdc++ after "C" locales are installed is not necessary.
</p><p>
To install support for locales, do only one of the following:
- </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>install all locales</p></li><li class="listitem"><p>install just the necessary locales</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p>with Debian GNU/Linux:</p><p> Add the above list, as shown, to the file
+ </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>install all locales, e.g., run
+ <code class="code"> dnf install glibc-all-langpacks </code>
+ for Fedora and related distributions.
+ </p></li><li class="listitem"><p>install just the necessary locales</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p>with Debian GNU/Linux:</p><p> Add the above list, as shown, to the file
<code class="code">/etc/locale.gen</code> </p><p> run <code class="code">/usr/sbin/locale-gen</code> </p></li><li class="listitem"><p>on most Unix-like operating systems:</p><p><code class="code"> localedef -i de_DE -f ISO-8859-1 de_DE </code></p><p>(repeat for each entry in the above list) </p></li><li class="listitem"><p>
Instructions for other operating systems solicited.
- </p></li></ul></div></li></ul></div></dd></dl></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bugs.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="intro.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="configure.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Bugs </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Configure</td></tr></table></div></body></html> \ No newline at end of file
+ </p></li></ul></div></li></ul></div>
+ Some tests for the <code class="code">std::messages</code> facet require a
+ message catalog created by the <span class="command"><strong>msgfmt</strong></span> utility.
+ That is usually installed as part of the GNU gettext library.
+ If <span class="command"><strong>msgfmt</strong></span> is not available, some tests under
+ the <code class="filename">22_locale/messages</code>
+ directory will fail.
+ </dd></dl></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="bugs.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="intro.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="configure.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Bugs </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Configure</td></tr></table></div></body></html> \ No newline at end of file
diff --git a/libstdc++-v3/doc/html/manual/status.html b/libstdc++-v3/doc/html/manual/status.html
index d046bd2..97f8030 100644
--- a/libstdc++-v3/doc/html/manual/status.html
+++ b/libstdc++-v3/doc/html/manual/status.html
@@ -1325,10 +1325,10 @@ or any notes about the implementation.
</td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_type_identity &gt;= 201806L</code> (since 9.4, see Note 1) </td></tr><tr><td align="left"> <code class="code">unwrap_ref_decay</code> and <code class="code">unwrap_reference</code> </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0318r1.pdf" target="_top">
P0318R1 </a>
- </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_unwrap_ref &gt;= 201811L</code> (since 9.4, see Note 1) </td></tr><tr bgcolor="#B0B0B0"><td align="left"> Improving Completeness Requirements for Type Traits </td><td align="left">
+ </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_unwrap_ref &gt;= 201811L</code> (since 9.4, see Note 1) </td></tr><tr><td align="left"> Improving Completeness Requirements for Type Traits </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1285r0.pdf" target="_top">
P1285R0 </a>
- </td><td align="center"> Partial </td><td align="left"> </td></tr><tr><td align="left"> Missing feature test macros </td><td align="left">
+ </td><td align="center"> — </td><td align="left"> Most misuses are diagnosed, but not all. </td></tr><tr><td align="left"> Missing feature test macros </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1353r0.html" target="_top">
P1353R0 </a>
</td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr><td align="left"> Making std::underlying_type SFINAE-friendly </td><td align="left">
@@ -1411,18 +1411,18 @@ or any notes about the implementation.
</td><td align="center"> 10.1 </td><td align="left"> </td></tr><tr><td align="left"> Ranges Design Cleanup </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1252r2.pdf" target="_top">
P1252R2 </a>
- </td><td align="center"> 10.1 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Avoid template bloat for <code class="code">safe_ranges</code> in combination with ‘subrange-y’ view adaptors.</td><td align="left">
+ </td><td align="center"> 10.1 </td><td align="left"> </td></tr><tr><td align="left"> Avoid template bloat for <code class="code">safe_ranges</code> in combination with ‘subrange-y’ view adaptors.</td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1739r4.html" target="_top">
P1739R4 </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr><td colspan="4" align="left">
+ </td><td align="center"> 12.1 </td><td align="left"> </td></tr><tr><td colspan="4" align="left">
<span class="bold"><strong>Time, dates, calendars, time zones</strong></span>
- </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Extending chrono to Calendars and Time Zones </td><td align="left">
+ </td></tr><tr><td align="left"> Extending chrono to Calendars and Time Zones </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0355r7.html" target="_top">
P0355R7 </a>
- </td><td align="left"> </td><td align="left"> <code class="code">__cpp_lib_chrono &gt;= 201803L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Miscellaneous minor fixes for chrono </td><td align="left">
+ </td><td align="left"> 14.1 (see Note 2) </td><td align="left"> <code class="code">__cpp_lib_chrono &gt;= 201803L</code> </td></tr><tr><td align="left"> Miscellaneous minor fixes for chrono </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1466r3.html" target="_top">
P1466R3 </a>
- </td><td align="left"> </td><td align="left"> <code class="code">__cpp_lib_chrono &gt;= 201907L</code> </td></tr><tr><td align="left"> <code class="code">&lt;chrono&gt;</code> <code class="code">zero()</code>, <code class="code">min()</code>, and <code class="code">max()</code> should be <code class="code">noexcept</code> </td><td align="left">
+ </td><td align="left"> 11.1 (see Note 2) </td><td align="left"> <code class="code">__cpp_lib_chrono &gt;= 201907L</code> </td></tr><tr><td align="left"> <code class="code">&lt;chrono&gt;</code> <code class="code">zero()</code>, <code class="code">min()</code>, and <code class="code">max()</code> should be <code class="code">noexcept</code> </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0972r0.pdf" target="_top">
P0972R0 </a>
</td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr><td colspan="4" align="left">
@@ -1449,28 +1449,28 @@ or any notes about the implementation.
</td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_char8_t &gt;= 201811L</code> </td></tr><tr><td align="left"> <code class="code">char8_t</code> backward compatibility remediation </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1423r3.html" target="_top">
P1423R3 </a>
- </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_char8_t &gt;= 201907L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Text formatting </td><td align="left">
+ </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_char8_t &gt;= 201907L</code> </td></tr><tr><td align="left"> Text formatting </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0645r10.html" target="_top">
P0645R10 </a>
- </td><td align="center"> </td><td align="left">
+ </td><td align="center"> 13.1 </td><td align="left">
<code class="code">__cpp_lib_format &gt;= 201907L</code>
- </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Integration of chrono with text formatting </td><td align="left">
+ </td></tr><tr><td align="left"> Integration of chrono with text formatting </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1361r2.pdf" target="_top">
P1361R2 </a>
- </td><td align="center"> </td><td align="left">
+ </td><td align="center"> 13.1 </td><td align="left">
<code class="code">__cpp_lib_format &gt;= 201907L</code>
- </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Printf corner cases in <code class="code">std::format</code> </td><td align="left">
+ </td></tr><tr><td align="left"> Printf corner cases in <code class="code">std::format</code> </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1652r1.html" target="_top">
P1652R1 </a>
- </td><td align="center"> </td><td align="left">
+ </td><td align="center"> 13.1 </td><td align="left">
<code class="code">__cpp_lib_format &gt;= 201907L</code>
</td></tr><tr><td align="left"> String Prefix and Suffix Checking </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0457r2.html" target="_top">
P0457R2 </a>
- </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_starts_ends_with &gt;= 201711L</code> (since 9.4, see Note 1) </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Update The Reference To The Unicode Standard </td><td align="left">
+ </td><td align="center"> 9.1 </td><td align="left"> <code class="code">__cpp_lib_starts_ends_with &gt;= 201711L</code> (since 9.4, see Note 1) </td></tr><tr><td align="left"> Update The Reference To The Unicode Standard </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1025r1.html" target="_top">
P1025R1 </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr><td colspan="4" align="left">
+ </td><td align="center"> —</td><td align="left"> </td></tr><tr><td colspan="4" align="left">
<span class="bold"><strong>Containers</strong></span>
</td></tr><tr><td align="left"> span: bounds-safe views for sequences of objects </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0122r7.pdf" target="_top">
@@ -1492,10 +1492,10 @@ or any notes about the implementation.
</td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_to_array &gt;= 201907L</code> </td></tr><tr><td align="left"> Checking for Existence of an Element in Associative Containers </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0458r2.html" target="_top">
P0458R2 </a>
- </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Comparing Unordered Containers </td><td align="left">
+ </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr><td align="left"> Comparing Unordered Containers </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0809r0.pdf" target="_top">
P0809R0 </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> Heterogeneous lookup for unordered containers </td><td align="left">
+ </td><td align="center"> — </td><td align="left"> </td></tr><tr><td align="left"> Heterogeneous lookup for unordered containers </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0919r3.html" target="_top">
P0919R3 </a>
</td><td align="center"> 11.1 </td><td align="left"> <code class="code">__cpp_lib_generic_unordered_lookup &gt;= 201811</code> </td></tr><tr><td align="left"> Refinement Proposal for P0919 </td><td align="left">
@@ -1570,7 +1570,7 @@ or any notes about the implementation.
</td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Thou Shalt Not Specialize std Function Templates! </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0551r3.pdf" target="_top">
P0551R3 </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> Bit-casting object representations </td><td align="left">
+ </td><td align="center"> </td><td align="left">These changes will not be implemented.</td></tr><tr><td align="left"> Bit-casting object representations </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0476r2.html" target="_top">
P0476R2 </a>
</td><td align="center"> 11.1 </td><td align="left"> <code class="code">__cpp_lib_bit_cast &gt;= 201806L</code> </td></tr><tr><td align="left"> Integral power-of-2 operations </td><td align="left">
@@ -1591,10 +1591,10 @@ or any notes about the implementation.
</td><td align="center"> — </td><td align="left"> </td></tr><tr><td align="left"> Add <code class="code">shift</code> to <code class="code">&lt;algorithm&gt;</code> </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0769r2.pdf" target="_top">
P0769R2 </a>
- </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_shift &gt;= 201806L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Standard Library Specification in a Concepts and Contracts World </td><td align="left">
+ </td><td align="center"> 10.1 </td><td align="left"> <code class="code">__cpp_lib_shift &gt;= 201806L</code> </td></tr><tr><td align="left"> Standard Library Specification in a Concepts and Contracts World </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0788r3.pdf" target="_top">
P0788R3 </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> <code class="code">explicit(bool)</code> </td><td align="left">
+ </td><td align="center"> — </td><td align="left"> </td></tr><tr><td align="left"> <code class="code">explicit(bool)</code> </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0892r2.html" target="_top">
P0892R2 </a>
</td><td align="center"> — </td><td align="left"> </td></tr><tr><td align="left"> Eradicating unnecessarily explicit default constructors from the standard library </td><td align="left">
@@ -1630,10 +1630,10 @@ or any notes about the implementation.
</td><td align="center"> 7.1 </td><td align="left"> </td></tr><tr><td align="left"> Editorial Guidance for merging P0019r8 and P0528r3 </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1123r0.html" target="_top">
P1123R0 </a>
- </td><td align="center"> — </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Cleaning up Clause 20 </td><td align="left">
+ </td><td align="center"> — </td><td align="left"> </td></tr><tr><td align="left"> Cleaning up Clause 20 </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1148r0.pdf" target="_top">
P1148R0 </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Completing the Rebase of Library Fundamentals, Version 3, Working Draft </td><td align="left">
+ </td><td align="center"> — </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Completing the Rebase of Library Fundamentals, Version 3, Working Draft </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1210r0.html" target="_top">
P1210R0 </a>
</td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> Alternative Wording for P0907R4 Signed Integers are Two's Complement </td><td align="left">
@@ -1669,13 +1669,13 @@ or any notes about the implementation.
</td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1463r1.pdf" target="_top">
P1463R1 </a>
- </td><td align="center"> 10.1 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left">
+ </td><td align="center"> 10.1 </td><td align="left"> </td></tr><tr><td align="left">
Mandating the Standard Library:
Clause 22 - Iterators library
</td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1464r1.pdf" target="_top">
P1464R1 </a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> Make <code class="code">create_directory()</code> Intuitive </td><td align="left">
+ </td><td align="center"> — </td><td align="left"> </td></tr><tr><td align="left"> Make <code class="code">create_directory()</code> Intuitive </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1164r1.pdf" target="_top">
P1164R1
</a>
@@ -1711,6 +1711,10 @@ or any notes about the implementation.
Note 1: This feature is supported in older releases but the
<code class="code">__cpp_lib</code> macro is not defined to the right value
(or not defined at all) until the version shown in parentheses.
+</p><p>
+Note 2: The C++20 calendar types are supported since 11.1,
+time zones and UTC are supported since 13.1,
+and <code class="function">chrono::parse</code> is supported since 14.1.
</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="status.iso.2023"></a>C++ 2023</h3></div></div></div><p>
In this implementation the <code class="literal">-std=gnu++23</code> or
<code class="literal">-std=c++23</code> flag must be used to enable language
@@ -1780,11 +1784,88 @@ or any notes about the implementation.
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p1659r3.html" target="_top">
P1659R3
</a>
- </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_ranges_starts_ends_with &gt;= 202106L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> <code class="code">zip</code> </td><td align="left">
+ </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_ranges_starts_ends_with &gt;= 202106L</code> </td></tr><tr><td align="left"> <code class="code">zip</code> </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2321r2.html" target="_top">
P2321R2
</a>
- </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_ranges_zip &gt;= 202110L</code> </td></tr><tr><td colspan="4" align="left">
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_ranges_zip &gt;= 202110L</code> </td></tr><tr><td align="left"> <code class="code">views::repeat</code> </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2474r2.html" target="_top">
+ P2474R2
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_ranges_repeat &gt;= 202207L</code> </td></tr><tr><td align="left"> <code class="code">views::enumerate</code> </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2164r9.pdf" target="_top">
+ P2164R9
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_ranges_enumerate &gt;= 202302L</code> </td></tr><tr><td align="left"> <code class="code">views::join_with</code> </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2441r2.html" target="_top">
+ P2441R2
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_ranges_join_with &gt;= 202202L</code> </td></tr><tr><td align="left">
+ Windowing range adaptors: <code class="code">views::chunk</code>
+ and <code class="code">views::slide</code> </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2442r2.html" target="_top">
+ P2442R2
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_ranges_slide &gt;= 202202L</code> </td></tr><tr><td align="left"> <code class="code">views::chunk_by</code> </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2443r1.html" target="_top">
+ P2443R1
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_ranges_chunk_by &gt;= 202202L</code> </td></tr><tr><td align="left"> <code class="code">views::stride</code> </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1899r3.html" target="_top">
+ P1899R3
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_ranges_stride &gt;= 202207L</code> </td></tr><tr><td align="left"> <code class="code">views::cartesian_product</code> </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2374r4.html" target="_top">
+ P2374R4
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_ranges_cartesian_product &gt;= 202207L</code> </td></tr><tr><td align="left"> Empty Product for certain Views </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2540r1.html" target="_top">
+ P2540R1
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_ranges_cartesian_product &gt;= 202207L</code> </td></tr><tr><td align="left"> <code class="code">views::as_rvalue</code> </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2446r2.html" target="_top">
+ P2446R2
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_ranges_as_rvalue &gt;= 202207L</code> </td></tr><tr><td align="left">
+ <code class="code">cbegin</code> should always return a constant iterator
+ </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2278r4.html" target="_top">
+ P2278R4
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_ranges_as_const &gt;= 202207L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> <code class="code">ranges::to</code> </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1206r7.pdf" target="_top">
+ P1206R7
+ </a>
+ </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_ranges_to_container &gt;= 202202L</code> </td></tr><tr><td align="left"> Pipe support for user-defined range adaptors </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2387r3.html" target="_top">
+ P2387R3
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left">
+ <code class="code">__cpp_lib_bind_pack &gt;= 202202L</code>,
+ <code class="code">__cpp_lib_ranges &gt;= 202202L</code>
+ </td></tr><tr bgcolor="#B0B0B0"><td align="left">
+ <code class="code">ranges::iota</code>, <code class="code">ranges::shift_left</code>,
+ and <code class="code">ranges::shift_right</code>
+ </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2440r1.html" target="_top">
+ P2440R1
+ </a>
+ </td><td align="center"> 13.1 (<code class="code">ranges::iota</code>) </td><td align="left">
+ <code class="code">__cpp_lib_ranges_iota &gt;= 202202L</code>,
+ <code class="code">__cpp_lib_shift &gt;= 202202L</code>
+ </td></tr><tr><td align="left"> <code class="code">ranges::find_last</code> </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1223r5.pdf" target="_top">
+ P1223R5
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_ranges_find_last &gt;= 202207L</code> </td></tr><tr><td align="left"> <code class="code">ranges::contains</code> </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2302r4.html" target="_top">
+ P2302R4
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_ranges_contains &gt;= 202207L</code> </td></tr><tr><td align="left"> <code class="code">ranges::fold</code> </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2322r6.html" target="_top">
+ P2322R6
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_ranges_fold &gt;= 202207L</code> </td></tr><tr><td colspan="4" align="left">
<span class="bold"><strong>Compile-time programming</strong></span>
</td></tr><tr><td align="left"> A proposal for a type trait to detect scoped enumerations </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1048r1.pdf" target="_top">
@@ -1818,11 +1899,11 @@ or any notes about the implementation.
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p1413r3.pdf" target="_top">
P1413R3
</a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> A type trait to detect reference binding to temporary </td><td align="left">
+ </td><td align="center"> </td><td align="left"> </td></tr><tr bgcolor="#B0B0B0"><td align="left"> A type trait to detect reference binding to temporary </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2255r2.html" target="_top">
P2255R2
</a>
- </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_reference_from_temporary &gt;= 202202L</code> </td></tr><tr><td colspan="4" align="left">
+ </td><td align="center"> 13.1 (missing changes to <code class="code">std::tuple</code> </td><td align="left"> <code class="code">__cpp_lib_reference_from_temporary &gt;= 202202L</code> </td></tr><tr><td colspan="4" align="left">
<span class="bold"><strong>Strings and text</strong></span>
</td></tr><tr><td align="left"> string contains function </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1679r3.html" target="_top">
@@ -1854,7 +1935,101 @@ or any notes about the implementation.
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2077r3.html" target="_top">
P2077R3
</a>
- </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_associative_heterogeneous_erasure &gt;= 202110L</code> </td></tr><tr><td colspan="4" align="left">
+ </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_associative_heterogeneous_erasure &gt;= 202110L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> <code class="code">&lt;flat_map&gt;</code> </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p0429r9.pdf" target="_top">
+ P0429R9
+ </a>
+ </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_flat_map &gt;= 202207L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> <code class="code">&lt;flat_set&gt;</code> </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1222r4.pdf" target="_top">
+ P1222R4
+ </a>
+ </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_flat_set &gt;= 202207L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> <code class="code">mdspan</code> </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p0009r18.html" target="_top">
+ P0009R18
+ </a>
+ </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_mdspan &gt;= 202207L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left">
+ <code class="code">index_type</code> &amp; <code class="code">size_type</code>
+ in <code class="code">mdspan</code>
+ </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2599r2.pdf" target="_top">
+ P2599R2
+ </a>
+ </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_mdspan &gt;= 202207L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left">
+ <code class="code">mdspan</code>: rename <code class="code">pointer</code> and
+ <code class="code">contiguous</code>
+ </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2604r0.html" target="_top">
+ P2604R0
+ </a>
+ </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_mdspan &gt;= 202207L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Add the missing <code class="code">empty</code> to <code class="code">mdspan</code> </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2613r1.html" target="_top">
+ P2613R1
+ </a>
+ </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_mdspan &gt;= 202207L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left">
+ <code class="code">layout_stride</code> static extents default constructor fix
+ </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2763r1.html" target="_top">
+ P2763R1
+ </a>
+ </td><td align="center"> </td><td align="left"> </td></tr><tr><td colspan="4" align="left">
+ <span class="bold"><strong>Strings and text</strong></span>
+ </td></tr><tr><td align="left"> std::format improvements </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2216r3.html" target="_top">
+ P2216R3
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_format &gt;= 202106L</code> </td></tr><tr><td align="left">
+ Add support for <code class="code">std::generator</code>-like types to
+ <code class="code">std::format</code>
+ </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2418r2.html" target="_top">
+ P2418R2
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_format &gt;= 202110L</code> </td></tr><tr><td align="left">
+ Expose <code class="code">std::<span class="emphasis"><em>basic-format-string</em></span>&lt;charT, Args...&gt;</code>
+ </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2508r1.html" target="_top">
+ P2508R1
+ </a>
+ </td><td align="center"> 13.1 (feature test macro not defined)</td><td align="left"> <code class="code">__cpp_lib_format &gt;= 202207L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left">
+ Clarify handling of encodings in localized formatting of chrono types
+ </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2419r2.html" target="_top">
+ P2419R2
+ </a>
+ </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_format &gt;= 202207L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Formatting Ranges </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2286r8.html" target="_top">
+ P2286R8
+ </a>
+ </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_format_ranges &gt;= 202207L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Improve default container formatting </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2585r1.html" target="_top">
+ P2585R1
+ </a>
+ </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_format_ranges &gt;= 202207L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Formatted output </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2093r14.html" target="_top">
+ P2093R14
+ </a>
+ </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_print &gt;= 202207L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left">
+ Should the output of std::print to a terminal be synchronized with
+ the underlying stream?
+ </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2539r3.html" target="_top">
+ P2539R3
+ </a>
+ </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left">
+ Formatting <code class="code">thread::id</code> and <code class="code">stacktrace</code>
+ </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2693r1.pdf" target="_top">
+ P2693R1
+ </a>
+ </td><td align="center"> 14.1 </td><td align="left"> <code class="code">__cpp_lib_formatters &gt;= 202302L</code> </td></tr><tr><td align="left">
+ Add Constexpr Modifiers to Functions <code class="code">to_chars</code> and
+ <code class="code">from_chars</code> for Integral Types in
+ <code class="code">&lt;charconv&gt;</code> Header
+ </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2291r3.pdf" target="_top">
+ P2291R3
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_constexpr_charconv &gt;= 202207L</code> </td></tr><tr><td colspan="4" align="left">
<span class="bold"><strong>Miscellaneous</strong></span>
</td></tr><tr><td align="left"> Inheriting from <code class="code">std::variant</code> </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2162r2.html" target="_top">
@@ -1876,11 +2051,21 @@ or any notes about the implementation.
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p0323r12.html" target="_top">
P0323R12
</a>
- </td><td align="center"> 12.1 </td><td align="left"> <code class="code">__cpp_lib_expected &gt;= 202202L</code> </td></tr><tr><td align="left"> Monadic operations for std::optional </td><td align="left">
+ </td><td align="center"> 12.1 </td><td align="left"> <code class="code">__cpp_lib_expected &gt;= 202202L</code> </td></tr><tr><td align="left"> Monadic operations for std::expected </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2505r5.html" target="_top">
+ P2505R5
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_expected &gt;= 202211L</code> </td></tr><tr><td align="left"> Monadic operations for std::optional </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p0798r8.html" target="_top">
P0798R8
</a>
- </td><td align="center"> 12.1 </td><td align="left"> <code class="code">__cpp_lib_optional &gt;= 202110L</code> </td></tr><tr><td align="left"> <code class="code">move_only_function</code> </td><td align="left">
+ </td><td align="center"> 12.1 </td><td align="left"> <code class="code">__cpp_lib_optional &gt;= 202110L</code> </td></tr><tr bgcolor="#C8B0B0"><td align="left">
+ Compatibility between <code class="code">tuple</code>, <code class="code">pair</code>
+ and <span class="emphasis"><em>tuple-like</em></span> objects </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2165r4.pdf" target="_top">
+ P2165R4
+ </a>
+ </td><td align="center"> </td><td align="left"> <code class="code">__cpp_lib_tuple_like &gt;= 202207L</code> </td></tr><tr><td align="left"> <code class="code">move_only_function</code> </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p0288r9.html" target="_top">
P0288R9
</a>
@@ -1900,7 +2085,15 @@ or any notes about the implementation.
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2401r0.html" target="_top">
P2401R0
</a>
- </td><td align="center"> 12.1 </td><td align="left"> </td></tr><tr><td align="left"> Support C atomics in C++ </td><td align="left">
+ </td><td align="center"> 12.1 </td><td align="left"> </td></tr><tr><td align="left"> A more constexpr bitset </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2417r2.pdf" target="_top">
+ P2417R2
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> <code class="code">__cpp_lib_constexpr_bitset &gt;= 202207L</code> </td></tr><tr><td align="left"> Extended floating-point types and standard names </td><td align="left">
+ <a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1467r9.html" target="_top">
+ P1467R9
+ </a>
+ </td><td align="center"> 13.1 </td><td align="left"> </td></tr><tr><td align="left"> Support C atomics in C++ </td><td align="left">
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p0943r6.html" target="_top">
P0943R6
</a>
diff --git a/libstdc++-v3/doc/html/manual/test.html b/libstdc++-v3/doc/html/manual/test.html
index fadadf2..b29c2eb 100644
--- a/libstdc++-v3/doc/html/manual/test.html
+++ b/libstdc++-v3/doc/html/manual/test.html
@@ -351,6 +351,16 @@ cat 27_io/objects/char/3_xin.in | a.out</pre></dd><dt><span class="term"><code c
the third variation would use the default for <code class="option">-std</code>
(which is <code class="option">-std=gnu++14</code> as of GCC 6).
</p><p>
+ Since GCC 14, the libstdc++ testsuite has built-in support for running
+ tests with more than one <code class="option">-std</code>, similar to the G++ tests.
+ Adding <code class="code">set v3_std_list { 11 17 23 }</code> to
+ <code class="filename">~/.dejagnurc</code> or a file named by the
+ <code class="envar">DEJAGNU</code> environment variable will cause every test to
+ be run three times, using a different <code class="option">-std</code> each time.
+ Alternatively, a list of standard versions to test with can be specified
+ as a comma-separated list in the <span style="color: red">&lt;envvar&gt;GLIBCXX_TESTSUITE_STDS&lt;/envvar&gt;</span>
+ environment variable.
+ </p><p>
To run the libstdc++ test suite under the
<a class="link" href="debug_mode.html" title="Chapter 17. Debug Mode">debug mode</a>, use
<strong class="userinput"><code>make check-debug</code></strong>. Alternatively, edit
@@ -467,11 +477,12 @@ cat 27_io/objects/char/3_xin.in | a.out</pre></dd><dt><span class="term"><code c
It is possible to indicate that a test should <span class="emphasis"><em>only</em></span>
be run for a specific standard (and not later standards) using an
effective target like <code class="literal">c++11_only</code>. However, this means
- the test will be skipped by default (because the default mode is
- <code class="literal">gnu++14</code>), and so will only run when
- <code class="option">-std=gnu++11</code> or <code class="option">-std=c++11</code> is used
- explicitly. For tests that require a specific standard it is better to
- use a <code class="literal">dg-options</code> directive:
+ the test will be skipped by default unless <code class="option">-std=gnu++11</code>
+ or <code class="option">-std=c++11</code> is explicitly specified, either via a
+ target board, the <code class="varname">v3_std_list</code> dejagnu variable,
+ or the <span style="color: red">&lt;envvar&gt;GLIBCXX_TESTSUITE_STDS&lt;/envvar&gt;</span> environment variable.
+ For tests that require a specific standard it is useful to also add a
+ <code class="literal">dg-options</code> directive:
</p><pre class="programlisting"> // { dg-options "-std=gnu++11" }</pre><p>
This means the test will not get skipped by default, and will always use
the specific standard dialect that the test requires. This isn't needed
@@ -479,16 +490,21 @@ cat 27_io/objects/char/3_xin.in | a.out</pre></dd><dt><span class="term"><code c
minimum standard instead, to allow them to be tested for all
possible variations.
</p><p>
- Similarly, tests which depend on a newer standard than the default
- must use <code class="literal">dg-options</code> instead of (or in addition to)
- an effective target, so that they are not skipped by default.
- For example, tests for C++17 features should use
-</p><pre class="programlisting"> // { dg-options "-std=gnu++17" }</pre><p>
- before any <code class="literal">dg-do</code> such as:
-</p><pre class="programlisting"> // { dg-do run "c++17" }</pre><p>
- The <code class="literal">dg-options</code> directive must come first, so that
- the <code class="literal">-std</code> flag has already been added to the options
- before checking the <code class="literal">c++17</code> target.
+ N.B. when a <code class="literal">dg-options</code> directive is used, it must come
+ first so dejagnu will include those options when checking against any
+ effective targets in <code class="literal">dg-do</code> and
+ <code class="literal">dg-require-effective-target</code> directives.
+ </p><p>
+ Since GCC 14, tests which depend on a newer standard than the default
+ do not need to specify that standard in a <code class="literal">dg-options</code>
+ directive. The testsuite will detect when a test requires a newer standard
+ and will automatically add a suitable <code class="option">-std</code> flag.
+ </p><p>
+ If a testcase requires the use of a strict language dialect, e.g.
+ <code class="option">-std=c++11</code> rather than <code class="option">-std=gnu++11</code>,
+ the following directive will cause that to be used when the testsuite
+ decides which <code class="option">-std</code> options to use for the test:
+</p><pre class="programlisting"> // { dg-add-options strict_std }</pre><p>
</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="tests.dg.examples"></a>Examples of Test Directives</h4></div></div></div><p>
Example 1: Testing compilation only:
</p><pre class="programlisting">
diff --git a/libstdc++-v3/doc/xml/manual/configure.xml b/libstdc++-v3/doc/xml/manual/configure.xml
index 1b8c37c..0a477ab 100644
--- a/libstdc++-v3/doc/xml/manual/configure.xml
+++ b/libstdc++-v3/doc/xml/manual/configure.xml
@@ -341,8 +341,8 @@
C++ includes. If enabled (as by default), and the compiler
seems capable of passing the simple sanity checks thrown at
it, try to build stdc++.h.gch as part of the make process.
- In addition, this generated file is used later on (by appending <code>
- --include bits/stdc++.h </code> to CXXFLAGS) when running the
+ In addition, this generated file is used later on (by appending
+ <code>-include bits/stdc++.h</code> to CXXFLAGS) when running the
testsuite.
</para>
</listitem></varlistentry>
diff --git a/libstdc++-v3/doc/xml/manual/intro.xml b/libstdc++-v3/doc/xml/manual/intro.xml
index 03d5385..f5037ac 100644
--- a/libstdc++-v3/doc/xml/manual/intro.xml
+++ b/libstdc++-v3/doc/xml/manual/intro.xml
@@ -1327,13 +1327,13 @@ requirements of the license of GCC.
<?dbhtml filename="setup.html"?>
- <para>To transform libstdc++ sources into installed include files
+ <para>Transforming libstdc++ sources into installed include files
and properly built binaries useful for linking to other software is
- a multi-step process. Steps include getting the sources,
- configuring and building the sources, testing, and installation.
+ done as part of building GCC. Building libstdc++ separately from the
+ rest of GCC is not supported.
</para>
- <para>The general outline of commands is something like:
+ <para>The general outline of commands to build GCC is something like:
</para>
<programlisting>
diff --git a/libstdc++-v3/doc/xml/manual/prerequisites.xml b/libstdc++-v3/doc/xml/manual/prerequisites.xml
index f00979a..a02d379 100644
--- a/libstdc++-v3/doc/xml/manual/prerequisites.xml
+++ b/libstdc++-v3/doc/xml/manual/prerequisites.xml
@@ -103,8 +103,10 @@ ln -s libiconv-1.16 libiconv
<para>
If GCC 3.1.0 or later on is being used on GNU/Linux, an attempt
will be made to use "C" library functionality necessary for
- C++ named locale support. For GCC 4.6.0 and later, this
- means that glibc 2.3 or later is required.
+ C++ named locale support, e.g. the <function>newlocale</function>
+ and <function>uselocale</function> functions.
+ For GCC 4.6.0 and later,
+ this means that glibc 2.3 or later is required.
</para>
<para>
@@ -153,7 +155,10 @@ zh_TW BIG5
<itemizedlist>
<listitem>
- <para>install all locales</para>
+ <para>install all locales, e.g., run
+ <code> dnf install glibc-all-langpacks </code>
+ for Fedora and related distributions.
+ </para>
</listitem>
<listitem>
<para>install just the necessary locales</para>
@@ -178,6 +183,16 @@ zh_TW BIG5
</listitem>
</itemizedlist>
</listitem>
+
+ <listitem>
+ Some tests for the <code>std::messages</code> facet require a
+ message catalog created by the <command>msgfmt</command> utility.
+ That is usually installed as part of the GNU gettext library.
+ If <command>msgfmt</command> is not available, some tests under
+ the <filename class="directory">22_locale/messages</filename>
+ directory will fail.
+ </listitem>
+
</varlistentry>
</variablelist>
diff --git a/libstdc++-v3/doc/xml/manual/status_cxx2020.xml b/libstdc++-v3/doc/xml/manual/status_cxx2020.xml
index da91116..d6359d5 100644
--- a/libstdc++-v3/doc/xml/manual/status_cxx2020.xml
+++ b/libstdc++-v3/doc/xml/manual/status_cxx2020.xml
@@ -251,14 +251,13 @@ or any notes about the implementation.
</row>
<row>
- <?dbhtml bgcolor="#B0B0B0" ?>
<entry> Improving Completeness Requirements for Type Traits </entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1285r0.pdf">
P1285R0 </link>
</entry>
- <entry align="center"> Partial </entry>
- <entry />
+ <entry align="center"> &#x2014; </entry>
+ <entry> Most misuses are diagnosed, but not all. </entry>
</row>
<row>
@@ -541,13 +540,12 @@ or any notes about the implementation.
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
<entry> Avoid template bloat for <code>safe_ranges</code> in combination with ‘subrange-y’ view adaptors.</entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1739r4.html">
P1739R4 </link>
</entry>
- <entry align="center"> </entry>
+ <entry align="center"> 12.1 </entry>
<entry />
</row>
@@ -559,24 +557,22 @@ or any notes about the implementation.
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
<entry> Extending chrono to Calendars and Time Zones </entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0355r7.html">
P0355R7 </link>
</entry>
- <entry/>
+ <entry> 14.1 (see Note 2) </entry>
<entry> <code>__cpp_lib_chrono &gt;= 201803L</code> </entry>
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
<entry> Miscellaneous minor fixes for chrono </entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1466r3.html">
P1466R3 </link>
</entry>
- <entry/>
+ <entry> 11.1 (see Note 2) </entry>
<entry> <code>__cpp_lib_chrono &gt;= 201907L</code> </entry>
</row>
@@ -667,39 +663,36 @@ or any notes about the implementation.
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
<entry> Text formatting </entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0645r10.html">
P0645R10 </link>
</entry>
- <entry align="center"> </entry>
+ <entry align="center"> 13.1 </entry>
<entry>
<code>__cpp_lib_format &gt;= 201907L</code>
</entry>
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
<entry> Integration of chrono with text formatting </entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1361r2.pdf">
P1361R2 </link>
</entry>
- <entry align="center"> </entry>
+ <entry align="center"> 13.1 </entry>
<entry>
<code>__cpp_lib_format &gt;= 201907L</code>
</entry>
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
<entry> Printf corner cases in <code>std::format</code> </entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1652r1.html">
P1652R1 </link>
</entry>
- <entry align="center"> </entry>
+ <entry align="center"> 13.1 </entry>
<entry>
<code>__cpp_lib_format &gt;= 201907L</code>
</entry>
@@ -716,13 +709,12 @@ or any notes about the implementation.
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
<entry> Update The Reference To The Unicode Standard </entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1025r1.html">
P1025R1 </link>
</entry>
- <entry align="center"> </entry>
+ <entry align="center"> &#x2014;</entry>
<entry />
</row>
@@ -796,13 +788,12 @@ or any notes about the implementation.
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
<entry> Comparing Unordered Containers </entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0809r0.pdf">
P0809R0 </link>
</entry>
- <entry align="center"> </entry>
+ <entry align="center"> &#x2014; </entry>
<entry />
</row>
@@ -1039,7 +1030,7 @@ or any notes about the implementation.
P0551R3 </link>
</entry>
<entry align="center"> </entry>
- <entry />
+ <entry>These changes will not be implemented.</entry>
</row>
<row>
@@ -1113,13 +1104,12 @@ or any notes about the implementation.
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
<entry> Standard Library Specification in a Concepts and Contracts World </entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0788r3.pdf">
P0788R3 </link>
</entry>
- <entry align="center"> </entry>
+ <entry align="center"> &#x2014; </entry>
<entry />
</row>
@@ -1244,13 +1234,12 @@ or any notes about the implementation.
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
<entry> Cleaning up Clause 20 </entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1148r0.pdf">
P1148R0 </link>
</entry>
- <entry align="center"> </entry>
+ <entry align="center"> &#x2014; </entry>
<entry />
</row>
@@ -1341,7 +1330,6 @@ or any notes about the implementation.
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
<entry>
Mandating the Standard Library:
Clause 22 - Iterators library
@@ -1350,7 +1338,7 @@ or any notes about the implementation.
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1464r1.pdf">
P1464R1 </link>
</entry>
- <entry align="center"> </entry>
+ <entry align="center"> &#x2014; </entry>
<entry />
</row>
@@ -1459,4 +1447,10 @@ Note 1: This feature is supported in older releases but the
(or not defined at all) until the version shown in parentheses.
</para>
+<para>
+Note 2: The C++20 calendar types are supported since 11.1,
+time zones and UTC are supported since 13.1,
+and <function>chrono::parse</function> is supported since 14.1.
+</para>
+
</section>
diff --git a/libstdc++-v3/doc/xml/manual/status_cxx2023.xml b/libstdc++-v3/doc/xml/manual/status_cxx2023.xml
index f23c64d..9d121af 100644
--- a/libstdc++-v3/doc/xml/manual/status_cxx2023.xml
+++ b/libstdc++-v3/doc/xml/manual/status_cxx2023.xml
@@ -187,18 +187,208 @@ or any notes about the implementation.
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
<entry> <code>zip</code> </entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2321r2.html">
P2321R2
</link>
</entry>
- <entry align="center"> </entry>
+ <entry align="center"> 13.1 </entry>
<entry> <code>__cpp_lib_ranges_zip &gt;= 202110L</code> </entry>
</row>
<row>
+ <entry> <code>views::repeat</code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2474r2.html">
+ P2474R2
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry> <code>__cpp_lib_ranges_repeat &gt;= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <entry> <code>views::enumerate</code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2164r9.pdf">
+ P2164R9
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry> <code>__cpp_lib_ranges_enumerate &gt;= 202302L</code> </entry>
+ </row>
+
+ <row>
+ <entry> <code>views::join_with</code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2441r2.html">
+ P2441R2
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry> <code>__cpp_lib_ranges_join_with &gt;= 202202L</code> </entry>
+ </row>
+
+ <row>
+ <entry>
+ Windowing range adaptors: <code>views::chunk</code>
+ and <code>views::slide</code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2442r2.html">
+ P2442R2
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry> <code>__cpp_lib_ranges_slide &gt;= 202202L</code> </entry>
+ </row>
+
+ <row>
+ <entry> <code>views::chunk_by</code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2443r1.html">
+ P2443R1
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry> <code>__cpp_lib_ranges_chunk_by &gt;= 202202L</code> </entry>
+ </row>
+
+ <row>
+ <entry> <code>views::stride</code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1899r3.html">
+ P1899R3
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry> <code>__cpp_lib_ranges_stride &gt;= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <entry> <code>views::cartesian_product</code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2374r4.html">
+ P2374R4
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry> <code>__cpp_lib_ranges_cartesian_product &gt;= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <entry> Empty Product for certain Views </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2540r1.html">
+ P2540R1
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry> <code>__cpp_lib_ranges_cartesian_product &gt;= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <entry> <code>views::as_rvalue</code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2446r2.html">
+ P2446R2
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry> <code>__cpp_lib_ranges_as_rvalue &gt;= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <entry>
+ <code>cbegin</code> should always return a constant iterator
+ </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2278r4.html">
+ P2278R4
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry> <code>__cpp_lib_ranges_as_const &gt;= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry> <code>ranges::to</code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1206r7.pdf">
+ P1206R7
+ </link>
+ </entry>
+ <entry align="center"> </entry>
+ <entry> <code>__cpp_lib_ranges_to_container &gt;= 202202L</code> </entry>
+ </row>
+
+ <row>
+ <entry> Pipe support for user-defined range adaptors </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2387r3.html">
+ P2387R3
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry>
+ <code>__cpp_lib_bind_pack &gt;= 202202L</code>,
+ <code>__cpp_lib_ranges &gt;= 202202L</code>
+ </entry>
+ </row>
+
+ <row>
+ <?dbhtml bgcolor="#B0B0B0" ?>
+ <entry>
+ <code>ranges::iota</code>, <code>ranges::shift_left</code>,
+ and <code>ranges::shift_right</code>
+ </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2440r1.html">
+ P2440R1
+ </link>
+ </entry>
+ <entry align="center"> 13.1 (<code>ranges::iota</code>) </entry>
+ <entry>
+ <code>__cpp_lib_ranges_iota &gt;= 202202L</code>,
+ <code>__cpp_lib_shift &gt;= 202202L</code>
+ </entry>
+ </row>
+
+ <row>
+ <entry> <code>ranges::find_last</code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1223r5.pdf">
+ P1223R5
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry> <code>__cpp_lib_ranges_find_last &gt;= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <entry> <code>ranges::contains</code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2302r4.html">
+ P2302R4
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry> <code>__cpp_lib_ranges_contains &gt;= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <entry> <code>ranges::fold</code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2322r6.html">
+ P2322R6
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry> <code>__cpp_lib_ranges_fold &gt;= 202207L</code> </entry>
+ </row>
+
+ <row>
<entry namest="c1" nameend="c4" align="left">
<emphasis role="bold">Compile-time programming</emphasis>
</entry>
@@ -294,14 +484,14 @@ or any notes about the implementation.
</row>
<row>
- <?dbhtml bgcolor="#C8B0B0" ?>
+ <?dbhtml bgcolor="#B0B0B0" ?>
<entry> A type trait to detect reference binding to temporary </entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2255r2.html">
P2255R2
</link>
</entry>
- <entry align="center"> </entry>
+ <entry align="center"> 13.1 (missing changes to <code>std::tuple</code> </entry>
<entry> <code>__cpp_lib_reference_from_temporary &gt;= 202202L</code> </entry>
</row>
@@ -396,6 +586,235 @@ or any notes about the implementation.
</row>
<row>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry> <code>&lt;flat_map&gt;</code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p0429r9.pdf">
+ P0429R9
+ </link>
+ </entry>
+ <entry align="center"> </entry>
+ <entry> <code>__cpp_lib_flat_map &gt;= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry> <code>&lt;flat_set&gt;</code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1222r4.pdf">
+ P1222R4
+ </link>
+ </entry>
+ <entry align="center"> </entry>
+ <entry> <code>__cpp_lib_flat_set &gt;= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry> <code>mdspan</code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p0009r18.html">
+ P0009R18
+ </link>
+ </entry>
+ <entry align="center"> </entry>
+ <entry> <code>__cpp_lib_mdspan &gt;= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry>
+ <code>index_type</code> &amp; <code>size_type</code>
+ in <code>mdspan</code>
+ </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2599r2.pdf">
+ P2599R2
+ </link>
+ </entry>
+ <entry align="center"> </entry>
+ <entry> <code>__cpp_lib_mdspan &gt;= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry>
+ <code>mdspan</code>: rename <code>pointer</code> and
+ <code>contiguous</code>
+ </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2604r0.html">
+ P2604R0
+ </link>
+ </entry>
+ <entry align="center"> </entry>
+ <entry> <code>__cpp_lib_mdspan &gt;= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry> Add the missing <code>empty</code> to <code>mdspan</code> </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2613r1.html">
+ P2613R1
+ </link>
+ </entry>
+ <entry align="center"> </entry>
+ <entry> <code>__cpp_lib_mdspan &gt;= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry>
+ <code>layout_stride</code> static extents default constructor fix
+ </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2763r1.html">
+ P2763R1
+ </link>
+ </entry>
+ <entry align="center"> </entry>
+ <entry/>
+ </row>
+
+ <row>
+ <entry namest="c1" nameend="c4" align="left">
+ <emphasis role="bold">Strings and text</emphasis>
+ </entry>
+ </row>
+
+ <row>
+ <entry> std::format improvements </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2216r3.html">
+ P2216R3
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry> <code>__cpp_lib_format &gt;= 202106L</code> </entry>
+ </row>
+
+ <row>
+ <entry>
+ Add support for <code>std::generator</code>-like types to
+ <code>std::format</code>
+ </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2418r2.html">
+ P2418R2
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry> <code>__cpp_lib_format &gt;= 202110L</code> </entry>
+ </row>
+
+ <row>
+ <entry>
+ Expose <code>std::<emphasis>basic-format-string</emphasis>&lt;charT, Args...&gt;</code>
+ </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2508r1.html">
+ P2508R1
+ </link>
+ </entry>
+ <entry align="center"> 13.1 (feature test macro not defined)</entry>
+ <entry> <code>__cpp_lib_format &gt;= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry>
+ Clarify handling of encodings in localized formatting of chrono types
+ </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2419r2.html">
+ P2419R2
+ </link>
+ </entry>
+ <entry align="center"> </entry>
+ <entry> <code>__cpp_lib_format &gt;= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry> Formatting Ranges </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2286r8.html">
+ P2286R8
+ </link>
+ </entry>
+ <entry align="center"> </entry>
+ <entry> <code>__cpp_lib_format_ranges &gt;= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry> Improve default container formatting </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2585r1.html">
+ P2585R1
+ </link>
+ </entry>
+ <entry align="center"> </entry>
+ <entry> <code>__cpp_lib_format_ranges &gt;= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry> Formatted output </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2093r14.html">
+ P2093R14
+ </link>
+ </entry>
+ <entry align="center"> </entry>
+ <entry> <code>__cpp_lib_print &gt;= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry>
+ Should the output of std::print to a terminal be synchronized with
+ the underlying stream?
+ </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2539r3.html">
+ P2539R3
+ </link>
+ </entry>
+ <entry align="center"> </entry>
+ <entry/>
+ </row>
+
+ <row>
+ <entry>
+ Formatting <code>thread::id</code> and <code>stacktrace</code>
+ </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2693r1.pdf">
+ P2693R1
+ </link>
+ </entry>
+ <entry align="center"> 14.1 </entry>
+ <entry> <code>__cpp_lib_formatters &gt;= 202302L</code> </entry>
+ </row>
+
+ <row>
+ <entry>
+ Add Constexpr Modifiers to Functions <code>to_chars</code> and
+ <code>from_chars</code> for Integral Types in
+ <code>&lt;charconv&gt;</code> Header
+ </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2291r3.pdf">
+ P2291R3
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry> <code>__cpp_lib_constexpr_charconv &gt;= 202207L</code> </entry>
+ </row>
+
+ <row>
<entry namest="c1" nameend="c4" align="left">
<emphasis role="bold">Miscellaneous</emphasis>
</entry>
@@ -457,6 +876,17 @@ or any notes about the implementation.
</row>
<row>
+ <entry> Monadic operations for std::expected </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2505r5.html">
+ P2505R5
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry> <code>__cpp_lib_expected &gt;= 202211L</code> </entry>
+ </row>
+
+ <row>
<entry> Monadic operations for std::optional </entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p0798r8.html">
@@ -468,6 +898,20 @@ or any notes about the implementation.
</row>
<row>
+ <?dbhtml bgcolor="#C8B0B0" ?>
+ <entry>
+ Compatibility between <code>tuple</code>, <code>pair</code>
+ and <emphasis>tuple-like</emphasis> objects </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2165r4.pdf">
+ P2165R4
+ </link>
+ </entry>
+ <entry align="center"> </entry>
+ <entry> <code>__cpp_lib_tuple_like &gt;= 202207L</code> </entry>
+ </row>
+
+ <row>
<entry> <code>move_only_function</code> </entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p0288r9.html">
@@ -523,6 +967,28 @@ or any notes about the implementation.
</row>
<row>
+ <entry> A more constexpr bitset </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2417r2.pdf">
+ P2417R2
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry> <code>__cpp_lib_constexpr_bitset &gt;= 202207L</code> </entry>
+ </row>
+
+ <row>
+ <entry> Extended floating-point types and standard names </entry>
+ <entry>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1467r9.html">
+ P1467R9
+ </link>
+ </entry>
+ <entry align="center"> 13.1 </entry>
+ <entry/>
+ </row>
+
+ <row>
<entry> Support C atomics in C++ </entry>
<entry>
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p0943r6.html">
diff --git a/libstdc++-v3/doc/xml/manual/test.xml b/libstdc++-v3/doc/xml/manual/test.xml
index 964c53d..936f974 100644
--- a/libstdc++-v3/doc/xml/manual/test.xml
+++ b/libstdc++-v3/doc/xml/manual/test.xml
@@ -599,6 +599,18 @@ cat 27_io/objects/char/3_xin.in | a.out</programlisting>
</para>
<para>
+ Since GCC 14, the libstdc++ testsuite has built-in support for running
+ tests with more than one <option>-std</option>, similar to the G++ tests.
+ Adding <code>set v3_std_list { 11 17 23 }</code> to
+ <filename>~/.dejagnurc</filename> or a file named by the
+ <envar>DEJAGNU</envar> environment variable will cause every test to
+ be run three times, using a different <option>-std</option> each time.
+ Alternatively, a list of standard versions to test with can be specified
+ as a comma-separated list in the <envvar>GLIBCXX_TESTSUITE_STDS</envvar>
+ environment variable.
+ </para>
+
+ <para>
To run the libstdc++ test suite under the
<link linkend="manual.ext.debug_mode">debug mode</link>, use
<userinput>make check-debug</userinput>. Alternatively, edit
@@ -766,11 +778,12 @@ cat 27_io/objects/char/3_xin.in | a.out</programlisting>
It is possible to indicate that a test should <emphasis>only</emphasis>
be run for a specific standard (and not later standards) using an
effective target like <literal>c++11_only</literal>. However, this means
- the test will be skipped by default (because the default mode is
- <literal>gnu++14</literal>), and so will only run when
- <option>-std=gnu++11</option> or <option>-std=c++11</option> is used
- explicitly. For tests that require a specific standard it is better to
- use a <literal>dg-options</literal> directive:
+ the test will be skipped by default unless <option>-std=gnu++11</option>
+ or <option>-std=c++11</option> is explicitly specified, either via a
+ target board, the <varname>v3_std_list</varname> dejagnu variable,
+ or the <envvar>GLIBCXX_TESTSUITE_STDS</envvar> environment variable.
+ For tests that require a specific standard it is useful to also add a
+ <literal>dg-options</literal> directive:
<programlisting> // { dg-options "-std=gnu++11" }</programlisting>
This means the test will not get skipped by default, and will always use
the specific standard dialect that the test requires. This isn't needed
@@ -780,16 +793,25 @@ cat 27_io/objects/char/3_xin.in | a.out</programlisting>
</para>
<para>
- Similarly, tests which depend on a newer standard than the default
- must use <literal>dg-options</literal> instead of (or in addition to)
- an effective target, so that they are not skipped by default.
- For example, tests for C++17 features should use
-<programlisting> // { dg-options "-std=gnu++17" }</programlisting>
- before any <literal>dg-do</literal> such as:
-<programlisting> // { dg-do run "c++17" }</programlisting>
- The <literal>dg-options</literal> directive must come first, so that
- the <literal>-std</literal> flag has already been added to the options
- before checking the <literal>c++17</literal> target.
+ N.B. when a <literal>dg-options</literal> directive is used, it must come
+ first so dejagnu will include those options when checking against any
+ effective targets in <literal>dg-do</literal> and
+ <literal>dg-require-effective-target</literal> directives.
+ </para>
+
+ <para>
+ Since GCC 14, tests which depend on a newer standard than the default
+ do not need to specify that standard in a <literal>dg-options</literal>
+ directive. The testsuite will detect when a test requires a newer standard
+ and will automatically add a suitable <option>-std</option> flag.
+ </para>
+
+ <para>
+ If a testcase requires the use of a strict language dialect, e.g.
+ <option>-std=c++11</option> rather than <option>-std=gnu++11</option>,
+ the following directive will cause that to be used when the testsuite
+ decides which <option>-std</option> options to use for the test:
+<programlisting> // { dg-add-options strict_std }</programlisting>
</para>
<section xml:id="tests.dg.examples"><info><title>Examples of Test Directives</title></info>
diff --git a/libstdc++-v3/include/bits/c++config b/libstdc++-v3/include/bits/c++config
index 0a41cdd..410c136 100644
--- a/libstdc++-v3/include/bits/c++config
+++ b/libstdc++-v3/include/bits/c++config
@@ -854,7 +854,15 @@ namespace __gnu_cxx
# define _GLIBCXX_HAVE_BUILTIN_LAUNDER 1
#endif
-#undef _GLIBCXX_HAS_BUILTIN
+// Returns 1 if _GLIBCXX_DO_NOT_USE_BUILTIN_TRAITS is not defined and the
+// compiler has a corresponding built-in type trait, 0 otherwise.
+// _GLIBCXX_DO_NOT_USE_BUILTIN_TRAITS can be defined to disable the use of
+// built-in traits.
+#ifndef _GLIBCXX_DO_NOT_USE_BUILTIN_TRAITS
+# define _GLIBCXX_USE_BUILTIN_TRAIT(BT) _GLIBCXX_HAS_BUILTIN(BT)
+#else
+# define _GLIBCXX_USE_BUILTIN_TRAIT(BT) 0
+#endif
// Mark code that should be ignored by the compiler, but seen by Doxygen.
#define _GLIBCXX_DOXYGEN_ONLY(X)
diff --git a/libstdc++-v3/include/bits/version.def b/libstdc++-v3/include/bits/version.def
index 8d9b2f7..6252f54 100644
--- a/libstdc++-v3/include/bits/version.def
+++ b/libstdc++-v3/include/bits/version.def
@@ -256,6 +256,13 @@ ftms = {
ftms = {
name = to_chars;
values = {
+ v = 202306;
+ cxxmin = 26;
+ extra_cond = "_GLIBCXX_FLOAT_IS_IEEE_BINARY32 "
+ "&& _GLIBCXX_DOUBLE_IS_IEEE_BINARY64 "
+ "&& __SIZE_WIDTH__ >= 32";
+ };
+ values = {
v = 201611;
cxxmin = 14;
extra_cond = "_GLIBCXX_FLOAT_IS_IEEE_BINARY32 "
@@ -1592,6 +1599,15 @@ ftms = {
};
ftms = {
+ name = fstream_native_handle;
+ values = {
+ v = 202306;
+ cxxmin = 26;
+ hosted = yes;
+ };
+};
+
+ftms = {
name = ratio;
values = {
v = 202306;
diff --git a/libstdc++-v3/include/bits/version.h b/libstdc++-v3/include/bits/version.h
index 3c20a8a..782198a 100644
--- a/libstdc++-v3/include/bits/version.h
+++ b/libstdc++-v3/include/bits/version.h
@@ -297,7 +297,12 @@
// from version.def line 257
#if !defined(__cpp_lib_to_chars)
-# if (__cplusplus >= 201402L) && (_GLIBCXX_FLOAT_IS_IEEE_BINARY32 && _GLIBCXX_DOUBLE_IS_IEEE_BINARY64 && __SIZE_WIDTH__ >= 32)
+# if (__cplusplus > 202302L) && (_GLIBCXX_FLOAT_IS_IEEE_BINARY32 && _GLIBCXX_DOUBLE_IS_IEEE_BINARY64 && __SIZE_WIDTH__ >= 32)
+# define __glibcxx_to_chars 202306L
+# if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_chars)
+# define __cpp_lib_to_chars 202306L
+# endif
+# elif (__cplusplus >= 201402L) && (_GLIBCXX_FLOAT_IS_IEEE_BINARY32 && _GLIBCXX_DOUBLE_IS_IEEE_BINARY64 && __SIZE_WIDTH__ >= 32)
# define __glibcxx_to_chars 201611L
# if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_chars)
# define __cpp_lib_to_chars 201611L
@@ -306,7 +311,7 @@
#endif /* !defined(__cpp_lib_to_chars) && defined(__glibcxx_want_to_chars) */
#undef __glibcxx_want_to_chars
-// from version.def line 268
+// from version.def line 275
#if !defined(__cpp_lib_chrono_udls)
# if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED
# define __glibcxx_chrono_udls 201304L
@@ -317,7 +322,7 @@
#endif /* !defined(__cpp_lib_chrono_udls) && defined(__glibcxx_want_chrono_udls) */
#undef __glibcxx_want_chrono_udls
-// from version.def line 277
+// from version.def line 284
#if !defined(__cpp_lib_complex_udls)
# if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED
# define __glibcxx_complex_udls 201309L
@@ -328,7 +333,7 @@
#endif /* !defined(__cpp_lib_complex_udls) && defined(__glibcxx_want_complex_udls) */
#undef __glibcxx_want_complex_udls
-// from version.def line 286
+// from version.def line 293
#if !defined(__cpp_lib_generic_associative_lookup)
# if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED
# define __glibcxx_generic_associative_lookup 201304L
@@ -339,7 +344,7 @@
#endif /* !defined(__cpp_lib_generic_associative_lookup) && defined(__glibcxx_want_generic_associative_lookup) */
#undef __glibcxx_want_generic_associative_lookup
-// from version.def line 295
+// from version.def line 302
#if !defined(__cpp_lib_make_unique)
# if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED
# define __glibcxx_make_unique 201304L
@@ -350,7 +355,7 @@
#endif /* !defined(__cpp_lib_make_unique) && defined(__glibcxx_want_make_unique) */
#undef __glibcxx_want_make_unique
-// from version.def line 304
+// from version.def line 311
#if !defined(__cpp_lib_quoted_string_io)
# if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED
# define __glibcxx_quoted_string_io 201304L
@@ -361,7 +366,7 @@
#endif /* !defined(__cpp_lib_quoted_string_io) && defined(__glibcxx_want_quoted_string_io) */
#undef __glibcxx_want_quoted_string_io
-// from version.def line 313
+// from version.def line 320
#if !defined(__cpp_lib_shared_timed_mutex)
# if (__cplusplus >= 201402L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED
# define __glibcxx_shared_timed_mutex 201402L
@@ -372,7 +377,7 @@
#endif /* !defined(__cpp_lib_shared_timed_mutex) && defined(__glibcxx_want_shared_timed_mutex) */
#undef __glibcxx_want_shared_timed_mutex
-// from version.def line 323
+// from version.def line 330
#if !defined(__cpp_lib_string_udls)
# if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED
# define __glibcxx_string_udls 201304L
@@ -383,7 +388,7 @@
#endif /* !defined(__cpp_lib_string_udls) && defined(__glibcxx_want_string_udls) */
#undef __glibcxx_want_string_udls
-// from version.def line 332
+// from version.def line 339
#if !defined(__cpp_lib_addressof_constexpr)
# if (__cplusplus >= 201703L)
# define __glibcxx_addressof_constexpr 201603L
@@ -394,7 +399,7 @@
#endif /* !defined(__cpp_lib_addressof_constexpr) && defined(__glibcxx_want_addressof_constexpr) */
#undef __glibcxx_want_addressof_constexpr
-// from version.def line 342
+// from version.def line 349
#if !defined(__cpp_lib_any)
# if (__cplusplus >= 201703L)
# define __glibcxx_any 201606L
@@ -405,7 +410,7 @@
#endif /* !defined(__cpp_lib_any) && defined(__glibcxx_want_any) */
#undef __glibcxx_want_any
-// from version.def line 350
+// from version.def line 357
#if !defined(__cpp_lib_apply)
# if (__cplusplus >= 201703L)
# define __glibcxx_apply 201603L
@@ -416,7 +421,7 @@
#endif /* !defined(__cpp_lib_apply) && defined(__glibcxx_want_apply) */
#undef __glibcxx_want_apply
-// from version.def line 358
+// from version.def line 365
#if !defined(__cpp_lib_as_const)
# if (__cplusplus >= 201703L)
# define __glibcxx_as_const 201510L
@@ -427,7 +432,7 @@
#endif /* !defined(__cpp_lib_as_const) && defined(__glibcxx_want_as_const) */
#undef __glibcxx_want_as_const
-// from version.def line 366
+// from version.def line 373
#if !defined(__cpp_lib_atomic_is_always_lock_free)
# if (__cplusplus >= 201703L)
# define __glibcxx_atomic_is_always_lock_free 201603L
@@ -438,7 +443,7 @@
#endif /* !defined(__cpp_lib_atomic_is_always_lock_free) && defined(__glibcxx_want_atomic_is_always_lock_free) */
#undef __glibcxx_want_atomic_is_always_lock_free
-// from version.def line 374
+// from version.def line 381
#if !defined(__cpp_lib_bool_constant)
# if (__cplusplus >= 201703L)
# define __glibcxx_bool_constant 201505L
@@ -449,7 +454,7 @@
#endif /* !defined(__cpp_lib_bool_constant) && defined(__glibcxx_want_bool_constant) */
#undef __glibcxx_want_bool_constant
-// from version.def line 382
+// from version.def line 389
#if !defined(__cpp_lib_byte)
# if (__cplusplus >= 201703L)
# define __glibcxx_byte 201603L
@@ -460,7 +465,7 @@
#endif /* !defined(__cpp_lib_byte) && defined(__glibcxx_want_byte) */
#undef __glibcxx_want_byte
-// from version.def line 390
+// from version.def line 397
#if !defined(__cpp_lib_has_unique_object_representations)
# if (__cplusplus >= 201703L) && (defined(_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP))
# define __glibcxx_has_unique_object_representations 201606L
@@ -471,7 +476,7 @@
#endif /* !defined(__cpp_lib_has_unique_object_representations) && defined(__glibcxx_want_has_unique_object_representations) */
#undef __glibcxx_want_has_unique_object_representations
-// from version.def line 399
+// from version.def line 406
#if !defined(__cpp_lib_hardware_interference_size)
# if (__cplusplus >= 201703L) && (defined(__GCC_DESTRUCTIVE_SIZE))
# define __glibcxx_hardware_interference_size 201703L
@@ -482,7 +487,7 @@
#endif /* !defined(__cpp_lib_hardware_interference_size) && defined(__glibcxx_want_hardware_interference_size) */
#undef __glibcxx_want_hardware_interference_size
-// from version.def line 408
+// from version.def line 415
#if !defined(__cpp_lib_invoke)
# if (__cplusplus >= 201703L)
# define __glibcxx_invoke 201411L
@@ -493,7 +498,7 @@
#endif /* !defined(__cpp_lib_invoke) && defined(__glibcxx_want_invoke) */
#undef __glibcxx_want_invoke
-// from version.def line 416
+// from version.def line 423
#if !defined(__cpp_lib_is_aggregate)
# if (__cplusplus >= 201703L) && (defined(_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE))
# define __glibcxx_is_aggregate 201703L
@@ -504,7 +509,7 @@
#endif /* !defined(__cpp_lib_is_aggregate) && defined(__glibcxx_want_is_aggregate) */
#undef __glibcxx_want_is_aggregate
-// from version.def line 425
+// from version.def line 432
#if !defined(__cpp_lib_is_invocable)
# if (__cplusplus >= 201703L)
# define __glibcxx_is_invocable 201703L
@@ -515,7 +520,7 @@
#endif /* !defined(__cpp_lib_is_invocable) && defined(__glibcxx_want_is_invocable) */
#undef __glibcxx_want_is_invocable
-// from version.def line 433
+// from version.def line 440
#if !defined(__cpp_lib_launder)
# if (__cplusplus >= 201703L) && (defined(_GLIBCXX_HAVE_BUILTIN_LAUNDER))
# define __glibcxx_launder 201606L
@@ -526,7 +531,7 @@
#endif /* !defined(__cpp_lib_launder) && defined(__glibcxx_want_launder) */
#undef __glibcxx_want_launder
-// from version.def line 442
+// from version.def line 449
#if !defined(__cpp_lib_logical_traits)
# if (__cplusplus >= 201703L)
# define __glibcxx_logical_traits 201510L
@@ -537,7 +542,7 @@
#endif /* !defined(__cpp_lib_logical_traits) && defined(__glibcxx_want_logical_traits) */
#undef __glibcxx_want_logical_traits
-// from version.def line 450
+// from version.def line 457
#if !defined(__cpp_lib_make_from_tuple)
# if (__cplusplus >= 201703L)
# define __glibcxx_make_from_tuple 201606L
@@ -548,7 +553,7 @@
#endif /* !defined(__cpp_lib_make_from_tuple) && defined(__glibcxx_want_make_from_tuple) */
#undef __glibcxx_want_make_from_tuple
-// from version.def line 458
+// from version.def line 465
#if !defined(__cpp_lib_not_fn)
# if (__cplusplus >= 201703L)
# define __glibcxx_not_fn 201603L
@@ -559,7 +564,7 @@
#endif /* !defined(__cpp_lib_not_fn) && defined(__glibcxx_want_not_fn) */
#undef __glibcxx_want_not_fn
-// from version.def line 466
+// from version.def line 473
#if !defined(__cpp_lib_type_trait_variable_templates)
# if (__cplusplus >= 201703L)
# define __glibcxx_type_trait_variable_templates 201510L
@@ -570,7 +575,7 @@
#endif /* !defined(__cpp_lib_type_trait_variable_templates) && defined(__glibcxx_want_type_trait_variable_templates) */
#undef __glibcxx_want_type_trait_variable_templates
-// from version.def line 474
+// from version.def line 481
#if !defined(__cpp_lib_variant)
# if (__cplusplus >= 202002L) && (__cpp_concepts >= 202002L && __cpp_constexpr >= 201811L)
# define __glibcxx_variant 202106L
@@ -586,7 +591,7 @@
#endif /* !defined(__cpp_lib_variant) && defined(__glibcxx_want_variant) */
#undef __glibcxx_want_variant
-// from version.def line 488
+// from version.def line 495
#if !defined(__cpp_lib_lcm)
# if (__cplusplus >= 201703L)
# define __glibcxx_lcm 201606L
@@ -597,7 +602,7 @@
#endif /* !defined(__cpp_lib_lcm) && defined(__glibcxx_want_lcm) */
#undef __glibcxx_want_lcm
-// from version.def line 497
+// from version.def line 504
#if !defined(__cpp_lib_gcd)
# if (__cplusplus >= 201703L)
# define __glibcxx_gcd 201606L
@@ -608,7 +613,7 @@
#endif /* !defined(__cpp_lib_gcd) && defined(__glibcxx_want_gcd) */
#undef __glibcxx_want_gcd
-// from version.def line 505
+// from version.def line 512
#if !defined(__cpp_lib_gcd_lcm)
# if (__cplusplus >= 201703L)
# define __glibcxx_gcd_lcm 201606L
@@ -619,7 +624,7 @@
#endif /* !defined(__cpp_lib_gcd_lcm) && defined(__glibcxx_want_gcd_lcm) */
#undef __glibcxx_want_gcd_lcm
-// from version.def line 513
+// from version.def line 520
#if !defined(__cpp_lib_raw_memory_algorithms)
# if (__cplusplus >= 201703L)
# define __glibcxx_raw_memory_algorithms 201606L
@@ -630,7 +635,7 @@
#endif /* !defined(__cpp_lib_raw_memory_algorithms) && defined(__glibcxx_want_raw_memory_algorithms) */
#undef __glibcxx_want_raw_memory_algorithms
-// from version.def line 521
+// from version.def line 528
#if !defined(__cpp_lib_array_constexpr)
# if (__cplusplus >= 202002L)
# define __glibcxx_array_constexpr 201811L
@@ -646,7 +651,7 @@
#endif /* !defined(__cpp_lib_array_constexpr) && defined(__glibcxx_want_array_constexpr) */
#undef __glibcxx_want_array_constexpr
-// from version.def line 533
+// from version.def line 540
#if !defined(__cpp_lib_nonmember_container_access)
# if (__cplusplus >= 201703L)
# define __glibcxx_nonmember_container_access 201411L
@@ -657,7 +662,7 @@
#endif /* !defined(__cpp_lib_nonmember_container_access) && defined(__glibcxx_want_nonmember_container_access) */
#undef __glibcxx_want_nonmember_container_access
-// from version.def line 541
+// from version.def line 548
#if !defined(__cpp_lib_clamp)
# if (__cplusplus >= 201703L)
# define __glibcxx_clamp 201603L
@@ -668,7 +673,7 @@
#endif /* !defined(__cpp_lib_clamp) && defined(__glibcxx_want_clamp) */
#undef __glibcxx_want_clamp
-// from version.def line 549
+// from version.def line 556
#if !defined(__cpp_lib_sample)
# if (__cplusplus >= 201703L)
# define __glibcxx_sample 201603L
@@ -679,7 +684,7 @@
#endif /* !defined(__cpp_lib_sample) && defined(__glibcxx_want_sample) */
#undef __glibcxx_want_sample
-// from version.def line 557
+// from version.def line 564
#if !defined(__cpp_lib_boyer_moore_searcher)
# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
# define __glibcxx_boyer_moore_searcher 201603L
@@ -690,7 +695,7 @@
#endif /* !defined(__cpp_lib_boyer_moore_searcher) && defined(__glibcxx_want_boyer_moore_searcher) */
#undef __glibcxx_want_boyer_moore_searcher
-// from version.def line 566
+// from version.def line 573
#if !defined(__cpp_lib_chrono)
# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
# define __glibcxx_chrono 201907L
@@ -706,7 +711,7 @@
#endif /* !defined(__cpp_lib_chrono) && defined(__glibcxx_want_chrono) */
#undef __glibcxx_want_chrono
-// from version.def line 580
+// from version.def line 587
#if !defined(__cpp_lib_execution)
# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
# define __glibcxx_execution 201902L
@@ -717,7 +722,7 @@
#endif /* !defined(__cpp_lib_execution) && defined(__glibcxx_want_execution) */
#undef __glibcxx_want_execution
-// from version.def line 589
+// from version.def line 596
#if !defined(__cpp_lib_filesystem)
# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
# define __glibcxx_filesystem 201703L
@@ -728,7 +733,7 @@
#endif /* !defined(__cpp_lib_filesystem) && defined(__glibcxx_want_filesystem) */
#undef __glibcxx_want_filesystem
-// from version.def line 598
+// from version.def line 605
#if !defined(__cpp_lib_hypot)
# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
# define __glibcxx_hypot 201603L
@@ -739,7 +744,7 @@
#endif /* !defined(__cpp_lib_hypot) && defined(__glibcxx_want_hypot) */
#undef __glibcxx_want_hypot
-// from version.def line 607
+// from version.def line 614
#if !defined(__cpp_lib_map_try_emplace)
# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
# define __glibcxx_map_try_emplace 201411L
@@ -750,7 +755,7 @@
#endif /* !defined(__cpp_lib_map_try_emplace) && defined(__glibcxx_want_map_try_emplace) */
#undef __glibcxx_want_map_try_emplace
-// from version.def line 616
+// from version.def line 623
#if !defined(__cpp_lib_math_special_functions)
# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
# define __glibcxx_math_special_functions 201603L
@@ -761,7 +766,7 @@
#endif /* !defined(__cpp_lib_math_special_functions) && defined(__glibcxx_want_math_special_functions) */
#undef __glibcxx_want_math_special_functions
-// from version.def line 625
+// from version.def line 632
#if !defined(__cpp_lib_memory_resource)
# if (__cplusplus >= 201703L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED
# define __glibcxx_memory_resource 201603L
@@ -777,7 +782,7 @@
#endif /* !defined(__cpp_lib_memory_resource) && defined(__glibcxx_want_memory_resource) */
#undef __glibcxx_want_memory_resource
-// from version.def line 642
+// from version.def line 649
#if !defined(__cpp_lib_node_extract)
# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
# define __glibcxx_node_extract 201606L
@@ -788,7 +793,7 @@
#endif /* !defined(__cpp_lib_node_extract) && defined(__glibcxx_want_node_extract) */
#undef __glibcxx_want_node_extract
-// from version.def line 651
+// from version.def line 658
#if !defined(__cpp_lib_parallel_algorithm)
# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
# define __glibcxx_parallel_algorithm 201603L
@@ -799,7 +804,7 @@
#endif /* !defined(__cpp_lib_parallel_algorithm) && defined(__glibcxx_want_parallel_algorithm) */
#undef __glibcxx_want_parallel_algorithm
-// from version.def line 660
+// from version.def line 667
#if !defined(__cpp_lib_scoped_lock)
# if (__cplusplus >= 201703L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED
# define __glibcxx_scoped_lock 201703L
@@ -810,7 +815,7 @@
#endif /* !defined(__cpp_lib_scoped_lock) && defined(__glibcxx_want_scoped_lock) */
#undef __glibcxx_want_scoped_lock
-// from version.def line 670
+// from version.def line 677
#if !defined(__cpp_lib_shared_mutex)
# if (__cplusplus >= 201703L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED
# define __glibcxx_shared_mutex 201505L
@@ -821,7 +826,7 @@
#endif /* !defined(__cpp_lib_shared_mutex) && defined(__glibcxx_want_shared_mutex) */
#undef __glibcxx_want_shared_mutex
-// from version.def line 680
+// from version.def line 687
#if !defined(__cpp_lib_shared_ptr_weak_type)
# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
# define __glibcxx_shared_ptr_weak_type 201606L
@@ -832,7 +837,7 @@
#endif /* !defined(__cpp_lib_shared_ptr_weak_type) && defined(__glibcxx_want_shared_ptr_weak_type) */
#undef __glibcxx_want_shared_ptr_weak_type
-// from version.def line 689
+// from version.def line 696
#if !defined(__cpp_lib_string_view)
# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
# define __glibcxx_string_view 201803L
@@ -843,7 +848,7 @@
#endif /* !defined(__cpp_lib_string_view) && defined(__glibcxx_want_string_view) */
#undef __glibcxx_want_string_view
-// from version.def line 698
+// from version.def line 705
#if !defined(__cpp_lib_unordered_map_try_emplace)
# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
# define __glibcxx_unordered_map_try_emplace 201411L
@@ -854,7 +859,7 @@
#endif /* !defined(__cpp_lib_unordered_map_try_emplace) && defined(__glibcxx_want_unordered_map_try_emplace) */
#undef __glibcxx_want_unordered_map_try_emplace
-// from version.def line 707
+// from version.def line 714
#if !defined(__cpp_lib_assume_aligned)
# if (__cplusplus >= 202002L)
# define __glibcxx_assume_aligned 201811L
@@ -865,7 +870,7 @@
#endif /* !defined(__cpp_lib_assume_aligned) && defined(__glibcxx_want_assume_aligned) */
#undef __glibcxx_want_assume_aligned
-// from version.def line 715
+// from version.def line 722
#if !defined(__cpp_lib_atomic_flag_test)
# if (__cplusplus >= 202002L)
# define __glibcxx_atomic_flag_test 201907L
@@ -876,7 +881,7 @@
#endif /* !defined(__cpp_lib_atomic_flag_test) && defined(__glibcxx_want_atomic_flag_test) */
#undef __glibcxx_want_atomic_flag_test
-// from version.def line 723
+// from version.def line 730
#if !defined(__cpp_lib_atomic_float)
# if (__cplusplus >= 202002L)
# define __glibcxx_atomic_float 201711L
@@ -887,7 +892,7 @@
#endif /* !defined(__cpp_lib_atomic_float) && defined(__glibcxx_want_atomic_float) */
#undef __glibcxx_want_atomic_float
-// from version.def line 731
+// from version.def line 738
#if !defined(__cpp_lib_atomic_lock_free_type_aliases)
# if (__cplusplus >= 202002L)
# define __glibcxx_atomic_lock_free_type_aliases 201907L
@@ -898,7 +903,7 @@
#endif /* !defined(__cpp_lib_atomic_lock_free_type_aliases) && defined(__glibcxx_want_atomic_lock_free_type_aliases) */
#undef __glibcxx_want_atomic_lock_free_type_aliases
-// from version.def line 739
+// from version.def line 746
#if !defined(__cpp_lib_atomic_ref)
# if (__cplusplus >= 202002L)
# define __glibcxx_atomic_ref 201806L
@@ -909,7 +914,7 @@
#endif /* !defined(__cpp_lib_atomic_ref) && defined(__glibcxx_want_atomic_ref) */
#undef __glibcxx_want_atomic_ref
-// from version.def line 747
+// from version.def line 754
#if !defined(__cpp_lib_atomic_value_initialization)
# if (__cplusplus >= 202002L)
# define __glibcxx_atomic_value_initialization 201911L
@@ -920,7 +925,7 @@
#endif /* !defined(__cpp_lib_atomic_value_initialization) && defined(__glibcxx_want_atomic_value_initialization) */
#undef __glibcxx_want_atomic_value_initialization
-// from version.def line 755
+// from version.def line 762
#if !defined(__cpp_lib_bind_front)
# if (__cplusplus >= 202002L)
# define __glibcxx_bind_front 201907L
@@ -931,7 +936,7 @@
#endif /* !defined(__cpp_lib_bind_front) && defined(__glibcxx_want_bind_front) */
#undef __glibcxx_want_bind_front
-// from version.def line 763
+// from version.def line 770
#if !defined(__cpp_lib_starts_ends_with)
# if (__cplusplus >= 202002L)
# define __glibcxx_starts_ends_with 201711L
@@ -942,7 +947,7 @@
#endif /* !defined(__cpp_lib_starts_ends_with) && defined(__glibcxx_want_starts_ends_with) */
#undef __glibcxx_want_starts_ends_with
-// from version.def line 771
+// from version.def line 778
#if !defined(__cpp_lib_bit_cast)
# if (__cplusplus >= 202002L) && (__has_builtin(__builtin_bit_cast))
# define __glibcxx_bit_cast 201806L
@@ -953,7 +958,7 @@
#endif /* !defined(__cpp_lib_bit_cast) && defined(__glibcxx_want_bit_cast) */
#undef __glibcxx_want_bit_cast
-// from version.def line 780
+// from version.def line 787
#if !defined(__cpp_lib_bitops)
# if (__cplusplus >= 202002L)
# define __glibcxx_bitops 201907L
@@ -964,7 +969,7 @@
#endif /* !defined(__cpp_lib_bitops) && defined(__glibcxx_want_bitops) */
#undef __glibcxx_want_bitops
-// from version.def line 788
+// from version.def line 795
#if !defined(__cpp_lib_bounded_array_traits)
# if (__cplusplus >= 202002L)
# define __glibcxx_bounded_array_traits 201902L
@@ -975,7 +980,7 @@
#endif /* !defined(__cpp_lib_bounded_array_traits) && defined(__glibcxx_want_bounded_array_traits) */
#undef __glibcxx_want_bounded_array_traits
-// from version.def line 796
+// from version.def line 803
#if !defined(__cpp_lib_concepts)
# if (__cplusplus >= 202002L) && (__cpp_concepts >= 201907L)
# define __glibcxx_concepts 202002L
@@ -986,7 +991,7 @@
#endif /* !defined(__cpp_lib_concepts) && defined(__glibcxx_want_concepts) */
#undef __glibcxx_want_concepts
-// from version.def line 806
+// from version.def line 813
#if !defined(__cpp_lib_optional)
# if (__cplusplus >= 202302L) && (__glibcxx_concepts)
# define __glibcxx_optional 202110L
@@ -1007,7 +1012,7 @@
#endif /* !defined(__cpp_lib_optional) && defined(__glibcxx_want_optional) */
#undef __glibcxx_want_optional
-// from version.def line 823
+// from version.def line 830
#if !defined(__cpp_lib_destroying_delete)
# if (__cplusplus >= 202002L) && (__cpp_impl_destroying_delete)
# define __glibcxx_destroying_delete 201806L
@@ -1018,7 +1023,7 @@
#endif /* !defined(__cpp_lib_destroying_delete) && defined(__glibcxx_want_destroying_delete) */
#undef __glibcxx_want_destroying_delete
-// from version.def line 832
+// from version.def line 839
#if !defined(__cpp_lib_constexpr_string_view)
# if (__cplusplus >= 202002L)
# define __glibcxx_constexpr_string_view 201811L
@@ -1029,7 +1034,7 @@
#endif /* !defined(__cpp_lib_constexpr_string_view) && defined(__glibcxx_want_constexpr_string_view) */
#undef __glibcxx_want_constexpr_string_view
-// from version.def line 840
+// from version.def line 847
#if !defined(__cpp_lib_endian)
# if (__cplusplus >= 202002L)
# define __glibcxx_endian 201907L
@@ -1040,7 +1045,7 @@
#endif /* !defined(__cpp_lib_endian) && defined(__glibcxx_want_endian) */
#undef __glibcxx_want_endian
-// from version.def line 848
+// from version.def line 855
#if !defined(__cpp_lib_int_pow2)
# if (__cplusplus >= 202002L)
# define __glibcxx_int_pow2 202002L
@@ -1051,7 +1056,7 @@
#endif /* !defined(__cpp_lib_int_pow2) && defined(__glibcxx_want_int_pow2) */
#undef __glibcxx_want_int_pow2
-// from version.def line 856
+// from version.def line 863
#if !defined(__cpp_lib_integer_comparison_functions)
# if (__cplusplus >= 202002L)
# define __glibcxx_integer_comparison_functions 202002L
@@ -1062,7 +1067,7 @@
#endif /* !defined(__cpp_lib_integer_comparison_functions) && defined(__glibcxx_want_integer_comparison_functions) */
#undef __glibcxx_want_integer_comparison_functions
-// from version.def line 864
+// from version.def line 871
#if !defined(__cpp_lib_is_constant_evaluated)
# if (__cplusplus >= 202002L) && (defined(_GLIBCXX_HAVE_IS_CONSTANT_EVALUATED))
# define __glibcxx_is_constant_evaluated 201811L
@@ -1073,7 +1078,7 @@
#endif /* !defined(__cpp_lib_is_constant_evaluated) && defined(__glibcxx_want_is_constant_evaluated) */
#undef __glibcxx_want_is_constant_evaluated
-// from version.def line 874
+// from version.def line 881
#if !defined(__cpp_lib_constexpr_char_traits)
# if (__cplusplus >= 202002L) && (defined(__glibcxx_is_constant_evaluated))
# define __glibcxx_constexpr_char_traits 201811L
@@ -1089,7 +1094,7 @@
#endif /* !defined(__cpp_lib_constexpr_char_traits) && defined(__glibcxx_want_constexpr_char_traits) */
#undef __glibcxx_want_constexpr_char_traits
-// from version.def line 890
+// from version.def line 897
#if !defined(__cpp_lib_is_layout_compatible)
# if (__cplusplus >= 202002L) && (__has_builtin(__is_layout_compatible) && __has_builtin(__builtin_is_corresponding_member))
# define __glibcxx_is_layout_compatible 201907L
@@ -1100,7 +1105,7 @@
#endif /* !defined(__cpp_lib_is_layout_compatible) && defined(__glibcxx_want_is_layout_compatible) */
#undef __glibcxx_want_is_layout_compatible
-// from version.def line 900
+// from version.def line 907
#if !defined(__cpp_lib_is_nothrow_convertible)
# if (__cplusplus >= 202002L)
# define __glibcxx_is_nothrow_convertible 201806L
@@ -1111,7 +1116,7 @@
#endif /* !defined(__cpp_lib_is_nothrow_convertible) && defined(__glibcxx_want_is_nothrow_convertible) */
#undef __glibcxx_want_is_nothrow_convertible
-// from version.def line 908
+// from version.def line 915
#if !defined(__cpp_lib_is_pointer_interconvertible)
# if (__cplusplus >= 202002L) && (__has_builtin(__is_pointer_interconvertible_base_of) && __has_builtin(__builtin_is_pointer_interconvertible_with_class))
# define __glibcxx_is_pointer_interconvertible 201907L
@@ -1122,7 +1127,7 @@
#endif /* !defined(__cpp_lib_is_pointer_interconvertible) && defined(__glibcxx_want_is_pointer_interconvertible) */
#undef __glibcxx_want_is_pointer_interconvertible
-// from version.def line 919
+// from version.def line 926
#if !defined(__cpp_lib_math_constants)
# if (__cplusplus >= 202002L)
# define __glibcxx_math_constants 201907L
@@ -1133,7 +1138,7 @@
#endif /* !defined(__cpp_lib_math_constants) && defined(__glibcxx_want_math_constants) */
#undef __glibcxx_want_math_constants
-// from version.def line 927
+// from version.def line 934
#if !defined(__cpp_lib_make_obj_using_allocator)
# if (__cplusplus >= 202002L) && (__cpp_concepts)
# define __glibcxx_make_obj_using_allocator 201811L
@@ -1144,7 +1149,7 @@
#endif /* !defined(__cpp_lib_make_obj_using_allocator) && defined(__glibcxx_want_make_obj_using_allocator) */
#undef __glibcxx_want_make_obj_using_allocator
-// from version.def line 937
+// from version.def line 944
#if !defined(__cpp_lib_remove_cvref)
# if (__cplusplus >= 202002L)
# define __glibcxx_remove_cvref 201711L
@@ -1155,7 +1160,7 @@
#endif /* !defined(__cpp_lib_remove_cvref) && defined(__glibcxx_want_remove_cvref) */
#undef __glibcxx_want_remove_cvref
-// from version.def line 945
+// from version.def line 952
#if !defined(__cpp_lib_source_location)
# if (__cplusplus >= 202002L) && (__has_builtin(__builtin_source_location))
# define __glibcxx_source_location 201907L
@@ -1166,7 +1171,7 @@
#endif /* !defined(__cpp_lib_source_location) && defined(__glibcxx_want_source_location) */
#undef __glibcxx_want_source_location
-// from version.def line 954
+// from version.def line 961
#if !defined(__cpp_lib_span)
# if (__cplusplus >= 202002L) && (__glibcxx_concepts)
# define __glibcxx_span 202002L
@@ -1177,7 +1182,7 @@
#endif /* !defined(__cpp_lib_span) && defined(__glibcxx_want_span) */
#undef __glibcxx_want_span
-// from version.def line 963
+// from version.def line 970
#if !defined(__cpp_lib_ssize)
# if (__cplusplus >= 202002L)
# define __glibcxx_ssize 201902L
@@ -1188,7 +1193,7 @@
#endif /* !defined(__cpp_lib_ssize) && defined(__glibcxx_want_ssize) */
#undef __glibcxx_want_ssize
-// from version.def line 971
+// from version.def line 978
#if !defined(__cpp_lib_three_way_comparison)
# if (__cplusplus >= 202002L) && (__cpp_impl_three_way_comparison >= 201907L && __glibcxx_concepts)
# define __glibcxx_three_way_comparison 201907L
@@ -1199,7 +1204,7 @@
#endif /* !defined(__cpp_lib_three_way_comparison) && defined(__glibcxx_want_three_way_comparison) */
#undef __glibcxx_want_three_way_comparison
-// from version.def line 981
+// from version.def line 988
#if !defined(__cpp_lib_to_address)
# if (__cplusplus >= 202002L)
# define __glibcxx_to_address 201711L
@@ -1210,7 +1215,7 @@
#endif /* !defined(__cpp_lib_to_address) && defined(__glibcxx_want_to_address) */
#undef __glibcxx_want_to_address
-// from version.def line 989
+// from version.def line 996
#if !defined(__cpp_lib_to_array)
# if (__cplusplus >= 202002L) && (__cpp_generic_lambdas >= 201707L)
# define __glibcxx_to_array 201907L
@@ -1221,7 +1226,7 @@
#endif /* !defined(__cpp_lib_to_array) && defined(__glibcxx_want_to_array) */
#undef __glibcxx_want_to_array
-// from version.def line 998
+// from version.def line 1005
#if !defined(__cpp_lib_type_identity)
# if (__cplusplus >= 202002L)
# define __glibcxx_type_identity 201806L
@@ -1232,7 +1237,7 @@
#endif /* !defined(__cpp_lib_type_identity) && defined(__glibcxx_want_type_identity) */
#undef __glibcxx_want_type_identity
-// from version.def line 1006
+// from version.def line 1013
#if !defined(__cpp_lib_unwrap_ref)
# if (__cplusplus >= 202002L)
# define __glibcxx_unwrap_ref 201811L
@@ -1243,7 +1248,7 @@
#endif /* !defined(__cpp_lib_unwrap_ref) && defined(__glibcxx_want_unwrap_ref) */
#undef __glibcxx_want_unwrap_ref
-// from version.def line 1014
+// from version.def line 1021
#if !defined(__cpp_lib_constexpr_iterator)
# if (__cplusplus >= 202002L)
# define __glibcxx_constexpr_iterator 201811L
@@ -1254,7 +1259,7 @@
#endif /* !defined(__cpp_lib_constexpr_iterator) && defined(__glibcxx_want_constexpr_iterator) */
#undef __glibcxx_want_constexpr_iterator
-// from version.def line 1022
+// from version.def line 1029
#if !defined(__cpp_lib_interpolate)
# if (__cplusplus >= 202002L)
# define __glibcxx_interpolate 201902L
@@ -1265,7 +1270,7 @@
#endif /* !defined(__cpp_lib_interpolate) && defined(__glibcxx_want_interpolate) */
#undef __glibcxx_want_interpolate
-// from version.def line 1030
+// from version.def line 1037
#if !defined(__cpp_lib_constexpr_utility)
# if (__cplusplus >= 202002L)
# define __glibcxx_constexpr_utility 201811L
@@ -1276,7 +1281,7 @@
#endif /* !defined(__cpp_lib_constexpr_utility) && defined(__glibcxx_want_constexpr_utility) */
#undef __glibcxx_want_constexpr_utility
-// from version.def line 1038
+// from version.def line 1045
#if !defined(__cpp_lib_shift)
# if (__cplusplus >= 202002L)
# define __glibcxx_shift 201806L
@@ -1287,7 +1292,7 @@
#endif /* !defined(__cpp_lib_shift) && defined(__glibcxx_want_shift) */
#undef __glibcxx_want_shift
-// from version.def line 1046
+// from version.def line 1053
#if !defined(__cpp_lib_ranges)
# if (__cplusplus >= 202302L) && (__glibcxx_concepts)
# define __glibcxx_ranges 202211L
@@ -1303,7 +1308,7 @@
#endif /* !defined(__cpp_lib_ranges) && defined(__glibcxx_want_ranges) */
#undef __glibcxx_want_ranges
-// from version.def line 1060
+// from version.def line 1067
#if !defined(__cpp_lib_constexpr_numeric)
# if (__cplusplus >= 202002L)
# define __glibcxx_constexpr_numeric 201911L
@@ -1314,7 +1319,7 @@
#endif /* !defined(__cpp_lib_constexpr_numeric) && defined(__glibcxx_want_constexpr_numeric) */
#undef __glibcxx_want_constexpr_numeric
-// from version.def line 1068
+// from version.def line 1075
#if !defined(__cpp_lib_constexpr_functional)
# if (__cplusplus >= 202002L)
# define __glibcxx_constexpr_functional 201907L
@@ -1325,7 +1330,7 @@
#endif /* !defined(__cpp_lib_constexpr_functional) && defined(__glibcxx_want_constexpr_functional) */
#undef __glibcxx_want_constexpr_functional
-// from version.def line 1076
+// from version.def line 1083
#if !defined(__cpp_lib_constexpr_algorithms)
# if (__cplusplus >= 202002L)
# define __glibcxx_constexpr_algorithms 201806L
@@ -1336,7 +1341,7 @@
#endif /* !defined(__cpp_lib_constexpr_algorithms) && defined(__glibcxx_want_constexpr_algorithms) */
#undef __glibcxx_want_constexpr_algorithms
-// from version.def line 1084
+// from version.def line 1091
#if !defined(__cpp_lib_constexpr_tuple)
# if (__cplusplus >= 202002L)
# define __glibcxx_constexpr_tuple 201811L
@@ -1347,7 +1352,7 @@
#endif /* !defined(__cpp_lib_constexpr_tuple) && defined(__glibcxx_want_constexpr_tuple) */
#undef __glibcxx_want_constexpr_tuple
-// from version.def line 1092
+// from version.def line 1099
#if !defined(__cpp_lib_constexpr_memory)
# if (__cplusplus >= 202302L) && (__cpp_constexpr_dynamic_alloc)
# define __glibcxx_constexpr_memory 202202L
@@ -1363,7 +1368,7 @@
#endif /* !defined(__cpp_lib_constexpr_memory) && defined(__glibcxx_want_constexpr_memory) */
#undef __glibcxx_want_constexpr_memory
-// from version.def line 1105
+// from version.def line 1112
#if !defined(__cpp_lib_atomic_shared_ptr)
# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
# define __glibcxx_atomic_shared_ptr 201711L
@@ -1374,7 +1379,7 @@
#endif /* !defined(__cpp_lib_atomic_shared_ptr) && defined(__glibcxx_want_atomic_shared_ptr) */
#undef __glibcxx_want_atomic_shared_ptr
-// from version.def line 1114
+// from version.def line 1121
#if !defined(__cpp_lib_atomic_wait)
# if (__cplusplus >= 202002L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED
# define __glibcxx_atomic_wait 201907L
@@ -1390,7 +1395,7 @@
#endif /* !defined(__cpp_lib_atomic_wait) && defined(__glibcxx_want_atomic_wait) */
#undef __glibcxx_want_atomic_wait
-// from version.def line 1132
+// from version.def line 1139
#if !defined(__cpp_lib_barrier)
# if (__cplusplus >= 202002L) && (__cpp_aligned_new && __glibcxx_atomic_wait)
# define __glibcxx_barrier 201907L
@@ -1401,7 +1406,7 @@
#endif /* !defined(__cpp_lib_barrier) && defined(__glibcxx_want_barrier) */
#undef __glibcxx_want_barrier
-// from version.def line 1149
+// from version.def line 1156
#if !defined(__cpp_lib_format)
# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
# define __glibcxx_format 202106L
@@ -1412,7 +1417,7 @@
#endif /* !defined(__cpp_lib_format) && defined(__glibcxx_want_format) */
#undef __glibcxx_want_format
-// from version.def line 1162
+// from version.def line 1169
#if !defined(__cpp_lib_constexpr_complex)
# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
# define __glibcxx_constexpr_complex 201711L
@@ -1423,7 +1428,7 @@
#endif /* !defined(__cpp_lib_constexpr_complex) && defined(__glibcxx_want_constexpr_complex) */
#undef __glibcxx_want_constexpr_complex
-// from version.def line 1171
+// from version.def line 1178
#if !defined(__cpp_lib_constexpr_dynamic_alloc)
# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
# define __glibcxx_constexpr_dynamic_alloc 201907L
@@ -1434,7 +1439,7 @@
#endif /* !defined(__cpp_lib_constexpr_dynamic_alloc) && defined(__glibcxx_want_constexpr_dynamic_alloc) */
#undef __glibcxx_want_constexpr_dynamic_alloc
-// from version.def line 1180
+// from version.def line 1187
#if !defined(__cpp_lib_constexpr_string)
# if (__cplusplus >= 202002L) && _GLIBCXX_USE_CXX11_ABI && _GLIBCXX_HOSTED && (defined(__glibcxx_is_constant_evaluated))
# define __glibcxx_constexpr_string 201907L
@@ -1455,7 +1460,7 @@
#endif /* !defined(__cpp_lib_constexpr_string) && defined(__glibcxx_want_constexpr_string) */
#undef __glibcxx_want_constexpr_string
-// from version.def line 1204
+// from version.def line 1211
#if !defined(__cpp_lib_constexpr_vector)
# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
# define __glibcxx_constexpr_vector 201907L
@@ -1466,7 +1471,7 @@
#endif /* !defined(__cpp_lib_constexpr_vector) && defined(__glibcxx_want_constexpr_vector) */
#undef __glibcxx_want_constexpr_vector
-// from version.def line 1213
+// from version.def line 1220
#if !defined(__cpp_lib_erase_if)
# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
# define __glibcxx_erase_if 202002L
@@ -1477,7 +1482,7 @@
#endif /* !defined(__cpp_lib_erase_if) && defined(__glibcxx_want_erase_if) */
#undef __glibcxx_want_erase_if
-// from version.def line 1222
+// from version.def line 1229
#if !defined(__cpp_lib_generic_unordered_lookup)
# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
# define __glibcxx_generic_unordered_lookup 201811L
@@ -1488,7 +1493,7 @@
#endif /* !defined(__cpp_lib_generic_unordered_lookup) && defined(__glibcxx_want_generic_unordered_lookup) */
#undef __glibcxx_want_generic_unordered_lookup
-// from version.def line 1231
+// from version.def line 1238
#if !defined(__cpp_lib_jthread)
# if (__cplusplus >= 202002L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED
# define __glibcxx_jthread 201911L
@@ -1499,7 +1504,7 @@
#endif /* !defined(__cpp_lib_jthread) && defined(__glibcxx_want_jthread) */
#undef __glibcxx_want_jthread
-// from version.def line 1241
+// from version.def line 1248
#if !defined(__cpp_lib_latch)
# if (__cplusplus >= 202002L) && (__glibcxx_atomic_wait)
# define __glibcxx_latch 201907L
@@ -1510,7 +1515,7 @@
#endif /* !defined(__cpp_lib_latch) && defined(__glibcxx_want_latch) */
#undef __glibcxx_want_latch
-// from version.def line 1250
+// from version.def line 1257
#if !defined(__cpp_lib_list_remove_return_type)
# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
# define __glibcxx_list_remove_return_type 201806L
@@ -1521,7 +1526,7 @@
#endif /* !defined(__cpp_lib_list_remove_return_type) && defined(__glibcxx_want_list_remove_return_type) */
#undef __glibcxx_want_list_remove_return_type
-// from version.def line 1259
+// from version.def line 1266
#if !defined(__cpp_lib_polymorphic_allocator)
# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
# define __glibcxx_polymorphic_allocator 201902L
@@ -1532,7 +1537,7 @@
#endif /* !defined(__cpp_lib_polymorphic_allocator) && defined(__glibcxx_want_polymorphic_allocator) */
#undef __glibcxx_want_polymorphic_allocator
-// from version.def line 1268
+// from version.def line 1275
#if !defined(__cpp_lib_move_iterator_concept)
# if (__cplusplus >= 202002L) && (__glibcxx_concepts)
# define __glibcxx_move_iterator_concept 202207L
@@ -1543,7 +1548,7 @@
#endif /* !defined(__cpp_lib_move_iterator_concept) && defined(__glibcxx_want_move_iterator_concept) */
#undef __glibcxx_want_move_iterator_concept
-// from version.def line 1278
+// from version.def line 1285
#if !defined(__cpp_lib_semaphore)
# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED && (__glibcxx_atomic_wait || _GLIBCXX_HAVE_POSIX_SEMAPHORE)
# define __glibcxx_semaphore 201907L
@@ -1554,7 +1559,7 @@
#endif /* !defined(__cpp_lib_semaphore) && defined(__glibcxx_want_semaphore) */
#undef __glibcxx_want_semaphore
-// from version.def line 1288
+// from version.def line 1295
#if !defined(__cpp_lib_smart_ptr_for_overwrite)
# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
# define __glibcxx_smart_ptr_for_overwrite 202002L
@@ -1565,7 +1570,7 @@
#endif /* !defined(__cpp_lib_smart_ptr_for_overwrite) && defined(__glibcxx_want_smart_ptr_for_overwrite) */
#undef __glibcxx_want_smart_ptr_for_overwrite
-// from version.def line 1297
+// from version.def line 1304
#if !defined(__cpp_lib_syncbuf)
# if (__cplusplus >= 202002L) && _GLIBCXX_USE_CXX11_ABI && _GLIBCXX_HOSTED
# define __glibcxx_syncbuf 201803L
@@ -1576,7 +1581,7 @@
#endif /* !defined(__cpp_lib_syncbuf) && defined(__glibcxx_want_syncbuf) */
#undef __glibcxx_want_syncbuf
-// from version.def line 1307
+// from version.def line 1314
#if !defined(__cpp_lib_byteswap)
# if (__cplusplus >= 202302L)
# define __glibcxx_byteswap 202110L
@@ -1587,7 +1592,7 @@
#endif /* !defined(__cpp_lib_byteswap) && defined(__glibcxx_want_byteswap) */
#undef __glibcxx_want_byteswap
-// from version.def line 1315
+// from version.def line 1322
#if !defined(__cpp_lib_constexpr_charconv)
# if (__cplusplus >= 202302L)
# define __glibcxx_constexpr_charconv 202207L
@@ -1598,7 +1603,7 @@
#endif /* !defined(__cpp_lib_constexpr_charconv) && defined(__glibcxx_want_constexpr_charconv) */
#undef __glibcxx_want_constexpr_charconv
-// from version.def line 1323
+// from version.def line 1330
#if !defined(__cpp_lib_constexpr_typeinfo)
# if (__cplusplus >= 202302L)
# define __glibcxx_constexpr_typeinfo 202106L
@@ -1609,7 +1614,7 @@
#endif /* !defined(__cpp_lib_constexpr_typeinfo) && defined(__glibcxx_want_constexpr_typeinfo) */
#undef __glibcxx_want_constexpr_typeinfo
-// from version.def line 1331
+// from version.def line 1338
#if !defined(__cpp_lib_expected)
# if (__cplusplus >= 202302L) && (__cpp_concepts >= 202002L)
# define __glibcxx_expected 202211L
@@ -1620,7 +1625,7 @@
#endif /* !defined(__cpp_lib_expected) && defined(__glibcxx_want_expected) */
#undef __glibcxx_want_expected
-// from version.def line 1340
+// from version.def line 1347
#if !defined(__cpp_lib_invoke_r)
# if (__cplusplus >= 202302L)
# define __glibcxx_invoke_r 202106L
@@ -1631,7 +1636,7 @@
#endif /* !defined(__cpp_lib_invoke_r) && defined(__glibcxx_want_invoke_r) */
#undef __glibcxx_want_invoke_r
-// from version.def line 1348
+// from version.def line 1355
#if !defined(__cpp_lib_is_scoped_enum)
# if (__cplusplus >= 202302L)
# define __glibcxx_is_scoped_enum 202011L
@@ -1642,7 +1647,7 @@
#endif /* !defined(__cpp_lib_is_scoped_enum) && defined(__glibcxx_want_is_scoped_enum) */
#undef __glibcxx_want_is_scoped_enum
-// from version.def line 1356
+// from version.def line 1363
#if !defined(__cpp_lib_reference_from_temporary)
# if (__cplusplus >= 202302L) && (__has_builtin(__reference_constructs_from_temporary) && __has_builtin(__reference_converts_from_temporary))
# define __glibcxx_reference_from_temporary 202202L
@@ -1653,7 +1658,7 @@
#endif /* !defined(__cpp_lib_reference_from_temporary) && defined(__glibcxx_want_reference_from_temporary) */
#undef __glibcxx_want_reference_from_temporary
-// from version.def line 1367
+// from version.def line 1374
#if !defined(__cpp_lib_to_underlying)
# if (__cplusplus >= 202302L)
# define __glibcxx_to_underlying 202102L
@@ -1664,7 +1669,7 @@
#endif /* !defined(__cpp_lib_to_underlying) && defined(__glibcxx_want_to_underlying) */
#undef __glibcxx_want_to_underlying
-// from version.def line 1375
+// from version.def line 1382
#if !defined(__cpp_lib_unreachable)
# if (__cplusplus >= 202302L)
# define __glibcxx_unreachable 202202L
@@ -1675,7 +1680,7 @@
#endif /* !defined(__cpp_lib_unreachable) && defined(__glibcxx_want_unreachable) */
#undef __glibcxx_want_unreachable
-// from version.def line 1383
+// from version.def line 1390
#if !defined(__cpp_lib_ranges_zip)
# if (__cplusplus >= 202302L)
# define __glibcxx_ranges_zip 202110L
@@ -1686,7 +1691,7 @@
#endif /* !defined(__cpp_lib_ranges_zip) && defined(__glibcxx_want_ranges_zip) */
#undef __glibcxx_want_ranges_zip
-// from version.def line 1391
+// from version.def line 1398
#if !defined(__cpp_lib_ranges_chunk)
# if (__cplusplus >= 202302L)
# define __glibcxx_ranges_chunk 202202L
@@ -1697,7 +1702,7 @@
#endif /* !defined(__cpp_lib_ranges_chunk) && defined(__glibcxx_want_ranges_chunk) */
#undef __glibcxx_want_ranges_chunk
-// from version.def line 1399
+// from version.def line 1406
#if !defined(__cpp_lib_ranges_slide)
# if (__cplusplus >= 202302L)
# define __glibcxx_ranges_slide 202202L
@@ -1708,7 +1713,7 @@
#endif /* !defined(__cpp_lib_ranges_slide) && defined(__glibcxx_want_ranges_slide) */
#undef __glibcxx_want_ranges_slide
-// from version.def line 1407
+// from version.def line 1414
#if !defined(__cpp_lib_ranges_chunk_by)
# if (__cplusplus >= 202302L)
# define __glibcxx_ranges_chunk_by 202202L
@@ -1719,7 +1724,7 @@
#endif /* !defined(__cpp_lib_ranges_chunk_by) && defined(__glibcxx_want_ranges_chunk_by) */
#undef __glibcxx_want_ranges_chunk_by
-// from version.def line 1415
+// from version.def line 1422
#if !defined(__cpp_lib_ranges_join_with)
# if (__cplusplus >= 202302L)
# define __glibcxx_ranges_join_with 202202L
@@ -1730,7 +1735,7 @@
#endif /* !defined(__cpp_lib_ranges_join_with) && defined(__glibcxx_want_ranges_join_with) */
#undef __glibcxx_want_ranges_join_with
-// from version.def line 1423
+// from version.def line 1430
#if !defined(__cpp_lib_ranges_repeat)
# if (__cplusplus >= 202302L)
# define __glibcxx_ranges_repeat 202207L
@@ -1741,7 +1746,7 @@
#endif /* !defined(__cpp_lib_ranges_repeat) && defined(__glibcxx_want_ranges_repeat) */
#undef __glibcxx_want_ranges_repeat
-// from version.def line 1431
+// from version.def line 1438
#if !defined(__cpp_lib_ranges_stride)
# if (__cplusplus >= 202302L)
# define __glibcxx_ranges_stride 202207L
@@ -1752,7 +1757,7 @@
#endif /* !defined(__cpp_lib_ranges_stride) && defined(__glibcxx_want_ranges_stride) */
#undef __glibcxx_want_ranges_stride
-// from version.def line 1439
+// from version.def line 1446
#if !defined(__cpp_lib_ranges_cartesian_product)
# if (__cplusplus >= 202302L)
# define __glibcxx_ranges_cartesian_product 202207L
@@ -1763,7 +1768,7 @@
#endif /* !defined(__cpp_lib_ranges_cartesian_product) && defined(__glibcxx_want_ranges_cartesian_product) */
#undef __glibcxx_want_ranges_cartesian_product
-// from version.def line 1447
+// from version.def line 1454
#if !defined(__cpp_lib_ranges_as_rvalue)
# if (__cplusplus >= 202302L)
# define __glibcxx_ranges_as_rvalue 202207L
@@ -1774,7 +1779,7 @@
#endif /* !defined(__cpp_lib_ranges_as_rvalue) && defined(__glibcxx_want_ranges_as_rvalue) */
#undef __glibcxx_want_ranges_as_rvalue
-// from version.def line 1455
+// from version.def line 1462
#if !defined(__cpp_lib_ranges_as_const)
# if (__cplusplus >= 202302L)
# define __glibcxx_ranges_as_const 202207L
@@ -1785,7 +1790,7 @@
#endif /* !defined(__cpp_lib_ranges_as_const) && defined(__glibcxx_want_ranges_as_const) */
#undef __glibcxx_want_ranges_as_const
-// from version.def line 1463
+// from version.def line 1470
#if !defined(__cpp_lib_ranges_enumerate)
# if (__cplusplus >= 202302L)
# define __glibcxx_ranges_enumerate 202302L
@@ -1796,7 +1801,7 @@
#endif /* !defined(__cpp_lib_ranges_enumerate) && defined(__glibcxx_want_ranges_enumerate) */
#undef __glibcxx_want_ranges_enumerate
-// from version.def line 1471
+// from version.def line 1478
#if !defined(__cpp_lib_ranges_fold)
# if (__cplusplus >= 202302L)
# define __glibcxx_ranges_fold 202207L
@@ -1807,7 +1812,7 @@
#endif /* !defined(__cpp_lib_ranges_fold) && defined(__glibcxx_want_ranges_fold) */
#undef __glibcxx_want_ranges_fold
-// from version.def line 1479
+// from version.def line 1486
#if !defined(__cpp_lib_ranges_contains)
# if (__cplusplus >= 202302L)
# define __glibcxx_ranges_contains 202207L
@@ -1818,7 +1823,7 @@
#endif /* !defined(__cpp_lib_ranges_contains) && defined(__glibcxx_want_ranges_contains) */
#undef __glibcxx_want_ranges_contains
-// from version.def line 1487
+// from version.def line 1494
#if !defined(__cpp_lib_ranges_iota)
# if (__cplusplus >= 202302L)
# define __glibcxx_ranges_iota 202202L
@@ -1829,7 +1834,7 @@
#endif /* !defined(__cpp_lib_ranges_iota) && defined(__glibcxx_want_ranges_iota) */
#undef __glibcxx_want_ranges_iota
-// from version.def line 1495
+// from version.def line 1502
#if !defined(__cpp_lib_ranges_find_last)
# if (__cplusplus >= 202302L)
# define __glibcxx_ranges_find_last 202207L
@@ -1840,7 +1845,7 @@
#endif /* !defined(__cpp_lib_ranges_find_last) && defined(__glibcxx_want_ranges_find_last) */
#undef __glibcxx_want_ranges_find_last
-// from version.def line 1503
+// from version.def line 1510
#if !defined(__cpp_lib_constexpr_bitset)
# if (__cplusplus >= 202302L) && _GLIBCXX_HOSTED && (__cpp_constexpr_dynamic_alloc)
# define __glibcxx_constexpr_bitset 202202L
@@ -1851,7 +1856,7 @@
#endif /* !defined(__cpp_lib_constexpr_bitset) && defined(__glibcxx_want_constexpr_bitset) */
#undef __glibcxx_want_constexpr_bitset
-// from version.def line 1513
+// from version.def line 1520
#if !defined(__cpp_lib_stdatomic_h)
# if (__cplusplus >= 202302L)
# define __glibcxx_stdatomic_h 202011L
@@ -1862,7 +1867,7 @@
#endif /* !defined(__cpp_lib_stdatomic_h) && defined(__glibcxx_want_stdatomic_h) */
#undef __glibcxx_want_stdatomic_h
-// from version.def line 1521
+// from version.def line 1528
#if !defined(__cpp_lib_adaptor_iterator_pair_constructor)
# if (__cplusplus >= 202302L) && _GLIBCXX_HOSTED
# define __glibcxx_adaptor_iterator_pair_constructor 202106L
@@ -1873,7 +1878,7 @@
#endif /* !defined(__cpp_lib_adaptor_iterator_pair_constructor) && defined(__glibcxx_want_adaptor_iterator_pair_constructor) */
#undef __glibcxx_want_adaptor_iterator_pair_constructor
-// from version.def line 1530
+// from version.def line 1537
#if !defined(__cpp_lib_formatters)
# if (__cplusplus >= 202302L) && _GLIBCXX_HOSTED
# define __glibcxx_formatters 202302L
@@ -1884,7 +1889,7 @@
#endif /* !defined(__cpp_lib_formatters) && defined(__glibcxx_want_formatters) */
#undef __glibcxx_want_formatters
-// from version.def line 1539
+// from version.def line 1546
#if !defined(__cpp_lib_ios_noreplace)
# if (__cplusplus >= 202302L) && _GLIBCXX_HOSTED
# define __glibcxx_ios_noreplace 202207L
@@ -1895,7 +1900,7 @@
#endif /* !defined(__cpp_lib_ios_noreplace) && defined(__glibcxx_want_ios_noreplace) */
#undef __glibcxx_want_ios_noreplace
-// from version.def line 1548
+// from version.def line 1555
#if !defined(__cpp_lib_move_only_function)
# if (__cplusplus >= 202302L) && _GLIBCXX_HOSTED
# define __glibcxx_move_only_function 202110L
@@ -1906,7 +1911,7 @@
#endif /* !defined(__cpp_lib_move_only_function) && defined(__glibcxx_want_move_only_function) */
#undef __glibcxx_want_move_only_function
-// from version.def line 1557
+// from version.def line 1564
#if !defined(__cpp_lib_spanstream)
# if (__cplusplus >= 202302L) && _GLIBCXX_HOSTED && (__glibcxx_span)
# define __glibcxx_spanstream 202106L
@@ -1917,7 +1922,7 @@
#endif /* !defined(__cpp_lib_spanstream) && defined(__glibcxx_want_spanstream) */
#undef __glibcxx_want_spanstream
-// from version.def line 1567
+// from version.def line 1574
#if !defined(__cpp_lib_stacktrace)
# if (__cplusplus >= 202302L) && _GLIBCXX_HOSTED && (_GLIBCXX_HAVE_STACKTRACE)
# define __glibcxx_stacktrace 202011L
@@ -1928,7 +1933,7 @@
#endif /* !defined(__cpp_lib_stacktrace) && defined(__glibcxx_want_stacktrace) */
#undef __glibcxx_want_stacktrace
-// from version.def line 1577
+// from version.def line 1584
#if !defined(__cpp_lib_string_contains)
# if (__cplusplus >= 202302L) && _GLIBCXX_HOSTED
# define __glibcxx_string_contains 202011L
@@ -1939,7 +1944,7 @@
#endif /* !defined(__cpp_lib_string_contains) && defined(__glibcxx_want_string_contains) */
#undef __glibcxx_want_string_contains
-// from version.def line 1586
+// from version.def line 1593
#if !defined(__cpp_lib_string_resize_and_overwrite)
# if (__cplusplus >= 202302L) && _GLIBCXX_HOSTED
# define __glibcxx_string_resize_and_overwrite 202110L
@@ -1950,7 +1955,18 @@
#endif /* !defined(__cpp_lib_string_resize_and_overwrite) && defined(__glibcxx_want_string_resize_and_overwrite) */
#undef __glibcxx_want_string_resize_and_overwrite
-// from version.def line 1595
+// from version.def line 1602
+#if !defined(__cpp_lib_fstream_native_handle)
+# if (__cplusplus > 202302L) && _GLIBCXX_HOSTED
+# define __glibcxx_fstream_native_handle 202306L
+# if defined(__glibcxx_want_all) || defined(__glibcxx_want_fstream_native_handle)
+# define __cpp_lib_fstream_native_handle 202306L
+# endif
+# endif
+#endif /* !defined(__cpp_lib_fstream_native_handle) && defined(__glibcxx_want_fstream_native_handle) */
+#undef __glibcxx_want_fstream_native_handle
+
+// from version.def line 1611
#if !defined(__cpp_lib_ratio)
# if (__cplusplus > 202302L)
# define __glibcxx_ratio 202306L
@@ -1961,7 +1977,7 @@
#endif /* !defined(__cpp_lib_ratio) && defined(__glibcxx_want_ratio) */
#undef __glibcxx_want_ratio
-// from version.def line 1603
+// from version.def line 1619
#if !defined(__cpp_lib_to_string)
# if (__cplusplus > 202302L) && _GLIBCXX_HOSTED && (__glibcxx_to_chars)
# define __glibcxx_to_string 202306L
diff --git a/libstdc++-v3/include/experimental/io_context b/libstdc++-v3/include/experimental/io_context
index c59f8c8..c878d5a 100644
--- a/libstdc++-v3/include/experimental/io_context
+++ b/libstdc++-v3/include/experimental/io_context
@@ -562,7 +562,11 @@ inline namespace v1
}
};
+#ifdef _GLIBCXX_HAS_GTHREADS
atomic<count_type> _M_work_count;
+#else
+ count_type _M_work_count;
+#endif
mutable execution_context::mutex_type _M_mtx;
queue<function<void()>> _M_op;
bool _M_stopped = false;
diff --git a/libstdc++-v3/include/experimental/memory_resource b/libstdc++-v3/include/experimental/memory_resource
index 9f1cb42..6f419a0 100644
--- a/libstdc++-v3/include/experimental/memory_resource
+++ b/libstdc++-v3/include/experimental/memory_resource
@@ -549,10 +549,20 @@ namespace pmr {
// The default memory resource
/// @cond undocumented
- inline std::atomic<memory_resource*>&
+ inline auto&
__get_default_resource()
{
+#ifndef _GLIBCXX_HAS_GTHREADS
+ struct type {
+ using value_type = memory_resource*;
+ explicit type(value_type __r) : _M_r(__r) { }
+ value_type _M_r;
+ value_type load() const { return _M_r; }
+ value_type exchange(value_type __r) { return std::__exchange(_M_r, __r); }
+ };
+#else
using type = atomic<memory_resource*>;
+#endif
alignas(type) static unsigned char __buf[sizeof(type)];
static type* __r = new(__buf) type(new_delete_resource());
return *__r;
diff --git a/libstdc++-v3/include/std/bit b/libstdc++-v3/include/std/bit
index 987b6cd..dce61b4 100644
--- a/libstdc++-v3/include/std/bit
+++ b/libstdc++-v3/include/std/bit
@@ -33,6 +33,7 @@
#if __cplusplus >= 201402L
+#include <concepts> // for std::integral
#include <type_traits>
#if _GLIBCXX_HOSTED || __has_include(<ext/numeric_traits.h>)
@@ -103,9 +104,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
* @return An object of the same type, with the bytes reversed.
* @since C++23
*/
- template<typename _Tp>
+ template<integral _Tp>
[[nodiscard]]
- constexpr enable_if_t<is_integral<_Tp>::value, _Tp>
+ constexpr _Tp
byteswap(_Tp __value) noexcept
{
if constexpr (sizeof(_Tp) == 1)
@@ -378,54 +379,53 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
#ifdef __cpp_lib_bitops // C++ >= 20
/// @cond undocumented
- template<typename _Tp, typename _Up = _Tp>
- using _If_is_unsigned_integer
- = enable_if_t<__is_unsigned_integer<_Tp>::value, _Up>;
+ template<typename _Tp>
+ concept __unsigned_integer = __is_unsigned_integer<_Tp>::value;
/// @endcond
// [bit.rot], rotating
/// Rotate `x` to the left by `s` bits.
- template<typename _Tp>
- [[nodiscard]] constexpr _If_is_unsigned_integer<_Tp>
+ template<__unsigned_integer _Tp>
+ [[nodiscard]] constexpr _Tp
rotl(_Tp __x, int __s) noexcept
{ return std::__rotl(__x, __s); }
/// Rotate `x` to the right by `s` bits.
- template<typename _Tp>
- [[nodiscard]] constexpr _If_is_unsigned_integer<_Tp>
+ template<__unsigned_integer _Tp>
+ [[nodiscard]] constexpr _Tp
rotr(_Tp __x, int __s) noexcept
{ return std::__rotr(__x, __s); }
// [bit.count], counting
/// The number of contiguous zero bits, starting from the highest bit.
- template<typename _Tp>
- constexpr _If_is_unsigned_integer<_Tp, int>
+ template<__unsigned_integer _Tp>
+ constexpr int
countl_zero(_Tp __x) noexcept
{ return std::__countl_zero(__x); }
/// The number of contiguous one bits, starting from the highest bit.
- template<typename _Tp>
- constexpr _If_is_unsigned_integer<_Tp, int>
+ template<__unsigned_integer _Tp>
+ constexpr int
countl_one(_Tp __x) noexcept
{ return std::__countl_one(__x); }
/// The number of contiguous zero bits, starting from the lowest bit.
- template<typename _Tp>
- constexpr _If_is_unsigned_integer<_Tp, int>
+ template<__unsigned_integer _Tp>
+ constexpr int
countr_zero(_Tp __x) noexcept
{ return std::__countr_zero(__x); }
/// The number of contiguous one bits, starting from the lowest bit.
- template<typename _Tp>
- constexpr _If_is_unsigned_integer<_Tp, int>
+ template<__unsigned_integer _Tp>
+ constexpr int
countr_one(_Tp __x) noexcept
{ return std::__countr_one(__x); }
/// The number of bits set in `x`.
- template<typename _Tp>
- constexpr _If_is_unsigned_integer<_Tp, int>
+ template<__unsigned_integer _Tp>
+ constexpr int
popcount(_Tp __x) noexcept
{ return std::__popcount(__x); }
#endif // __cpp_lib_bitops
@@ -434,28 +434,28 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// [bit.pow.two], integral powers of 2
/// True if `x` is a power of two, false otherwise.
- template<typename _Tp>
- constexpr _If_is_unsigned_integer<_Tp, bool>
+ template<__unsigned_integer _Tp>
+ constexpr bool
has_single_bit(_Tp __x) noexcept
{ return std::__has_single_bit(__x); }
/// The smallest power-of-two not less than `x`.
- template<typename _Tp>
- constexpr _If_is_unsigned_integer<_Tp>
+ template<__unsigned_integer _Tp>
+ constexpr _Tp
bit_ceil(_Tp __x) noexcept
{ return std::__bit_ceil(__x); }
/// The largest power-of-two not greater than `x`.
- template<typename _Tp>
- constexpr _If_is_unsigned_integer<_Tp>
+ template<__unsigned_integer _Tp>
+ constexpr _Tp
bit_floor(_Tp __x) noexcept
{ return std::__bit_floor(__x); }
// _GLIBCXX_RESOLVE_LIB_DEFECTS
// 3656. Inconsistent bit operations returning a count
/// The smallest integer greater than the base-2 logarithm of `x`.
- template<typename _Tp>
- constexpr _If_is_unsigned_integer<_Tp, int>
+ template<__unsigned_integer _Tp>
+ constexpr int
bit_width(_Tp __x) noexcept
{ return std::__bit_width(__x); }
#endif // defined (__cpp_lib_int_pow2)
diff --git a/libstdc++-v3/include/std/charconv b/libstdc++-v3/include/std/charconv
index 01711d3..7edb6ad 100644
--- a/libstdc++-v3/include/std/charconv
+++ b/libstdc++-v3/include/std/charconv
@@ -63,6 +63,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
friend bool
operator==(const to_chars_result&, const to_chars_result&) = default;
#endif
+#if __cplusplus > 202302L
+ constexpr explicit operator bool() const noexcept { return ec == errc{}; }
+#endif
};
/// Result type of std::from_chars
@@ -75,6 +78,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
friend bool
operator==(const from_chars_result&, const from_chars_result&) = default;
#endif
+#if __cplusplus > 202302L
+ constexpr explicit operator bool() const noexcept { return ec == errc{}; }
+#endif
};
namespace __detail
diff --git a/libstdc++-v3/include/std/format b/libstdc++-v3/include/std/format
index 128a5b7..1e71725 100644
--- a/libstdc++-v3/include/std/format
+++ b/libstdc++-v3/include/std/format
@@ -3437,7 +3437,13 @@ namespace __format
template<typename _Ctx, typename... _Argz>
friend auto
- std::make_format_args(_Argz&&...) noexcept;
+#if _GLIBCXX_INLINE_VERSION
+ // Needed for PR c++/59526
+ std::__8::
+#else
+ std::
+#endif
+ make_format_args(_Argz&&...) noexcept;
// For a sufficiently small number of arguments we only store values.
// basic_format_args can get the types from the _Args pack.
diff --git a/libstdc++-v3/include/std/fstream b/libstdc++-v3/include/std/fstream
index 3dff4e5..f68fffc 100644
--- a/libstdc++-v3/include/std/fstream
+++ b/libstdc++-v3/include/std/fstream
@@ -46,6 +46,9 @@
#include <string> // For std::string overloads.
#endif
+#define __glibcxx_want_fstream_native_handle
+#include <bits/version.h>
+
// This can be overridden by the target's os_defines.h
#ifndef _GLIBCXX_BUFSIZ
# define _GLIBCXX_BUFSIZ BUFSIZ
@@ -367,6 +370,36 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
__filebuf_type*
close();
+#if __cpp_lib_fstream_native_handle // C++ >= 26
+ /**
+ * @brief The platform-specific file handle type.
+ *
+ * The type is `int` for POSIX platforms that use file descriptors,
+ * or `HANDLE` for Windows, or `FILE*` if the library was configured
+ * with `--enable-cstdio=stdio_pure`.
+ *
+ * @since C++26
+ */
+ using native_handle_type = typename __file_type::native_handle_type;
+
+ /**
+ * @brief Return the platform-specific native handle for the file.
+ * @pre `is_open()` is true.
+ * @return The native file handle associated with `*this`.
+ *
+ * The handle is invalidated when this filebuf is closed or destroyed.
+ *
+ * @since C++26
+ */
+ [[__gnu__::__always_inline__]]
+ native_handle_type
+ native_handle() const noexcept
+ {
+ __glibcxx_assert(is_open());
+ return _M_file.native_handle();
+ }
+#endif
+
protected:
void
_M_allocate_internal_buffer();
@@ -739,6 +772,15 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
if (!_M_filebuf.close())
this->setstate(ios_base::failbit);
}
+
+#if __cpp_lib_fstream_native_handle // C++ >= 26
+ using native_handle_type = typename __filebuf_type::native_handle_type;
+
+ [[__gnu__::__always_inline__]]
+ native_handle_type
+ native_handle() const noexcept
+ { return _M_filebuf.native_handle(); }
+#endif
};
@@ -1002,6 +1044,15 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
if (!_M_filebuf.close())
this->setstate(ios_base::failbit);
}
+
+#if __cpp_lib_fstream_native_handle // C++ >= 26
+ using native_handle_type = typename __filebuf_type::native_handle_type;
+
+ [[__gnu__::__always_inline__]]
+ native_handle_type
+ native_handle() const noexcept
+ { return _M_filebuf.native_handle(); }
+#endif
};
@@ -1262,6 +1313,15 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
if (!_M_filebuf.close())
this->setstate(ios_base::failbit);
}
+
+#if __cpp_lib_fstream_native_handle // C++ >= 26
+ using native_handle_type = typename __filebuf_type::native_handle_type;
+
+ [[__gnu__::__always_inline__]]
+ native_handle_type
+ native_handle() const noexcept
+ { return _M_filebuf.native_handle(); }
+#endif
};
#if __cplusplus >= 201103L
diff --git a/libstdc++-v3/include/std/functional b/libstdc++-v3/include/std/functional
index 60d4d1f..9551e38 100644
--- a/libstdc++-v3/include/std/functional
+++ b/libstdc++-v3/include/std/functional
@@ -938,6 +938,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
~_Bind_front() = default;
template<typename... _CallArgs>
+ requires true
constexpr
invoke_result_t<_Fd&, _BoundArgs&..., _CallArgs...>
operator()(_CallArgs&&... __call_args) &
@@ -948,6 +949,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
}
template<typename... _CallArgs>
+ requires true
constexpr
invoke_result_t<const _Fd&, const _BoundArgs&..., _CallArgs...>
operator()(_CallArgs&&... __call_args) const &
@@ -959,6 +961,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
}
template<typename... _CallArgs>
+ requires true
constexpr
invoke_result_t<_Fd, _BoundArgs..., _CallArgs...>
operator()(_CallArgs&&... __call_args) &&
@@ -969,6 +972,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
}
template<typename... _CallArgs>
+ requires true
constexpr
invoke_result_t<const _Fd, const _BoundArgs..., _CallArgs...>
operator()(_CallArgs&&... __call_args) const &&
@@ -979,6 +983,18 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
std::forward<_CallArgs>(__call_args)...);
}
+ template<typename... _CallArgs>
+ void operator()(_CallArgs&&...) & = delete;
+
+ template<typename... _CallArgs>
+ void operator()(_CallArgs&&...) const & = delete;
+
+ template<typename... _CallArgs>
+ void operator()(_CallArgs&&...) && = delete;
+
+ template<typename... _CallArgs>
+ void operator()(_CallArgs&&...) const && = delete;
+
private:
using _BoundIndices = index_sequence_for<_BoundArgs...>;
@@ -996,69 +1012,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
[[no_unique_address]] std::tuple<_BoundArgs...> _M_bound_args;
};
- // Avoid the overhead of an empty tuple<> if there are no bound args.
- template<typename _Fd>
- struct _Bind_front0
- {
- static_assert(is_move_constructible_v<_Fd>);
-
- // First parameter is to ensure this constructor is never used
- // instead of the copy/move constructor.
- template<typename _Fn>
- explicit constexpr
- _Bind_front0(int, _Fn&& __fn)
- noexcept(is_nothrow_constructible_v<_Fd, _Fn>)
- : _M_fd(std::forward<_Fn>(__fn))
- { }
-
- _Bind_front0(const _Bind_front0&) = default;
- _Bind_front0(_Bind_front0&&) = default;
- _Bind_front0& operator=(const _Bind_front0&) = default;
- _Bind_front0& operator=(_Bind_front0&&) = default;
- ~_Bind_front0() = default;
-
- template<typename... _CallArgs>
- constexpr
- invoke_result_t<_Fd&, _CallArgs...>
- operator()(_CallArgs&&... __call_args) &
- noexcept(is_nothrow_invocable_v<_Fd&, _CallArgs...>)
- { return std::invoke(_M_fd, std::forward<_CallArgs>(__call_args)...); }
-
- template<typename... _CallArgs>
- constexpr
- invoke_result_t<const _Fd&, _CallArgs...>
- operator()(_CallArgs&&... __call_args) const &
- noexcept(is_nothrow_invocable_v<const _Fd&, _CallArgs...>)
- { return std::invoke(_M_fd, std::forward<_CallArgs>(__call_args)...); }
-
- template<typename... _CallArgs>
- constexpr
- invoke_result_t<_Fd, _CallArgs...>
- operator()(_CallArgs&&... __call_args) &&
- noexcept(is_nothrow_invocable_v<_Fd, _CallArgs...>)
- {
- return std::invoke(std::move(_M_fd),
- std::forward<_CallArgs>(__call_args)...);
- }
-
- template<typename... _CallArgs>
- constexpr
- invoke_result_t<const _Fd, _CallArgs...>
- operator()(_CallArgs&&... __call_args) const &&
- noexcept(is_nothrow_invocable_v<const _Fd, _CallArgs...>)
- {
- return std::invoke(std::move(_M_fd),
- std::forward<_CallArgs>(__call_args)...);
- }
-
- private:
- [[no_unique_address]] _Fd _M_fd;
- };
-
template<typename _Fn, typename... _Args>
- using _Bind_front_t
- = __conditional_t<sizeof...(_Args) == 0, _Bind_front0<decay_t<_Fn>>,
- _Bind_front<decay_t<_Fn>, decay_t<_Args>...>>;
+ using _Bind_front_t = _Bind_front<decay_t<_Fn>, decay_t<_Args>...>;
/** Create call wrapper by partial application of arguments to function.
*
@@ -1106,7 +1061,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// forwarding _M_fn and the function arguments with the same qualifiers,
// and deducing the return type and exception-specification.
#define _GLIBCXX_NOT_FN_CALL_OP( _QUALS ) \
- template<typename... _Args> \
+ template<typename... _Args, \
+ typename = enable_if_t<__is_invocable<_Fn _QUALS, _Args...>::value>> \
_GLIBCXX20_CONSTEXPR \
decltype(_S_not<__inv_res_t<_Fn _QUALS, _Args...>>()) \
operator()(_Args&&... __args) _QUALS \
@@ -1115,7 +1071,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
{ \
return !std::__invoke(std::forward< _Fn _QUALS >(_M_fn), \
std::forward<_Args>(__args)...); \
- }
+ } \
+ \
+ template<typename... _Args, \
+ typename = enable_if_t<!__is_invocable<_Fn _QUALS, _Args...>::value>> \
+ void operator()(_Args&&... __args) _QUALS = delete;
+
_GLIBCXX_NOT_FN_CALL_OP( & )
_GLIBCXX_NOT_FN_CALL_OP( const & )
_GLIBCXX_NOT_FN_CALL_OP( && )
diff --git a/libstdc++-v3/include/std/variant b/libstdc++-v3/include/std/variant
index 7cb7c3b..c0e4174 100644
--- a/libstdc++-v3/include/std/variant
+++ b/libstdc++-v3/include/std/variant
@@ -1123,7 +1123,6 @@ namespace __variant
{
static_assert(__detail::__variant::__exactly_once<_Tp, _Types...>,
"T must occur exactly once in alternatives");
- static_assert(!is_void_v<_Tp>, "_Tp must not be void");
constexpr size_t __n = std::__find_uniq_type_in_pack<_Tp, _Types...>();
return std::get<__n>(__v);
}
@@ -1134,7 +1133,6 @@ namespace __variant
{
static_assert(__detail::__variant::__exactly_once<_Tp, _Types...>,
"T must occur exactly once in alternatives");
- static_assert(!is_void_v<_Tp>, "_Tp must not be void");
constexpr size_t __n = std::__find_uniq_type_in_pack<_Tp, _Types...>();
return std::get<__n>(std::move(__v));
}
@@ -1145,7 +1143,6 @@ namespace __variant
{
static_assert(__detail::__variant::__exactly_once<_Tp, _Types...>,
"T must occur exactly once in alternatives");
- static_assert(!is_void_v<_Tp>, "_Tp must not be void");
constexpr size_t __n = std::__find_uniq_type_in_pack<_Tp, _Types...>();
return std::get<__n>(__v);
}
@@ -1156,7 +1153,6 @@ namespace __variant
{
static_assert(__detail::__variant::__exactly_once<_Tp, _Types...>,
"T must occur exactly once in alternatives");
- static_assert(!is_void_v<_Tp>, "_Tp must not be void");
constexpr size_t __n = std::__find_uniq_type_in_pack<_Tp, _Types...>();
return std::get<__n>(std::move(__v));
}
@@ -1336,9 +1332,6 @@ namespace __variant
template<typename... _Types>
class variant
: private __detail::__variant::_Variant_base<_Types...>,
- private _Enable_default_constructor<
- __detail::__variant::_Traits<_Types...>::_S_default_ctor,
- variant<_Types...>>,
private _Enable_copy_move<
__detail::__variant::_Traits<_Types...>::_S_copy_ctor,
__detail::__variant::_Traits<_Types...>::_S_copy_assign,
@@ -1359,10 +1352,6 @@ namespace __variant
"variant must have no void alternative");
using _Base = __detail::__variant::_Variant_base<_Types...>;
- using _Default_ctor_enabler =
- _Enable_default_constructor<
- __detail::__variant::_Traits<_Types...>::_S_default_ctor,
- variant<_Types...>>;
template<typename _Tp>
static constexpr bool __not_self
@@ -1400,7 +1389,16 @@ namespace __variant
= !__is_in_place_tag<__remove_cvref_t<_Tp>>::value;
public:
- variant() = default;
+#if __cpp_concepts
+ variant() requires is_default_constructible_v<__to_type<0>> = default;
+#else
+ template<typename _Tp0 = __to_type<0>,
+ typename = enable_if_t<is_default_constructible_v<_Tp0>>>
+ constexpr
+ variant() noexcept(is_nothrow_default_constructible_v<__to_type<0>>)
+ { }
+#endif
+
variant(const variant& __rhs) = default;
variant(variant&&) = default;
variant& operator=(const variant&) = default;
@@ -1445,8 +1443,7 @@ namespace __variant
typename = enable_if_t<is_constructible_v<_Tp, _Args...>>>
constexpr explicit
variant(in_place_index_t<_Np>, _Args&&... __args)
- : _Base(in_place_index<_Np>, std::forward<_Args>(__args)...),
- _Default_ctor_enabler(_Enable_default_constructor_tag{})
+ : _Base(in_place_index<_Np>, std::forward<_Args>(__args)...)
{ }
template<size_t _Np, typename _Up, typename... _Args,
@@ -1457,8 +1454,7 @@ namespace __variant
constexpr explicit
variant(in_place_index_t<_Np>, initializer_list<_Up> __il,
_Args&&... __args)
- : _Base(in_place_index<_Np>, __il, std::forward<_Args>(__args)...),
- _Default_ctor_enabler(_Enable_default_constructor_tag{})
+ : _Base(in_place_index<_Np>, __il, std::forward<_Args>(__args)...)
{ }
template<typename _Tp>
diff --git a/libstdc++-v3/python/libstdcxx/v6/printers.py b/libstdc++-v3/python/libstdcxx/v6/printers.py
index 37a447b..c0056de 100644
--- a/libstdc++-v3/python/libstdcxx/v6/printers.py
+++ b/libstdc++-v3/python/libstdcxx/v6/printers.py
@@ -18,10 +18,12 @@
import gdb
import itertools
import re
-import sys, os, errno
+import sys
+import os
+import errno
import datetime
-### Python 2 + Python 3 compatibility code
+# Python 2 + Python 3 compatibility code
# Resources about compatibility:
#
@@ -38,7 +40,7 @@ import datetime
# <https://sourceware.org/bugzilla/show_bug.cgi?id=17138>
if sys.version_info[0] > 2:
- ### Python 3 stuff
+ # Python 3 stuff
Iterator = object
# Python 3 folds these into the normal functions.
imap = map
@@ -47,7 +49,7 @@ if sys.version_info[0] > 2:
long = int
_utc_timezone = datetime.timezone.utc
else:
- ### Python 2 stuff
+ # Python 2 stuff
class Iterator:
"""Compatibility mixin for iterators
@@ -98,6 +100,8 @@ except ImportError:
# Starting with the type ORIG, search for the member type NAME. This
# handles searching upward through superclasses. This is needed to
# work around http://sourceware.org/bugzilla/show_bug.cgi?id=13615.
+
+
def find_type(orig, name):
typ = orig.strip_typedefs()
while True:
@@ -116,8 +120,10 @@ def find_type(orig, name):
else:
raise ValueError("Cannot find type %s::%s" % (str(orig), name))
+
_versioned_namespace = '__8::'
+
def lookup_templ_spec(templ, *args):
"""
Lookup template specialization templ<args...>
@@ -139,6 +145,8 @@ def lookup_templ_spec(templ, *args):
# Use this to find container node types instead of find_type,
# see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91997 for details.
+
+
def lookup_node_type(nodename, containertype):
"""
Lookup specialization of template NODENAME corresponding to CONTAINERTYPE.
@@ -168,6 +176,7 @@ def lookup_node_type(nodename, containertype):
pass
return None
+
def is_member_of_namespace(typ, *namespaces):
"""
Test whether a type is a member of one of the specified namespaces.
@@ -181,6 +190,7 @@ def is_member_of_namespace(typ, *namespaces):
return True
return False
+
def is_specialization_of(x, template_name):
"""
Test whether a type is a specialization of the named class template.
@@ -195,12 +205,14 @@ def is_specialization_of(x, template_name):
return re.match('^std::(%s)?%s<.*>$' % (_versioned_namespace, template_name), x) is not None
return re.match('^std::%s<.*>$' % template_name, x) is not None
+
def strip_versioned_namespace(typename):
global _versioned_namespace
if _versioned_namespace:
return typename.replace(_versioned_namespace, '')
return typename
+
def strip_inline_namespaces(type_str):
"Remove known inline namespaces from the canonical name of a type."
type_str = strip_versioned_namespace(type_str)
@@ -212,6 +224,7 @@ def strip_inline_namespaces(type_str):
type_str = type_str.replace(fs_ns+'v1::', fs_ns)
return type_str
+
def get_template_arg_list(type_obj):
"Return a type's template arguments as a list"
n = 0
@@ -223,6 +236,7 @@ def get_template_arg_list(type_obj):
return template_args
n += 1
+
class SmartPtrIterator(Iterator):
"An iterator for smart pointer types with a single 'child' value"
@@ -238,28 +252,29 @@ class SmartPtrIterator(Iterator):
self.val, val = None, self.val
return ('get()', val)
+
class SharedPointerPrinter:
"Print a shared_ptr, weak_ptr, atomic<shared_ptr>, or atomic<weak_ptr>"
- def __init__ (self, typename, val):
+ def __init__(self, typename, val):
self.typename = strip_versioned_namespace(typename)
self.val = val
self.pointer = val['_M_ptr']
- def children (self):
+ def children(self):
return SmartPtrIterator(self.pointer)
# Return the _Sp_counted_base<>* that holds the refcounts.
- def _get_refcounts (self):
+ def _get_refcounts(self):
if self.typename == 'std::atomic':
# A tagged pointer is stored as uintptr_t.
ptr_val = self.val['_M_refcount']['_M_val']['_M_i']
- ptr_val = ptr_val - (ptr_val % 2) # clear lock bit
+ ptr_val = ptr_val - (ptr_val % 2) # clear lock bit
ptr_type = find_type(self.val['_M_refcount'].type, 'pointer')
return ptr_val.cast(ptr_type)
return self.val['_M_refcount']['_M_pi']
- def to_string (self):
+ def to_string(self):
state = 'empty'
refcounts = self._get_refcounts()
targ = self.val.type.template_argument(0)
@@ -271,19 +286,23 @@ class SharedPointerPrinter:
if usecount == 0:
state = 'expired, weak count %d' % weakcount
else:
- state = 'use count %d, weak count %d' % (usecount, weakcount - 1)
+ state = 'use count %d, weak count %d' % (
+ usecount, weakcount - 1)
return '%s<%s> (%s)' % (self.typename, targ, state)
+
def _tuple_impl_get(val):
"Return the tuple element stored in a _Tuple_impl<N, T> base class."
bases = val.type.fields()
if not bases[-1].is_base_class:
- raise ValueError("Unsupported implementation for std::tuple: %s" % str(val.type))
+ raise ValueError(
+ "Unsupported implementation for std::tuple: %s" % str(val.type))
# Get the _Head_base<N, T> base class:
head_base = val.cast(bases[-1].type)
fields = head_base.type.fields()
if len(fields) == 0:
- raise ValueError("Unsupported implementation for std::tuple: %s" % str(val.type))
+ raise ValueError(
+ "Unsupported implementation for std::tuple: %s" % str(val.type))
if fields[0].name == '_M_head_impl':
# The tuple element is the _Head_base::_M_head_impl data member.
return head_base['_M_head_impl']
@@ -292,7 +311,9 @@ def _tuple_impl_get(val):
# Cast to that empty base class.
return head_base.cast(fields[0].type)
else:
- raise ValueError("Unsupported implementation for std::tuple: %s" % str(val.type))
+ raise ValueError(
+ "Unsupported implementation for std::tuple: %s" % str(val.type))
+
def tuple_get(n, val):
"Return the result of std::get<n>(val) on a std::tuple"
@@ -307,6 +328,7 @@ def tuple_get(n, val):
n -= 1
return _tuple_impl_get(node)
+
def unique_ptr_get(val):
"Return the result of val.get() on a std::unique_ptr"
# std::unique_ptr<T, D> contains a std::tuple<D::pointer, D>,
@@ -315,30 +337,34 @@ def unique_ptr_get(val):
impl_type = val.type.fields()[0].type.strip_typedefs()
# Check for new implementations first:
if is_specialization_of(impl_type, '__uniq_ptr_data') \
- or is_specialization_of(impl_type, '__uniq_ptr_impl'):
+ or is_specialization_of(impl_type, '__uniq_ptr_impl'):
tuple_member = val['_M_t']['_M_t']
elif is_specialization_of(impl_type, 'tuple'):
tuple_member = val['_M_t']
else:
- raise ValueError("Unsupported implementation for unique_ptr: %s" % str(impl_type))
+ raise ValueError(
+ "Unsupported implementation for unique_ptr: %s" % str(impl_type))
return tuple_get(0, tuple_member)
+
class UniquePointerPrinter:
"Print a unique_ptr"
- def __init__ (self, typename, val):
+ def __init__(self, typename, val):
self.val = val
- def children (self):
+ def children(self):
return SmartPtrIterator(unique_ptr_get(self.val))
- def to_string (self):
+ def to_string(self):
return ('std::unique_ptr<%s>' % (str(self.val.type.template_argument(0))))
+
def get_value_from_aligned_membuf(buf, valtype):
"""Returns the value held in a __gnu_cxx::__aligned_membuf."""
return buf['_M_storage'].address.cast(valtype.pointer()).dereference()
+
def get_value_from_list_node(node):
"""Returns the value held in an _List_node<_Val>"""
try:
@@ -354,6 +380,7 @@ def get_value_from_list_node(node):
pass
raise ValueError("Unsupported implementation for %s" % str(node.type))
+
class StdListPrinter:
"Print a std::list"
@@ -391,6 +418,7 @@ class StdListPrinter:
return 'empty %s' % (self.typename)
return '%s' % (self.typename)
+
class NodeIteratorPrinter:
def __init__(self, typename, val, contname, nodename):
self.val = val
@@ -404,12 +432,14 @@ class NodeIteratorPrinter:
node = self.val['_M_node'].cast(self.nodetype.pointer()).dereference()
return str(get_value_from_list_node(node))
+
class StdListIteratorPrinter(NodeIteratorPrinter):
"Print std::list::iterator"
def __init__(self, typename, val):
NodeIteratorPrinter.__init__(self, typename, val, 'list', '_List_node')
+
class StdFwdListIteratorPrinter(NodeIteratorPrinter):
"Print std::forward_list::iterator"
@@ -417,6 +447,7 @@ class StdFwdListIteratorPrinter(NodeIteratorPrinter):
NodeIteratorPrinter.__init__(self, typename, val, 'forward_list',
'_Fwd_list_node')
+
class StdSlistPrinter:
"Print a __gnu_cxx::slist"
@@ -450,6 +481,7 @@ class StdSlistPrinter:
return 'empty __gnu_cxx::slist'
return '__gnu_cxx::slist'
+
class StdSlistIteratorPrinter:
"Print __gnu_cxx::slist::iterator"
@@ -459,20 +491,22 @@ class StdSlistIteratorPrinter:
def to_string(self):
if not self.val['_M_node']:
return 'non-dereferenceable iterator for __gnu_cxx::slist'
- nodetype = lookup_node_type('__gnu_cxx::_Slist_node', self.val.type).pointer()
+ nodetype = lookup_node_type(
+ '__gnu_cxx::_Slist_node', self.val.type).pointer()
return str(self.val['_M_node'].cast(nodetype).dereference()['_M_data'])
+
class StdVectorPrinter:
"Print a std::vector"
class _iterator(Iterator):
- def __init__ (self, start, finish, bitvec):
+ def __init__(self, start, finish, bitvec):
self.bitvec = bitvec
if bitvec:
- self.item = start['_M_p']
- self.so = 0
+ self.item = start['_M_p']
+ self.so = 0
self.finish = finish['_M_p']
- self.fo = finish['_M_offset']
+ self.fo = finish['_M_offset']
itype = self.item.dereference().type
self.isize = 8 * itype.sizeof
else:
@@ -519,20 +553,21 @@ class StdVectorPrinter:
if self.is_bool:
start = self.val['_M_impl']['_M_start']['_M_p']
finish = self.val['_M_impl']['_M_finish']['_M_p']
- fo = self.val['_M_impl']['_M_finish']['_M_offset']
+ fo = self.val['_M_impl']['_M_finish']['_M_offset']
itype = start.dereference().type
bl = 8 * itype.sizeof
- length = bl * (finish - start) + fo
+ length = bl * (finish - start) + fo
capacity = bl * (end - start)
return ('%s<bool> of length %d, capacity %d'
- % (self.typename, int (length), int (capacity)))
+ % (self.typename, int(length), int(capacity)))
else:
return ('%s of length %d, capacity %d'
- % (self.typename, int (finish - start), int (end - start)))
+ % (self.typename, int(finish - start), int(end - start)))
def display_hint(self):
return 'array'
+
class StdVectorIteratorPrinter:
"Print std::vector::iterator"
@@ -544,6 +579,7 @@ class StdVectorIteratorPrinter:
return 'non-dereferenceable iterator for std::vector'
return str(self.val['_M_current'].dereference())
+
class StdBitIteratorPrinter:
"Print std::vector<bool>'s _Bit_iterator and _Bit_const_iterator"
@@ -555,6 +591,7 @@ class StdBitIteratorPrinter:
return 'non-dereferenceable iterator for std::vector<bool>'
return bool(self.val['_M_p'].dereference() & (1 << self.val['_M_offset']))
+
class StdBitReferencePrinter:
"Print std::vector<bool>::reference"
@@ -566,51 +603,54 @@ class StdBitReferencePrinter:
return 'invalid std::vector<bool>::reference'
return bool(self.val['_M_p'].dereference() & (self.val['_M_mask']))
+
class StdTuplePrinter:
"Print a std::tuple"
class _iterator(Iterator):
@staticmethod
- def _is_nonempty_tuple (nodes):
- if len (nodes) == 2:
- if is_specialization_of (nodes[1].type, '__tuple_base'):
+ def _is_nonempty_tuple(nodes):
+ if len(nodes) == 2:
+ if is_specialization_of(nodes[1].type, '__tuple_base'):
return True
- elif len (nodes) == 1:
+ elif len(nodes) == 1:
return True
- elif len (nodes) == 0:
+ elif len(nodes) == 0:
return False
- raise ValueError("Top of tuple tree does not consist of a single node.")
+ raise ValueError(
+ "Top of tuple tree does not consist of a single node.")
- def __init__ (self, head):
+ def __init__(self, head):
self.head = head
# Set the base class as the initial head of the
# tuple.
- nodes = self.head.type.fields ()
- if self._is_nonempty_tuple (nodes):
+ nodes = self.head.type.fields()
+ if self._is_nonempty_tuple(nodes):
# Set the actual head to the first pair.
- self.head = self.head.cast (nodes[0].type)
+ self.head = self.head.cast(nodes[0].type)
self.count = 0
- def __iter__ (self):
+ def __iter__(self):
return self
- def __next__ (self):
+ def __next__(self):
# Check for further recursions in the inheritance tree.
# For a GCC 5+ tuple self.head is None after visiting all nodes:
if not self.head:
raise StopIteration
- nodes = self.head.type.fields ()
+ nodes = self.head.type.fields()
# For a GCC 4.x tuple there is a final node with no fields:
- if len (nodes) == 0:
+ if len(nodes) == 0:
raise StopIteration
# Check that this iteration has an expected structure.
- if len (nodes) > 2:
- raise ValueError("Cannot parse more than 2 nodes in a tuple tree.")
+ if len(nodes) > 2:
+ raise ValueError(
+ "Cannot parse more than 2 nodes in a tuple tree.")
- if len (nodes) == 1:
+ if len(nodes) == 1:
# This is the last node of a GCC 5+ std::tuple.
- impl = self.head.cast (nodes[0].type)
+ impl = self.head.cast(nodes[0].type)
self.head = None
else:
# Either a node before the last node, or the last node of
@@ -620,53 +660,55 @@ class StdTuplePrinter:
# - Right node is the actual class contained in the tuple.
# Process right node.
- impl = self.head.cast (nodes[1].type)
+ impl = self.head.cast(nodes[1].type)
# Process left node and set it as head.
- self.head = self.head.cast (nodes[0].type)
+ self.head = self.head.cast(nodes[0].type)
self.count = self.count + 1
# Finally, check the implementation. If it is
# wrapped in _M_head_impl return that, otherwise return
# the value "as is".
- fields = impl.type.fields ()
- if len (fields) < 1 or fields[0].name != "_M_head_impl":
+ fields = impl.type.fields()
+ if len(fields) < 1 or fields[0].name != "_M_head_impl":
return ('[%d]' % (self.count - 1), impl)
else:
return ('[%d]' % (self.count - 1), impl['_M_head_impl'])
- def __init__ (self, typename, val):
+ def __init__(self, typename, val):
self.typename = strip_versioned_namespace(typename)
- self.val = val;
+ self.val = val
- def children (self):
- return self._iterator (self.val)
+ def children(self):
+ return self._iterator(self.val)
- def to_string (self):
- if len (self.val.type.fields ()) == 0:
+ def to_string(self):
+ if len(self.val.type.fields()) == 0:
return 'empty %s' % (self.typename)
return '%s containing' % (self.typename)
+
class StdStackOrQueuePrinter:
"Print a std::stack or std::queue"
- def __init__ (self, typename, val):
+ def __init__(self, typename, val):
self.typename = strip_versioned_namespace(typename)
self.visualizer = gdb.default_visualizer(val['c'])
- def children (self):
+ def children(self):
return self.visualizer.children()
- def to_string (self):
+ def to_string(self):
return '%s wrapping: %s' % (self.typename,
self.visualizer.to_string())
- def display_hint (self):
- if hasattr (self.visualizer, 'display_hint'):
- return self.visualizer.display_hint ()
+ def display_hint(self):
+ if hasattr(self.visualizer, 'display_hint'):
+ return self.visualizer.display_hint()
return None
+
class RbtreeIterator(Iterator):
"""
Turn an RB-tree-based container (std::map, std::set etc.) into
@@ -682,7 +724,7 @@ class RbtreeIterator(Iterator):
return self
def __len__(self):
- return int (self.size)
+ return int(self.size)
def __next__(self):
if self.count == self.size:
@@ -706,6 +748,7 @@ class RbtreeIterator(Iterator):
self.node = node
return result
+
def get_value_from_Rb_tree_node(node):
"""Returns the value held in an _Rb_tree_node<_Val>"""
try:
@@ -724,29 +767,32 @@ def get_value_from_Rb_tree_node(node):
# This is a pretty printer for std::_Rb_tree_iterator (which is
# std::map::iterator), and has nothing to do with the RbtreeIterator
# class above.
+
+
class StdRbtreeIteratorPrinter:
"Print std::map::iterator, std::set::iterator, etc."
- def __init__ (self, typename, val):
+ def __init__(self, typename, val):
self.val = val
nodetype = lookup_node_type('_Rb_tree_node', self.val.type)
self.link_type = nodetype.pointer()
- def to_string (self):
+ def to_string(self):
if not self.val['_M_node']:
return 'non-dereferenceable iterator for associative container'
node = self.val['_M_node'].cast(self.link_type).dereference()
return str(get_value_from_Rb_tree_node(node))
+
class StdDebugIteratorPrinter:
"Print a debug enabled version of an iterator"
- def __init__ (self, typename, val):
+ def __init__(self, typename, val):
self.val = val
# Just strip away the encapsulating __gnu_debug::_Safe_iterator
# and return the wrapped iterator value.
- def to_string (self):
+ def to_string(self):
base_type = gdb.lookup_type('__gnu_debug::_Safe_iterator_base')
itype = self.val.type.template_argument(0)
safe_seq = self.val.cast(base_type)['_M_sequence']
@@ -756,10 +802,12 @@ class StdDebugIteratorPrinter:
return "invalid iterator"
return str(self.val.cast(itype))
+
def num_elements(num):
"""Return either "1 element" or "N elements" depending on the argument."""
return '1 element' if num == 1 else '%d elements' % num
+
class StdMapPrinter:
"Print a std::map or std::multimap"
@@ -786,21 +834,22 @@ class StdMapPrinter:
self.count = self.count + 1
return result
- def __init__ (self, typename, val):
+ def __init__(self, typename, val):
self.typename = strip_versioned_namespace(typename)
self.val = val
- def to_string (self):
+ def to_string(self):
return '%s with %s' % (self.typename,
- num_elements(len(RbtreeIterator (self.val))))
+ num_elements(len(RbtreeIterator(self.val))))
- def children (self):
+ def children(self):
node = lookup_node_type('_Rb_tree_node', self.val.type).pointer()
- return self._iter (RbtreeIterator (self.val), node)
+ return self._iter(RbtreeIterator(self.val), node)
- def display_hint (self):
+ def display_hint(self):
return 'map'
+
class StdSetPrinter:
"Print a std::set or std::multiset"
@@ -824,17 +873,18 @@ class StdSetPrinter:
self.count = self.count + 1
return result
- def __init__ (self, typename, val):
+ def __init__(self, typename, val):
self.typename = strip_versioned_namespace(typename)
self.val = val
- def to_string (self):
+ def to_string(self):
return '%s with %s' % (self.typename,
- num_elements(len(RbtreeIterator (self.val))))
+ num_elements(len(RbtreeIterator(self.val))))
- def children (self):
+ def children(self):
node = lookup_node_type('_Rb_tree_node', self.val.type).pointer()
- return self._iter (RbtreeIterator (self.val), node)
+ return self._iter(RbtreeIterator(self.val), node)
+
class StdBitsetPrinter:
"Print a std::bitset"
@@ -843,12 +893,12 @@ class StdBitsetPrinter:
self.typename = strip_versioned_namespace(typename)
self.val = val
- def to_string (self):
+ def to_string(self):
# If template_argument handled values, we could print the
# size. Or we could use a regexp on the type.
return '%s' % (self.typename)
- def children (self):
+ def children(self):
try:
# An empty bitset may not have any members which will
# result in an exception being thrown.
@@ -862,7 +912,7 @@ class StdBitsetPrinter:
# array. This depends on the template specialization used.
# If it is a single long, convert to a single element list.
if wtype.code == gdb.TYPE_CODE_ARRAY:
- tsize = wtype.target ().sizeof
+ tsize = wtype.target().sizeof
else:
words = [words]
tsize = wtype.sizeof
@@ -882,6 +932,7 @@ class StdBitsetPrinter:
byte = byte + 1
return result
+
class StdDequePrinter:
"Print a std::deque"
@@ -921,7 +972,7 @@ class StdDequePrinter:
self.elttype = val.type.template_argument(0)
size = self.elttype.sizeof
if size < 512:
- self.buffer_size = int (512 / size)
+ self.buffer_size = int(512 / size)
else:
self.buffer_size = 1
@@ -943,9 +994,10 @@ class StdDequePrinter:
return self._iter(start['_M_node'], start['_M_cur'], start['_M_last'],
end['_M_cur'], self.buffer_size)
- def display_hint (self):
+ def display_hint(self):
return 'array'
+
class StdDequeIteratorPrinter:
"Print std::deque::iterator"
@@ -957,6 +1009,7 @@ class StdDequeIteratorPrinter:
return 'non-dereferenceable iterator for std::deque'
return str(self.val['_M_cur'].dereference())
+
class StdStringPrinter:
"Print a std::basic_string of some kind"
@@ -968,28 +1021,29 @@ class StdStringPrinter:
# Make sure &string works, too.
type = self.val.type
if type.code == gdb.TYPE_CODE_REF:
- type = type.target ()
+ type = type.target()
# Calculate the length of the string so that to_string returns
# the string according to length, not according to first null
# encountered.
- ptr = self.val ['_M_dataplus']['_M_p']
+ ptr = self.val['_M_dataplus']['_M_p']
if self.new_string:
length = self.val['_M_string_length']
# https://sourceware.org/bugzilla/show_bug.cgi?id=17728
ptr = ptr.cast(ptr.type.strip_typedefs())
else:
- realtype = type.unqualified ().strip_typedefs ()
- reptype = gdb.lookup_type (str (realtype) + '::_Rep').pointer ()
+ realtype = type.unqualified().strip_typedefs()
+ reptype = gdb.lookup_type(str(realtype) + '::_Rep').pointer()
header = ptr.cast(reptype) - 1
- length = header.dereference ()['_M_length']
+ length = header.dereference()['_M_length']
if hasattr(ptr, "lazy_string"):
- return ptr.lazy_string (length = length)
- return ptr.string (length = length)
+ return ptr.lazy_string(length=length)
+ return ptr.string(length=length)
- def display_hint (self):
+ def display_hint(self):
return 'string'
+
def access_streambuf_ptrs(streambuf):
"Access the streambuf put area pointers"
pbase = streambuf['_M_out_beg']
@@ -997,6 +1051,7 @@ def access_streambuf_ptrs(streambuf):
egptr = streambuf['_M_in_end']
return pbase, pptr, egptr
+
class StdStringBufPrinter:
"Print a std::basic_stringbuf"
@@ -1008,14 +1063,15 @@ class StdStringBufPrinter:
# Logic from basic_stringbuf::_M_high_mark()
if pptr:
if not egptr or pptr > egptr:
- return pbase.string(length = pptr - pbase)
+ return pbase.string(length=pptr - pbase)
else:
- return pbase.string(length = egptr - pbase)
+ return pbase.string(length=egptr - pbase)
return self.val['_M_string']
def display_hint(self):
return 'string'
+
class StdStringStreamPrinter:
"Print a std::basic_stringstream"
@@ -1041,8 +1097,9 @@ class StdStringStreamPrinter:
return None
return 'string'
+
class Tr1HashtableIterator(Iterator):
- def __init__ (self, hashtable):
+ def __init__(self, hashtable):
self.buckets = hashtable['_M_buckets']
self.bucket = 0
self.bucket_count = hashtable['_M_bucket_count']
@@ -1054,15 +1111,15 @@ class Tr1HashtableIterator(Iterator):
break
self.bucket = self.bucket + 1
- def __iter__ (self):
+ def __iter__(self):
return self
- def __next__ (self):
+ def __next__(self):
if self.node == 0:
raise StopIteration
node = self.node.cast(self.node_type)
result = node.dereference()['_M_v']
- self.node = node.dereference()['_M_next'];
+ self.node = node.dereference()['_M_next']
if self.node == 0:
self.bucket = self.bucket + 1
while self.bucket != self.bucket_count:
@@ -1072,6 +1129,7 @@ class Tr1HashtableIterator(Iterator):
self.bucket = self.bucket + 1
return result
+
class StdHashtableIterator(Iterator):
def __init__(self, hashtable):
self.node = hashtable['_M_before_begin']['_M_nxt']
@@ -1093,76 +1151,81 @@ class StdHashtableIterator(Iterator):
valptr = valptr.cast(elt.type.template_argument(0).pointer())
return valptr.dereference()
+
class Tr1UnorderedSetPrinter:
"Print a std::unordered_set or tr1::unordered_set"
- def __init__ (self, typename, val):
+ def __init__(self, typename, val):
self.typename = strip_versioned_namespace(typename)
self.val = val
- def hashtable (self):
+ def hashtable(self):
if self.typename.startswith('std::tr1'):
return self.val
return self.val['_M_h']
- def to_string (self):
+ def to_string(self):
count = self.hashtable()['_M_element_count']
return '%s with %s' % (self.typename, num_elements(count))
@staticmethod
- def format_count (i):
+ def format_count(i):
return '[%d]' % i
- def children (self):
- counter = imap (self.format_count, itertools.count())
+ def children(self):
+ counter = imap(self.format_count, itertools.count())
if self.typename.startswith('std::tr1'):
- return izip (counter, Tr1HashtableIterator (self.hashtable()))
- return izip (counter, StdHashtableIterator (self.hashtable()))
+ return izip(counter, Tr1HashtableIterator(self.hashtable()))
+ return izip(counter, StdHashtableIterator(self.hashtable()))
+
class Tr1UnorderedMapPrinter:
"Print a std::unordered_map or tr1::unordered_map"
- def __init__ (self, typename, val):
+ def __init__(self, typename, val):
self.typename = strip_versioned_namespace(typename)
self.val = val
- def hashtable (self):
+ def hashtable(self):
if self.typename.startswith('std::tr1'):
return self.val
return self.val['_M_h']
- def to_string (self):
+ def to_string(self):
count = self.hashtable()['_M_element_count']
return '%s with %s' % (self.typename, num_elements(count))
@staticmethod
- def flatten (list):
+ def flatten(list):
for elt in list:
for i in elt:
yield i
@staticmethod
- def format_one (elt):
+ def format_one(elt):
return (elt['first'], elt['second'])
@staticmethod
- def format_count (i):
+ def format_count(i):
return '[%d]' % i
- def children (self):
- counter = imap (self.format_count, itertools.count())
+ def children(self):
+ counter = imap(self.format_count, itertools.count())
# Map over the hash table and flatten the result.
if self.typename.startswith('std::tr1'):
- data = self.flatten (imap (self.format_one, Tr1HashtableIterator (self.hashtable())))
+ data = self.flatten(
+ imap(self.format_one, Tr1HashtableIterator(self.hashtable())))
# Zip the two iterators together.
- return izip (counter, data)
- data = self.flatten (imap (self.format_one, StdHashtableIterator (self.hashtable())))
+ return izip(counter, data)
+ data = self.flatten(
+ imap(self.format_one, StdHashtableIterator(self.hashtable())))
# Zip the two iterators together.
- return izip (counter, data)
+ return izip(counter, data)
- def display_hint (self):
+ def display_hint(self):
return 'map'
+
class StdForwardListPrinter:
"Print a std::forward_list"
@@ -1199,10 +1262,11 @@ class StdForwardListPrinter:
return 'empty %s' % self.typename
return '%s' % self.typename
+
class SingleObjContainerPrinter(object):
"Base class for printers of containers of single objects"
- def __init__ (self, val, viz, hint = None):
+ def __init__(self, val, viz, hint=None):
self.contained_value = val
self.visualizer = viz
self.hint = hint
@@ -1216,10 +1280,10 @@ class SingleObjContainerPrinter(object):
type) or str(type)
class _contained(Iterator):
- def __init__ (self, val):
+ def __init__(self, val):
self.val = val
- def __iter__ (self):
+ def __iter__(self):
return self
def __next__(self):
@@ -1229,19 +1293,20 @@ class SingleObjContainerPrinter(object):
self.val = None
return ('[contained value]', retval)
- def children (self):
+ def children(self):
if self.contained_value is None:
- return self._contained (None)
- if hasattr (self.visualizer, 'children'):
- return self.visualizer.children ()
- return self._contained (self.contained_value)
+ return self._contained(None)
+ if hasattr(self.visualizer, 'children'):
+ return self.visualizer.children()
+ return self._contained(self.contained_value)
- def display_hint (self):
+ def display_hint(self):
# if contained value is a map we want to display in the same way
- if hasattr (self.visualizer, 'children') and hasattr (self.visualizer, 'display_hint'):
- return self.visualizer.display_hint ()
+ if hasattr(self.visualizer, 'children') and hasattr(self.visualizer, 'display_hint'):
+ return self.visualizer.display_hint()
return self.hint
+
def function_pointer_to_name(f):
"Find the name of the function referred to by the gdb.Value f, "
" which should contain a function pointer from the program."
@@ -1265,12 +1330,14 @@ def function_pointer_to_name(f):
except:
return None
+
class StdExpAnyPrinter(SingleObjContainerPrinter):
"Print a std::any or std::experimental::any"
- def __init__ (self, typename, val):
+ def __init__(self, typename, val):
self.typename = strip_versioned_namespace(typename)
- self.typename = re.sub('^std::experimental::fundamentals_v\d::', 'std::experimental::', self.typename, 1)
+ self.typename = re.sub(
+ '^std::experimental::fundamentals_v\d::', 'std::experimental::', self.typename, 1)
self.val = val
self.contained_type = None
contained_value = None
@@ -1279,11 +1346,13 @@ class StdExpAnyPrinter(SingleObjContainerPrinter):
if mgr != 0:
func = function_pointer_to_name(mgr)
if not func:
- raise ValueError("Invalid function pointer in %s" % (self.typename))
+ raise ValueError(
+ "Invalid function pointer in %s" % (self.typename))
rx = r"""({0}::_Manager_\w+<.*>)::_S_manage\((enum )?{0}::_Op, (const {0}|{0} const) ?\*, (union )?{0}::_Arg ?\*\)""".format(typename)
m = re.match(rx, func)
if not m:
- raise ValueError("Unknown manager function in %s" % self.typename)
+ raise ValueError(
+ "Unknown manager function in %s" % self.typename)
mgrname = m.group(1)
# FIXME need to expand 'std::string' so that gdb.lookup_type works
@@ -1291,11 +1360,13 @@ class StdExpAnyPrinter(SingleObjContainerPrinter):
# This lookup for std::string might return the __cxx11 version,
# but that's not necessarily the one used by the std::any
# manager function we're trying to find.
- strings = {str(gdb.lookup_type('std::string').strip_typedefs())}
+ strings = {
+ str(gdb.lookup_type('std::string').strip_typedefs())}
# So also consider all the other possible std::string types!
s = 'basic_string<char, std::char_traits<char>, std::allocator<char> >'
- quals = ['std::', 'std::__cxx11::', 'std::' + _versioned_namespace]
- strings |= {q+s for q in quals} # set of unique strings
+ quals = ['std::', 'std::__cxx11::',
+ 'std::' + _versioned_namespace]
+ strings |= {q+s for q in quals} # set of unique strings
mgrtypes = []
for s in strings:
try:
@@ -1312,7 +1383,8 @@ class StdExpAnyPrinter(SingleObjContainerPrinter):
# std::any in a single program. Can we do better?
# Maybe find the address of each type's _S_manage and
# compare to the address stored in _M_manager?
- raise ValueError('Cannot uniquely determine std::string type used in std::any')
+ raise ValueError(
+ 'Cannot uniquely determine std::string type used in std::any')
mgrtype = mgrtypes[0]
else:
mgrtype = gdb.lookup_type(mgrname)
@@ -1323,27 +1395,31 @@ class StdExpAnyPrinter(SingleObjContainerPrinter):
elif '::_Manager_external' in mgrname:
valptr = self.val['_M_storage']['_M_ptr']
else:
- raise ValueError("Unknown manager function in %s" % self.typename)
- contained_value = valptr.cast(self.contained_type.pointer()).dereference()
+ raise ValueError(
+ "Unknown manager function in %s" % self.typename)
+ contained_value = valptr.cast(
+ self.contained_type.pointer()).dereference()
visualizer = gdb.default_visualizer(contained_value)
- super(StdExpAnyPrinter, self).__init__ (contained_value, visualizer)
+ super(StdExpAnyPrinter, self).__init__(contained_value, visualizer)
- def to_string (self):
+ def to_string(self):
if self.contained_type is None:
return '%s [no contained value]' % self.typename
desc = "%s containing " % self.typename
- if hasattr (self.visualizer, 'children'):
- return desc + self.visualizer.to_string ()
- valtype = self._recognize (self.contained_type)
+ if hasattr(self.visualizer, 'children'):
+ return desc + self.visualizer.to_string()
+ valtype = self._recognize(self.contained_type)
return desc + strip_versioned_namespace(str(valtype))
+
class StdExpOptionalPrinter(SingleObjContainerPrinter):
"Print a std::optional or std::experimental::optional"
- def __init__ (self, typename, val):
- valtype = self._recognize (val.type.template_argument(0))
+ def __init__(self, typename, val):
+ valtype = self._recognize(val.type.template_argument(0))
typename = strip_versioned_namespace(typename)
- self.typename = re.sub('^std::(experimental::|)(fundamentals_v\d::|)(.*)', r'std::\1\3', typename, 1)
+ self.typename = re.sub(
+ '^std::(experimental::|)(fundamentals_v\d::|)(.*)', r'std::\1\3', typename, 1)
payload = val['_M_payload']
if self.typename.startswith('std::experimental'):
engaged = val['_M_engaged']
@@ -1356,19 +1432,21 @@ class StdExpOptionalPrinter(SingleObjContainerPrinter):
contained_value = contained_value['_M_value']
except:
pass
- visualizer = gdb.default_visualizer (contained_value)
+ visualizer = gdb.default_visualizer(contained_value)
if not engaged:
contained_value = None
- super (StdExpOptionalPrinter, self).__init__ (contained_value, visualizer)
+ super(StdExpOptionalPrinter, self).__init__(
+ contained_value, visualizer)
- def to_string (self):
+ def to_string(self):
if self.contained_value is None:
return "%s [no contained value]" % self.typename
- if hasattr (self.visualizer, 'children'):
+ if hasattr(self.visualizer, 'children'):
return "%s containing %s" % (self.typename,
self.visualizer.to_string())
return self.typename
+
class StdVariantPrinter(SingleObjContainerPrinter):
"Print a std::variant"
@@ -1383,9 +1461,11 @@ class StdVariantPrinter(SingleObjContainerPrinter):
else:
self.contained_type = alternatives[int(self.index)]
addr = val['_M_u']['_M_first']['_M_storage'].address
- contained_value = addr.cast(self.contained_type.pointer()).dereference()
+ contained_value = addr.cast(
+ self.contained_type.pointer()).dereference()
visualizer = gdb.default_visualizer(contained_value)
- super (StdVariantPrinter, self).__init__(contained_value, visualizer, 'array')
+ super(StdVariantPrinter, self).__init__(
+ contained_value, visualizer, 'array')
def to_string(self):
if self.contained_value is None:
@@ -1395,18 +1475,21 @@ class StdVariantPrinter(SingleObjContainerPrinter):
self.visualizer.to_string())
return "%s [index %d]" % (self.typename, self.index)
+
class StdNodeHandlePrinter(SingleObjContainerPrinter):
"Print a container node handle"
def __init__(self, typename, val):
self.value_type = val.type.template_argument(1)
nodetype = val.type.template_argument(2).template_argument(0)
- self.is_rb_tree_node = is_specialization_of(nodetype.name, '_Rb_tree_node')
+ self.is_rb_tree_node = is_specialization_of(
+ nodetype.name, '_Rb_tree_node')
self.is_map_node = val.type.template_argument(0) != self.value_type
nodeptr = val['_M_ptr']
if nodeptr:
if self.is_rb_tree_node:
- contained_value = get_value_from_Rb_tree_node(nodeptr.dereference())
+ contained_value = get_value_from_Rb_tree_node(
+ nodeptr.dereference())
else:
contained_value = get_value_from_aligned_membuf(nodeptr['_M_storage'],
self.value_type)
@@ -1424,9 +1507,9 @@ class StdNodeHandlePrinter(SingleObjContainerPrinter):
if not self.is_rb_tree_node:
desc += 'unordered '
if self.is_map_node:
- desc += 'map';
+ desc += 'map'
else:
- desc += 'set';
+ desc += 'set'
if self.contained_value:
desc += ' with element'
@@ -1436,31 +1519,33 @@ class StdNodeHandlePrinter(SingleObjContainerPrinter):
else:
return 'empty %s' % desc
+
class StdExpStringViewPrinter:
"Print a std::basic_string_view or std::experimental::basic_string_view"
- def __init__ (self, typename, val):
+ def __init__(self, typename, val):
self.val = val
- def to_string (self):
+ def to_string(self):
ptr = self.val['_M_str']
len = self.val['_M_len']
- if hasattr (ptr, "lazy_string"):
- return ptr.lazy_string (length = len)
- return ptr.string (length = len)
+ if hasattr(ptr, "lazy_string"):
+ return ptr.lazy_string(length=len)
+ return ptr.string(length=len)
- def display_hint (self):
+ def display_hint(self):
return 'string'
+
class StdExpPathPrinter:
"Print a std::experimental::filesystem::path"
- def __init__ (self, typename, val):
+ def __init__(self, typename, val):
self.val = val
self.typename = typename
start = self.val['_M_cmpts']['_M_impl']['_M_start']
finish = self.val['_M_cmpts']['_M_impl']['_M_finish']
- self.num_cmpts = int (finish - start)
+ self.num_cmpts = int(finish - start)
def _path_type(self):
t = str(self.val['_M_type'])
@@ -1470,8 +1555,8 @@ class StdExpPathPrinter:
return "root-name"
return None
- def to_string (self):
- path = "%s" % self.val ['_M_pathname']
+ def to_string(self):
+ path = "%s" % self.val['_M_pathname']
if self.num_cmpts == 0:
t = self._path_type()
if t:
@@ -1504,10 +1589,11 @@ class StdExpPathPrinter:
def children(self):
return self._iterator(self.val['_M_cmpts'], self.typename)
+
class StdPathPrinter:
"Print a std::filesystem::path"
- def __init__ (self, typename, val):
+ def __init__(self, typename, val):
self.val = val
self.typename = typename
impl = unique_ptr_get(self.val['_M_cmpts']['_M_impl'])
@@ -1525,8 +1611,8 @@ class StdPathPrinter:
return "root-name"
return None
- def to_string (self):
- path = "%s" % self.val ['_M_pathname']
+ def to_string(self):
+ path = "%s" % self.val['_M_pathname']
if self.type != 0:
t = self._path_type()
if t:
@@ -1609,27 +1695,29 @@ class StdPairPrinter:
def to_string(self):
return None
+
class StdCmpCatPrinter:
"Print a comparison category object"
- def __init__ (self, typename, val):
+ def __init__(self, typename, val):
self.typename = typename[typename.rfind(':')+1:]
self.val = val['_M_value']
- def to_string (self):
+ def to_string(self):
if self.typename == 'strong_ordering' and self.val == 0:
name = 'equal'
else:
- names = {2:'unordered', -1:'less', 0:'equivalent', 1:'greater'}
+ names = {2: 'unordered', -1: 'less', 0: 'equivalent', 1: 'greater'}
name = names[int(self.val)]
return 'std::{}::{}'.format(self.typename, name)
+
class StdErrorCodePrinter:
"Print a std::error_code or std::error_condition"
_system_is_posix = None # Whether std::system_category() use errno values.
- def __init__ (self, typename, val):
+ def __init__(self, typename, val):
self.val = val
self.typename = strip_versioned_namespace(typename)
# Do this only once ...
@@ -1718,15 +1806,15 @@ class StdErrorCodePrinter:
"Strip any nested-name-specifier from NAME to give an unqualified name"
return name.split('::')[-1]
- def to_string (self):
+ def to_string(self):
value = self.val['_M_value']
cat = self.val['_M_cat']
name, alt_name, enum, is_errno = self._category_info(cat)
if value == 0:
- default_cats = { 'error_code' : 'system',
- 'error_condition' : 'generic' }
+ default_cats = {'error_code': 'system',
+ 'error_condition': 'generic'}
if name == default_cats[self._unqualified_name(self.typename)]:
- return self.typename + ' = { }' # default-constructed value
+ return self.typename + ' = { }' # default-constructed value
strval = str(value)
if is_errno and value != 0:
@@ -1747,24 +1835,24 @@ class StdErrorCodePrinter:
class StdRegexStatePrinter:
"Print a state node in the NFA for a std::regex"
- def __init__ (self, typename, val):
+ def __init__(self, typename, val):
self.val = val
self.typename = typename
- def to_string (self):
+ def to_string(self):
opcode = str(self.val['_M_opcode'])
if opcode:
opcode = opcode[25:]
next_id = self.val['_M_next']
- variants = {'repeat':'alt', 'alternative':'alt',
- 'subexpr_begin':'subexpr', 'subexpr_end':'subexpr',
- 'line_begin_assertion':None, 'line_end_assertion':None,
- 'word_boundary':'neg', 'subexpr_lookahead':'neg',
- 'backref':'backref_index',
- 'match':None, 'accept':None,
- 'dummy':None, 'unknown':None
- }
+ variants = {'repeat': 'alt', 'alternative': 'alt',
+ 'subexpr_begin': 'subexpr', 'subexpr_end': 'subexpr',
+ 'line_begin_assertion': None, 'line_end_assertion': None,
+ 'word_boundary': 'neg', 'subexpr_lookahead': 'neg',
+ 'backref': 'backref_index',
+ 'match': None, 'accept': None,
+ 'dummy': None, 'unknown': None
+ }
v = variants[opcode]
s = "opcode={}, next={}".format(opcode, next_id)
@@ -1772,6 +1860,7 @@ class StdRegexStatePrinter:
s = "{}, {}={}".format(s, v, self.val['_M_' + v])
return "{%s}" % (s)
+
class StdSpanPrinter:
"Print a std::span"
@@ -1781,10 +1870,10 @@ class StdSpanPrinter:
self.begin = begin
self.size = size
- def __iter__ (self):
+ def __iter__(self):
return self
- def __next__ (self):
+ def __next__(self):
if self.count == self.size:
raise StopIteration
@@ -1809,6 +1898,7 @@ class StdSpanPrinter:
def display_hint(self):
return 'array'
+
class StdInitializerListPrinter:
"Print a std::initializer_list"
@@ -1826,6 +1916,7 @@ class StdInitializerListPrinter:
def display_hint(self):
return 'array'
+
class StdAtomicPrinter:
"Print a std:atomic"
@@ -1860,6 +1951,7 @@ class StdAtomicPrinter:
val = self.val['_M_i']
return '%s<%s> = { %s }' % (self.typename, str(self.value_type), val)
+
class StdFormatArgsPrinter:
"Print a std::basic_format_args"
# TODO: add printer for basic_format_arg<Context> and print out children.
@@ -1886,6 +1978,7 @@ class StdFormatArgsPrinter:
size = self.val['_M_unpacked_size']
return "%s with %d arguments" % (typ, size)
+
def std_ratio_t_tuple(ratio_type):
# TODO use reduced period i.e. duration::period
period = self.val.type.template_argument(1)
@@ -1893,6 +1986,7 @@ def std_ratio_t_tuple(ratio_type):
den = period.template_argument(1)
return (num, den)
+
class StdChronoDurationPrinter:
"Print a std::chrono::duration"
@@ -1950,18 +2044,18 @@ class StdChronoTimePointPrinter:
return ('std::chrono::sys_time', 0)
# XXX need to remove leap seconds from utc, gps, and tai
if name == 'std::chrono::utc_clock':
- return ('std::chrono::utc_time', None) # XXX
+ return ('std::chrono::utc_time', None) # XXX
if name == 'std::chrono::gps_clock':
- return ('std::chrono::gps_time', None) # XXX 315964809
+ return ('std::chrono::gps_time', None) # XXX 315964809
if name == 'std::chrono::tai_clock':
- return ('std::chrono::tai_time', None) # XXX -378691210
+ return ('std::chrono::tai_time', None) # XXX -378691210
if name == 'std::filesystem::__file_clock':
return ('std::chrono::file_time', 6437664000)
if name == 'std::chrono::local_t':
return ('std::chrono::local_time', 0)
return ('{} time_point'.format(name), None)
- def to_string(self, abbrev = False):
+ def to_string(self, abbrev=False):
clock, offset = self._clock()
d = self.val['__d']
r = d['__r']
@@ -1981,6 +2075,7 @@ class StdChronoTimePointPrinter:
return s
return '%s = { %s }' % (clock, s)
+
class StdChronoZonedTimePrinter:
"Print a std::chrono::zoned_time"
@@ -2002,6 +2097,7 @@ months = [None, 'January', 'February', 'March', 'April', 'May', 'June',
weekdays = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday',
'Saturday', 'Sunday']
+
class StdChronoCalendarPrinter:
"Print a std::chrono::day, std::chrono::month, std::chrono::year etc."
@@ -2064,6 +2160,7 @@ class StdChronoCalendarPrinter:
h = -h
return '{:02}:{:02}:{:02}{}'.format(h, m, s, fract)
+
class StdChronoTimeZonePrinter:
"Print a chrono::time_zone or chrono::time_zone_link"
@@ -2077,6 +2174,7 @@ class StdChronoTimeZonePrinter:
str += ' -> %s' % (self.val['_M_target'])
return str
+
class StdChronoLeapSecondPrinter:
"Print a chrono::leap_second"
@@ -2089,6 +2187,7 @@ class StdChronoLeapSecondPrinter:
neg = '+-'[date < 0]
return '%s %d (%c)' % (self.typename, abs(date), neg)
+
class StdChronoTzdbPrinter:
"Print a chrono::tzdb"
@@ -2099,6 +2198,7 @@ class StdChronoTzdbPrinter:
def to_string(self):
return '%s %s' % (self.typename, self.val['version'])
+
class StdChronoTimeZoneRulePrinter:
"Print a chrono::time_zone rule"
@@ -2110,17 +2210,18 @@ class StdChronoTimeZoneRulePrinter:
on = self.val['on']
kind = on['kind']
month = months[on['month']]
- suffixes = {1:'st', 2:'nd', 3:'rd', 21:'st', 22:'nd', 23:'rd', 31:'st'}
+ suffixes = {1: 'st', 2: 'nd', 3: 'rd',
+ 21: 'st', 22: 'nd', 23: 'rd', 31: 'st'}
day = on['day_of_month']
ordinal_day = '{}{}'.format(day, suffixes.get(day, 'th'))
- if kind == 0: # DayOfMonth
- start = '{} {}{}'.format(month, ordinal_day)
+ if kind == 0: # DayOfMonth
+ start = '{} {}{}'.format(month, ordinal_day)
else:
weekday = weekdays[on['day_of_week']]
- if kind == 1: # LastWeekDay
+ if kind == 1: # LastWeekDay
start = 'last {} in {}'.format(weekday, month)
else:
- if kind == 2: # LessEq
+ if kind == 2: # LessEq
direction = ('last', '<=')
else:
direction = ('first', '>=')
@@ -2129,7 +2230,8 @@ class StdChronoTimeZoneRulePrinter:
direction[1], month,
ordinal_day)
return 'time_zone rule {} from {} to {} starting on {}'.format(
- self.val['name'], self.val['from'], self.val['to'], start)
+ self.val['name'], self.val['from'], self.val['to'], start)
+
class StdLocalePrinter:
"Print a std::locale"
@@ -2146,7 +2248,7 @@ class StdLocalePrinter:
else:
cats = gdb.parse_and_eval(self.typename + '::_S_categories')
ncat = gdb.parse_and_eval(self.typename + '::_S_categories_size')
- n = names[0].string();
+ n = names[0].string()
cat = cats[0].string()
name = '{}={}'.format(cat, n)
cat_names = {cat: n}
@@ -2171,7 +2273,7 @@ class StdLocalePrinter:
name = n1
other = n2
if other is not None:
- cat = next(c for c,n in cat_names.items() if n == other)
+ cat = next(c for c, n in cat_names.items() if n == other)
mod = ' with "{}={}"'.format(cat, other)
return 'std::locale = "{}"{}'.format(name, mod)
@@ -2190,13 +2292,15 @@ class RxPrinter(object):
return None
if value.type.code == gdb.TYPE_CODE_REF:
- if hasattr(gdb.Value,"referenced_value"):
+ if hasattr(gdb.Value, "referenced_value"):
value = value.referenced_value()
return self.function(self.name, value)
# A pretty-printer that conforms to the "PrettyPrinter" protocol from
# gdb.printing. It can also be used directly as an old-style printer.
+
+
class Printer(object):
def __init__(self, name):
super(Printer, self).__init__()
@@ -2210,7 +2314,8 @@ class Printer(object):
# A small sanity check.
# FIXME
if not self.compiled_rx.match(name):
- raise ValueError('libstdc++ programming error: "%s" does not match' % name)
+ raise ValueError(
+ 'libstdc++ programming error: "%s" does not match' % name)
printer = RxPrinter(name, function)
self.subprinters.append(printer)
self.lookup[name] = printer
@@ -2219,7 +2324,8 @@ class Printer(object):
def add_version(self, base, name, function):
self.add(base + name, function)
if _versioned_namespace and not '__cxx11' in base:
- vbase = re.sub('^(std|__gnu_cxx)::', r'\g<0>%s' % _versioned_namespace, base)
+ vbase = re.sub('^(std|__gnu_cxx)::', r'\g<0>%s' %
+ _versioned_namespace, base)
self.add(vbase + name, function)
# Add a name using _GLIBCXX_BEGIN_NAMESPACE_CONTAINER.
@@ -2231,10 +2337,10 @@ class Printer(object):
def get_basic_type(type):
# If it points to a reference, get the reference.
if type.code == gdb.TYPE_CODE_REF:
- type = type.target ()
+ type = type.target()
# Get the unqualified type, stripped of typedefs.
- type = type.unqualified ().strip_typedefs ()
+ type = type.unqualified().strip_typedefs()
return type.tag
@@ -2252,7 +2358,7 @@ class Printer(object):
basename = match.group(1)
if val.type.code == gdb.TYPE_CODE_REF:
- if hasattr(gdb.Value,"referenced_value"):
+ if hasattr(gdb.Value, "referenced_value"):
val = val.referenced_value()
if basename in self.lookup:
@@ -2261,8 +2367,10 @@ class Printer(object):
# Cannot find a pretty printer. Return None.
return None
+
libstdcxx_printer = None
+
class TemplateTypePrinter(object):
r"""
A type printer for class templates with default template arguments.
@@ -2345,7 +2453,7 @@ class TemplateTypePrinter(object):
if type_obj.code == gdb.TYPE_CODE_ARRAY:
type_str = self._recognize_subtype(type_obj.target())
if str(type_obj.strip_typedefs()).endswith('[]'):
- return type_str + '[]' # array of unknown bound
+ return type_str + '[]' # array of unknown bound
return "%s[%d]" % (type_str, type_obj.range()[1] + 1)
if type_obj.code == gdb.TYPE_CODE_REF:
return self._recognize_subtype(type_obj.target()) + '&'
@@ -2354,7 +2462,7 @@ class TemplateTypePrinter(object):
return self._recognize_subtype(type_obj.target()) + '&&'
type_str = gdb.types.apply_type_recognizers(
- gdb.types.get_type_recognizers(), type_obj)
+ gdb.types.get_type_recognizers(), type_obj)
if type_str:
return type_str
return str(type_obj)
@@ -2363,6 +2471,7 @@ class TemplateTypePrinter(object):
"Return a recognizer object for this type printer."
return self._recognizer(self.name, self.defargs)
+
def add_one_template_type_printer(obj, name, defargs):
r"""
Add a type printer for a class template with default template arguments.
@@ -2391,7 +2500,8 @@ def add_one_template_type_printer(obj, name, defargs):
# Add second type printer for same type in versioned namespace:
ns = 'std::' + _versioned_namespace
# PR 86112 Cannot use dict comprehension here:
- defargs = dict((n, d.replace('std::', ns)) for (n,d) in defargs.items())
+ defargs = dict((n, d.replace('std::', ns))
+ for (n, d) in defargs.items())
printer = TemplateTypePrinter(ns+name, defargs)
gdb.types.register_type_printer(obj, printer)
@@ -2399,6 +2509,7 @@ def add_one_template_type_printer(obj, name, defargs):
printer = TemplateTypePrinter('std::__debug::'+name, defargs)
gdb.types.register_type_printer(obj, printer)
+
class FilteringTypePrinter(object):
r"""
A type printer that uses typedef names for common template specializations.
@@ -2421,7 +2532,7 @@ class FilteringTypePrinter(object):
more quickly, without needing to do GDB type lookups.
"""
- def __init__(self, template, name, targ1 = None):
+ def __init__(self, template, name, targ1=None):
self.template = template
self.name = name
self.targ1 = targ1
@@ -2475,7 +2586,8 @@ class FilteringTypePrinter(object):
"Return a recognizer object for this type printer."
return self._recognizer(self.template, self.name, self.targ1)
-def add_one_type_printer(obj, template, name, targ1 = None):
+
+def add_one_type_printer(obj, template, name, targ1=None):
printer = FilteringTypePrinter('std::' + template, 'std::' + name, targ1)
gdb.types.register_type_printer(obj, printer)
if _versioned_namespace and not '__cxx11' in template:
@@ -2483,6 +2595,7 @@ def add_one_type_printer(obj, template, name, targ1 = None):
printer = FilteringTypePrinter(ns + template, ns + name, targ1)
gdb.types.register_type_printer(obj, printer)
+
def register_type_printers(obj):
global _use_type_printing
@@ -2496,11 +2609,13 @@ def register_type_printers(obj):
('u16', 'char16_t'),
('u32', 'char32_t')):
add_one_type_printer(obj, 'basic_string', ch[0] + 'string', ch[1])
- add_one_type_printer(obj, '__cxx11::basic_string', ch[0] + 'string', ch[1])
+ add_one_type_printer(obj, '__cxx11::basic_string',
+ ch[0] + 'string', ch[1])
# Typedefs for __cxx11::basic_string used to be in namespace __cxx11:
add_one_type_printer(obj, '__cxx11::basic_string',
'__cxx11::' + ch[0] + 'string', ch[1])
- add_one_type_printer(obj, 'basic_string_view', ch[0] + 'string_view', ch[1])
+ add_one_type_printer(obj, 'basic_string_view',
+ ch[0] + 'string_view', ch[1])
# Add type printers for typedefs std::istream, std::wistream etc.
for ch in (('', 'char'), ('w', 'wchar_t')):
@@ -2516,9 +2631,11 @@ def register_type_printers(obj):
# Add type printers for typedefs regex, wregex, cmatch, wcmatch etc.
for abi in ('', '__cxx11::'):
for ch in (('', 'char'), ('w', 'wchar_t')):
- add_one_type_printer(obj, abi + 'basic_regex', abi + ch[0] + 'regex', ch[1])
+ add_one_type_printer(obj, abi + 'basic_regex',
+ abi + ch[0] + 'regex', ch[1])
for ch in ('c', 's', 'wc', 'ws'):
- add_one_type_printer(obj, abi + 'match_results', abi + ch + 'match')
+ add_one_type_printer(
+ obj, abi + 'match_results', abi + ch + 'match')
for x in ('sub_match', 'regex_iterator', 'regex_token_iterator'):
add_one_type_printer(obj, abi + x, abi + ch + x)
@@ -2554,40 +2671,43 @@ def register_type_printers(obj):
# Do not show defaulted template arguments in class templates.
add_one_template_type_printer(obj, 'unique_ptr',
- { 1: 'std::default_delete<{0}>' })
- add_one_template_type_printer(obj, 'deque', { 1: 'std::allocator<{0}>'})
- add_one_template_type_printer(obj, 'forward_list', { 1: 'std::allocator<{0}>'})
- add_one_template_type_printer(obj, 'list', { 1: 'std::allocator<{0}>'})
- add_one_template_type_printer(obj, '__cxx11::list', { 1: 'std::allocator<{0}>'})
- add_one_template_type_printer(obj, 'vector', { 1: 'std::allocator<{0}>'})
+ {1: 'std::default_delete<{0}>'})
+ add_one_template_type_printer(obj, 'deque', {1: 'std::allocator<{0}>'})
+ add_one_template_type_printer(
+ obj, 'forward_list', {1: 'std::allocator<{0}>'})
+ add_one_template_type_printer(obj, 'list', {1: 'std::allocator<{0}>'})
+ add_one_template_type_printer(
+ obj, '__cxx11::list', {1: 'std::allocator<{0}>'})
+ add_one_template_type_printer(obj, 'vector', {1: 'std::allocator<{0}>'})
add_one_template_type_printer(obj, 'map',
- { 2: 'std::less<{0}>',
- 3: 'std::allocator<std::pair<{0} const, {1}>>' })
+ {2: 'std::less<{0}>',
+ 3: 'std::allocator<std::pair<{0} const, {1}>>'})
add_one_template_type_printer(obj, 'multimap',
- { 2: 'std::less<{0}>',
- 3: 'std::allocator<std::pair<{0} const, {1}>>' })
+ {2: 'std::less<{0}>',
+ 3: 'std::allocator<std::pair<{0} const, {1}>>'})
add_one_template_type_printer(obj, 'set',
- { 1: 'std::less<{0}>', 2: 'std::allocator<{0}>' })
+ {1: 'std::less<{0}>', 2: 'std::allocator<{0}>'})
add_one_template_type_printer(obj, 'multiset',
- { 1: 'std::less<{0}>', 2: 'std::allocator<{0}>' })
+ {1: 'std::less<{0}>', 2: 'std::allocator<{0}>'})
add_one_template_type_printer(obj, 'unordered_map',
- { 2: 'std::hash<{0}>',
- 3: 'std::equal_to<{0}>',
- 4: 'std::allocator<std::pair<{0} const, {1}>>'})
+ {2: 'std::hash<{0}>',
+ 3: 'std::equal_to<{0}>',
+ 4: 'std::allocator<std::pair<{0} const, {1}>>'})
add_one_template_type_printer(obj, 'unordered_multimap',
- { 2: 'std::hash<{0}>',
- 3: 'std::equal_to<{0}>',
- 4: 'std::allocator<std::pair<{0} const, {1}>>'})
+ {2: 'std::hash<{0}>',
+ 3: 'std::equal_to<{0}>',
+ 4: 'std::allocator<std::pair<{0} const, {1}>>'})
add_one_template_type_printer(obj, 'unordered_set',
- { 1: 'std::hash<{0}>',
- 2: 'std::equal_to<{0}>',
- 3: 'std::allocator<{0}>'})
+ {1: 'std::hash<{0}>',
+ 2: 'std::equal_to<{0}>',
+ 3: 'std::allocator<{0}>'})
add_one_template_type_printer(obj, 'unordered_multiset',
- { 1: 'std::hash<{0}>',
- 2: 'std::equal_to<{0}>',
- 3: 'std::allocator<{0}>'})
+ {1: 'std::hash<{0}>',
+ 2: 'std::equal_to<{0}>',
+ 3: 'std::allocator<{0}>'})
+
-def register_libstdcxx_printers (obj):
+def register_libstdcxx_printers(obj):
"Register libstdc++ pretty-printers with objfile Obj."
global _use_gdb_pp
@@ -2602,7 +2722,8 @@ def register_libstdcxx_printers (obj):
register_type_printers(obj)
-def build_libstdcxx_dictionary ():
+
+def build_libstdcxx_dictionary():
global libstdcxx_printer
libstdcxx_printer = Printer("libstdc++-v6")
@@ -2611,7 +2732,8 @@ def build_libstdcxx_dictionary ():
# In order from:
# http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01847.html
libstdcxx_printer.add_version('std::', 'basic_string', StdStringPrinter)
- libstdcxx_printer.add_version('std::__cxx11::', 'basic_string', StdStringPrinter)
+ libstdcxx_printer.add_version(
+ 'std::__cxx11::', 'basic_string', StdStringPrinter)
libstdcxx_printer.add_container('std::', 'bitset', StdBitsetPrinter)
libstdcxx_printer.add_container('std::', 'deque', StdDequePrinter)
libstdcxx_printer.add_container('std::', 'list', StdListPrinter)
@@ -2662,8 +2784,10 @@ def build_libstdcxx_dictionary ():
libstdcxx_printer.add_container('std::', 'forward_list',
StdForwardListPrinter)
- libstdcxx_printer.add_version('std::tr1::', 'shared_ptr', SharedPointerPrinter)
- libstdcxx_printer.add_version('std::tr1::', 'weak_ptr', SharedPointerPrinter)
+ libstdcxx_printer.add_version(
+ 'std::tr1::', 'shared_ptr', SharedPointerPrinter)
+ libstdcxx_printer.add_version(
+ 'std::tr1::', 'weak_ptr', SharedPointerPrinter)
libstdcxx_printer.add_version('std::tr1::', 'unordered_map',
Tr1UnorderedMapPrinter)
libstdcxx_printer.add_version('std::tr1::', 'unordered_set',
@@ -2676,11 +2800,15 @@ def build_libstdcxx_dictionary ():
libstdcxx_printer.add_version('std::', 'initializer_list',
StdInitializerListPrinter)
libstdcxx_printer.add_version('std::', 'atomic', StdAtomicPrinter)
- libstdcxx_printer.add_version('std::', 'basic_stringbuf', StdStringBufPrinter)
- libstdcxx_printer.add_version('std::__cxx11::', 'basic_stringbuf', StdStringBufPrinter)
+ libstdcxx_printer.add_version(
+ 'std::', 'basic_stringbuf', StdStringBufPrinter)
+ libstdcxx_printer.add_version(
+ 'std::__cxx11::', 'basic_stringbuf', StdStringBufPrinter)
for sstream in ('istringstream', 'ostringstream', 'stringstream'):
- libstdcxx_printer.add_version('std::', 'basic_' + sstream, StdStringStreamPrinter)
- libstdcxx_printer.add_version('std::__cxx11::', 'basic_' + sstream, StdStringStreamPrinter)
+ libstdcxx_printer.add_version(
+ 'std::', 'basic_' + sstream, StdStringStreamPrinter)
+ libstdcxx_printer.add_version(
+ 'std::__cxx11::', 'basic_' + sstream, StdStringStreamPrinter)
libstdcxx_printer.add_version('std::chrono::', 'duration',
StdChronoDurationPrinter)
@@ -2735,16 +2863,17 @@ def build_libstdcxx_dictionary ():
'_Node_handle', StdNodeHandlePrinter)
# C++20 components
- libstdcxx_printer.add_version('std::', 'partial_ordering', StdCmpCatPrinter)
+ libstdcxx_printer.add_version(
+ 'std::', 'partial_ordering', StdCmpCatPrinter)
libstdcxx_printer.add_version('std::', 'weak_ordering', StdCmpCatPrinter)
libstdcxx_printer.add_version('std::', 'strong_ordering', StdCmpCatPrinter)
libstdcxx_printer.add_version('std::', 'span', StdSpanPrinter)
libstdcxx_printer.add_version('std::', 'basic_format_args',
StdFormatArgsPrinter)
- for c in ['day','month','year','weekday','weekday_indexed','weekday_last',
- 'month_day','month_day_last','month_weekday','month_weekday_last',
- 'year_month','year_month_day','year_month_day_last',
- 'year_month_weekday','year_month_weekday_last', 'hh_mm_ss']:
+ for c in ['day', 'month', 'year', 'weekday', 'weekday_indexed', 'weekday_last',
+ 'month_day', 'month_day_last', 'month_weekday', 'month_weekday_last',
+ 'year_month', 'year_month_day', 'year_month_day_last',
+ 'year_month_weekday', 'year_month_weekday_last', 'hh_mm_ss']:
libstdcxx_printer.add_version('std::chrono::', c,
StdChronoCalendarPrinter)
libstdcxx_printer.add_version('std::chrono::', 'time_zone',
@@ -2755,8 +2884,9 @@ def build_libstdcxx_dictionary ():
StdChronoZonedTimePrinter)
libstdcxx_printer.add_version('std::chrono::', 'leap_second',
StdChronoLeapSecondPrinter)
- libstdcxx_printer.add_version('std::chrono::', 'tzdb', StdChronoTzdbPrinter)
- #libstdcxx_printer.add_version('std::chrono::(anonymous namespace)', 'Rule',
+ libstdcxx_printer.add_version(
+ 'std::chrono::', 'tzdb', StdChronoTzdbPrinter)
+ # libstdcxx_printer.add_version('std::chrono::(anonymous namespace)', 'Rule',
# StdChronoTimeZoneRulePrinter)
# Extensions.
@@ -2780,11 +2910,11 @@ def build_libstdcxx_dictionary ():
libstdcxx_printer.add_version('__gnu_cxx::', '__normal_iterator',
StdVectorIteratorPrinter)
libstdcxx_printer.add_container('std::', '_Bit_iterator',
- StdBitIteratorPrinter)
+ StdBitIteratorPrinter)
libstdcxx_printer.add_container('std::', '_Bit_const_iterator',
- StdBitIteratorPrinter)
+ StdBitIteratorPrinter)
libstdcxx_printer.add_container('std::', '_Bit_reference',
- StdBitReferencePrinter)
+ StdBitReferencePrinter)
libstdcxx_printer.add_version('__gnu_cxx::', '_Slist_iterator',
StdSlistIteratorPrinter)
libstdcxx_printer.add_container('std::', '_Fwd_list_iterator',
@@ -2797,4 +2927,5 @@ def build_libstdcxx_dictionary ():
libstdcxx_printer.add('__gnu_debug::_Safe_iterator',
StdDebugIteratorPrinter)
-build_libstdcxx_dictionary ()
+
+build_libstdcxx_dictionary()
diff --git a/libstdc++-v3/python/libstdcxx/v6/xmethods.py b/libstdc++-v3/python/libstdcxx/v6/xmethods.py
index 18a165f..025b1b8 100644
--- a/libstdc++-v3/python/libstdcxx/v6/xmethods.py
+++ b/libstdc++-v3/python/libstdcxx/v6/xmethods.py
@@ -21,12 +21,15 @@ import re
matcher_name_prefix = 'libstdc++::'
+
def get_bool_type():
return gdb.lookup_type('bool')
+
def get_std_size_type():
return gdb.lookup_type('std::size_t')
+
class LibStdCxxXMethod(gdb.xmethod.XMethod):
def __init__(self, name, worker_class):
gdb.xmethod.XMethod.__init__(self, name)
@@ -34,6 +37,7 @@ class LibStdCxxXMethod(gdb.xmethod.XMethod):
# Xmethods for std::array
+
class ArrayWorkerBase(gdb.xmethod.XMethodWorker):
def __init__(self, val_type, size):
self._val_type = val_type
@@ -43,6 +47,7 @@ class ArrayWorkerBase(gdb.xmethod.XMethodWorker):
nullptr = gdb.parse_and_eval('(void *) 0')
return nullptr.cast(self._val_type.pointer()).dereference()
+
class ArraySizeWorker(ArrayWorkerBase):
def __init__(self, val_type, size):
ArrayWorkerBase.__init__(self, val_type, size)
@@ -56,6 +61,7 @@ class ArraySizeWorker(ArrayWorkerBase):
def __call__(self, obj):
return self._size
+
class ArrayEmptyWorker(ArrayWorkerBase):
def __init__(self, val_type, size):
ArrayWorkerBase.__init__(self, val_type, size)
@@ -69,6 +75,7 @@ class ArrayEmptyWorker(ArrayWorkerBase):
def __call__(self, obj):
return (int(self._size) == 0)
+
class ArrayFrontWorker(ArrayWorkerBase):
def __init__(self, val_type, size):
ArrayWorkerBase.__init__(self, val_type, size)
@@ -85,6 +92,7 @@ class ArrayFrontWorker(ArrayWorkerBase):
else:
return self.null_value()
+
class ArrayBackWorker(ArrayWorkerBase):
def __init__(self, val_type, size):
ArrayWorkerBase.__init__(self, val_type, size)
@@ -101,6 +109,7 @@ class ArrayBackWorker(ArrayWorkerBase):
else:
return self.null_value()
+
class ArrayAtWorker(ArrayWorkerBase):
def __init__(self, val_type, size):
ArrayWorkerBase.__init__(self, val_type, size)
@@ -117,6 +126,7 @@ class ArrayAtWorker(ArrayWorkerBase):
((int(index), self._size)))
return obj['_M_elems'][index]
+
class ArraySubscriptWorker(ArrayWorkerBase):
def __init__(self, val_type, size):
ArrayWorkerBase.__init__(self, val_type, size)
@@ -133,6 +143,7 @@ class ArraySubscriptWorker(ArrayWorkerBase):
else:
return self.null_value()
+
class ArrayMethodsMatcher(gdb.xmethod.XMethodMatcher):
def __init__(self):
gdb.xmethod.XMethodMatcher.__init__(self,
@@ -162,6 +173,7 @@ class ArrayMethodsMatcher(gdb.xmethod.XMethodMatcher):
# Xmethods for std::deque
+
class DequeWorkerBase(gdb.xmethod.XMethodWorker):
def __init__(self, val_type):
self._val_type = val_type
@@ -179,6 +191,7 @@ class DequeWorkerBase(gdb.xmethod.XMethodWorker):
index_node = first_node + int(idx) // self._bufsize
return index_node[0][idx % self._bufsize]
+
class DequeEmptyWorker(DequeWorkerBase):
def get_arg_types(self):
return None
@@ -190,6 +203,7 @@ class DequeEmptyWorker(DequeWorkerBase):
return (obj['_M_impl']['_M_start']['_M_cur'] ==
obj['_M_impl']['_M_finish']['_M_cur'])
+
class DequeSizeWorker(DequeWorkerBase):
def get_arg_types(self):
return None
@@ -200,6 +214,7 @@ class DequeSizeWorker(DequeWorkerBase):
def __call__(self, obj):
return self.size(obj)
+
class DequeFrontWorker(DequeWorkerBase):
def get_arg_types(self):
return None
@@ -210,6 +225,7 @@ class DequeFrontWorker(DequeWorkerBase):
def __call__(self, obj):
return obj['_M_impl']['_M_start']['_M_cur'][0]
+
class DequeBackWorker(DequeWorkerBase):
def get_arg_types(self):
return None
@@ -219,12 +235,13 @@ class DequeBackWorker(DequeWorkerBase):
def __call__(self, obj):
if (obj['_M_impl']['_M_finish']['_M_cur'] ==
- obj['_M_impl']['_M_finish']['_M_first']):
+ obj['_M_impl']['_M_finish']['_M_first']):
prev_node = obj['_M_impl']['_M_finish']['_M_node'] - 1
return prev_node[0][self._bufsize - 1]
else:
return obj['_M_impl']['_M_finish']['_M_cur'][-1]
+
class DequeSubscriptWorker(DequeWorkerBase):
def get_arg_types(self):
return get_std_size_type()
@@ -235,6 +252,7 @@ class DequeSubscriptWorker(DequeWorkerBase):
def __call__(self, obj, subscript):
return self.index(obj, subscript)
+
class DequeAtWorker(DequeWorkerBase):
def get_arg_types(self):
return get_std_size_type()
@@ -248,7 +266,8 @@ class DequeAtWorker(DequeWorkerBase):
raise IndexError('Deque index "%d" should not be >= %d.' %
(int(index), deque_size))
else:
- return self.index(obj, index)
+ return self.index(obj, index)
+
class DequeMethodsMatcher(gdb.xmethod.XMethodMatcher):
def __init__(self):
@@ -274,6 +293,7 @@ class DequeMethodsMatcher(gdb.xmethod.XMethodMatcher):
# Xmethods for std::forward_list
+
class ForwardListWorkerBase(gdb.xmethod.XMethodMatcher):
def __init__(self, val_type, node_type):
self._val_type = val_type
@@ -282,6 +302,7 @@ class ForwardListWorkerBase(gdb.xmethod.XMethodMatcher):
def get_arg_types(self):
return None
+
class ForwardListEmptyWorker(ForwardListWorkerBase):
def get_result_type(self, obj):
return get_bool_type()
@@ -289,6 +310,7 @@ class ForwardListEmptyWorker(ForwardListWorkerBase):
def __call__(self, obj):
return obj['_M_impl']['_M_head']['_M_next'] == 0
+
class ForwardListFrontWorker(ForwardListWorkerBase):
def get_result_type(self, obj):
return self._val_type
@@ -298,6 +320,7 @@ class ForwardListFrontWorker(ForwardListWorkerBase):
val_address = node['_M_storage']['_M_storage'].address
return val_address.cast(self._val_type.pointer()).dereference()
+
class ForwardListMethodsMatcher(gdb.xmethod.XMethodMatcher):
def __init__(self):
matcher_name = matcher_name_prefix + 'forward_list'
@@ -320,6 +343,7 @@ class ForwardListMethodsMatcher(gdb.xmethod.XMethodMatcher):
# Xmethods for std::list
+
class ListWorkerBase(gdb.xmethod.XMethodWorker):
def __init__(self, val_type, node_type):
self._val_type = val_type
@@ -337,6 +361,7 @@ class ListWorkerBase(gdb.xmethod.XMethodWorker):
addr = node['_M_storage'].address
return addr.cast(self._val_type.pointer()).dereference()
+
class ListEmptyWorker(ListWorkerBase):
def get_result_type(self, obj):
return get_bool_type()
@@ -348,6 +373,7 @@ class ListEmptyWorker(ListWorkerBase):
else:
return False
+
class ListSizeWorker(ListWorkerBase):
def get_result_type(self, obj):
return get_std_size_type()
@@ -361,6 +387,7 @@ class ListSizeWorker(ListWorkerBase):
size += 1
return size
+
class ListFrontWorker(ListWorkerBase):
def get_result_type(self, obj):
return self._val_type
@@ -369,6 +396,7 @@ class ListFrontWorker(ListWorkerBase):
node = obj['_M_impl']['_M_node']['_M_next'].cast(self._node_type)
return self.get_value_from_node(node)
+
class ListBackWorker(ListWorkerBase):
def get_result_type(self, obj):
return self._val_type
@@ -377,6 +405,7 @@ class ListBackWorker(ListWorkerBase):
prev_node = obj['_M_impl']['_M_node']['_M_prev'].cast(self._node_type)
return self.get_value_from_node(prev_node)
+
class ListMethodsMatcher(gdb.xmethod.XMethodMatcher):
def __init__(self):
gdb.xmethod.XMethodMatcher.__init__(self,
@@ -401,6 +430,7 @@ class ListMethodsMatcher(gdb.xmethod.XMethodMatcher):
# Xmethods for std::vector
+
class VectorWorkerBase(gdb.xmethod.XMethodWorker):
def __init__(self, val_type):
self._val_type = val_type
@@ -425,6 +455,7 @@ class VectorWorkerBase(gdb.xmethod.XMethodWorker):
else:
return obj['_M_impl']['_M_start'][index]
+
class VectorEmptyWorker(VectorWorkerBase):
def get_arg_types(self):
return None
@@ -435,6 +466,7 @@ class VectorEmptyWorker(VectorWorkerBase):
def __call__(self, obj):
return int(self.size(obj)) == 0
+
class VectorSizeWorker(VectorWorkerBase):
def get_arg_types(self):
return None
@@ -445,6 +477,7 @@ class VectorSizeWorker(VectorWorkerBase):
def __call__(self, obj):
return self.size(obj)
+
class VectorFrontWorker(VectorWorkerBase):
def get_arg_types(self):
return None
@@ -455,6 +488,7 @@ class VectorFrontWorker(VectorWorkerBase):
def __call__(self, obj):
return self.get(obj, 0)
+
class VectorBackWorker(VectorWorkerBase):
def get_arg_types(self):
return None
@@ -465,6 +499,7 @@ class VectorBackWorker(VectorWorkerBase):
def __call__(self, obj):
return self.get(obj, int(self.size(obj)) - 1)
+
class VectorAtWorker(VectorWorkerBase):
def get_arg_types(self):
return get_std_size_type()
@@ -479,6 +514,7 @@ class VectorAtWorker(VectorWorkerBase):
((int(index), size)))
return self.get(obj, int(index))
+
class VectorSubscriptWorker(VectorWorkerBase):
def get_arg_types(self):
return get_std_size_type()
@@ -489,6 +525,7 @@ class VectorSubscriptWorker(VectorWorkerBase):
def __call__(self, obj, subscript):
return self.get(obj, int(subscript))
+
class VectorMethodsMatcher(gdb.xmethod.XMethodMatcher):
def __init__(self):
gdb.xmethod.XMethodMatcher.__init__(self,
@@ -514,6 +551,7 @@ class VectorMethodsMatcher(gdb.xmethod.XMethodMatcher):
# Xmethods for associative containers
+
class AssociativeContainerWorkerBase(gdb.xmethod.XMethodWorker):
def __init__(self, unordered):
self._unordered = unordered
@@ -527,6 +565,7 @@ class AssociativeContainerWorkerBase(gdb.xmethod.XMethodWorker):
def get_arg_types(self):
return None
+
class AssociativeContainerEmptyWorker(AssociativeContainerWorkerBase):
def get_result_type(self, obj):
return get_bool_type()
@@ -534,6 +573,7 @@ class AssociativeContainerEmptyWorker(AssociativeContainerWorkerBase):
def __call__(self, obj):
return int(self.node_count(obj)) == 0
+
class AssociativeContainerSizeWorker(AssociativeContainerWorkerBase):
def get_result_type(self, obj):
return get_std_size_type()
@@ -541,6 +581,7 @@ class AssociativeContainerSizeWorker(AssociativeContainerWorkerBase):
def __call__(self, obj):
return self.node_count(obj)
+
class AssociativeContainerMethodsMatcher(gdb.xmethod.XMethodMatcher):
def __init__(self, name):
gdb.xmethod.XMethodMatcher.__init__(self,
@@ -564,6 +605,7 @@ class AssociativeContainerMethodsMatcher(gdb.xmethod.XMethodMatcher):
# Xmethods for std::unique_ptr
+
class UniquePtrGetWorker(gdb.xmethod.XMethodWorker):
"Implements std::unique_ptr<T>::get() and std::unique_ptr<T>::operator->()"
@@ -593,7 +635,7 @@ class UniquePtrGetWorker(gdb.xmethod.XMethodWorker):
tuple_member = obj['_M_t']
else:
return None
- tuple_impl_type = tuple_member.type.fields()[0].type # _Tuple_impl
+ tuple_impl_type = tuple_member.type.fields()[0].type # _Tuple_impl
tuple_head_type = tuple_impl_type.fields()[1].type # _Head_base
head_field = tuple_head_type.fields()[0]
if head_field.name == '_M_head_impl':
@@ -603,6 +645,7 @@ class UniquePtrGetWorker(gdb.xmethod.XMethodWorker):
else:
return None
+
class UniquePtrDerefWorker(UniquePtrGetWorker):
"Implements std::unique_ptr<T>::operator*()"
@@ -619,6 +662,7 @@ class UniquePtrDerefWorker(UniquePtrGetWorker):
def __call__(self, obj):
return UniquePtrGetWorker.__call__(self, obj).dereference()
+
class UniquePtrSubscriptWorker(UniquePtrGetWorker):
"Implements std::unique_ptr<T>::operator[](size_t)"
@@ -638,6 +682,7 @@ class UniquePtrSubscriptWorker(UniquePtrGetWorker):
def __call__(self, obj, index):
return UniquePtrGetWorker.__call__(self, obj)[index]
+
class UniquePtrMethodsMatcher(gdb.xmethod.XMethodMatcher):
def __init__(self):
gdb.xmethod.XMethodMatcher.__init__(self,
@@ -663,6 +708,7 @@ class UniquePtrMethodsMatcher(gdb.xmethod.XMethodMatcher):
# Xmethods for std::shared_ptr
+
class SharedPtrGetWorker(gdb.xmethod.XMethodWorker):
"Implements std::shared_ptr<T>::get() and std::shared_ptr<T>::operator->()"
@@ -686,6 +732,7 @@ class SharedPtrGetWorker(gdb.xmethod.XMethodWorker):
def __call__(self, obj):
return obj['_M_ptr']
+
class SharedPtrDerefWorker(SharedPtrGetWorker):
"Implements std::shared_ptr<T>::operator*()"
@@ -702,6 +749,7 @@ class SharedPtrDerefWorker(SharedPtrGetWorker):
def __call__(self, obj):
return SharedPtrGetWorker.__call__(self, obj).dereference()
+
class SharedPtrSubscriptWorker(SharedPtrGetWorker):
"Implements std::shared_ptr<T>::operator[](size_t)"
@@ -726,6 +774,7 @@ class SharedPtrSubscriptWorker(SharedPtrGetWorker):
(self._elem_type, int(index), int(m.group(1))))
return SharedPtrGetWorker.__call__(self, obj)[index]
+
class SharedPtrUseCountWorker(gdb.xmethod.XMethodWorker):
"Implements std::shared_ptr<T>::use_count()"
@@ -745,6 +794,7 @@ class SharedPtrUseCountWorker(gdb.xmethod.XMethodWorker):
refcounts = obj['_M_refcount']['_M_pi']
return refcounts['_M_use_count'] if refcounts else 0
+
class SharedPtrUniqueWorker(SharedPtrUseCountWorker):
"Implements std::shared_ptr<T>::unique()"
@@ -757,6 +807,7 @@ class SharedPtrUniqueWorker(SharedPtrUseCountWorker):
def __call__(self, obj):
return SharedPtrUseCountWorker.__call__(self, obj) == 1
+
class SharedPtrMethodsMatcher(gdb.xmethod.XMethodMatcher):
def __init__(self):
gdb.xmethod.XMethodMatcher.__init__(self,
@@ -782,6 +833,7 @@ class SharedPtrMethodsMatcher(gdb.xmethod.XMethodMatcher):
return worker
return None
+
def register_libstdcxx_xmethods(locus):
gdb.xmethod.register_xmethod_matcher(locus, ArrayMethodsMatcher())
gdb.xmethod.register_xmethod_matcher(locus, ForwardListMethodsMatcher())
diff --git a/libstdc++-v3/src/c++11/Makefile.am b/libstdc++-v3/src/c++11/Makefile.am
index 682be16..9cddb97 100644
--- a/libstdc++-v3/src/c++11/Makefile.am
+++ b/libstdc++-v3/src/c++11/Makefile.am
@@ -39,6 +39,14 @@ ctype_configure_char.cc: ${glibcxx_srcdir}/$(OS_INC_SRCDIR)/ctype_configure_char
ctype_members.cc: ${glibcxx_srcdir}/$(CCTYPE_CC)
$(LN_S) ${glibcxx_srcdir}/$(CCTYPE_CC) . || true
+# Source files linked in via configuration/make substitution for a
+# particular host, but with ad hoc naming rules.
+host_sources_extra = \
+ basic_file.cc
+
+basic_file.cc: ${glibcxx_srcdir}/$(BASIC_FILE_CC)
+ $(LN_S) ${glibcxx_srcdir}/$(BASIC_FILE_CC) ./$@ || true
+
if ENABLE_DUAL_ABI
cxx11_abi_sources = \
cow-locale_init.cc \
@@ -56,6 +64,7 @@ sources_freestanding = \
placeholders.cc
sources = \
+ assert_fail.cc \
chrono.cc \
codecvt.cc \
condition_variable.cc \
@@ -70,6 +79,8 @@ sources = \
hashtable_c++0x.cc \
ios.cc \
ios_errcat.cc \
+ locale_init.cc \
+ localename.cc \
mutex.cc \
random.cc \
regex.cc \
@@ -78,7 +89,8 @@ sources = \
system_error.cc \
thread.cc \
${cxx11_abi_sources} \
- ${host_sources}
+ ${host_sources} \
+ ${host_sources_extra}
if ENABLE_DUAL_ABI
extra_string_inst_sources = \
@@ -146,6 +158,14 @@ limits.lo: limits.cc
$(LTCXXCOMPILE) -fchar8_t -c $<
limits.o: limits.cc
$(CXXCOMPILE) -fchar8_t -c $<
+locale_init.lo: locale_init.cc
+ $(LTCXXCOMPILE) -std=gnu++11 -fchar8_t -c $<
+locale_init.o: locale_init.cc
+ $(CXXCOMPILE) -std=gnu++11 -fchar8_t -c $<
+localename.lo: localename.cc
+ $(LTCXXCOMPILE) -std=gnu++11 -fchar8_t -c $<
+localename.o: localename.cc
+ $(CXXCOMPILE) -std=gnu++11 -fchar8_t -c $<
if ENABLE_DUAL_ABI
# Rewrite the type info for __ios_failure.
diff --git a/libstdc++-v3/src/c++11/Makefile.in b/libstdc++-v3/src/c++11/Makefile.in
index e7a09fe..e6d37c5 100644
--- a/libstdc++-v3/src/c++11/Makefile.in
+++ b/libstdc++-v3/src/c++11/Makefile.in
@@ -127,20 +127,22 @@ am__objects_1 = limits.lo placeholders.lo
@ENABLE_DUAL_ABI_TRUE@ cxx11-ios_failure.lo \
@ENABLE_DUAL_ABI_TRUE@ cxx11-shim_facets.lo cxx11-stdexcept.lo
am__objects_3 = ctype_configure_char.lo ctype_members.lo
-am__objects_4 = chrono.lo codecvt.lo condition_variable.lo \
- cow-stdexcept.lo ctype.lo debug.lo functexcept.lo \
- functional.lo futex.lo future.lo hash_c++0x.lo \
- hashtable_c++0x.lo ios.lo ios_errcat.lo mutex.lo random.lo \
- regex.lo shared_ptr.lo snprintf_lite.lo system_error.lo \
- thread.lo $(am__objects_2) $(am__objects_3)
-@ENABLE_DUAL_ABI_TRUE@am__objects_5 = cow-fstream-inst.lo \
+am__objects_4 = basic_file.lo
+am__objects_5 = assert_fail.lo chrono.lo codecvt.lo \
+ condition_variable.lo cow-stdexcept.lo ctype.lo debug.lo \
+ functexcept.lo functional.lo futex.lo future.lo hash_c++0x.lo \
+ hashtable_c++0x.lo ios.lo ios_errcat.lo locale_init.lo \
+ localename.lo mutex.lo random.lo regex.lo shared_ptr.lo \
+ snprintf_lite.lo system_error.lo thread.lo $(am__objects_2) \
+ $(am__objects_3) $(am__objects_4)
+@ENABLE_DUAL_ABI_TRUE@am__objects_6 = cow-fstream-inst.lo \
@ENABLE_DUAL_ABI_TRUE@ cow-sstream-inst.lo cow-string-inst.lo \
@ENABLE_DUAL_ABI_TRUE@ cow-string-io-inst.lo \
@ENABLE_DUAL_ABI_TRUE@ cow-wstring-inst.lo \
@ENABLE_DUAL_ABI_TRUE@ cow-wstring-io-inst.lo \
@ENABLE_DUAL_ABI_TRUE@ cxx11-locale-inst.lo \
@ENABLE_DUAL_ABI_TRUE@ cxx11-wlocale-inst.lo sso_string.lo
-@ENABLE_EXTERN_TEMPLATE_TRUE@am__objects_6 = $(am__objects_5) \
+@ENABLE_EXTERN_TEMPLATE_TRUE@am__objects_7 = $(am__objects_6) \
@ENABLE_EXTERN_TEMPLATE_TRUE@ ext11-inst.lo fstream-inst.lo \
@ENABLE_EXTERN_TEMPLATE_TRUE@ ios-inst.lo iostream-inst.lo \
@ENABLE_EXTERN_TEMPLATE_TRUE@ istream-inst.lo locale-inst.lo \
@@ -152,8 +154,8 @@ am__objects_4 = chrono.lo codecvt.lo condition_variable.lo \
@GLIBCXX_HOSTED_FALSE@am_libc__11convenience_la_OBJECTS = \
@GLIBCXX_HOSTED_FALSE@ $(am__objects_1)
@GLIBCXX_HOSTED_TRUE@am_libc__11convenience_la_OBJECTS = \
-@GLIBCXX_HOSTED_TRUE@ $(am__objects_1) $(am__objects_4) \
-@GLIBCXX_HOSTED_TRUE@ $(am__objects_6)
+@GLIBCXX_HOSTED_TRUE@ $(am__objects_1) $(am__objects_5) \
+@GLIBCXX_HOSTED_TRUE@ $(am__objects_7)
libc__11convenience_la_OBJECTS = $(am_libc__11convenience_la_OBJECTS)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
@@ -461,6 +463,12 @@ host_sources = \
ctype_configure_char.cc \
ctype_members.cc
+
+# Source files linked in via configuration/make substitution for a
+# particular host, but with ad hoc naming rules.
+host_sources_extra = \
+ basic_file.cc
+
@ENABLE_DUAL_ABI_FALSE@cxx11_abi_sources =
@ENABLE_DUAL_ABI_TRUE@cxx11_abi_sources = \
@ENABLE_DUAL_ABI_TRUE@ cow-locale_init.cc \
@@ -475,6 +483,7 @@ sources_freestanding = \
placeholders.cc
sources = \
+ assert_fail.cc \
chrono.cc \
codecvt.cc \
condition_variable.cc \
@@ -489,6 +498,8 @@ sources = \
hashtable_c++0x.cc \
ios.cc \
ios_errcat.cc \
+ locale_init.cc \
+ localename.cc \
mutex.cc \
random.cc \
regex.cc \
@@ -497,7 +508,8 @@ sources = \
system_error.cc \
thread.cc \
${cxx11_abi_sources} \
- ${host_sources}
+ ${host_sources} \
+ ${host_sources_extra}
@ENABLE_DUAL_ABI_FALSE@extra_string_inst_sources =
@ENABLE_DUAL_ABI_TRUE@extra_string_inst_sources = \
@@ -853,6 +865,9 @@ ctype_configure_char.cc: ${glibcxx_srcdir}/$(OS_INC_SRCDIR)/ctype_configure_char
ctype_members.cc: ${glibcxx_srcdir}/$(CCTYPE_CC)
$(LN_S) ${glibcxx_srcdir}/$(CCTYPE_CC) . || true
+basic_file.cc: ${glibcxx_srcdir}/$(BASIC_FILE_CC)
+ $(LN_S) ${glibcxx_srcdir}/$(BASIC_FILE_CC) ./$@ || true
+
vpath % $(top_srcdir)/src/c++11
# Use special rules for the hashtable.cc file so that all
@@ -871,6 +886,14 @@ limits.lo: limits.cc
$(LTCXXCOMPILE) -fchar8_t -c $<
limits.o: limits.cc
$(CXXCOMPILE) -fchar8_t -c $<
+locale_init.lo: locale_init.cc
+ $(LTCXXCOMPILE) -std=gnu++11 -fchar8_t -c $<
+locale_init.o: locale_init.cc
+ $(CXXCOMPILE) -std=gnu++11 -fchar8_t -c $<
+localename.lo: localename.cc
+ $(LTCXXCOMPILE) -std=gnu++11 -fchar8_t -c $<
+localename.o: localename.cc
+ $(CXXCOMPILE) -std=gnu++11 -fchar8_t -c $<
@ENABLE_DUAL_ABI_TRUE@cxx11-ios_failure-lt.s: cxx11-ios_failure.cc
@ENABLE_DUAL_ABI_TRUE@ $(LTCXXCOMPILE) -gno-as-loc-support -S $< -o tmp-cxx11-ios_failure-lt.s
diff --git a/libstdc++-v3/src/c++11/assert_fail.cc b/libstdc++-v3/src/c++11/assert_fail.cc
new file mode 100644
index 0000000..540e953
--- /dev/null
+++ b/libstdc++-v3/src/c++11/assert_fail.cc
@@ -0,0 +1,44 @@
+// Debugging mode support code -*- C++ -*-
+
+// Copyright (C) 2021-2023 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library 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.
+
+// This library 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.
+
+// Under Section 7 of GPL version 3, you are granted additional
+// permissions described in the GCC Runtime Library Exception, version
+// 3.1, as published by the Free Software Foundation.
+
+// You should have received a copy of the GNU General Public License and
+// a copy of the GCC Runtime Library Exception along with this program;
+// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+// <http://www.gnu.org/licenses/>.
+
+#include <cstdio> // for std::fprintf, stderr
+#include <cstdlib> // for std::abort
+
+#ifdef _GLIBCXX_VERBOSE_ASSERT
+namespace std
+{
+ [[__noreturn__]]
+ void
+ __glibcxx_assert_fail(const char* file, int line,
+ const char* function, const char* condition) noexcept
+ {
+ if (file && function && condition)
+ fprintf(stderr, "%s:%d: %s: Assertion '%s' failed.\n",
+ file, line, function, condition);
+ else if (function)
+ fprintf(stderr, "%s: Undefined behavior detected.\n", function);
+ abort();
+ }
+}
+#endif
diff --git a/libstdc++-v3/src/c++11/debug.cc b/libstdc++-v3/src/c++11/debug.cc
index 926e8be..bb0d0db 100644
--- a/libstdc++-v3/src/c++11/debug.cc
+++ b/libstdc++-v3/src/c++11/debug.cc
@@ -24,6 +24,7 @@
#include <bits/move.h>
#include <bits/stl_iterator_base_types.h>
+#include <ext/atomicity.h> // __is_single_threaded
#include <debug/formatter.h>
#include <debug/safe_base.h>
@@ -45,24 +46,6 @@
#include "mutex_pool.h"
-#ifdef _GLIBCXX_VERBOSE_ASSERT
-namespace std
-{
- [[__noreturn__]]
- void
- __glibcxx_assert_fail(const char* file, int line,
- const char* function, const char* condition) noexcept
- {
- if (file && function && condition)
- fprintf(stderr, "%s:%d: %s: Assertion '%s' failed.\n",
- file, line, function, condition);
- else if (function)
- fprintf(stderr, "%s: Undefined behavior detected.\n", function);
- abort();
- }
-}
-#endif
-
using namespace std;
namespace
@@ -174,6 +157,31 @@ namespace
__old->_M_reset();
}
}
+
+ void*
+ acquire_sequence_ptr_for_lock(__gnu_debug::_Safe_sequence_base*& seq)
+ {
+#ifdef __GTHREADS
+ if (!__gnu_cxx::__is_single_threaded())
+ return __atomic_load_n(&seq, __ATOMIC_ACQUIRE);
+#endif
+ return seq;
+ }
+
+ void
+ reset_sequence_ptr(__gnu_debug::_Safe_sequence_base*& seq)
+ {
+#ifdef __GTHREADS
+ if (!__gnu_cxx::__is_single_threaded())
+ {
+ __atomic_store_n(&seq, (__gnu_debug::_Safe_sequence_base*)nullptr,
+ __ATOMIC_RELEASE);
+ return;
+ }
+#endif
+ seq = nullptr;
+ }
+
} // anonymous namespace
namespace __gnu_debug
@@ -457,7 +465,7 @@ namespace __gnu_debug
// If the sequence destructor runs between loading the pointer and
// locking the mutex, it will detach this iterator and set _M_sequence
// to null, and then _M_detach_single() will do nothing.
- if (auto seq = __atomic_load_n(&_M_sequence, __ATOMIC_ACQUIRE))
+ if (auto seq = acquire_sequence_ptr_for_lock(_M_sequence))
{
__gnu_cxx::__scoped_lock sentry(get_safe_base_mutex(seq));
_M_detach_single();
@@ -479,7 +487,7 @@ namespace __gnu_debug
_Safe_iterator_base::
_M_reset() throw ()
{
- __atomic_store_n(&_M_sequence, (_Safe_sequence_base*)0, __ATOMIC_RELEASE);
+ reset_sequence_ptr(_M_sequence);
// Do not reset version, so that a detached iterator does not look like a
// value-initialized one.
// _M_version = 0;
@@ -541,7 +549,7 @@ namespace __gnu_debug
_Safe_local_iterator_base::
_M_detach()
{
- if (auto seq = __atomic_load_n(&_M_sequence, __ATOMIC_ACQUIRE))
+ if (auto seq = acquire_sequence_ptr_for_lock(_M_sequence))
{
__gnu_cxx::__scoped_lock sentry(get_safe_base_mutex(seq));
_M_detach_single();
diff --git a/libstdc++-v3/src/c++98/locale_init.cc b/libstdc++-v3/src/c++11/locale_init.cc
index cfc22ea..cfc22ea 100644
--- a/libstdc++-v3/src/c++98/locale_init.cc
+++ b/libstdc++-v3/src/c++11/locale_init.cc
diff --git a/libstdc++-v3/src/c++98/localename.cc b/libstdc++-v3/src/c++11/localename.cc
index 68cb81d..68cb81d 100644
--- a/libstdc++-v3/src/c++98/localename.cc
+++ b/libstdc++-v3/src/c++11/localename.cc
diff --git a/libstdc++-v3/src/c++17/default_resource.h b/libstdc++-v3/src/c++17/default_resource.h
index 522cee1..f8d03d7 100644
--- a/libstdc++-v3/src/c++17/default_resource.h
+++ b/libstdc++-v3/src/c++17/default_resource.h
@@ -2,7 +2,11 @@
// to suppress the warning caused by using a reserved init_priority.
#pragma GCC system_header
-#if ATOMIC_POINTER_LOCK_FREE == 2 || defined(__GTHREAD_MUTEX_INIT)
+#ifndef _GLIBCXX_HAS_GTHREADS
+# error "This file should not be included for this build"
+#elif ATOMIC_POINTER_LOCK_FREE == 2
+# error "This file should not be included for this build"
+#elif defined __GTHREAD_MUTEX_INIT
# error "This file should not be included for this build"
#endif
diff --git a/libstdc++-v3/src/c++17/memory_resource.cc b/libstdc++-v3/src/c++17/memory_resource.cc
index c0c7cf0..63856ea 100644
--- a/libstdc++-v3/src/c++17/memory_resource.cc
+++ b/libstdc++-v3/src/c++17/memory_resource.cc
@@ -27,9 +27,9 @@
#include <atomic>
#include <bit> // has_single_bit, bit_ceil, bit_width
#include <new>
+#include <bits/move.h> // std::__exchange
#if ATOMIC_POINTER_LOCK_FREE != 2
# include <bits/std_mutex.h> // std::mutex, std::lock_guard
-# include <bits/move.h> // std::__exchange
#endif
#if __has_cpp_attribute(clang::require_constant_initialization)
@@ -94,56 +94,57 @@ namespace pmr
__constinit constant_init<newdel_res_t> newdel_res{};
__constinit constant_init<null_res_t> null_res{};
-#if ATOMIC_POINTER_LOCK_FREE == 2
- using atomic_mem_res = atomic<memory_resource*>;
+
+#ifndef _GLIBCXX_HAS_GTHREADS
# define _GLIBCXX_ATOMIC_MEM_RES_CAN_BE_CONSTANT_INITIALIZED
-#elif defined(_GLIBCXX_HAS_GTHREADS)
- // Can't use pointer-width atomics, define a type using a mutex instead:
+ // Single-threaded, no need for synchronization
struct atomic_mem_res
{
-# ifdef __GTHREAD_MUTEX_INIT
-# define _GLIBCXX_ATOMIC_MEM_RES_CAN_BE_CONSTANT_INITIALIZED
- // std::mutex has constexpr constructor
constexpr
-# endif
atomic_mem_res(memory_resource* r) : val(r) { }
- mutex mx;
memory_resource* val;
- memory_resource* load(std::memory_order)
+ memory_resource* load(std::memory_order) const
{
- lock_guard<mutex> lock(mx);
return val;
}
memory_resource* exchange(memory_resource* r, std::memory_order)
{
- lock_guard<mutex> lock(mx);
return std::__exchange(val, r);
}
};
-#else
+#elif ATOMIC_POINTER_LOCK_FREE == 2
+ using atomic_mem_res = atomic<memory_resource*>;
# define _GLIBCXX_ATOMIC_MEM_RES_CAN_BE_CONSTANT_INITIALIZED
- // Single-threaded, no need for synchronization
+#else
+ // Can't use pointer-width atomics, define a type using a mutex instead:
struct atomic_mem_res
{
+# ifdef __GTHREAD_MUTEX_INIT
+# define _GLIBCXX_ATOMIC_MEM_RES_CAN_BE_CONSTANT_INITIALIZED
+ // std::mutex has constexpr constructor
constexpr
+# endif
atomic_mem_res(memory_resource* r) : val(r) { }
+ mutex mx;
memory_resource* val;
- memory_resource* load(std::memory_order) const
+ memory_resource* load(std::memory_order)
{
+ lock_guard<mutex> lock(mx);
return val;
}
memory_resource* exchange(memory_resource* r, std::memory_order)
{
+ lock_guard<mutex> lock(mx);
return std::__exchange(val, r);
}
};
-#endif // ATOMIC_POINTER_LOCK_FREE == 2
+#endif
#ifdef _GLIBCXX_ATOMIC_MEM_RES_CAN_BE_CONSTANT_INITIALIZED
__constinit constant_init<atomic_mem_res> default_res{&newdel_res.obj};
diff --git a/libstdc++-v3/src/c++98/Makefile.am b/libstdc++-v3/src/c++98/Makefile.am
index 284ffda..72be2d2 100644
--- a/libstdc++-v3/src/c++98/Makefile.am
+++ b/libstdc++-v3/src/c++98/Makefile.am
@@ -81,15 +81,11 @@ endif
# Source files linked in via configuration/make substitution for a
# particular host, but with ad hoc naming rules.
host_sources_extra = \
- basic_file.cc c++locale.cc \
- ${inst_sources} ${parallel_sources}
+ c++locale.cc
c++locale.cc: ${glibcxx_srcdir}/$(CLOCALE_CC)
$(LN_S) ${glibcxx_srcdir}/$(CLOCALE_CC) ./$@ || true
-basic_file.cc: ${glibcxx_srcdir}/$(BASIC_FILE_CC)
- $(LN_S) ${glibcxx_srcdir}/$(BASIC_FILE_CC) ./$@ || true
-
if ENABLE_DUAL_ABI
cxx11_abi_sources = \
cow-istream-string.cc
@@ -130,9 +126,7 @@ sources = \
list_associated.cc \
list_associated-2.cc \
locale.cc \
- locale_init.cc \
locale_facets.cc \
- localename.cc \
math_stubs_float.cc \
math_stubs_long_double.cc \
stdexcept.cc \
@@ -144,7 +138,9 @@ sources = \
valarray.cc \
${cxx11_abi_sources} \
${host_sources} \
- ${host_sources_extra}
+ ${host_sources_extra} \
+ ${inst_sources} \
+ ${parallel_sources}
vpath % $(top_srcdir)/src/c++98
@@ -181,16 +177,6 @@ numeric_members_cow.o: numeric_members_cow.cc
$(CXXCOMPILE) $(GLIBCXX_ABI_FLAGS) -fimplicit-templates -c $<
endif
-# XXX TODO move locale_init.cc and localename.cc to src/c++11
-locale_init.lo: locale_init.cc
- $(LTCXXCOMPILE) -std=gnu++11 -fchar8_t -c $<
-locale_init.o: locale_init.cc
- $(CXXCOMPILE) -std=gnu++11 -fchar8_t -c $<
-localename.lo: localename.cc
- $(LTCXXCOMPILE) -std=gnu++11 -fchar8_t -c $<
-localename.o: localename.cc
- $(CXXCOMPILE) -std=gnu++11 -fchar8_t -c $<
-
# Use special rules for the deprecated source files so that they find
# deprecated include files.
GLIBCXX_INCLUDE_DIR=$(glibcxx_builddir)/include
diff --git a/libstdc++-v3/src/c++98/Makefile.in b/libstdc++-v3/src/c++98/Makefile.in
index a100df7..95e909b 100644
--- a/libstdc++-v3/src/c++98/Makefile.in
+++ b/libstdc++-v3/src/c++98/Makefile.in
@@ -129,21 +129,20 @@ libc__98convenience_la_LIBADD =
am__objects_3 = $(am__objects_2) codecvt_members.lo collate_members.lo \
messages_members.lo monetary_members.lo numeric_members.lo \
time_members.lo
-@ENABLE_EXTERN_TEMPLATE_TRUE@am__objects_4 = allocator-inst.lo \
+am__objects_4 = c++locale.lo
+@ENABLE_EXTERN_TEMPLATE_TRUE@am__objects_5 = allocator-inst.lo \
@ENABLE_EXTERN_TEMPLATE_TRUE@ concept-inst.lo ext-inst.lo \
@ENABLE_EXTERN_TEMPLATE_TRUE@ misc-inst.lo
-am__objects_5 = parallel_settings.lo
-am__objects_6 = basic_file.lo c++locale.lo $(am__objects_4) \
- $(am__objects_5)
+am__objects_6 = parallel_settings.lo
am__objects_7 = bitmap_allocator.lo pool_allocator.lo mt_allocator.lo \
codecvt.lo complex_io.lo globals_io.lo hash_tr1.lo \
hashtable_tr1.lo ios_failure.lo ios_init.lo ios_locale.lo \
list.lo list-aux.lo list-aux-2.lo list_associated.lo \
- list_associated-2.lo locale.lo locale_init.lo locale_facets.lo \
- localename.lo math_stubs_float.lo math_stubs_long_double.lo \
- stdexcept.lo strstream.lo tree.lo istream.lo istream-string.lo \
- streambuf.lo valarray.lo $(am__objects_1) $(am__objects_3) \
- $(am__objects_6)
+ list_associated-2.lo locale.lo locale_facets.lo \
+ math_stubs_float.lo math_stubs_long_double.lo stdexcept.lo \
+ strstream.lo tree.lo istream.lo istream-string.lo streambuf.lo \
+ valarray.lo $(am__objects_1) $(am__objects_3) $(am__objects_4) \
+ $(am__objects_5) $(am__objects_6)
@GLIBCXX_HOSTED_TRUE@am_libc__98convenience_la_OBJECTS = \
@GLIBCXX_HOSTED_TRUE@ $(am__objects_7)
libc__98convenience_la_OBJECTS = $(am_libc__98convenience_la_OBJECTS)
@@ -468,8 +467,7 @@ host_sources = \
# Source files linked in via configuration/make substitution for a
# particular host, but with ad hoc naming rules.
host_sources_extra = \
- basic_file.cc c++locale.cc \
- ${inst_sources} ${parallel_sources}
+ c++locale.cc
@ENABLE_DUAL_ABI_FALSE@cxx11_abi_sources =
@ENABLE_DUAL_ABI_TRUE@cxx11_abi_sources = \
@@ -506,9 +504,7 @@ sources = \
list_associated.cc \
list_associated-2.cc \
locale.cc \
- locale_init.cc \
locale_facets.cc \
- localename.cc \
math_stubs_float.cc \
math_stubs_long_double.cc \
stdexcept.cc \
@@ -520,7 +516,9 @@ sources = \
valarray.cc \
${cxx11_abi_sources} \
${host_sources} \
- ${host_sources_extra}
+ ${host_sources_extra} \
+ ${inst_sources} \
+ ${parallel_sources}
@GLIBCXX_HOSTED_FALSE@libc__98convenience_la_SOURCES =
@GLIBCXX_HOSTED_TRUE@libc__98convenience_la_SOURCES = $(sources)
@@ -871,9 +869,6 @@ time_members.cc: ${glibcxx_srcdir}/$(CTIME_CC)
c++locale.cc: ${glibcxx_srcdir}/$(CLOCALE_CC)
$(LN_S) ${glibcxx_srcdir}/$(CLOCALE_CC) ./$@ || true
-basic_file.cc: ${glibcxx_srcdir}/$(BASIC_FILE_CC)
- $(LN_S) ${glibcxx_srcdir}/$(BASIC_FILE_CC) ./$@ || true
-
vpath % $(top_srcdir)/src/c++98
# Use special rules to compile with -fimplicit-templates.
@@ -898,16 +893,6 @@ c++locale.o: c++locale.cc
@ENABLE_DUAL_ABI_TRUE@ $(LTCXXCOMPILE) $(GLIBCXX_ABI_FLAGS) -fimplicit-templates -c $<
@ENABLE_DUAL_ABI_TRUE@numeric_members_cow.o: numeric_members_cow.cc
@ENABLE_DUAL_ABI_TRUE@ $(CXXCOMPILE) $(GLIBCXX_ABI_FLAGS) -fimplicit-templates -c $<
-
-# XXX TODO move locale_init.cc and localename.cc to src/c++11
-locale_init.lo: locale_init.cc
- $(LTCXXCOMPILE) -std=gnu++11 -fchar8_t -c $<
-locale_init.o: locale_init.cc
- $(CXXCOMPILE) -std=gnu++11 -fchar8_t -c $<
-localename.lo: localename.cc
- $(LTCXXCOMPILE) -std=gnu++11 -fchar8_t -c $<
-localename.o: localename.cc
- $(CXXCOMPILE) -std=gnu++11 -fchar8_t -c $<
strstream.lo: strstream.cc
$(LTCXXCOMPILE) -I$(GLIBCXX_INCLUDE_DIR)/backward -Wno-deprecated -c $<
strstream.o: strstream.cc
diff --git a/libstdc++-v3/testsuite/18_support/comparisons/algorithms/fallback.cc b/libstdc++-v3/testsuite/18_support/comparisons/algorithms/fallback.cc
index 8bf78fa..da8aaee 100644
--- a/libstdc++-v3/testsuite/18_support/comparisons/algorithms/fallback.cc
+++ b/libstdc++-v3/testsuite/18_support/comparisons/algorithms/fallback.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
#include <compare>
diff --git a/libstdc++-v3/testsuite/18_support/comparisons/algorithms/partial_order.cc b/libstdc++-v3/testsuite/18_support/comparisons/algorithms/partial_order.cc
index 7c186e6..d83bb00 100644
--- a/libstdc++-v3/testsuite/18_support/comparisons/algorithms/partial_order.cc
+++ b/libstdc++-v3/testsuite/18_support/comparisons/algorithms/partial_order.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <compare>
#include <limits>
diff --git a/libstdc++-v3/testsuite/18_support/comparisons/algorithms/strong_order.cc b/libstdc++-v3/testsuite/18_support/comparisons/algorithms/strong_order.cc
index be64071..c97f314 100644
--- a/libstdc++-v3/testsuite/18_support/comparisons/algorithms/strong_order.cc
+++ b/libstdc++-v3/testsuite/18_support/comparisons/algorithms/strong_order.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <compare>
#include <limits>
diff --git a/libstdc++-v3/testsuite/18_support/comparisons/algorithms/strong_order_floats.cc b/libstdc++-v3/testsuite/18_support/comparisons/algorithms/strong_order_floats.cc
index e28fcac..135cba2 100644
--- a/libstdc++-v3/testsuite/18_support/comparisons/algorithms/strong_order_floats.cc
+++ b/libstdc++-v3/testsuite/18_support/comparisons/algorithms/strong_order_floats.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
#include <compare>
diff --git a/libstdc++-v3/testsuite/18_support/comparisons/algorithms/weak_order.cc b/libstdc++-v3/testsuite/18_support/comparisons/algorithms/weak_order.cc
index a66ca6a..1ff471f 100644
--- a/libstdc++-v3/testsuite/18_support/comparisons/algorithms/weak_order.cc
+++ b/libstdc++-v3/testsuite/18_support/comparisons/algorithms/weak_order.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <compare>
#include <limits>
diff --git a/libstdc++-v3/testsuite/18_support/comparisons/categories/94565.cc b/libstdc++-v3/testsuite/18_support/comparisons/categories/94565.cc
index 624f114..47092b9 100644
--- a/libstdc++-v3/testsuite/18_support/comparisons/categories/94565.cc
+++ b/libstdc++-v3/testsuite/18_support/comparisons/categories/94565.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <compare>
diff --git a/libstdc++-v3/testsuite/18_support/comparisons/categories/partialord.cc b/libstdc++-v3/testsuite/18_support/comparisons/categories/partialord.cc
index 818f5a1..57fe68a 100644
--- a/libstdc++-v3/testsuite/18_support/comparisons/categories/partialord.cc
+++ b/libstdc++-v3/testsuite/18_support/comparisons/categories/partialord.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <compare>
diff --git a/libstdc++-v3/testsuite/18_support/comparisons/categories/strongord.cc b/libstdc++-v3/testsuite/18_support/comparisons/categories/strongord.cc
index 8799974..e23c571 100644
--- a/libstdc++-v3/testsuite/18_support/comparisons/categories/strongord.cc
+++ b/libstdc++-v3/testsuite/18_support/comparisons/categories/strongord.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <compare>
diff --git a/libstdc++-v3/testsuite/18_support/comparisons/categories/weakord.cc b/libstdc++-v3/testsuite/18_support/comparisons/categories/weakord.cc
index a0f6eb3..8667337 100644
--- a/libstdc++-v3/testsuite/18_support/comparisons/categories/weakord.cc
+++ b/libstdc++-v3/testsuite/18_support/comparisons/categories/weakord.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <compare>
diff --git a/libstdc++-v3/testsuite/18_support/comparisons/categories/zero_neg.cc b/libstdc++-v3/testsuite/18_support/comparisons/categories/zero_neg.cc
index 17a129b..9d2115b 100644
--- a/libstdc++-v3/testsuite/18_support/comparisons/categories/zero_neg.cc
+++ b/libstdc++-v3/testsuite/18_support/comparisons/categories/zero_neg.cc
@@ -15,8 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a -Wno-unused-result" }
-// { dg-do compile { target c++2a } }
+// { dg-options "-Wno-unused-result" }
+// { dg-do compile { target c++20 } }
#include <compare>
diff --git a/libstdc++-v3/testsuite/18_support/comparisons/common/1.cc b/libstdc++-v3/testsuite/18_support/comparisons/common/1.cc
index f9acf16..7050e75 100644
--- a/libstdc++-v3/testsuite/18_support/comparisons/common/1.cc
+++ b/libstdc++-v3/testsuite/18_support/comparisons/common/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <compare>
diff --git a/libstdc++-v3/testsuite/18_support/comparisons/object/93479.cc b/libstdc++-v3/testsuite/18_support/comparisons/object/93479.cc
index 82e1d72..15178f7 100644
--- a/libstdc++-v3/testsuite/18_support/comparisons/object/93479.cc
+++ b/libstdc++-v3/testsuite/18_support/comparisons/object/93479.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <compare>
diff --git a/libstdc++-v3/testsuite/18_support/comparisons/object/lwg3530.cc b/libstdc++-v3/testsuite/18_support/comparisons/object/lwg3530.cc
index f042ce0..b9a3cf5 100644
--- a/libstdc++-v3/testsuite/18_support/comparisons/object/lwg3530.cc
+++ b/libstdc++-v3/testsuite/18_support/comparisons/object/lwg3530.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <compare>
diff --git a/libstdc++-v3/testsuite/18_support/coroutines/95917.cc b/libstdc++-v3/testsuite/18_support/coroutines/95917.cc
index f6f85f4..8ee56ef 100644
--- a/libstdc++-v3/testsuite/18_support/coroutines/95917.cc
+++ b/libstdc++-v3/testsuite/18_support/coroutines/95917.cc
@@ -15,8 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a -g0" }
-// { dg-do compile { target c++2a } }
+// { dg-options "-g0" }
+// { dg-do compile { target c++20 } }
// { dg-final { scan-assembler-not "dummy_resume_destroy" } }
// { dg-final { scan-assembler-not "noop_coro" } }
diff --git a/libstdc++-v3/testsuite/18_support/coroutines/hash.cc b/libstdc++-v3/testsuite/18_support/coroutines/hash.cc
index 81b68f8..bddea03 100644
--- a/libstdc++-v3/testsuite/18_support/coroutines/hash.cc
+++ b/libstdc++-v3/testsuite/18_support/coroutines/hash.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <coroutine>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/18_support/coroutines/lwg3460.cc b/libstdc++-v3/testsuite/18_support/coroutines/lwg3460.cc
index 1d4b6d2..84f1ea2 100644
--- a/libstdc++-v3/testsuite/18_support/coroutines/lwg3460.cc
+++ b/libstdc++-v3/testsuite/18_support/coroutines/lwg3460.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <coroutine>
diff --git a/libstdc++-v3/testsuite/18_support/destroying_delete.cc b/libstdc++-v3/testsuite/18_support/destroying_delete.cc
index 4012ddd..2ee9272 100644
--- a/libstdc++-v3/testsuite/18_support/destroying_delete.cc
+++ b/libstdc++-v3/testsuite/18_support/destroying_delete.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <new>
#include <type_traits>
diff --git a/libstdc++-v3/testsuite/18_support/headers/limits/synopsis_cxx23.cc b/libstdc++-v3/testsuite/18_support/headers/limits/synopsis_cxx23.cc
index 355eb2b..2d9ea05 100644
--- a/libstdc++-v3/testsuite/18_support/headers/limits/synopsis_cxx23.cc
+++ b/libstdc++-v3/testsuite/18_support/headers/limits/synopsis_cxx23.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++2b" }
// { dg-do compile { target c++23 } }
// { dg-require-normal-namespace "" }
diff --git a/libstdc++-v3/testsuite/18_support/headers/stdfloat/types_std.cc b/libstdc++-v3/testsuite/18_support/headers/stdfloat/types_std.cc
index 8a12abf..eb4d5ec 100644
--- a/libstdc++-v3/testsuite/18_support/headers/stdfloat/types_std.cc
+++ b/libstdc++-v3/testsuite/18_support/headers/stdfloat/types_std.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++2b" }
// { dg-do compile { target c++23 } }
// Copyright (C) 2022-2023 Free Software Foundation, Inc.
diff --git a/libstdc++-v3/testsuite/18_support/source_location/1.cc b/libstdc++-v3/testsuite/18_support/source_location/1.cc
index 0898c9e..48707b3 100644
--- a/libstdc++-v3/testsuite/18_support/source_location/1.cc
+++ b/libstdc++-v3/testsuite/18_support/source_location/1.cc
@@ -18,8 +18,8 @@
// Example from C++ Standard Working Draft N4842, November 2019 Mailing
// Adapted for testing.
-// { dg-options "-std=gnu++2a -include string -include stdexcept" }
-// { dg-do run { target c++2a } }
+// { dg-options "-include string -include stdexcept" }
+// { dg-do run { target c++20 } }
#include <source_location>
diff --git a/libstdc++-v3/testsuite/18_support/source_location/consteval.cc b/libstdc++-v3/testsuite/18_support/source_location/consteval.cc
index 92b0313..802054d 100644
--- a/libstdc++-v3/testsuite/18_support/source_location/consteval.cc
+++ b/libstdc++-v3/testsuite/18_support/source_location/consteval.cc
@@ -18,8 +18,7 @@
// Example from C++ Standard Working Draft N4842, November 2019 Mailing
// Adapted for testing.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <source_location>
#include <string_view>
@@ -119,7 +118,7 @@ int main ()
member_defaulted_sl.member.file_name());
constexpr std::string_view member_defaulted_sl_fn_name(
member_defaulted_sl.member.function_name());
- static_assert(member_defaulted_sl.member.line() == 36);
+ static_assert(member_defaulted_sl.member.line() == 35);
// closing paren of constructor declaration
static_assert(member_defaulted_sl.member.column() == 25);
static_assert(member_defaulted_sl_fn_name.ends_with("s::s(int)"sv));
diff --git a/libstdc++-v3/testsuite/18_support/source_location/version.cc b/libstdc++-v3/testsuite/18_support/source_location/version.cc
index 540bb1a..8cb5902 100644
--- a/libstdc++-v3/testsuite/18_support/source_location/version.cc
+++ b/libstdc++-v3/testsuite/18_support/source_location/version.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do preprocess { target c++2a } }
+// { dg-do preprocess { target c++20 } }
#include <version>
diff --git a/libstdc++-v3/testsuite/18_support/type_info/constexpr.cc b/libstdc++-v3/testsuite/18_support/type_info/constexpr.cc
index 6fb67b4..9390aa4 100644
--- a/libstdc++-v3/testsuite/18_support/type_info/constexpr.cc
+++ b/libstdc++-v3/testsuite/18_support/type_info/constexpr.cc
@@ -1,4 +1,4 @@
-// { dg-options "-std=gnu++23 -frtti" }
+// { dg-options "-frtti" }
// { dg-do compile { target c++23 } }
// { dg-additional-options "-fdelete-null-pointer-checks" }
diff --git a/libstdc++-v3/testsuite/19_diagnostics/error_category/operators/three_way.cc b/libstdc++-v3/testsuite/19_diagnostics/error_category/operators/three_way.cc
index 6f41ed2..0580017 100644
--- a/libstdc++-v3/testsuite/19_diagnostics/error_category/operators/three_way.cc
+++ b/libstdc++-v3/testsuite/19_diagnostics/error_category/operators/three_way.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <system_error>
#include <testsuite_error.h>
diff --git a/libstdc++-v3/testsuite/19_diagnostics/error_code/operators/three_way.cc b/libstdc++-v3/testsuite/19_diagnostics/error_code/operators/three_way.cc
index ce659d7..646f219 100644
--- a/libstdc++-v3/testsuite/19_diagnostics/error_code/operators/three_way.cc
+++ b/libstdc++-v3/testsuite/19_diagnostics/error_code/operators/three_way.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <system_error>
#include <testsuite_error.h>
diff --git a/libstdc++-v3/testsuite/19_diagnostics/error_condition/operators/three_way.cc b/libstdc++-v3/testsuite/19_diagnostics/error_condition/operators/three_way.cc
index 914fbf4..e568748 100644
--- a/libstdc++-v3/testsuite/19_diagnostics/error_condition/operators/three_way.cc
+++ b/libstdc++-v3/testsuite/19_diagnostics/error_condition/operators/three_way.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <system_error>
#include <testsuite_error.h>
diff --git a/libstdc++-v3/testsuite/19_diagnostics/stacktrace/current.cc b/libstdc++-v3/testsuite/19_diagnostics/stacktrace/current.cc
index f6c860f..a27836d 100644
--- a/libstdc++-v3/testsuite/19_diagnostics/stacktrace/current.cc
+++ b/libstdc++-v3/testsuite/19_diagnostics/stacktrace/current.cc
@@ -1,4 +1,4 @@
-// { dg-options "-std=gnu++23 -lstdc++exp" }
+// { dg-options "-lstdc++exp" }
// { dg-do run { target c++23 } }
// { dg-require-effective-target stacktrace }
diff --git a/libstdc++-v3/testsuite/19_diagnostics/stacktrace/entry.cc b/libstdc++-v3/testsuite/19_diagnostics/stacktrace/entry.cc
index f040695..ab016d56 100644
--- a/libstdc++-v3/testsuite/19_diagnostics/stacktrace/entry.cc
+++ b/libstdc++-v3/testsuite/19_diagnostics/stacktrace/entry.cc
@@ -1,4 +1,4 @@
-// { dg-options "-std=gnu++23 -lstdc++exp" }
+// { dg-options "-lstdc++exp" }
// { dg-do run { target c++23 } }
// { dg-require-effective-target stacktrace }
diff --git a/libstdc++-v3/testsuite/19_diagnostics/stacktrace/output.cc b/libstdc++-v3/testsuite/19_diagnostics/stacktrace/output.cc
index 5116413..35389ec 100644
--- a/libstdc++-v3/testsuite/19_diagnostics/stacktrace/output.cc
+++ b/libstdc++-v3/testsuite/19_diagnostics/stacktrace/output.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
// { dg-require-effective-target stacktrace }
diff --git a/libstdc++-v3/testsuite/19_diagnostics/stacktrace/stacktrace.cc b/libstdc++-v3/testsuite/19_diagnostics/stacktrace/stacktrace.cc
index 0a358b7..5dfa769 100644
--- a/libstdc++-v3/testsuite/19_diagnostics/stacktrace/stacktrace.cc
+++ b/libstdc++-v3/testsuite/19_diagnostics/stacktrace/stacktrace.cc
@@ -1,4 +1,4 @@
-// { dg-options "-std=gnu++23 -lstdc++exp" }
+// { dg-options "-lstdc++exp" }
// { dg-do run { target c++23 } }
// { dg-require-effective-target stacktrace }
diff --git a/libstdc++-v3/testsuite/19_diagnostics/stacktrace/synopsis.cc b/libstdc++-v3/testsuite/19_diagnostics/stacktrace/synopsis.cc
index ece5d52..5e32527 100644
--- a/libstdc++-v3/testsuite/19_diagnostics/stacktrace/synopsis.cc
+++ b/libstdc++-v3/testsuite/19_diagnostics/stacktrace/synopsis.cc
@@ -1,6 +1,6 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
// { dg-require-effective-target stacktrace }
+// { dg-require-normal-namespace "" }
#include <stacktrace>
diff --git a/libstdc++-v3/testsuite/19_diagnostics/stacktrace/version.cc b/libstdc++-v3/testsuite/19_diagnostics/stacktrace/version.cc
index d59a069..ecfaf41 100644
--- a/libstdc++-v3/testsuite/19_diagnostics/stacktrace/version.cc
+++ b/libstdc++-v3/testsuite/19_diagnostics/stacktrace/version.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do preprocess { target c++23 } }
// { dg-require-effective-target stacktrace }
diff --git a/libstdc++-v3/testsuite/20_util/aligned_storage/deprecated-2b.cc b/libstdc++-v3/testsuite/20_util/aligned_storage/deprecated-2b.cc
index a0e338a..fb6800b 100644
--- a/libstdc++-v3/testsuite/20_util/aligned_storage/deprecated-2b.cc
+++ b/libstdc++-v3/testsuite/20_util/aligned_storage/deprecated-2b.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
#include <type_traits>
diff --git a/libstdc++-v3/testsuite/20_util/aligned_union/deprecated-2b.cc b/libstdc++-v3/testsuite/20_util/aligned_union/deprecated-2b.cc
index fa00a92..18c71d9 100644
--- a/libstdc++-v3/testsuite/20_util/aligned_union/deprecated-2b.cc
+++ b/libstdc++-v3/testsuite/20_util/aligned_union/deprecated-2b.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
#include <type_traits>
diff --git a/libstdc++-v3/testsuite/20_util/allocator/105975.cc b/libstdc++-v3/testsuite/20_util/allocator/105975.cc
index 09f27ba..4866ae6 100644
--- a/libstdc++-v3/testsuite/20_util/allocator/105975.cc
+++ b/libstdc++-v3/testsuite/20_util/allocator/105975.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-require-effective-target hosted }
diff --git a/libstdc++-v3/testsuite/20_util/allocator/rebind_c++20.cc b/libstdc++-v3/testsuite/20_util/allocator/rebind_c++20.cc
index bacd124..b26fa6f 100644
--- a/libstdc++-v3/testsuite/20_util/allocator/rebind_c++20.cc
+++ b/libstdc++-v3/testsuite/20_util/allocator/rebind_c++20.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-effective-target hosted }
#include <memory>
diff --git a/libstdc++-v3/testsuite/20_util/allocator/requirements/constexpr.cc b/libstdc++-v3/testsuite/20_util/allocator/requirements/constexpr.cc
index c7a8e27..2102c57 100644
--- a/libstdc++-v3/testsuite/20_util/allocator/requirements/constexpr.cc
+++ b/libstdc++-v3/testsuite/20_util/allocator/requirements/constexpr.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-require-effective-target hosted }
diff --git a/libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs_c++20.cc b/libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs_c++20.cc
index dc19141..f7b1e20 100644
--- a/libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs_c++20.cc
+++ b/libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs_c++20.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-require-effective-target hosted }
diff --git a/libstdc++-v3/testsuite/20_util/allocator_traits/header-2.cc b/libstdc++-v3/testsuite/20_util/allocator_traits/header-2.cc
index 8ba0c94..9393d8a 100644
--- a/libstdc++-v3/testsuite/20_util/allocator_traits/header-2.cc
+++ b/libstdc++-v3/testsuite/20_util/allocator_traits/header-2.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-require-effective-target hosted }
diff --git a/libstdc++-v3/testsuite/20_util/allocator_traits/header.cc b/libstdc++-v3/testsuite/20_util/allocator_traits/header.cc
index f500f74..4a88aba 100644
--- a/libstdc++-v3/testsuite/20_util/allocator_traits/header.cc
+++ b/libstdc++-v3/testsuite/20_util/allocator_traits/header.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-require-effective-target hosted }
diff --git a/libstdc++-v3/testsuite/20_util/allocator_traits/members/92878_92947.cc b/libstdc++-v3/testsuite/20_util/allocator_traits/members/92878_92947.cc
index 6e3bb54..794138a 100644
--- a/libstdc++-v3/testsuite/20_util/allocator_traits/members/92878_92947.cc
+++ b/libstdc++-v3/testsuite/20_util/allocator_traits/members/92878_92947.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
// { dg-require-effective-target hosted }
diff --git a/libstdc++-v3/testsuite/20_util/any/assign/92878_92947.cc b/libstdc++-v3/testsuite/20_util/any/assign/92878_92947.cc
index cf4cffe..5a6122e 100644
--- a/libstdc++-v3/testsuite/20_util/any/assign/92878_92947.cc
+++ b/libstdc++-v3/testsuite/20_util/any/assign/92878_92947.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
diff --git a/libstdc++-v3/testsuite/20_util/any/cons/92878_92947.cc b/libstdc++-v3/testsuite/20_util/any/cons/92878_92947.cc
index 76d11ec..eebd7ec 100644
--- a/libstdc++-v3/testsuite/20_util/any/cons/92878_92947.cc
+++ b/libstdc++-v3/testsuite/20_util/any/cons/92878_92947.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/20_util/assume_aligned/1.cc b/libstdc++-v3/testsuite/20_util/assume_aligned/1.cc
index 0272541..d131444 100644
--- a/libstdc++-v3/testsuite/20_util/assume_aligned/1.cc
+++ b/libstdc++-v3/testsuite/20_util/assume_aligned/1.cc
@@ -15,8 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a -O2" }
-// { dg-do run { target c++2a } }
+// { dg-options "-O2" }
+// { dg-do run { target c++20 } }
#include <memory>
#include <cstdint>
diff --git a/libstdc++-v3/testsuite/20_util/assume_aligned/2_neg.cc b/libstdc++-v3/testsuite/20_util/assume_aligned/2_neg.cc
index 4cd8371..82a7bd6 100644
--- a/libstdc++-v3/testsuite/20_util/assume_aligned/2_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/assume_aligned/2_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <memory>
diff --git a/libstdc++-v3/testsuite/20_util/assume_aligned/3.cc b/libstdc++-v3/testsuite/20_util/assume_aligned/3.cc
index 7bd60fb..4337dae 100644
--- a/libstdc++-v3/testsuite/20_util/assume_aligned/3.cc
+++ b/libstdc++-v3/testsuite/20_util/assume_aligned/3.cc
@@ -15,8 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a -O2 -g0" }
-// { dg-do compile { target c++2a } }
+// { dg-options "-O2 -g0" }
+// { dg-do compile { target c++20 } }
// { dg-final { scan-assembler-not "undefined" } }
#include <memory>
diff --git a/libstdc++-v3/testsuite/20_util/assume_aligned/97132.cc b/libstdc++-v3/testsuite/20_util/assume_aligned/97132.cc
index c928581..2c8b33b 100644
--- a/libstdc++-v3/testsuite/20_util/assume_aligned/97132.cc
+++ b/libstdc++-v3/testsuite/20_util/assume_aligned/97132.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <memory>
diff --git a/libstdc++-v3/testsuite/20_util/bind/constexpr.cc b/libstdc++-v3/testsuite/20_util/bind/constexpr.cc
index 483c7ab..1a1ecfe 100644
--- a/libstdc++-v3/testsuite/20_util/bind/constexpr.cc
+++ b/libstdc++-v3/testsuite/20_util/bind/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <functional>
diff --git a/libstdc++-v3/testsuite/20_util/bitset/access/constexpr.cc b/libstdc++-v3/testsuite/20_util/bitset/access/constexpr.cc
index 53bb07f..6cf08b5 100644
--- a/libstdc++-v3/testsuite/20_util/bitset/access/constexpr.cc
+++ b/libstdc++-v3/testsuite/20_util/bitset/access/constexpr.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
#include <bitset>
diff --git a/libstdc++-v3/testsuite/20_util/bitset/cons/constexpr_c++23.cc b/libstdc++-v3/testsuite/20_util/bitset/cons/constexpr_c++23.cc
index d308c2b..871d17d 100644
--- a/libstdc++-v3/testsuite/20_util/bitset/cons/constexpr_c++23.cc
+++ b/libstdc++-v3/testsuite/20_util/bitset/cons/constexpr_c++23.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
// This test relies on std::string.
// { dg-require-effective-target hosted }
diff --git a/libstdc++-v3/testsuite/20_util/bitset/count/constexpr.cc b/libstdc++-v3/testsuite/20_util/bitset/count/constexpr.cc
index 98f8e22..0832fcf 100644
--- a/libstdc++-v3/testsuite/20_util/bitset/count/constexpr.cc
+++ b/libstdc++-v3/testsuite/20_util/bitset/count/constexpr.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
#include <bitset>
diff --git a/libstdc++-v3/testsuite/20_util/bitset/ext/constexpr.cc b/libstdc++-v3/testsuite/20_util/bitset/ext/constexpr.cc
index 4bacefa..5370902 100644
--- a/libstdc++-v3/testsuite/20_util/bitset/ext/constexpr.cc
+++ b/libstdc++-v3/testsuite/20_util/bitset/ext/constexpr.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
// This test relies on std::string.
// { dg-require-effective-target hosted }
diff --git a/libstdc++-v3/testsuite/20_util/bitset/operations/96303.cc b/libstdc++-v3/testsuite/20_util/bitset/operations/96303.cc
index 13209e7..04ec2e7 100644
--- a/libstdc++-v3/testsuite/20_util/bitset/operations/96303.cc
+++ b/libstdc++-v3/testsuite/20_util/bitset/operations/96303.cc
@@ -15,8 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a -pedantic" }
-// { dg-do compile { target c++2a } }
+// { dg-options "-pedantic" }
+// { dg-do compile { target c++20 } }
// { dg-require-effective-target hosted }
diff --git a/libstdc++-v3/testsuite/20_util/bitset/operations/constexpr_c++23.cc b/libstdc++-v3/testsuite/20_util/bitset/operations/constexpr_c++23.cc
index c594dd6..5ca209d 100644
--- a/libstdc++-v3/testsuite/20_util/bitset/operations/constexpr_c++23.cc
+++ b/libstdc++-v3/testsuite/20_util/bitset/operations/constexpr_c++23.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
#include <bitset>
diff --git a/libstdc++-v3/testsuite/20_util/bitset/version.cc b/libstdc++-v3/testsuite/20_util/bitset/version.cc
index 791ec43..1badb29 100644
--- a/libstdc++-v3/testsuite/20_util/bitset/version.cc
+++ b/libstdc++-v3/testsuite/20_util/bitset/version.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do preprocess { target c++23 } }
// { dg-require-effective-target hosted }
diff --git a/libstdc++-v3/testsuite/20_util/common_reference/100894.cc b/libstdc++-v3/testsuite/20_util/common_reference/100894.cc
index 5e14476..d81b960 100644
--- a/libstdc++-v3/testsuite/20_util/common_reference/100894.cc
+++ b/libstdc++-v3/testsuite/20_util/common_reference/100894.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// PR libstdc++/100894 - common_reference implementation seems to be wrong
diff --git a/libstdc++-v3/testsuite/20_util/common_reference/requirements/alias_decl.cc b/libstdc++-v3/testsuite/20_util/common_reference/requirements/alias_decl.cc
index caaa942..83ba7c9 100644
--- a/libstdc++-v3/testsuite/20_util/common_reference/requirements/alias_decl.cc
+++ b/libstdc++-v3/testsuite/20_util/common_reference/requirements/alias_decl.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <type_traits>
diff --git a/libstdc++-v3/testsuite/20_util/common_reference/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/20_util/common_reference/requirements/explicit_instantiation.cc
index e1d93ce..4c411c5 100644
--- a/libstdc++-v3/testsuite/20_util/common_reference/requirements/explicit_instantiation.cc
+++ b/libstdc++-v3/testsuite/20_util/common_reference/requirements/explicit_instantiation.cc
@@ -17,8 +17,7 @@
// NB: This file is for testing type_traits with NO OTHER INCLUDES.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <type_traits>
diff --git a/libstdc++-v3/testsuite/20_util/common_reference/requirements/typedefs.cc b/libstdc++-v3/testsuite/20_util/common_reference/requirements/typedefs.cc
index 9cb8cfd..ac630c3 100644
--- a/libstdc++-v3/testsuite/20_util/common_reference/requirements/typedefs.cc
+++ b/libstdc++-v3/testsuite/20_util/common_reference/requirements/typedefs.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <type_traits>
diff --git a/libstdc++-v3/testsuite/20_util/duration/arithmetic/overflow_c++20.cc b/libstdc++-v3/testsuite/20_util/duration/arithmetic/overflow_c++20.cc
index 42fa7ea..ba1f775cb 100644
--- a/libstdc++-v3/testsuite/20_util/duration/arithmetic/overflow_c++20.cc
+++ b/libstdc++-v3/testsuite/20_util/duration/arithmetic/overflow_c++20.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
#include <chrono>
diff --git a/libstdc++-v3/testsuite/20_util/duration/comparison_operators/three_way.cc b/libstdc++-v3/testsuite/20_util/duration/comparison_operators/three_way.cc
index 92993a7..0e268ef 100644
--- a/libstdc++-v3/testsuite/20_util/duration/comparison_operators/three_way.cc
+++ b/libstdc++-v3/testsuite/20_util/duration/comparison_operators/three_way.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/20_util/duration/io.cc b/libstdc++-v3/testsuite/20_util/duration/io.cc
index 5cbc050..a652a34 100644
--- a/libstdc++-v3/testsuite/20_util/duration/io.cc
+++ b/libstdc++-v3/testsuite/20_util/duration/io.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
#include <chrono>
diff --git a/libstdc++-v3/testsuite/20_util/exchange/constexpr.cc b/libstdc++-v3/testsuite/20_util/exchange/constexpr.cc
index 2ec1304..2a7d792 100644
--- a/libstdc++-v3/testsuite/20_util/exchange/constexpr.cc
+++ b/libstdc++-v3/testsuite/20_util/exchange/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <utility>
diff --git a/libstdc++-v3/testsuite/20_util/exchange/noexcept.cc b/libstdc++-v3/testsuite/20_util/exchange/noexcept.cc
index 6363a4d..7e39a42 100644
--- a/libstdc++-v3/testsuite/20_util/exchange/noexcept.cc
+++ b/libstdc++-v3/testsuite/20_util/exchange/noexcept.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <utility>
diff --git a/libstdc++-v3/testsuite/20_util/expected/assign.cc b/libstdc++-v3/testsuite/20_util/expected/assign.cc
index bbf5b90..73f5cbc 100644
--- a/libstdc++-v3/testsuite/20_util/expected/assign.cc
+++ b/libstdc++-v3/testsuite/20_util/expected/assign.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <expected>
diff --git a/libstdc++-v3/testsuite/20_util/expected/bad.cc b/libstdc++-v3/testsuite/20_util/expected/bad.cc
index e5d7ba4..c629e14 100644
--- a/libstdc++-v3/testsuite/20_util/expected/bad.cc
+++ b/libstdc++-v3/testsuite/20_util/expected/bad.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
#include <expected>
diff --git a/libstdc++-v3/testsuite/20_util/expected/cons.cc b/libstdc++-v3/testsuite/20_util/expected/cons.cc
index 6946858..683174e 100644
--- a/libstdc++-v3/testsuite/20_util/expected/cons.cc
+++ b/libstdc++-v3/testsuite/20_util/expected/cons.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <expected>
diff --git a/libstdc++-v3/testsuite/20_util/expected/equality.cc b/libstdc++-v3/testsuite/20_util/expected/equality.cc
index 1862719..db19b15 100644
--- a/libstdc++-v3/testsuite/20_util/expected/equality.cc
+++ b/libstdc++-v3/testsuite/20_util/expected/equality.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
#include <expected>
diff --git a/libstdc++-v3/testsuite/20_util/expected/illformed_neg.cc b/libstdc++-v3/testsuite/20_util/expected/illformed_neg.cc
index f1b0771..69c13b4 100644
--- a/libstdc++-v3/testsuite/20_util/expected/illformed_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/expected/illformed_neg.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
#include <expected>
diff --git a/libstdc++-v3/testsuite/20_util/expected/lwg3877.cc b/libstdc++-v3/testsuite/20_util/expected/lwg3877.cc
index 876275b..1854f51 100644
--- a/libstdc++-v3/testsuite/20_util/expected/lwg3877.cc
+++ b/libstdc++-v3/testsuite/20_util/expected/lwg3877.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
// LWG 3877. Incorrect constraints on const-qualified monadic overloads
diff --git a/libstdc++-v3/testsuite/20_util/expected/lwg3938.cc b/libstdc++-v3/testsuite/20_util/expected/lwg3938.cc
index c7e3758..3aa2b9d 100644
--- a/libstdc++-v3/testsuite/20_util/expected/lwg3938.cc
+++ b/libstdc++-v3/testsuite/20_util/expected/lwg3938.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
// LWG 3938. Cannot use std::expected monadic ops with move-only error_type
diff --git a/libstdc++-v3/testsuite/20_util/expected/monadic.cc b/libstdc++-v3/testsuite/20_util/expected/monadic.cc
index d82774b..40f4907 100644
--- a/libstdc++-v3/testsuite/20_util/expected/monadic.cc
+++ b/libstdc++-v3/testsuite/20_util/expected/monadic.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <expected>
diff --git a/libstdc++-v3/testsuite/20_util/expected/observers.cc b/libstdc++-v3/testsuite/20_util/expected/observers.cc
index 9bcd9ed..35cc3d8 100644
--- a/libstdc++-v3/testsuite/20_util/expected/observers.cc
+++ b/libstdc++-v3/testsuite/20_util/expected/observers.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <expected>
diff --git a/libstdc++-v3/testsuite/20_util/expected/requirements.cc b/libstdc++-v3/testsuite/20_util/expected/requirements.cc
index aae7059..c7ef5b6 100644
--- a/libstdc++-v3/testsuite/20_util/expected/requirements.cc
+++ b/libstdc++-v3/testsuite/20_util/expected/requirements.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
#include <expected>
diff --git a/libstdc++-v3/testsuite/20_util/expected/swap.cc b/libstdc++-v3/testsuite/20_util/expected/swap.cc
index 08a110d..d37c7e0 100644
--- a/libstdc++-v3/testsuite/20_util/expected/swap.cc
+++ b/libstdc++-v3/testsuite/20_util/expected/swap.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <expected>
diff --git a/libstdc++-v3/testsuite/20_util/expected/synopsis.cc b/libstdc++-v3/testsuite/20_util/expected/synopsis.cc
index b043961..237754d 100644
--- a/libstdc++-v3/testsuite/20_util/expected/synopsis.cc
+++ b/libstdc++-v3/testsuite/20_util/expected/synopsis.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
// { dg-require-normal-namespace "" }
diff --git a/libstdc++-v3/testsuite/20_util/expected/unexpected.cc b/libstdc++-v3/testsuite/20_util/expected/unexpected.cc
index 050f8e3..6a062cc 100644
--- a/libstdc++-v3/testsuite/20_util/expected/unexpected.cc
+++ b/libstdc++-v3/testsuite/20_util/expected/unexpected.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <expected>
diff --git a/libstdc++-v3/testsuite/20_util/expected/version.cc b/libstdc++-v3/testsuite/20_util/expected/version.cc
index 98fccf7..b592e64 100644
--- a/libstdc++-v3/testsuite/20_util/expected/version.cc
+++ b/libstdc++-v3/testsuite/20_util/expected/version.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do preprocess { target c++23 } }
#include <version>
diff --git a/libstdc++-v3/testsuite/20_util/from_chars/1_c++20_neg.cc b/libstdc++-v3/testsuite/20_util/from_chars/1_c++20_neg.cc
index 5f94a1b..04d9ba6 100644
--- a/libstdc++-v3/testsuite/20_util/from_chars/1_c++20_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/from_chars/1_c++20_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <charconv>
diff --git a/libstdc++-v3/testsuite/20_util/from_chars/8.cc b/libstdc++-v3/testsuite/20_util/from_chars/8.cc
index d37460a..0b6d400 100644
--- a/libstdc++-v3/testsuite/20_util/from_chars/8.cc
+++ b/libstdc++-v3/testsuite/20_util/from_chars/8.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2b" }
// { dg-do run { target c++23 } }
// { dg-add-options ieee }
diff --git a/libstdc++-v3/testsuite/20_util/from_chars/compare.cc b/libstdc++-v3/testsuite/20_util/from_chars/compare.cc
index 31a5c69..8e728f2 100644
--- a/libstdc++-v3/testsuite/20_util/from_chars/compare.cc
+++ b/libstdc++-v3/testsuite/20_util/from_chars/compare.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <charconv>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/20_util/from_chars/constexpr.cc b/libstdc++-v3/testsuite/20_util/from_chars/constexpr.cc
index 6e14694..1a19e70 100644
--- a/libstdc++-v3/testsuite/20_util/from_chars/constexpr.cc
+++ b/libstdc++-v3/testsuite/20_util/from_chars/constexpr.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
#include <charconv>
diff --git a/libstdc++-v3/testsuite/20_util/from_chars/result.cc b/libstdc++-v3/testsuite/20_util/from_chars/result.cc
new file mode 100644
index 0000000..637678a
--- /dev/null
+++ b/libstdc++-v3/testsuite/20_util/from_chars/result.cc
@@ -0,0 +1,21 @@
+// { dg-do run { target c++26 } }
+
+#include <charconv>
+#include <testsuite_hooks.h>
+
+void
+test_result()
+{
+ static_assert( ! std::is_convertible_v<std::from_chars_result, bool> );
+ static_assert( std::is_constructible_v<bool, std::from_chars_result> );
+
+ std::from_chars_result res{};
+ VERIFY( res );
+ res.ec = std::errc::invalid_argument;
+ VERIFY( !res );
+}
+
+int main()
+{
+ test_result();
+}
diff --git a/libstdc++-v3/testsuite/20_util/function/cons/deduction_c++23.cc b/libstdc++-v3/testsuite/20_util/function/cons/deduction_c++23.cc
index 856e0b8..132bfb8 100644
--- a/libstdc++-v3/testsuite/20_util/function/cons/deduction_c++23.cc
+++ b/libstdc++-v3/testsuite/20_util/function/cons/deduction_c++23.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
// { dg-require-effective-target hosted }
diff --git a/libstdc++-v3/testsuite/20_util/function_objects/bind_front/1.cc b/libstdc++-v3/testsuite/20_util/function_objects/bind_front/1.cc
index 3aacf06..8a8c11a 100644
--- a/libstdc++-v3/testsuite/20_util/function_objects/bind_front/1.cc
+++ b/libstdc++-v3/testsuite/20_util/function_objects/bind_front/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <functional>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/20_util/function_objects/bind_front/107784.cc b/libstdc++-v3/testsuite/20_util/function_objects/bind_front/107784.cc
index f1f8cee..e8b4526 100644
--- a/libstdc++-v3/testsuite/20_util/function_objects/bind_front/107784.cc
+++ b/libstdc++-v3/testsuite/20_util/function_objects/bind_front/107784.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
#include <functional>
diff --git a/libstdc++-v3/testsuite/20_util/function_objects/bind_front/111327.cc b/libstdc++-v3/testsuite/20_util/function_objects/bind_front/111327.cc
new file mode 100644
index 0000000..43b56ca
--- /dev/null
+++ b/libstdc++-v3/testsuite/20_util/function_objects/bind_front/111327.cc
@@ -0,0 +1,40 @@
+// PR libstdc++/111327 - std::bind_front (and std::not_fn) doesn't always
+// perfectly forward according to value category of the call wrapper object
+// { dg-do compile { target c++20 } }
+
+#include <functional>
+#include <utility>
+
+struct F {
+ void operator()(...) & = delete;
+ void operator()(...) const &;
+};
+
+struct G {
+ void operator()(...) && = delete;
+ void operator()(...) const &&;
+};
+
+int main() {
+ auto f0 = std::bind_front(F{});
+ f0(); // { dg-error "deleted" }
+ std::move(f0)();
+ std::as_const(f0)();
+ std::move(std::as_const(f0))();
+
+ auto g0 = std::bind_front(G{});
+ g0(); // { dg-error "deleted" }
+ std::move(g0)(); // { dg-error "deleted" }
+ std::move(std::as_const(g0))();
+
+ auto f1 = std::bind_front(F{}, 42);
+ f1(); // { dg-error "deleted" }
+ std::move(f1)();
+ std::as_const(f1)();
+ std::move(std::as_const(f1))();
+
+ auto g1 = std::bind_front(G{}, 42);
+ g1(); // { dg-error "deleted" }
+ std::move(g1)(); // { dg-error "deleted" }
+ std::move(std::as_const(g1))();
+}
diff --git a/libstdc++-v3/testsuite/20_util/function_objects/bind_front/2.cc b/libstdc++-v3/testsuite/20_util/function_objects/bind_front/2.cc
index 745a62d..0ea8926 100644
--- a/libstdc++-v3/testsuite/20_util/function_objects/bind_front/2.cc
+++ b/libstdc++-v3/testsuite/20_util/function_objects/bind_front/2.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <functional>
#include <memory>
diff --git a/libstdc++-v3/testsuite/20_util/function_objects/bind_front/97101.cc b/libstdc++-v3/testsuite/20_util/function_objects/bind_front/97101.cc
index 6880a31..98eab16 100644
--- a/libstdc++-v3/testsuite/20_util/function_objects/bind_front/97101.cc
+++ b/libstdc++-v3/testsuite/20_util/function_objects/bind_front/97101.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <functional>
diff --git a/libstdc++-v3/testsuite/20_util/function_objects/bind_front/constexpr.cc b/libstdc++-v3/testsuite/20_util/function_objects/bind_front/constexpr.cc
index 3d0d983..ef71b91 100644
--- a/libstdc++-v3/testsuite/20_util/function_objects/bind_front/constexpr.cc
+++ b/libstdc++-v3/testsuite/20_util/function_objects/bind_front/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <functional>
diff --git a/libstdc++-v3/testsuite/20_util/function_objects/constexpr_searcher.cc b/libstdc++-v3/testsuite/20_util/function_objects/constexpr_searcher.cc
index dbe1381..aa1e23b 100644
--- a/libstdc++-v3/testsuite/20_util/function_objects/constexpr_searcher.cc
+++ b/libstdc++-v3/testsuite/20_util/function_objects/constexpr_searcher.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <functional>
diff --git a/libstdc++-v3/testsuite/20_util/function_objects/identity/1.cc b/libstdc++-v3/testsuite/20_util/function_objects/identity/1.cc
index 443c607..f300869 100644
--- a/libstdc++-v3/testsuite/20_util/function_objects/identity/1.cc
+++ b/libstdc++-v3/testsuite/20_util/function_objects/identity/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <functional>
diff --git a/libstdc++-v3/testsuite/20_util/function_objects/invoke/4.cc b/libstdc++-v3/testsuite/20_util/function_objects/invoke/4.cc
index 3ee6711..38367f7 100644
--- a/libstdc++-v3/testsuite/20_util/function_objects/invoke/4.cc
+++ b/libstdc++-v3/testsuite/20_util/function_objects/invoke/4.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++2b" }
// { dg-do compile { target c++23 } }
#include <functional>
diff --git a/libstdc++-v3/testsuite/20_util/function_objects/invoke/constexpr.cc b/libstdc++-v3/testsuite/20_util/function_objects/invoke/constexpr.cc
index b039a6f..122e211 100644
--- a/libstdc++-v3/testsuite/20_util/function_objects/invoke/constexpr.cc
+++ b/libstdc++-v3/testsuite/20_util/function_objects/invoke/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <functional>
diff --git a/libstdc++-v3/testsuite/20_util/function_objects/invoke/dangling_ref.cc b/libstdc++-v3/testsuite/20_util/function_objects/invoke/dangling_ref.cc
index 1513480..c274498 100644
--- a/libstdc++-v3/testsuite/20_util/function_objects/invoke/dangling_ref.cc
+++ b/libstdc++-v3/testsuite/20_util/function_objects/invoke/dangling_ref.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
#include <functional>
diff --git a/libstdc++-v3/testsuite/20_util/function_objects/mem_fn/constexpr.cc b/libstdc++-v3/testsuite/20_util/function_objects/mem_fn/constexpr.cc
index 005558d..9da0dbd 100644
--- a/libstdc++-v3/testsuite/20_util/function_objects/mem_fn/constexpr.cc
+++ b/libstdc++-v3/testsuite/20_util/function_objects/mem_fn/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <functional>
diff --git a/libstdc++-v3/testsuite/20_util/function_objects/not_fn/111327.cc b/libstdc++-v3/testsuite/20_util/function_objects/not_fn/111327.cc
new file mode 100644
index 0000000..725a842
--- /dev/null
+++ b/libstdc++-v3/testsuite/20_util/function_objects/not_fn/111327.cc
@@ -0,0 +1,29 @@
+// PR libstdc++/111327 - std::bind_front (and std::not_fn) doesn't always
+// perfectly forward according to value category of the call wrapper object
+// { dg-do compile { target c++17 } }
+
+#include <functional>
+#include <utility>
+
+struct F {
+ void operator()(...) & = delete;
+ bool operator()(...) const &;
+};
+
+struct G {
+ void operator()(...) && = delete;
+ bool operator()(...) const &&;
+};
+
+int main() {
+ auto f = std::not_fn(F{});
+ f(); // { dg-error "deleted" }
+ std::move(f)();
+ std::as_const(f)();
+ std::move(std::as_const(f))();
+
+ auto g = std::not_fn(G{});
+ g(); // { dg-error "deleted" }
+ std::move(g)(); // { dg-error "deleted" }
+ std::move(std::as_const(g))();
+}
diff --git a/libstdc++-v3/testsuite/20_util/function_objects/not_fn/constexpr.cc b/libstdc++-v3/testsuite/20_util/function_objects/not_fn/constexpr.cc
index 1ebfd17..5ec139a 100644
--- a/libstdc++-v3/testsuite/20_util/function_objects/not_fn/constexpr.cc
+++ b/libstdc++-v3/testsuite/20_util/function_objects/not_fn/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <functional>
diff --git a/libstdc++-v3/testsuite/20_util/function_objects/range.cmp/equal_to.cc b/libstdc++-v3/testsuite/20_util/function_objects/range.cmp/equal_to.cc
index 0a30044..c29bf02 100644
--- a/libstdc++-v3/testsuite/20_util/function_objects/range.cmp/equal_to.cc
+++ b/libstdc++-v3/testsuite/20_util/function_objects/range.cmp/equal_to.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <functional>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/20_util/function_objects/range.cmp/greater.cc b/libstdc++-v3/testsuite/20_util/function_objects/range.cmp/greater.cc
index 3308735..cd5a73d 100644
--- a/libstdc++-v3/testsuite/20_util/function_objects/range.cmp/greater.cc
+++ b/libstdc++-v3/testsuite/20_util/function_objects/range.cmp/greater.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <functional>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/20_util/function_objects/range.cmp/greater_equal.cc b/libstdc++-v3/testsuite/20_util/function_objects/range.cmp/greater_equal.cc
index aee97f1..46bc2e4 100644
--- a/libstdc++-v3/testsuite/20_util/function_objects/range.cmp/greater_equal.cc
+++ b/libstdc++-v3/testsuite/20_util/function_objects/range.cmp/greater_equal.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <functional>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/20_util/function_objects/range.cmp/less.cc b/libstdc++-v3/testsuite/20_util/function_objects/range.cmp/less.cc
index 185c3f8..472962f 100644
--- a/libstdc++-v3/testsuite/20_util/function_objects/range.cmp/less.cc
+++ b/libstdc++-v3/testsuite/20_util/function_objects/range.cmp/less.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <functional>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/20_util/function_objects/range.cmp/less_equal.cc b/libstdc++-v3/testsuite/20_util/function_objects/range.cmp/less_equal.cc
index d1877ee..7762203 100644
--- a/libstdc++-v3/testsuite/20_util/function_objects/range.cmp/less_equal.cc
+++ b/libstdc++-v3/testsuite/20_util/function_objects/range.cmp/less_equal.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <functional>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/20_util/function_objects/range.cmp/lwg3530.cc b/libstdc++-v3/testsuite/20_util/function_objects/range.cmp/lwg3530.cc
index 369ff54..858e8db 100644
--- a/libstdc++-v3/testsuite/20_util/function_objects/range.cmp/lwg3530.cc
+++ b/libstdc++-v3/testsuite/20_util/function_objects/range.cmp/lwg3530.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
#include <functional>
diff --git a/libstdc++-v3/testsuite/20_util/function_objects/range.cmp/not_equal_to.cc b/libstdc++-v3/testsuite/20_util/function_objects/range.cmp/not_equal_to.cc
index 756eb65..c42ebe7b 100644
--- a/libstdc++-v3/testsuite/20_util/function_objects/range.cmp/not_equal_to.cc
+++ b/libstdc++-v3/testsuite/20_util/function_objects/range.cmp/not_equal_to.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <functional>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/20_util/integer_comparisons/1.cc b/libstdc++-v3/testsuite/20_util/integer_comparisons/1.cc
index c000fcb..245fec9 100644
--- a/libstdc++-v3/testsuite/20_util/integer_comparisons/1.cc
+++ b/libstdc++-v3/testsuite/20_util/integer_comparisons/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do preprocess { target c++2a } }
+// { dg-do preprocess { target c++20 } }
#include <utility>
diff --git a/libstdc++-v3/testsuite/20_util/integer_comparisons/2.cc b/libstdc++-v3/testsuite/20_util/integer_comparisons/2.cc
index 856ee5f..3e2bf57 100644
--- a/libstdc++-v3/testsuite/20_util/integer_comparisons/2.cc
+++ b/libstdc++-v3/testsuite/20_util/integer_comparisons/2.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do preprocess { target c++2a } }
+// { dg-do preprocess { target c++20 } }
#include <version>
diff --git a/libstdc++-v3/testsuite/20_util/integer_comparisons/equal.cc b/libstdc++-v3/testsuite/20_util/integer_comparisons/equal.cc
index b78b9f8..259c7a7 100644
--- a/libstdc++-v3/testsuite/20_util/integer_comparisons/equal.cc
+++ b/libstdc++-v3/testsuite/20_util/integer_comparisons/equal.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <utility>
#include <limits>
diff --git a/libstdc++-v3/testsuite/20_util/integer_comparisons/equal_neg.cc b/libstdc++-v3/testsuite/20_util/integer_comparisons/equal_neg.cc
index 9de63b6..bbecbb4 100644
--- a/libstdc++-v3/testsuite/20_util/integer_comparisons/equal_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/integer_comparisons/equal_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <utility>
diff --git a/libstdc++-v3/testsuite/20_util/integer_comparisons/greater.cc b/libstdc++-v3/testsuite/20_util/integer_comparisons/greater.cc
index e564d8d..c764d68 100644
--- a/libstdc++-v3/testsuite/20_util/integer_comparisons/greater.cc
+++ b/libstdc++-v3/testsuite/20_util/integer_comparisons/greater.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
#include <utility>
diff --git a/libstdc++-v3/testsuite/20_util/integer_comparisons/greater_equal.cc b/libstdc++-v3/testsuite/20_util/integer_comparisons/greater_equal.cc
index 5d943a9..0028eea 100644
--- a/libstdc++-v3/testsuite/20_util/integer_comparisons/greater_equal.cc
+++ b/libstdc++-v3/testsuite/20_util/integer_comparisons/greater_equal.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <utility>
#include <limits>
diff --git a/libstdc++-v3/testsuite/20_util/integer_comparisons/greater_equal_neg.cc b/libstdc++-v3/testsuite/20_util/integer_comparisons/greater_equal_neg.cc
index 1a6bc52e..b3e4bec 100644
--- a/libstdc++-v3/testsuite/20_util/integer_comparisons/greater_equal_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/integer_comparisons/greater_equal_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <utility>
diff --git a/libstdc++-v3/testsuite/20_util/integer_comparisons/greater_neg.cc b/libstdc++-v3/testsuite/20_util/integer_comparisons/greater_neg.cc
index d709775..fb064cf 100644
--- a/libstdc++-v3/testsuite/20_util/integer_comparisons/greater_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/integer_comparisons/greater_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <utility>
diff --git a/libstdc++-v3/testsuite/20_util/integer_comparisons/in_range.cc b/libstdc++-v3/testsuite/20_util/integer_comparisons/in_range.cc
index 78af767..b2c6320 100644
--- a/libstdc++-v3/testsuite/20_util/integer_comparisons/in_range.cc
+++ b/libstdc++-v3/testsuite/20_util/integer_comparisons/in_range.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <utility>
#include <limits>
diff --git a/libstdc++-v3/testsuite/20_util/integer_comparisons/in_range_neg.cc b/libstdc++-v3/testsuite/20_util/integer_comparisons/in_range_neg.cc
index 173f901..da85a56 100644
--- a/libstdc++-v3/testsuite/20_util/integer_comparisons/in_range_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/integer_comparisons/in_range_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <utility>
diff --git a/libstdc++-v3/testsuite/20_util/integer_comparisons/less.cc b/libstdc++-v3/testsuite/20_util/integer_comparisons/less.cc
index b8ac73c..0087e7b 100644
--- a/libstdc++-v3/testsuite/20_util/integer_comparisons/less.cc
+++ b/libstdc++-v3/testsuite/20_util/integer_comparisons/less.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <utility>
#include <limits>
diff --git a/libstdc++-v3/testsuite/20_util/integer_comparisons/less_equal.cc b/libstdc++-v3/testsuite/20_util/integer_comparisons/less_equal.cc
index 301d8cd..ee2ea84 100644
--- a/libstdc++-v3/testsuite/20_util/integer_comparisons/less_equal.cc
+++ b/libstdc++-v3/testsuite/20_util/integer_comparisons/less_equal.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <utility>
#include <limits>
diff --git a/libstdc++-v3/testsuite/20_util/integer_comparisons/less_equal_neg.cc b/libstdc++-v3/testsuite/20_util/integer_comparisons/less_equal_neg.cc
index 3d83f2e..c3d275f 100644
--- a/libstdc++-v3/testsuite/20_util/integer_comparisons/less_equal_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/integer_comparisons/less_equal_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <utility>
diff --git a/libstdc++-v3/testsuite/20_util/integer_comparisons/less_neg.cc b/libstdc++-v3/testsuite/20_util/integer_comparisons/less_neg.cc
index 6dcfda4..8e58e4a 100644
--- a/libstdc++-v3/testsuite/20_util/integer_comparisons/less_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/integer_comparisons/less_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <utility>
diff --git a/libstdc++-v3/testsuite/20_util/integer_comparisons/not_equal.cc b/libstdc++-v3/testsuite/20_util/integer_comparisons/not_equal.cc
index afe2e12..0c658d2 100644
--- a/libstdc++-v3/testsuite/20_util/integer_comparisons/not_equal.cc
+++ b/libstdc++-v3/testsuite/20_util/integer_comparisons/not_equal.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <utility>
#include <limits>
diff --git a/libstdc++-v3/testsuite/20_util/integer_comparisons/not_equal_neg.cc b/libstdc++-v3/testsuite/20_util/integer_comparisons/not_equal_neg.cc
index 9de63b6..bbecbb4 100644
--- a/libstdc++-v3/testsuite/20_util/integer_comparisons/not_equal_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/integer_comparisons/not_equal_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <utility>
diff --git a/libstdc++-v3/testsuite/20_util/integer_sequence/pr111357.cc b/libstdc++-v3/testsuite/20_util/integer_sequence/pr111357.cc
new file mode 100644
index 0000000..1ad06b7
--- /dev/null
+++ b/libstdc++-v3/testsuite/20_util/integer_sequence/pr111357.cc
@@ -0,0 +1,34 @@
+// { dg-do compile { target c++14 } }
+
+// PR c++/111357 - __integer_pack fails to work with values of dependent type
+// convertible to integers in noexcept context
+
+#include <utility>
+
+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()))) // { dg-bogus "argument to .__integer_pack." }
+ {}
+};
+
+int main()
+{
+ R<int>();
+}
diff --git a/libstdc++-v3/testsuite/20_util/is_bounded_array/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/20_util/is_bounded_array/requirements/explicit_instantiation.cc
index f2a70f9..b3a9271 100644
--- a/libstdc++-v3/testsuite/20_util/is_bounded_array/requirements/explicit_instantiation.cc
+++ b/libstdc++-v3/testsuite/20_util/is_bounded_array/requirements/explicit_instantiation.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2019-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/20_util/is_bounded_array/requirements/typedefs.cc b/libstdc++-v3/testsuite/20_util/is_bounded_array/requirements/typedefs.cc
index fe28761..6d77e3d 100644
--- a/libstdc++-v3/testsuite/20_util/is_bounded_array/requirements/typedefs.cc
+++ b/libstdc++-v3/testsuite/20_util/is_bounded_array/requirements/typedefs.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2019-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/20_util/is_bounded_array/value.cc b/libstdc++-v3/testsuite/20_util/is_bounded_array/value.cc
index 32ed5f1..dd417cf 100644
--- a/libstdc++-v3/testsuite/20_util/is_bounded_array/value.cc
+++ b/libstdc++-v3/testsuite/20_util/is_bounded_array/value.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2019-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/20_util/is_constant_evaluated/1.cc b/libstdc++-v3/testsuite/20_util/is_constant_evaluated/1.cc
index a8e115f..684f7d5 100644
--- a/libstdc++-v3/testsuite/20_util/is_constant_evaluated/1.cc
+++ b/libstdc++-v3/testsuite/20_util/is_constant_evaluated/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <type_traits>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/20_util/is_constant_evaluated/noexcept.cc b/libstdc++-v3/testsuite/20_util/is_constant_evaluated/noexcept.cc
index 2b9cd85..5973173 100644
--- a/libstdc++-v3/testsuite/20_util/is_constant_evaluated/noexcept.cc
+++ b/libstdc++-v3/testsuite/20_util/is_constant_evaluated/noexcept.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2018-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/20_util/is_constructible/92878_92947.cc b/libstdc++-v3/testsuite/20_util/is_constructible/92878_92947.cc
index 9841d65..e45cc58 100644
--- a/libstdc++-v3/testsuite/20_util/is_constructible/92878_92947.cc
+++ b/libstdc++-v3/testsuite/20_util/is_constructible/92878_92947.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/20_util/is_layout_compatible/is_corresponding_member.cc b/libstdc++-v3/testsuite/20_util/is_layout_compatible/is_corresponding_member.cc
index 69b359a..8969a1d 100644
--- a/libstdc++-v3/testsuite/20_util/is_layout_compatible/is_corresponding_member.cc
+++ b/libstdc++-v3/testsuite/20_util/is_layout_compatible/is_corresponding_member.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
#include <type_traits>
diff --git a/libstdc++-v3/testsuite/20_util/is_layout_compatible/value.cc b/libstdc++-v3/testsuite/20_util/is_layout_compatible/value.cc
index 7686b34..6232f6a 100644
--- a/libstdc++-v3/testsuite/20_util/is_layout_compatible/value.cc
+++ b/libstdc++-v3/testsuite/20_util/is_layout_compatible/value.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
#include <type_traits>
diff --git a/libstdc++-v3/testsuite/20_util/is_layout_compatible/version.cc b/libstdc++-v3/testsuite/20_util/is_layout_compatible/version.cc
index 3b2a8e1..be6079d 100644
--- a/libstdc++-v3/testsuite/20_util/is_layout_compatible/version.cc
+++ b/libstdc++-v3/testsuite/20_util/is_layout_compatible/version.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
#include <version>
diff --git a/libstdc++-v3/testsuite/20_util/is_nothrow_constructible/value_c++20.cc b/libstdc++-v3/testsuite/20_util/is_nothrow_constructible/value_c++20.cc
index 46fea72..1137738 100644
--- a/libstdc++-v3/testsuite/20_util/is_nothrow_constructible/value_c++20.cc
+++ b/libstdc++-v3/testsuite/20_util/is_nothrow_constructible/value_c++20.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/20_util/is_nothrow_convertible/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/20_util/is_nothrow_convertible/requirements/explicit_instantiation.cc
index f6bb762..9b6594d 100644
--- a/libstdc++-v3/testsuite/20_util/is_nothrow_convertible/requirements/explicit_instantiation.cc
+++ b/libstdc++-v3/testsuite/20_util/is_nothrow_convertible/requirements/explicit_instantiation.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// NB: This file is for testing type_traits with NO OTHER INCLUDES.
diff --git a/libstdc++-v3/testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc b/libstdc++-v3/testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc
index 6b42423..865ec04 100644
--- a/libstdc++-v3/testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc
+++ b/libstdc++-v3/testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// NB: This file is for testing type_traits with NO OTHER INCLUDES.
diff --git a/libstdc++-v3/testsuite/20_util/is_nothrow_convertible/value.cc b/libstdc++-v3/testsuite/20_util/is_nothrow_convertible/value.cc
index 45f8f51..eec4f7f 100644
--- a/libstdc++-v3/testsuite/20_util/is_nothrow_convertible/value.cc
+++ b/libstdc++-v3/testsuite/20_util/is_nothrow_convertible/value.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <type_traits>
#include <testsuite_tr1.h>
diff --git a/libstdc++-v3/testsuite/20_util/is_pod/deprecated-2a.cc b/libstdc++-v3/testsuite/20_util/is_pod/deprecated-2a.cc
index 7eb4562..cfb9433 100644
--- a/libstdc++-v3/testsuite/20_util/is_pod/deprecated-2a.cc
+++ b/libstdc++-v3/testsuite/20_util/is_pod/deprecated-2a.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <type_traits>
diff --git a/libstdc++-v3/testsuite/20_util/is_pointer_interconvertible/value.cc b/libstdc++-v3/testsuite/20_util/is_pointer_interconvertible/value.cc
index 471571c..fb4652d 100644
--- a/libstdc++-v3/testsuite/20_util/is_pointer_interconvertible/value.cc
+++ b/libstdc++-v3/testsuite/20_util/is_pointer_interconvertible/value.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
#include <type_traits>
diff --git a/libstdc++-v3/testsuite/20_util/is_pointer_interconvertible/version.cc b/libstdc++-v3/testsuite/20_util/is_pointer_interconvertible/version.cc
index 138c4be..8288223 100644
--- a/libstdc++-v3/testsuite/20_util/is_pointer_interconvertible/version.cc
+++ b/libstdc++-v3/testsuite/20_util/is_pointer_interconvertible/version.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
#include <version>
diff --git a/libstdc++-v3/testsuite/20_util/is_pointer_interconvertible/with_class.cc b/libstdc++-v3/testsuite/20_util/is_pointer_interconvertible/with_class.cc
index 28de9b4..bb20d1b 100644
--- a/libstdc++-v3/testsuite/20_util/is_pointer_interconvertible/with_class.cc
+++ b/libstdc++-v3/testsuite/20_util/is_pointer_interconvertible/with_class.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
#include <type_traits>
diff --git a/libstdc++-v3/testsuite/20_util/is_scoped_enum/value.cc b/libstdc++-v3/testsuite/20_util/is_scoped_enum/value.cc
index 61880ca..43dc03b 100644
--- a/libstdc++-v3/testsuite/20_util/is_scoped_enum/value.cc
+++ b/libstdc++-v3/testsuite/20_util/is_scoped_enum/value.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
#include <type_traits>
diff --git a/libstdc++-v3/testsuite/20_util/is_scoped_enum/version.cc b/libstdc++-v3/testsuite/20_util/is_scoped_enum/version.cc
index 93eea36..698cb48 100644
--- a/libstdc++-v3/testsuite/20_util/is_scoped_enum/version.cc
+++ b/libstdc++-v3/testsuite/20_util/is_scoped_enum/version.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
#include <version>
diff --git a/libstdc++-v3/testsuite/20_util/is_unbounded_array/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/20_util/is_unbounded_array/requirements/explicit_instantiation.cc
index c658495..0594ba4 100644
--- a/libstdc++-v3/testsuite/20_util/is_unbounded_array/requirements/explicit_instantiation.cc
+++ b/libstdc++-v3/testsuite/20_util/is_unbounded_array/requirements/explicit_instantiation.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2019-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/20_util/is_unbounded_array/requirements/typedefs.cc b/libstdc++-v3/testsuite/20_util/is_unbounded_array/requirements/typedefs.cc
index fe28761..6d77e3d 100644
--- a/libstdc++-v3/testsuite/20_util/is_unbounded_array/requirements/typedefs.cc
+++ b/libstdc++-v3/testsuite/20_util/is_unbounded_array/requirements/typedefs.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2019-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/20_util/is_unbounded_array/value.cc b/libstdc++-v3/testsuite/20_util/is_unbounded_array/value.cc
index 9369fa9..495e1e9 100644
--- a/libstdc++-v3/testsuite/20_util/is_unbounded_array/value.cc
+++ b/libstdc++-v3/testsuite/20_util/is_unbounded_array/value.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2019-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/20_util/move_only_function/call.cc b/libstdc++-v3/testsuite/20_util/move_only_function/call.cc
index 3e15983..bfc609a 100644
--- a/libstdc++-v3/testsuite/20_util/move_only_function/call.cc
+++ b/libstdc++-v3/testsuite/20_util/move_only_function/call.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
// { dg-require-effective-target hosted }
diff --git a/libstdc++-v3/testsuite/20_util/move_only_function/cons.cc b/libstdc++-v3/testsuite/20_util/move_only_function/cons.cc
index 44e9681..ffe2398 100644
--- a/libstdc++-v3/testsuite/20_util/move_only_function/cons.cc
+++ b/libstdc++-v3/testsuite/20_util/move_only_function/cons.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
// { dg-require-effective-target hosted }
diff --git a/libstdc++-v3/testsuite/20_util/move_only_function/move.cc b/libstdc++-v3/testsuite/20_util/move_only_function/move.cc
index 0bed6ed..51e31a6 100644
--- a/libstdc++-v3/testsuite/20_util/move_only_function/move.cc
+++ b/libstdc++-v3/testsuite/20_util/move_only_function/move.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
// { dg-require-effective-target hosted }
diff --git a/libstdc++-v3/testsuite/20_util/move_only_function/version.cc b/libstdc++-v3/testsuite/20_util/move_only_function/version.cc
index f33b82f..b051a63 100644
--- a/libstdc++-v3/testsuite/20_util/move_only_function/version.cc
+++ b/libstdc++-v3/testsuite/20_util/move_only_function/version.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
// { dg-require-effective-target hosted }
diff --git a/libstdc++-v3/testsuite/20_util/optional/assignment/92878_92947.cc b/libstdc++-v3/testsuite/20_util/optional/assignment/92878_92947.cc
index a0c650d..b673cb3 100644
--- a/libstdc++-v3/testsuite/20_util/optional/assignment/92878_92947.cc
+++ b/libstdc++-v3/testsuite/20_util/optional/assignment/92878_92947.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/20_util/optional/cons/92878_92947.cc b/libstdc++-v3/testsuite/20_util/optional/cons/92878_92947.cc
index 0345a1a..2aa0fe5 100644
--- a/libstdc++-v3/testsuite/20_util/optional/cons/92878_92947.cc
+++ b/libstdc++-v3/testsuite/20_util/optional/cons/92878_92947.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/20_util/optional/constexpr/assign.cc b/libstdc++-v3/testsuite/20_util/optional/constexpr/assign.cc
index fb82233..f9086f7 100644
--- a/libstdc++-v3/testsuite/20_util/optional/constexpr/assign.cc
+++ b/libstdc++-v3/testsuite/20_util/optional/constexpr/assign.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
#include <optional>
diff --git a/libstdc++-v3/testsuite/20_util/optional/constexpr/cons/conv.cc b/libstdc++-v3/testsuite/20_util/optional/constexpr/cons/conv.cc
index cc63814..3c1d357 100644
--- a/libstdc++-v3/testsuite/20_util/optional/constexpr/cons/conv.cc
+++ b/libstdc++-v3/testsuite/20_util/optional/constexpr/cons/conv.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
#include <optional>
diff --git a/libstdc++-v3/testsuite/20_util/optional/constexpr/modifiers.cc b/libstdc++-v3/testsuite/20_util/optional/constexpr/modifiers.cc
index 614607d..eea0df2 100644
--- a/libstdc++-v3/testsuite/20_util/optional/constexpr/modifiers.cc
+++ b/libstdc++-v3/testsuite/20_util/optional/constexpr/modifiers.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
#include <optional>
diff --git a/libstdc++-v3/testsuite/20_util/optional/constexpr/swap.cc b/libstdc++-v3/testsuite/20_util/optional/constexpr/swap.cc
index 2d18a51..57f5cd2 100644
--- a/libstdc++-v3/testsuite/20_util/optional/constexpr/swap.cc
+++ b/libstdc++-v3/testsuite/20_util/optional/constexpr/swap.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
#include <optional>
diff --git a/libstdc++-v3/testsuite/20_util/optional/monadic/and_then.cc b/libstdc++-v3/testsuite/20_util/optional/monadic/and_then.cc
index c7e54ef..a969ca5 100644
--- a/libstdc++-v3/testsuite/20_util/optional/monadic/and_then.cc
+++ b/libstdc++-v3/testsuite/20_util/optional/monadic/and_then.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <optional>
diff --git a/libstdc++-v3/testsuite/20_util/optional/monadic/or_else.cc b/libstdc++-v3/testsuite/20_util/optional/monadic/or_else.cc
index 0508104..de88a2a 100644
--- a/libstdc++-v3/testsuite/20_util/optional/monadic/or_else.cc
+++ b/libstdc++-v3/testsuite/20_util/optional/monadic/or_else.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <optional>
diff --git a/libstdc++-v3/testsuite/20_util/optional/monadic/or_else_neg.cc b/libstdc++-v3/testsuite/20_util/optional/monadic/or_else_neg.cc
index 16e9486..f5028c1 100644
--- a/libstdc++-v3/testsuite/20_util/optional/monadic/or_else_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/optional/monadic/or_else_neg.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
#include <optional>
diff --git a/libstdc++-v3/testsuite/20_util/optional/monadic/pr109242.cc b/libstdc++-v3/testsuite/20_util/optional/monadic/pr109242.cc
index a25b625..d34319e 100644
--- a/libstdc++-v3/testsuite/20_util/optional/monadic/pr109242.cc
+++ b/libstdc++-v3/testsuite/20_util/optional/monadic/pr109242.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
#include <optional>
diff --git a/libstdc++-v3/testsuite/20_util/optional/monadic/transform.cc b/libstdc++-v3/testsuite/20_util/optional/monadic/transform.cc
index b08837e..b5dd3c0 100644
--- a/libstdc++-v3/testsuite/20_util/optional/monadic/transform.cc
+++ b/libstdc++-v3/testsuite/20_util/optional/monadic/transform.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <optional>
diff --git a/libstdc++-v3/testsuite/20_util/optional/relops/96269.cc b/libstdc++-v3/testsuite/20_util/optional/relops/96269.cc
index f0a8f2f..ddb4be3 100644
--- a/libstdc++-v3/testsuite/20_util/optional/relops/96269.cc
+++ b/libstdc++-v3/testsuite/20_util/optional/relops/96269.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <optional>
diff --git a/libstdc++-v3/testsuite/20_util/optional/relops/three_way.cc b/libstdc++-v3/testsuite/20_util/optional/relops/three_way.cc
index 8ee624d..6fd7024 100644
--- a/libstdc++-v3/testsuite/20_util/optional/relops/three_way.cc
+++ b/libstdc++-v3/testsuite/20_util/optional/relops/three_way.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
#include <optional>
diff --git a/libstdc++-v3/testsuite/20_util/pair/comparison_operators/constexpr_c++20.cc b/libstdc++-v3/testsuite/20_util/pair/comparison_operators/constexpr_c++20.cc
index 2c6e20a..12feaca 100644
--- a/libstdc++-v3/testsuite/20_util/pair/comparison_operators/constexpr_c++20.cc
+++ b/libstdc++-v3/testsuite/20_util/pair/comparison_operators/constexpr_c++20.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2019-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/20_util/pair/cons/92878_92947.cc b/libstdc++-v3/testsuite/20_util/pair/cons/92878_92947.cc
index c423ac2..706ce1a 100644
--- a/libstdc++-v3/testsuite/20_util/pair/cons/92878_92947.cc
+++ b/libstdc++-v3/testsuite/20_util/pair/cons/92878_92947.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/20_util/pair/constexpr_assign.cc b/libstdc++-v3/testsuite/20_util/pair/constexpr_assign.cc
index 923c019..9509180 100644
--- a/libstdc++-v3/testsuite/20_util/pair/constexpr_assign.cc
+++ b/libstdc++-v3/testsuite/20_util/pair/constexpr_assign.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <utility>
#include <tuple>
diff --git a/libstdc++-v3/testsuite/20_util/pair/constexpr_swap.cc b/libstdc++-v3/testsuite/20_util/pair/constexpr_swap.cc
index 5ef264e..5f2242c 100644
--- a/libstdc++-v3/testsuite/20_util/pair/constexpr_swap.cc
+++ b/libstdc++-v3/testsuite/20_util/pair/constexpr_swap.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <utility>
#include <tuple>
diff --git a/libstdc++-v3/testsuite/20_util/pair/p2321r2.cc b/libstdc++-v3/testsuite/20_util/pair/p2321r2.cc
index 4f436ee..a09204c 100644
--- a/libstdc++-v3/testsuite/20_util/pair/p2321r2.cc
+++ b/libstdc++-v3/testsuite/20_util/pair/p2321r2.cc
@@ -1,5 +1,4 @@
// Verify P2321R2 "zip" enhancements to std::pair.
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <utility>
diff --git a/libstdc++-v3/testsuite/20_util/pair/requirements/structural.cc b/libstdc++-v3/testsuite/20_util/pair/requirements/structural.cc
index d4df201..75ae4f6 100644
--- a/libstdc++-v3/testsuite/20_util/pair/requirements/structural.cc
+++ b/libstdc++-v3/testsuite/20_util/pair/requirements/structural.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
#include <utility>
diff --git a/libstdc++-v3/testsuite/20_util/pointer_traits/pointer_to_constexpr.cc b/libstdc++-v3/testsuite/20_util/pointer_traits/pointer_to_constexpr.cc
index 197de12..f5c9076 100644
--- a/libstdc++-v3/testsuite/20_util/pointer_traits/pointer_to_constexpr.cc
+++ b/libstdc++-v3/testsuite/20_util/pointer_traits/pointer_to_constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <memory>
diff --git a/libstdc++-v3/testsuite/20_util/polymorphic_allocator/allocate_object.cc b/libstdc++-v3/testsuite/20_util/polymorphic_allocator/allocate_object.cc
index c395b8c..54f1004 100644
--- a/libstdc++-v3/testsuite/20_util/polymorphic_allocator/allocate_object.cc
+++ b/libstdc++-v3/testsuite/20_util/polymorphic_allocator/allocate_object.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <memory_resource>
#include <cstring>
diff --git a/libstdc++-v3/testsuite/20_util/polymorphic_allocator/construct_c++2a.cc b/libstdc++-v3/testsuite/20_util/polymorphic_allocator/construct_c++2a.cc
index bf8d468..5b5accc 100644
--- a/libstdc++-v3/testsuite/20_util/polymorphic_allocator/construct_c++2a.cc
+++ b/libstdc++-v3/testsuite/20_util/polymorphic_allocator/construct_c++2a.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <memory_resource>
#include <utility>
diff --git a/libstdc++-v3/testsuite/20_util/polymorphic_allocator/lwg3237.cc b/libstdc++-v3/testsuite/20_util/polymorphic_allocator/lwg3237.cc
index aa399b5..3239d5a 100644
--- a/libstdc++-v3/testsuite/20_util/polymorphic_allocator/lwg3237.cc
+++ b/libstdc++-v3/testsuite/20_util/polymorphic_allocator/lwg3237.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <memory_resource>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/20_util/reference_from_temporary/value.cc b/libstdc++-v3/testsuite/20_util/reference_from_temporary/value.cc
index ca02912..2df559b 100644
--- a/libstdc++-v3/testsuite/20_util/reference_from_temporary/value.cc
+++ b/libstdc++-v3/testsuite/20_util/reference_from_temporary/value.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
#include <type_traits>
diff --git a/libstdc++-v3/testsuite/20_util/reference_from_temporary/value2.cc b/libstdc++-v3/testsuite/20_util/reference_from_temporary/value2.cc
index a06711a..2315564 100644
--- a/libstdc++-v3/testsuite/20_util/reference_from_temporary/value2.cc
+++ b/libstdc++-v3/testsuite/20_util/reference_from_temporary/value2.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
#include <type_traits>
diff --git a/libstdc++-v3/testsuite/20_util/reference_from_temporary/version.cc b/libstdc++-v3/testsuite/20_util/reference_from_temporary/version.cc
index cb78f35..7f42c19 100644
--- a/libstdc++-v3/testsuite/20_util/reference_from_temporary/version.cc
+++ b/libstdc++-v3/testsuite/20_util/reference_from_temporary/version.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
#include <version>
diff --git a/libstdc++-v3/testsuite/20_util/reference_wrapper/constexpr.cc b/libstdc++-v3/testsuite/20_util/reference_wrapper/constexpr.cc
index 271e9e4..2d97635 100644
--- a/libstdc++-v3/testsuite/20_util/reference_wrapper/constexpr.cc
+++ b/libstdc++-v3/testsuite/20_util/reference_wrapper/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <functional>
diff --git a/libstdc++-v3/testsuite/20_util/reference_wrapper/incomplete.cc b/libstdc++-v3/testsuite/20_util/reference_wrapper/incomplete.cc
index d00e2c3..4e82d3e 100644
--- a/libstdc++-v3/testsuite/20_util/reference_wrapper/incomplete.cc
+++ b/libstdc++-v3/testsuite/20_util/reference_wrapper/incomplete.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// P0357R3 reference_wrapper for incomplete types
diff --git a/libstdc++-v3/testsuite/20_util/remove_cvref/requirements/alias_decl.cc b/libstdc++-v3/testsuite/20_util/remove_cvref/requirements/alias_decl.cc
index 4a2613c..6b64f29 100644
--- a/libstdc++-v3/testsuite/20_util/remove_cvref/requirements/alias_decl.cc
+++ b/libstdc++-v3/testsuite/20_util/remove_cvref/requirements/alias_decl.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2018-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc
index 02c40ee..58fb0dd 100644
--- a/libstdc++-v3/testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc
+++ b/libstdc++-v3/testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2018-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/20_util/remove_cvref/value.cc b/libstdc++-v3/testsuite/20_util/remove_cvref/value.cc
index b739fae..341492f 100644
--- a/libstdc++-v3/testsuite/20_util/remove_cvref/value.cc
+++ b/libstdc++-v3/testsuite/20_util/remove_cvref/value.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2018-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc b/libstdc++-v3/testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc
index 2e32a9a..88b318f 100644
--- a/libstdc++-v3/testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc
+++ b/libstdc++-v3/testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// P0591R4 makes uses-allocator construction apply recursively for nested pairs
diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/atomic/3.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/atomic/3.cc
index 8346191..19efcad 100644
--- a/libstdc++-v3/testsuite/20_util/shared_ptr/atomic/3.cc
+++ b/libstdc++-v3/testsuite/20_util/shared_ptr/atomic/3.cc
@@ -1,6 +1,5 @@
-// { dg-do run }
+// { dg-do run { target c++11 } }
// { dg-additional-options "-pthread" { target pthread } }
-// { dg-require-effective-target c++11 }
// { dg-require-gthreads "" }
// Copyright (C) 2014-2023 Free Software Foundation, Inc.
diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc
index 54cf262..6f790ac 100644
--- a/libstdc++-v3/testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc
+++ b/libstdc++-v3/testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
// { dg-require-effective-target gthreads }
// { dg-additional-options "-pthread" { target pthread } }
diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/casts/rval.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/casts/rval.cc
index 9b4ab32..96e9801 100644
--- a/libstdc++-v3/testsuite/20_util/shared_ptr/casts/rval.cc
+++ b/libstdc++-v3/testsuite/20_util/shared_ptr/casts/rval.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-effective-target hosted }
// Copyright (C) 2019-2023 Free Software Foundation, Inc.
diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc
index b5649e0..6fe6de9 100644
--- a/libstdc++-v3/testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc
+++ b/libstdc++-v3/testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-effective-target hosted }
#include <memory>
diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/alias-rval.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/alias-rval.cc
index a955d06..0cc7bb4 100644
--- a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/alias-rval.cc
+++ b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/alias-rval.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-effective-target hosted }
// Copyright (C) 2019-2023 Free Software Foundation, Inc.
diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/92878_92947.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/92878_92947.cc
index 920ffbf..b5fd81e 100644
--- a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/92878_92947.cc
+++ b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/92878_92947.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-effective-target hosted }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/array.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/array.cc
index 5c11a8b..5340362 100644
--- a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/array.cc
+++ b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/array.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
// C++20 20.11.3.7 shared_ptr Creation [util.smartptr.shared.create]
diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/overwrite.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/overwrite.cc
index 923e909..d78ee69 100644
--- a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/overwrite.cc
+++ b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/overwrite.cc
@@ -1,4 +1,4 @@
-// { dg-options "-std=gnu++20 -fno-lifetime-dse -O0" }
+// { dg-options "-fno-lifetime-dse -O0" }
// { dg-do run { target c++20 } }
// { dg-require-effective-target hosted }
diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/version.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/version.cc
index 4dd1b49..9c0fc5d 100644
--- a/libstdc++-v3/testsuite/20_util/shared_ptr/creation/version.cc
+++ b/libstdc++-v3/testsuite/20_util/shared_ptr/creation/version.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do preprocess { target c++20 } }
// { dg-require-effective-target hosted }
diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc
index 20c910c..af0e65e 100644
--- a/libstdc++-v3/testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc
+++ b/libstdc++-v3/testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc
@@ -17,10 +17,9 @@
// 20.6.6.2 Template class shared_ptr [util.smartptr.shared]
-// { dg-do run }
+// { dg-do run { target c++11 } }
// { dg-additional-options "-pthread" { target pthread } }
// { dg-add-options libatomic }
-// { dg-require-effective-target c++11 }
// { dg-require-gthreads "" }
// { dg-require-cstdint "" }
diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc
index d6c8611..07f7c49 100644
--- a/libstdc++-v3/testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc
+++ b/libstdc++-v3/testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc
@@ -17,10 +17,9 @@
// 20.6.6.2 Template class shared_ptr [util.smartptr.shared]
-// { dg-do run }
+// { dg-do run { target c++11 } }
// { dg-additional-options "-pthread" { target pthread } }
// { dg-add-options libatomic }
-// { dg-require-effective-target c++11 }
// { dg-require-gthreads "" }
// { dg-require-cstdint "" }
diff --git a/libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/1.cc b/libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/1.cc
index e00a539..6fda8fc 100644
--- a/libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/1.cc
+++ b/libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <memory>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/92878_92947.cc b/libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/92878_92947.cc
index d215d06..33f52e0 100644
--- a/libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/92878_92947.cc
+++ b/libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/92878_92947.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/95788.cc b/libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/95788.cc
index bbf1c98..7f6bfb0 100644
--- a/libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/95788.cc
+++ b/libstdc++-v3/testsuite/20_util/specialized_algorithms/construct_at/95788.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// FIXME [!HOSTED]: avoidable std::allocator usage
// { dg-require-effective-target hosted }
diff --git a/libstdc++-v3/testsuite/20_util/specialized_algorithms/destroy/constrained.cc b/libstdc++-v3/testsuite/20_util/specialized_algorithms/destroy/constrained.cc
index 7d64a6a..0a0287f 100644
--- a/libstdc++-v3/testsuite/20_util/specialized_algorithms/destroy/constrained.cc
+++ b/libstdc++-v3/testsuite/20_util/specialized_algorithms/destroy/constrained.cc
@@ -14,8 +14,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <cstring>
diff --git a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc
index 9885d44..1dbfe0b 100644
--- a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc
+++ b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc
@@ -14,8 +14,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <cstring>
diff --git a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc
index 983abb2..4dabd25 100644
--- a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc
+++ b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc
@@ -14,8 +14,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <cstring>
diff --git a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/94017.cc b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/94017.cc
index dd3f8e8..dff67be 100644
--- a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/94017.cc
+++ b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/94017.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <memory>
diff --git a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc
index 3b5c0a0..82e766b 100644
--- a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc
+++ b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc
@@ -14,8 +14,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <cstring>
diff --git a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/94017.cc b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/94017.cc
index fd26bf2..e23efc9 100644
--- a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/94017.cc
+++ b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_fill_n/94017.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <memory>
diff --git a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc
index 23dcefd..b38700c 100644
--- a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc
+++ b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc
@@ -14,8 +14,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <cstring>
diff --git a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc
index dd84479..7aa07d3 100644
--- a/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc
+++ b/libstdc++-v3/testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc
@@ -14,8 +14,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <cstring>
diff --git a/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/allocate.cc b/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/allocate.cc
index f9a4a2f..822a410 100644
--- a/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/allocate.cc
+++ b/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/allocate.cc
@@ -15,10 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-do run }
-// { dg-options "-pthread" }
-// { dg-require-effective-target c++17 }
-// { dg-require-effective-target pthread }
+// { dg-do run { target c++17 } }
+// { dg-additional-options "-pthread" { target pthread } }
// { dg-require-gthreads "" }
#include <memory_resource>
diff --git a/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/allocate_single.cc b/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/allocate_single.cc
index a29575f..4acfde6 100644
--- a/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/allocate_single.cc
+++ b/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/allocate_single.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-do run }
-// { dg-require-effective-target c++17 }
+// { dg-do run { target c++17 } }
// { dg-require-gthreads "" }
// This runs the same tests as allocate.cc but without -pthread
diff --git a/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/cons.cc b/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/cons.cc
index f8b74d9..a3f9858 100644
--- a/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/cons.cc
+++ b/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/cons.cc
@@ -15,10 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-do run }
-// { dg-options "-pthread" }
-// { dg-require-effective-target c++17 }
-// { dg-require-effective-target pthread }
+// { dg-do run { target c++17 } }
+// { dg-additional-options "-pthread" { target pthread } }
// { dg-require-gthreads "" }
#include <memory_resource>
diff --git a/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/cons_single.cc b/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/cons_single.cc
index ab215ba..9668a51 100644
--- a/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/cons_single.cc
+++ b/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/cons_single.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-do run }
-// { dg-require-effective-target c++17 }
+// { dg-do run { target c++17 } }
// { dg-require-gthreads "" }
// This runs the same tests as cons.cc but without -pthread
diff --git a/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/is_equal.cc b/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/is_equal.cc
index 5be6bd6..aacf00b 100644
--- a/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/is_equal.cc
+++ b/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/is_equal.cc
@@ -15,10 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-do run }
-// { dg-options "-pthread" }
-// { dg-require-effective-target c++17 }
-// { dg-require-effective-target pthread }
+// { dg-do run { target c++17 } }
+// { dg-additional-options "-pthread" { target pthread } }
// { dg-require-gthreads "" }
#include <memory_resource>
diff --git a/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/multithreaded.cc b/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/multithreaded.cc
index a7283bf..7992367 100644
--- a/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/multithreaded.cc
+++ b/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/multithreaded.cc
@@ -15,10 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-do run }
-// { dg-options "-pthread" }
-// { dg-require-effective-target c++17 }
-// { dg-require-effective-target pthread }
+// { dg-do run { target c++17 } }
+// { dg-additional-options "-pthread" { target pthread } }
// { dg-require-gthreads "" }
#include <memory_resource>
diff --git a/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/options.cc b/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/options.cc
index a869b99..9d98b50 100644
--- a/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/options.cc
+++ b/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/options.cc
@@ -15,10 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-do run }
-// { dg-options "-pthread" }
-// { dg-require-effective-target c++17 }
-// { dg-require-effective-target pthread }
+// { dg-do run { target c++17 } }
+// { dg-additional-options "-pthread" { target pthread } }
// { dg-require-gthreads "" }
#include <memory_resource>
diff --git a/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/release.cc b/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/release.cc
index d1c6043..6752d6e 100644
--- a/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/release.cc
+++ b/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/release.cc
@@ -15,10 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-do run }
-// { dg-options "-pthread" }
-// { dg-require-effective-target c++17 }
-// { dg-require-effective-target pthread }
+// { dg-do run { target c++17 } }
+// { dg-additional-options "-pthread" { target pthread } }
// { dg-require-gthreads "" }
#include <memory_resource>
diff --git a/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/release_single.cc b/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/release_single.cc
index f69e960..9645bc6 100644
--- a/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/release_single.cc
+++ b/libstdc++-v3/testsuite/20_util/synchronized_pool_resource/release_single.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-do run }
-// { dg-require-effective-target c++17 }
+// { dg-do run { target c++17 } }
// { dg-require-gthreads "" }
// This runs the same tests as release.cc but without -pthread
diff --git a/libstdc++-v3/testsuite/20_util/time_point/4.cc b/libstdc++-v3/testsuite/20_util/time_point/4.cc
index f6c3ec9..f4727ae 100644
--- a/libstdc++-v3/testsuite/20_util/time_point/4.cc
+++ b/libstdc++-v3/testsuite/20_util/time_point/4.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/20_util/time_point/comparison_operators/three_way.cc b/libstdc++-v3/testsuite/20_util/time_point/comparison_operators/three_way.cc
index 2382d7d..182fdcd 100644
--- a/libstdc++-v3/testsuite/20_util/time_point/comparison_operators/three_way.cc
+++ b/libstdc++-v3/testsuite/20_util/time_point/comparison_operators/three_way.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/20_util/to_address/1.cc b/libstdc++-v3/testsuite/20_util/to_address/1.cc
index 6ad5630..2e1ec4b 100644
--- a/libstdc++-v3/testsuite/20_util/to_address/1.cc
+++ b/libstdc++-v3/testsuite/20_util/to_address/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <memory>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/20_util/to_address/1_neg.cc b/libstdc++-v3/testsuite/20_util/to_address/1_neg.cc
index 181f8b6..21cd516 100644
--- a/libstdc++-v3/testsuite/20_util/to_address/1_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/to_address/1_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-error "not a function pointer" "" { target *-*-* } 0 }
#include <memory>
diff --git a/libstdc++-v3/testsuite/20_util/to_address/debug.cc b/libstdc++-v3/testsuite/20_util/to_address/debug.cc
index d6eba8b..394b9b3 100644
--- a/libstdc++-v3/testsuite/20_util/to_address/debug.cc
+++ b/libstdc++-v3/testsuite/20_util/to_address/debug.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <debug/vector>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/20_util/to_address/lwg3545.cc b/libstdc++-v3/testsuite/20_util/to_address/lwg3545.cc
index a80ac29..3a1ee8d 100644
--- a/libstdc++-v3/testsuite/20_util/to_address/lwg3545.cc
+++ b/libstdc++-v3/testsuite/20_util/to_address/lwg3545.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
#include <memory>
diff --git a/libstdc++-v3/testsuite/20_util/to_chars/compare.cc b/libstdc++-v3/testsuite/20_util/to_chars/compare.cc
index 250058c..b2faac0 100644
--- a/libstdc++-v3/testsuite/20_util/to_chars/compare.cc
+++ b/libstdc++-v3/testsuite/20_util/to_chars/compare.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <charconv>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/20_util/to_chars/constexpr.cc b/libstdc++-v3/testsuite/20_util/to_chars/constexpr.cc
index 10855b7..e51ea4d 100644
--- a/libstdc++-v3/testsuite/20_util/to_chars/constexpr.cc
+++ b/libstdc++-v3/testsuite/20_util/to_chars/constexpr.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
#include <charconv>
diff --git a/libstdc++-v3/testsuite/20_util/to_chars/float128_c++23.cc b/libstdc++-v3/testsuite/20_util/to_chars/float128_c++23.cc
index 318a356..f130626 100644
--- a/libstdc++-v3/testsuite/20_util/to_chars/float128_c++23.cc
+++ b/libstdc++-v3/testsuite/20_util/to_chars/float128_c++23.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2b" }
// { dg-do run { target c++23 } }
// { dg-require-effective-target ieee_floats }
// { dg-require-effective-target size32plus }
diff --git a/libstdc++-v3/testsuite/20_util/to_chars/float16_c++23.cc b/libstdc++-v3/testsuite/20_util/to_chars/float16_c++23.cc
index c6f8109..4db5339 100644
--- a/libstdc++-v3/testsuite/20_util/to_chars/float16_c++23.cc
+++ b/libstdc++-v3/testsuite/20_util/to_chars/float16_c++23.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2b" }
// { dg-do run { target c++23 } }
// { dg-require-effective-target ieee_floats }
// { dg-require-effective-target size32plus }
diff --git a/libstdc++-v3/testsuite/20_util/to_chars/result.cc b/libstdc++-v3/testsuite/20_util/to_chars/result.cc
new file mode 100644
index 0000000..5284680
--- /dev/null
+++ b/libstdc++-v3/testsuite/20_util/to_chars/result.cc
@@ -0,0 +1,25 @@
+// { dg-do run { target c++26 } }
+
+#include <charconv>
+#include <testsuite_hooks.h>
+
+#if defined(__cpp_lib_to_chars) && __cpp_lib_to_chars < 202306L
+# error "Feature-test macro for std::to_chars has wrong value in <charconv>"
+#endif
+
+void
+test_result()
+{
+ static_assert( ! std::is_convertible_v<std::to_chars_result, bool> );
+ static_assert( std::is_constructible_v<bool, std::to_chars_result> );
+
+ std::to_chars_result res{};
+ VERIFY( res );
+ res.ec = std::errc::invalid_argument;
+ VERIFY( !res );
+}
+
+int main()
+{
+ test_result();
+}
diff --git a/libstdc++-v3/testsuite/20_util/to_chars/version.cc b/libstdc++-v3/testsuite/20_util/to_chars/version.cc
index 2789afa..df1804e 100644
--- a/libstdc++-v3/testsuite/20_util/to_chars/version.cc
+++ b/libstdc++-v3/testsuite/20_util/to_chars/version.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do preprocess { target c++23 } }
// { dg-require-effective-target hosted }
@@ -6,7 +5,7 @@
#ifndef __cpp_lib_to_chars
# error "Feature-test macro for to_chars missing in <version>"
-#elif __cpp_lib_to_chars != 201611L
+#elif __cpp_lib_to_chars != (__cplusplus == 202302L ? 201611L : 202306L)
# error "Feature-test macro for to_chars has wrong value in <version>"
#endif
diff --git a/libstdc++-v3/testsuite/20_util/to_underlying/1.cc b/libstdc++-v3/testsuite/20_util/to_underlying/1.cc
index a215dfc..c970238 100644
--- a/libstdc++-v3/testsuite/20_util/to_underlying/1.cc
+++ b/libstdc++-v3/testsuite/20_util/to_underlying/1.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
#include <utility>
diff --git a/libstdc++-v3/testsuite/20_util/to_underlying/version.cc b/libstdc++-v3/testsuite/20_util/to_underlying/version.cc
index 0a4df49..f800d7c 100644
--- a/libstdc++-v3/testsuite/20_util/to_underlying/version.cc
+++ b/libstdc++-v3/testsuite/20_util/to_underlying/version.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
#include <version>
diff --git a/libstdc++-v3/testsuite/20_util/tuple/comparison_operators/three_way.cc b/libstdc++-v3/testsuite/20_util/tuple/comparison_operators/three_way.cc
index 82e38a6..e441fe0 100644
--- a/libstdc++-v3/testsuite/20_util/tuple/comparison_operators/three_way.cc
+++ b/libstdc++-v3/testsuite/20_util/tuple/comparison_operators/three_way.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/20_util/tuple/cons/102270.cc b/libstdc++-v3/testsuite/20_util/tuple/cons/102270.cc
index 5500cac..6ddb963 100644
--- a/libstdc++-v3/testsuite/20_util/tuple/cons/102270.cc
+++ b/libstdc++-v3/testsuite/20_util/tuple/cons/102270.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
#include <tuple>
diff --git a/libstdc++-v3/testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc b/libstdc++-v3/testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc
index 2ff4310..8f672c9 100644
--- a/libstdc++-v3/testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc
+++ b/libstdc++-v3/testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// FIXME [!HOSTED]: avoidable std::allocator usage
// { dg-require-effective-target hosted }
//
diff --git a/libstdc++-v3/testsuite/20_util/tuple/constexpr_swap.cc b/libstdc++-v3/testsuite/20_util/tuple/constexpr_swap.cc
index 14fdec4..1dea311 100644
--- a/libstdc++-v3/testsuite/20_util/tuple/constexpr_swap.cc
+++ b/libstdc++-v3/testsuite/20_util/tuple/constexpr_swap.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
//
// Copyright (C) 2019-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/20_util/tuple/p2321r2.cc b/libstdc++-v3/testsuite/20_util/tuple/p2321r2.cc
index ceed38b..774968d 100644
--- a/libstdc++-v3/testsuite/20_util/tuple/p2321r2.cc
+++ b/libstdc++-v3/testsuite/20_util/tuple/p2321r2.cc
@@ -1,5 +1,4 @@
// Verify P2321R2 "zip" enhancements to std::tuple.
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
// FIXME [!HOSTED]: avoidable std::allocator usage
// { dg-require-effective-target hosted }
diff --git a/libstdc++-v3/testsuite/20_util/type_identity/requirements/alias_decl.cc b/libstdc++-v3/testsuite/20_util/type_identity/requirements/alias_decl.cc
index 4823a32..67e7f6a 100644
--- a/libstdc++-v3/testsuite/20_util/type_identity/requirements/alias_decl.cc
+++ b/libstdc++-v3/testsuite/20_util/type_identity/requirements/alias_decl.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
//
#include <type_traits>
diff --git a/libstdc++-v3/testsuite/20_util/type_identity/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/20_util/type_identity/requirements/explicit_instantiation.cc
index 193ecfe..69c3a7c 100644
--- a/libstdc++-v3/testsuite/20_util/type_identity/requirements/explicit_instantiation.cc
+++ b/libstdc++-v3/testsuite/20_util/type_identity/requirements/explicit_instantiation.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// NB: This file is for testing type_traits with NO OTHER INCLUDES.
diff --git a/libstdc++-v3/testsuite/20_util/type_identity/requirements/typedefs.cc b/libstdc++-v3/testsuite/20_util/type_identity/requirements/typedefs.cc
index c7248a2..6c9ba22 100644
--- a/libstdc++-v3/testsuite/20_util/type_identity/requirements/typedefs.cc
+++ b/libstdc++-v3/testsuite/20_util/type_identity/requirements/typedefs.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <type_traits>
diff --git a/libstdc++-v3/testsuite/20_util/typeindex/comparison_operators_c++20.cc b/libstdc++-v3/testsuite/20_util/typeindex/comparison_operators_c++20.cc
index b903b72..98be53f 100644
--- a/libstdc++-v3/testsuite/20_util/typeindex/comparison_operators_c++20.cc
+++ b/libstdc++-v3/testsuite/20_util/typeindex/comparison_operators_c++20.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-effective-target rtti }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
diff --git a/libstdc++-v3/testsuite/20_util/unique_ptr/assign/constexpr.cc b/libstdc++-v3/testsuite/20_util/unique_ptr/assign/constexpr.cc
index fb4acbda..30f8d45 100644
--- a/libstdc++-v3/testsuite/20_util/unique_ptr/assign/constexpr.cc
+++ b/libstdc++-v3/testsuite/20_util/unique_ptr/assign/constexpr.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
#include <memory>
diff --git a/libstdc++-v3/testsuite/20_util/unique_ptr/comparison/compare_c++20.cc b/libstdc++-v3/testsuite/20_util/unique_ptr/comparison/compare_c++20.cc
index 43eb2d9..e0d9504 100644
--- a/libstdc++-v3/testsuite/20_util/unique_ptr/comparison/compare_c++20.cc
+++ b/libstdc++-v3/testsuite/20_util/unique_ptr/comparison/compare_c++20.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <memory>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/20_util/unique_ptr/comparison/constexpr.cc b/libstdc++-v3/testsuite/20_util/unique_ptr/comparison/constexpr.cc
index 83e4f08..9c1da0b 100644
--- a/libstdc++-v3/testsuite/20_util/unique_ptr/comparison/constexpr.cc
+++ b/libstdc++-v3/testsuite/20_util/unique_ptr/comparison/constexpr.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
#include <memory>
diff --git a/libstdc++-v3/testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc b/libstdc++-v3/testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc
index 243d80a..02cbd92 100644
--- a/libstdc++-v3/testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc
+++ b/libstdc++-v3/testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
#include <memory>
diff --git a/libstdc++-v3/testsuite/20_util/unique_ptr/creation/92878_92947.cc b/libstdc++-v3/testsuite/20_util/unique_ptr/creation/92878_92947.cc
index aef5555..0f656de 100644
--- a/libstdc++-v3/testsuite/20_util/unique_ptr/creation/92878_92947.cc
+++ b/libstdc++-v3/testsuite/20_util/unique_ptr/creation/92878_92947.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-effective-target hosted }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
diff --git a/libstdc++-v3/testsuite/20_util/unique_ptr/creation/constexpr.cc b/libstdc++-v3/testsuite/20_util/unique_ptr/creation/constexpr.cc
index f673342..d972e29 100644
--- a/libstdc++-v3/testsuite/20_util/unique_ptr/creation/constexpr.cc
+++ b/libstdc++-v3/testsuite/20_util/unique_ptr/creation/constexpr.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
// { dg-require-effective-target hosted }
diff --git a/libstdc++-v3/testsuite/20_util/unique_ptr/creation/for_overwrite.cc b/libstdc++-v3/testsuite/20_util/unique_ptr/creation/for_overwrite.cc
index 86b9045..37ef1b73 100644
--- a/libstdc++-v3/testsuite/20_util/unique_ptr/creation/for_overwrite.cc
+++ b/libstdc++-v3/testsuite/20_util/unique_ptr/creation/for_overwrite.cc
@@ -1,5 +1,5 @@
-// { dg-options "-std=gnu++20 -fno-lifetime-dse -O0" }
-// { dg-do run { target c++2a } }
+// { dg-options "-fno-lifetime-dse -O0" }
+// { dg-do run { target c++20 } }
// { dg-xfail-run-if "AIX operator new" { powerpc-ibm-aix* } }
// { dg-require-effective-target hosted }
diff --git a/libstdc++-v3/testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc b/libstdc++-v3/testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc
index d1144ef..7afbc5a 100644
--- a/libstdc++-v3/testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc
+++ b/libstdc++-v3/testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++20" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-effective-target hosted }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
diff --git a/libstdc++-v3/testsuite/20_util/unique_ptr/io/lwg2948.cc b/libstdc++-v3/testsuite/20_util/unique_ptr/io/lwg2948.cc
index 45c54a0..7266fd3 100644
--- a/libstdc++-v3/testsuite/20_util/unique_ptr/io/lwg2948.cc
+++ b/libstdc++-v3/testsuite/20_util/unique_ptr/io/lwg2948.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <memory>
#include <sstream>
diff --git a/libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/constexpr.cc b/libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/constexpr.cc
index 81908fd..75678bc 100644
--- a/libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/constexpr.cc
+++ b/libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/constexpr.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
#include <memory>
diff --git a/libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc b/libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc
index 91a0165..0c11a96 100644
--- a/libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc
+++ b/libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
#include <memory>
diff --git a/libstdc++-v3/testsuite/20_util/unreachable/1.cc b/libstdc++-v3/testsuite/20_util/unreachable/1.cc
index 0c463d5..98d801b 100644
--- a/libstdc++-v3/testsuite/20_util/unreachable/1.cc
+++ b/libstdc++-v3/testsuite/20_util/unreachable/1.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
#include <utility>
diff --git a/libstdc++-v3/testsuite/20_util/unreachable/version.cc b/libstdc++-v3/testsuite/20_util/unreachable/version.cc
index c779590..b64a6cd 100644
--- a/libstdc++-v3/testsuite/20_util/unreachable/version.cc
+++ b/libstdc++-v3/testsuite/20_util/unreachable/version.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do preprocess { target c++23 } }
#include <version>
diff --git a/libstdc++-v3/testsuite/20_util/unwrap_reference/1.cc b/libstdc++-v3/testsuite/20_util/unwrap_reference/1.cc
index 15a9e39..d3a33f8 100644
--- a/libstdc++-v3/testsuite/20_util/unwrap_reference/1.cc
+++ b/libstdc++-v3/testsuite/20_util/unwrap_reference/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <type_traits>
diff --git a/libstdc++-v3/testsuite/20_util/unwrap_reference/2.cc b/libstdc++-v3/testsuite/20_util/unwrap_reference/2.cc
index ab67269..95e6144 100644
--- a/libstdc++-v3/testsuite/20_util/unwrap_reference/2.cc
+++ b/libstdc++-v3/testsuite/20_util/unwrap_reference/2.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <type_traits>
diff --git a/libstdc++-v3/testsuite/20_util/unwrap_reference/3.cc b/libstdc++-v3/testsuite/20_util/unwrap_reference/3.cc
index 9ea4387..e2e91fd 100644
--- a/libstdc++-v3/testsuite/20_util/unwrap_reference/3.cc
+++ b/libstdc++-v3/testsuite/20_util/unwrap_reference/3.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <version>
diff --git a/libstdc++-v3/testsuite/20_util/uses_allocator/92878_92947.cc b/libstdc++-v3/testsuite/20_util/uses_allocator/92878_92947.cc
index 9c4d296..ca3efd7 100644
--- a/libstdc++-v3/testsuite/20_util/uses_allocator/92878_92947.cc
+++ b/libstdc++-v3/testsuite/20_util/uses_allocator/92878_92947.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-effective-target hosted }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
diff --git a/libstdc++-v3/testsuite/20_util/uses_allocator/lwg3527.cc b/libstdc++-v3/testsuite/20_util/uses_allocator/lwg3527.cc
index c5a7d51..445e409 100644
--- a/libstdc++-v3/testsuite/20_util/uses_allocator/lwg3527.cc
+++ b/libstdc++-v3/testsuite/20_util/uses_allocator/lwg3527.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-require-effective-target hosted }
diff --git a/libstdc++-v3/testsuite/20_util/uses_allocator/lwg3677.cc b/libstdc++-v3/testsuite/20_util/uses_allocator/lwg3677.cc
index b2595d0..c0789d7 100644
--- a/libstdc++-v3/testsuite/20_util/uses_allocator/lwg3677.cc
+++ b/libstdc++-v3/testsuite/20_util/uses_allocator/lwg3677.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++20 } }
// { dg-require-effective-target hosted }
diff --git a/libstdc++-v3/testsuite/20_util/uses_allocator/make_obj.cc b/libstdc++-v3/testsuite/20_util/uses_allocator/make_obj.cc
index 23336a8..d1a9fb5 100644
--- a/libstdc++-v3/testsuite/20_util/uses_allocator/make_obj.cc
+++ b/libstdc++-v3/testsuite/20_util/uses_allocator/make_obj.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <testsuite_hooks.h>
#include <testsuite_allocator.h>
diff --git a/libstdc++-v3/testsuite/20_util/uses_allocator/uninitialized_construct.cc b/libstdc++-v3/testsuite/20_util/uses_allocator/uninitialized_construct.cc
index 06e850f..8fbc767 100644
--- a/libstdc++-v3/testsuite/20_util/uses_allocator/uninitialized_construct.cc
+++ b/libstdc++-v3/testsuite/20_util/uses_allocator/uninitialized_construct.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// TODO [!HOSTED]: avoidable std::allocator usage
// { dg-require-effective-target hosted }
diff --git a/libstdc++-v3/testsuite/20_util/variant/92878_92947.cc b/libstdc++-v3/testsuite/20_util/variant/92878_92947.cc
index 7c3d5bf..528c59d 100644
--- a/libstdc++-v3/testsuite/20_util/variant/92878_92947.cc
+++ b/libstdc++-v3/testsuite/20_util/variant/92878_92947.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/20_util/variant/95915.cc b/libstdc++-v3/testsuite/20_util/variant/95915.cc
index 84e9158..471d9a4 100644
--- a/libstdc++-v3/testsuite/20_util/variant/95915.cc
+++ b/libstdc++-v3/testsuite/20_util/variant/95915.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
diff --git a/libstdc++-v3/testsuite/20_util/variant/constexpr.cc b/libstdc++-v3/testsuite/20_util/variant/constexpr.cc
index 7af3d98..55fac02 100644
--- a/libstdc++-v3/testsuite/20_util/variant/constexpr.cc
+++ b/libstdc++-v3/testsuite/20_util/variant/constexpr.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
#include <variant>
diff --git a/libstdc++-v3/testsuite/20_util/variant/default_ctor.cc b/libstdc++-v3/testsuite/20_util/variant/default_ctor.cc
new file mode 100644
index 0000000..d0d9235
--- /dev/null
+++ b/libstdc++-v3/testsuite/20_util/variant/default_ctor.cc
@@ -0,0 +1,11 @@
+// { dg-do compile { target c++17 } }
+
+#include <variant>
+
+struct A{ A(int); };
+struct B{ B(){}; };
+
+void f(std::variant<A>);
+int f(B);
+
+int unambiguous = f({}); // { dg-bogus "ambiguous" }
diff --git a/libstdc++-v3/testsuite/20_util/variant/relops/three_way.cc b/libstdc++-v3/testsuite/20_util/variant/relops/three_way.cc
index dc3f545..91f59ff 100644
--- a/libstdc++-v3/testsuite/20_util/variant/relops/three_way.cc
+++ b/libstdc++-v3/testsuite/20_util/variant/relops/three_way.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <variant>
diff --git a/libstdc++-v3/testsuite/20_util/variant/visit_neg.cc b/libstdc++-v3/testsuite/20_util/variant/visit_neg.cc
index d93c3ba..6e93431 100644
--- a/libstdc++-v3/testsuite/20_util/variant/visit_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/variant/visit_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <variant>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/20_util/variant/visit_r.cc b/libstdc++-v3/testsuite/20_util/variant/visit_r.cc
index 1fb18f2..4f551a6 100644
--- a/libstdc++-v3/testsuite/20_util/variant/visit_r.cc
+++ b/libstdc++-v3/testsuite/20_util/variant/visit_r.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <variant>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/20_util/weak_ptr/atomic_weak_ptr.cc b/libstdc++-v3/testsuite/20_util/weak_ptr/atomic_weak_ptr.cc
index b38cea7..f612bc2 100644
--- a/libstdc++-v3/testsuite/20_util/weak_ptr/atomic_weak_ptr.cc
+++ b/libstdc++-v3/testsuite/20_util/weak_ptr/atomic_weak_ptr.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
// { dg-require-effective-target gthreads }
// { dg-additional-options "-pthread" { target pthread } }
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc b/libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc
index 3265ebc..3c88b7c 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <string>
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/105995.cc b/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/105995.cc
index 4764cef..ad3ec1f 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/105995.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/105995.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-require-effective-target cxx11_abi }
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/constexpr.cc b/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/constexpr.cc
index 5a1c0e6..8c60708 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/constexpr.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/constexpr.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-require-effective-target cxx11_abi }
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc b/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc
index 260f8b3..40cea53 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-require-effective-target cxx11_abi }
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/erasure.cc b/libstdc++-v3/testsuite/21_strings/basic_string/erasure.cc
index d12ce9e..b85496a 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/erasure.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/erasure.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2018-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/hash/hash_char8_t.cc b/libstdc++-v3/testsuite/21_strings/basic_string/hash/hash_char8_t.cc
index c542044..ae2dc2c 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/hash/hash_char8_t.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/hash/hash_char8_t.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <string>
#include <memory_resource>
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/literals/constexpr.cc b/libstdc++-v3/testsuite/21_strings/basic_string/literals/constexpr.cc
index f1ccb5d..c2b54f1 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/literals/constexpr.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/literals/constexpr.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-require-effective-target cxx11_abi }
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/modifiers/constexpr.cc b/libstdc++-v3/testsuite/21_strings/basic_string/modifiers/constexpr.cc
index 77fe59b..0e28a6d 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/modifiers/constexpr.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/modifiers/constexpr.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-require-effective-target cxx11_abi }
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/modifiers/swap/constexpr-wchar_t.cc b/libstdc++-v3/testsuite/21_strings/basic_string/modifiers/swap/constexpr-wchar_t.cc
index 6b3a304..09d09af 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/modifiers/swap/constexpr-wchar_t.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/modifiers/swap/constexpr-wchar_t.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-require-effective-target cxx11_abi }
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/modifiers/swap/constexpr.cc b/libstdc++-v3/testsuite/21_strings/basic_string/modifiers/swap/constexpr.cc
index 1137a3e..de774bb 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/modifiers/swap/constexpr.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/modifiers/swap/constexpr.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-require-effective-target cxx11_abi }
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/operations/contains/char.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operations/contains/char.cc
index d8ebb50..fc96b7f 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/operations/contains/char.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/operations/contains/char.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
// Copyright (C) 2021-2023 Free Software Foundation, Inc.
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/operations/contains/nonnull.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operations/contains/nonnull.cc
index 41bb391..f800244 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/operations/contains/nonnull.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/operations/contains/nonnull.cc
@@ -1,4 +1,4 @@
-// { dg-options "-std=gnu++23 -Wnonnull -O0 -Wno-unused-result" }
+// { dg-options "-Wnonnull -O0 -Wno-unused-result" }
// { dg-do compile { target c++23 } }
#include <string>
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/operations/contains/wchar_t.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operations/contains/wchar_t.cc
index 2d6b057..3fd7ef8 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/operations/contains/wchar_t.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/operations/contains/wchar_t.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
// Copyright (C) 2021-2023 Free Software Foundation, Inc.
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/operations/ends_with/char.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operations/ends_with/char.cc
index f1e4ea3..1fd3455 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/operations/ends_with/char.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/operations/ends_with/char.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2018-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc
index ba77f01..7e720be 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc
@@ -1,4 +1,4 @@
-// { dg-options "-std=gnu++20 -Wnonnull -O0 -Wno-unused-result" }
+// { dg-options "-Wnonnull -O0 -Wno-unused-result" }
// { dg-do compile { target c++20 } }
#include <testsuite_string.h>
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc
index e8fef74..30c446f 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2018-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/operations/starts_with/char.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operations/starts_with/char.cc
index c8357d2..f9e263b 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/operations/starts_with/char.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/operations/starts_with/char.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2018-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc
index a023d9e..fe8c6a7 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc
@@ -1,4 +1,4 @@
-// { dg-options "-std=gnu++20 -Wnonnull -O0 -Wno-unused-result" }
+// { dg-options "-Wnonnull -O0 -Wno-unused-result" }
// { dg-do compile { target c++20 } }
#include <testsuite_string.h>
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc
index aaef4cb..ee685b9 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2018-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/operators/char/cmp_c++20.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operators/char/cmp_c++20.cc
index b78195f..fe69635 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/operators/char/cmp_c++20.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/operators/char/cmp_c++20.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// C++20 21.3.3.2 Non-member comparison functions [string.cmp]
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/cmp_c++20.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/cmp_c++20.cc
index ed9f61e..4ae4d3d 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/cmp_c++20.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/operators/wchar_t/cmp_c++20.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// C++20 21.3.3.2 Non-member comparison functions [string.cmp]
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/range.cc b/libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/range.cc
index 568b8a0..d28b235 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/range.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/range.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
#include <string_view>
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc b/libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc
index 0d0fd0f..0e954cd 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <string_view>
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc b/libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc
index de22444..8a4b23f 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <string_view>
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/char.cc b/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/char.cc
index 84930f2..f59cad3 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/char.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/char.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
// Copyright (C) 2021-2023 Free Software Foundation, Inc.
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/char/2.cc b/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/char/2.cc
index 19a8f5f..2f1b684 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/char/2.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/char/2.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
// Copyright (C) 2021-2023 Free Software Foundation, Inc.
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc b/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc
index fafadcc..78d07b1 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc
@@ -1,4 +1,4 @@
-// { dg-options "-std=gnu++23 -Wnonnull -O0 -Wno-unused-result" }
+// { dg-options "-Wnonnull -O0 -Wno-unused-result" }
// { dg-do compile { target c++23 } }
#include <string_view>
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/wchar_t.cc b/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/wchar_t.cc
index 8aad6b0..02db4ef 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/wchar_t.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/wchar_t.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
// Copyright (C) 2021-2023 Free Software Foundation, Inc.
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc b/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc
index 309e919..b91fea0 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <string_view>
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/constexpr.cc b/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/constexpr.cc
index adfbf0a..0f692d7 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/constexpr.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <string_view>
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/ends_with/char.cc b/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/ends_with/char.cc
index e5ce2f0..6153363 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/ends_with/char.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/ends_with/char.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2018-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc b/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc
index 50437bb..7521b62 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc
@@ -1,4 +1,4 @@
-// { dg-options "-std=gnu++20 -Wnonnull -O0 -Wno-unused-result" }
+// { dg-options "-Wnonnull -O0 -Wno-unused-result" }
// { dg-do compile { target c++20 } }
#include <string_view>
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t.cc b/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t.cc
index 6984a7f..9e83c85 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2018-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/starts_with/char.cc b/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/starts_with/char.cc
index ec0bc05..4f24290 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/starts_with/char.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/starts_with/char.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2018-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc b/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc
index fedba28a..dfdf225 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc
@@ -1,4 +1,4 @@
-// { dg-options "-std=gnu++20 -Wnonnull -O0 -Wno-unused-result" }
+// { dg-options "-Wnonnull -O0 -Wno-unused-result" }
// { dg-do compile { target c++20 } }
#include <string_view>
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t.cc b/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t.cc
index 8535d7a..1d8c643 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2018-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string_view/operators/char/cmp_c++20.cc b/libstdc++-v3/testsuite/21_strings/basic_string_view/operators/char/cmp_c++20.cc
index 0ce700c..537505b 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string_view/operators/char/cmp_c++20.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string_view/operators/char/cmp_c++20.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string_view/operators/wchar_t/cmp_c++20.cc b/libstdc++-v3/testsuite/21_strings/basic_string_view/operators/wchar_t/cmp_c++20.cc
index 9911b69..50df0ac 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string_view/operators/wchar_t/cmp_c++20.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string_view/operators/wchar_t/cmp_c++20.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/constexpr_iter.cc b/libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/constexpr_iter.cc
index 249e48d..954c7ee 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/constexpr_iter.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/constexpr_iter.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
//
// Copyright (C) 2019-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc b/libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc
index bdc0b0a..805b84de 100644
--- a/libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc
+++ b/libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// Copyright (C) 2017-2023 Free Software Foundation, Inc.
diff --git a/libstdc++-v3/testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc b/libstdc++-v3/testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc
index df68fb7..1964803 100644
--- a/libstdc++-v3/testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc
+++ b/libstdc++-v3/testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=c++20" }
// { dg-do compile { target c++20 } }
#include <cuchar>
diff --git a/libstdc++-v3/testsuite/23_containers/array/comparison_operators/96851.cc b/libstdc++-v3/testsuite/23_containers/array/comparison_operators/96851.cc
index 2d43e07..00f211a 100644
--- a/libstdc++-v3/testsuite/23_containers/array/comparison_operators/96851.cc
+++ b/libstdc++-v3/testsuite/23_containers/array/comparison_operators/96851.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <array>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/array/comparison_operators/constexpr.cc b/libstdc++-v3/testsuite/23_containers/array/comparison_operators/constexpr.cc
index 414c3d2..e4029bd 100644
--- a/libstdc++-v3/testsuite/23_containers/array/comparison_operators/constexpr.cc
+++ b/libstdc++-v3/testsuite/23_containers/array/comparison_operators/constexpr.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
//
// Copyright (C) 2019-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/23_containers/array/creation/1.cc b/libstdc++-v3/testsuite/23_containers/array/creation/1.cc
index 33959fa..9c2eedb 100644
--- a/libstdc++-v3/testsuite/23_containers/array/creation/1.cc
+++ b/libstdc++-v3/testsuite/23_containers/array/creation/1.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2019-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/23_containers/array/creation/110167.cc b/libstdc++-v3/testsuite/23_containers/array/creation/110167.cc
index c2aecc9..1d02ccc 100644
--- a/libstdc++-v3/testsuite/23_containers/array/creation/110167.cc
+++ b/libstdc++-v3/testsuite/23_containers/array/creation/110167.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// PR libstdc++/110167 - excessive compile time when optimizing std::to_array
diff --git a/libstdc++-v3/testsuite/23_containers/array/creation/2.cc b/libstdc++-v3/testsuite/23_containers/array/creation/2.cc
index 5ebded7..be83073 100644
--- a/libstdc++-v3/testsuite/23_containers/array/creation/2.cc
+++ b/libstdc++-v3/testsuite/23_containers/array/creation/2.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2019-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/23_containers/array/creation/3_neg.cc b/libstdc++-v3/testsuite/23_containers/array/creation/3_neg.cc
index eeabdce..4f3a54c 100644
--- a/libstdc++-v3/testsuite/23_containers/array/creation/3_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/array/creation/3_neg.cc
@@ -1,5 +1,5 @@
-// { dg-options "-std=gnu++2a -Wno-unused-result" }
-// { dg-do compile { target c++2a } }
+// { dg-options "-Wno-unused-result" }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2019-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_fill.cc b/libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_fill.cc
index 9e957ed..6acf183 100644
--- a/libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_fill.cc
+++ b/libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_fill.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
//
// Copyright (C) 2019-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_swap.cc b/libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_swap.cc
index 7efd494..1db2ad9 100644
--- a/libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_swap.cc
+++ b/libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_swap.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
//
// Copyright (C) 2019-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/23_containers/deque/48101-2_neg.cc b/libstdc++-v3/testsuite/23_containers/deque/48101-2_neg.cc
index 041f0cb..d5cb13e 100644
--- a/libstdc++-v3/testsuite/23_containers/deque/48101-2_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/deque/48101-2_neg.cc
@@ -15,8 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-do compile }
-// { dg-options "-std=c++11" }
+// { dg-do compile { target c++11 } }
+// { dg-add-options strict_std }
#include <deque>
diff --git a/libstdc++-v3/testsuite/23_containers/deque/48101-3_neg.cc b/libstdc++-v3/testsuite/23_containers/deque/48101-3_neg.cc
index e31aa08..98c548f 100644
--- a/libstdc++-v3/testsuite/23_containers/deque/48101-3_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/deque/48101-3_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <deque>
diff --git a/libstdc++-v3/testsuite/23_containers/deque/erasure.cc b/libstdc++-v3/testsuite/23_containers/deque/erasure.cc
index e10402b..30885d1 100644
--- a/libstdc++-v3/testsuite/23_containers/deque/erasure.cc
+++ b/libstdc++-v3/testsuite/23_containers/deque/erasure.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2018-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/23_containers/deque/modifiers/emplace/92878_92947.cc b/libstdc++-v3/testsuite/23_containers/deque/modifiers/emplace/92878_92947.cc
index ae81ee1..336d9a5 100644
--- a/libstdc++-v3/testsuite/23_containers/deque/modifiers/emplace/92878_92947.cc
+++ b/libstdc++-v3/testsuite/23_containers/deque/modifiers/emplace/92878_92947.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/23_containers/deque/operators/cmp_c++20.cc b/libstdc++-v3/testsuite/23_containers/deque/operators/cmp_c++20.cc
index 6dff65e..2e6b9ca 100644
--- a/libstdc++-v3/testsuite/23_containers/deque/operators/cmp_c++20.cc
+++ b/libstdc++-v3/testsuite/23_containers/deque/operators/cmp_c++20.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <deque>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/forward_list/48101-2_neg.cc b/libstdc++-v3/testsuite/23_containers/forward_list/48101-2_neg.cc
index 2a21876..d5cc81c 100644
--- a/libstdc++-v3/testsuite/23_containers/forward_list/48101-2_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/forward_list/48101-2_neg.cc
@@ -15,8 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-do compile }
-// { dg-options "-std=c++11" }
+// { dg-do compile { target c++11 } }
+// { dg-add-options strict_std }
#include <forward_list>
diff --git a/libstdc++-v3/testsuite/23_containers/forward_list/48101-3_neg.cc b/libstdc++-v3/testsuite/23_containers/forward_list/48101-3_neg.cc
index 08566e6..f02e5ac 100644
--- a/libstdc++-v3/testsuite/23_containers/forward_list/48101-3_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/forward_list/48101-3_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <forward_list>
diff --git a/libstdc++-v3/testsuite/23_containers/forward_list/cmp_c++20.cc b/libstdc++-v3/testsuite/23_containers/forward_list/cmp_c++20.cc
index cd77827..a7cf061 100644
--- a/libstdc++-v3/testsuite/23_containers/forward_list/cmp_c++20.cc
+++ b/libstdc++-v3/testsuite/23_containers/forward_list/cmp_c++20.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <forward_list>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/forward_list/erasure.cc b/libstdc++-v3/testsuite/23_containers/forward_list/erasure.cc
index 1454e83..2a73b98 100644
--- a/libstdc++-v3/testsuite/23_containers/forward_list/erasure.cc
+++ b/libstdc++-v3/testsuite/23_containers/forward_list/erasure.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2018-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/23_containers/forward_list/modifiers/92878_92947.cc b/libstdc++-v3/testsuite/23_containers/forward_list/modifiers/92878_92947.cc
index 886c816..edf5ad5 100644
--- a/libstdc++-v3/testsuite/23_containers/forward_list/modifiers/92878_92947.cc
+++ b/libstdc++-v3/testsuite/23_containers/forward_list/modifiers/92878_92947.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/23_containers/forward_list/operations/remove_cxx20_return.cc b/libstdc++-v3/testsuite/23_containers/forward_list/operations/remove_cxx20_return.cc
index 698a196..ba526d8 100644
--- a/libstdc++-v3/testsuite/23_containers/forward_list/operations/remove_cxx20_return.cc
+++ b/libstdc++-v3/testsuite/23_containers/forward_list/operations/remove_cxx20_return.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <forward_list>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/forward_list/operations/unique_cxx20_return.cc b/libstdc++-v3/testsuite/23_containers/forward_list/operations/unique_cxx20_return.cc
index 62dc08e..c8c4513 100644
--- a/libstdc++-v3/testsuite/23_containers/forward_list/operations/unique_cxx20_return.cc
+++ b/libstdc++-v3/testsuite/23_containers/forward_list/operations/unique_cxx20_return.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <forward_list>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/list/48101-2_neg.cc b/libstdc++-v3/testsuite/23_containers/list/48101-2_neg.cc
index 0e96022..5cea219 100644
--- a/libstdc++-v3/testsuite/23_containers/list/48101-2_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/list/48101-2_neg.cc
@@ -15,8 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-do compile }
-// { dg-options "-std=c++11" }
+// { dg-do compile { target c++11 } }
+// { dg-add-options strict_std }
#include <list>
diff --git a/libstdc++-v3/testsuite/23_containers/list/48101-3_neg.cc b/libstdc++-v3/testsuite/23_containers/list/48101-3_neg.cc
index 9649510..62e6c5e 100644
--- a/libstdc++-v3/testsuite/23_containers/list/48101-3_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/list/48101-3_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <list>
diff --git a/libstdc++-v3/testsuite/23_containers/list/cmp_c++20.cc b/libstdc++-v3/testsuite/23_containers/list/cmp_c++20.cc
index 59a5b57..01d4172 100644
--- a/libstdc++-v3/testsuite/23_containers/list/cmp_c++20.cc
+++ b/libstdc++-v3/testsuite/23_containers/list/cmp_c++20.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <list>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/list/erasure.cc b/libstdc++-v3/testsuite/23_containers/list/erasure.cc
index de036dc..d6b06b1 100644
--- a/libstdc++-v3/testsuite/23_containers/list/erasure.cc
+++ b/libstdc++-v3/testsuite/23_containers/list/erasure.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2018-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/23_containers/list/modifiers/emplace/92878_92947.cc b/libstdc++-v3/testsuite/23_containers/list/modifiers/emplace/92878_92947.cc
index 208a5d9..7ffa8d9 100644
--- a/libstdc++-v3/testsuite/23_containers/list/modifiers/emplace/92878_92947.cc
+++ b/libstdc++-v3/testsuite/23_containers/list/modifiers/emplace/92878_92947.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/23_containers/list/operations/remove_cxx20_return.cc b/libstdc++-v3/testsuite/23_containers/list/operations/remove_cxx20_return.cc
index 9cc338b..f0ddced 100644
--- a/libstdc++-v3/testsuite/23_containers/list/operations/remove_cxx20_return.cc
+++ b/libstdc++-v3/testsuite/23_containers/list/operations/remove_cxx20_return.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <list>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/list/operations/unique_cxx20_return.cc b/libstdc++-v3/testsuite/23_containers/list/operations/unique_cxx20_return.cc
index 23296ba..d2f2f7b 100644
--- a/libstdc++-v3/testsuite/23_containers/list/operations/unique_cxx20_return.cc
+++ b/libstdc++-v3/testsuite/23_containers/list/operations/unique_cxx20_return.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <list>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/map/48101-2_neg.cc b/libstdc++-v3/testsuite/23_containers/map/48101-2_neg.cc
index 06c4dc9..8cda993 100644
--- a/libstdc++-v3/testsuite/23_containers/map/48101-2_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/map/48101-2_neg.cc
@@ -15,8 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-do compile }
-// { dg-options "-std=c++11" }
+// { dg-do compile { target c++11 } }
+// { dg-add-options strict_std }
#include <map>
diff --git a/libstdc++-v3/testsuite/23_containers/map/48101-3_neg.cc b/libstdc++-v3/testsuite/23_containers/map/48101-3_neg.cc
index 0172d41..9802e24 100644
--- a/libstdc++-v3/testsuite/23_containers/map/48101-3_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/map/48101-3_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <map>
diff --git a/libstdc++-v3/testsuite/23_containers/map/48101_neg.cc b/libstdc++-v3/testsuite/23_containers/map/48101_neg.cc
index e9029ca..8183795 100644
--- a/libstdc++-v3/testsuite/23_containers/map/48101_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/map/48101_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-do compile }
-// { dg-options "-std=c++11" }
+// { dg-do compile { target c++11 } }
#include <map>
diff --git a/libstdc++-v3/testsuite/23_containers/map/erasure.cc b/libstdc++-v3/testsuite/23_containers/map/erasure.cc
index 4d5e91a..078d129 100644
--- a/libstdc++-v3/testsuite/23_containers/map/erasure.cc
+++ b/libstdc++-v3/testsuite/23_containers/map/erasure.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2018-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/23_containers/map/modifiers/emplace/92878_92947.cc b/libstdc++-v3/testsuite/23_containers/map/modifiers/emplace/92878_92947.cc
index d6fde81..77d7bc7 100644
--- a/libstdc++-v3/testsuite/23_containers/map/modifiers/emplace/92878_92947.cc
+++ b/libstdc++-v3/testsuite/23_containers/map/modifiers/emplace/92878_92947.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/23_containers/map/operations/contains.cc b/libstdc++-v3/testsuite/23_containers/map/operations/contains.cc
index 134adf6..9ab1973 100644
--- a/libstdc++-v3/testsuite/23_containers/map/operations/contains.cc
+++ b/libstdc++-v3/testsuite/23_containers/map/operations/contains.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <map>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/map/operators/cmp_c++20.cc b/libstdc++-v3/testsuite/23_containers/map/operators/cmp_c++20.cc
index 07d4e8a..8ba0632 100644
--- a/libstdc++-v3/testsuite/23_containers/map/operators/cmp_c++20.cc
+++ b/libstdc++-v3/testsuite/23_containers/map/operators/cmp_c++20.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <map>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/multimap/48101-2_neg.cc b/libstdc++-v3/testsuite/23_containers/multimap/48101-2_neg.cc
index fd77071..6022039 100644
--- a/libstdc++-v3/testsuite/23_containers/multimap/48101-2_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/multimap/48101-2_neg.cc
@@ -15,8 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-do compile }
-// { dg-options "-std=c++11" }
+// { dg-do compile { target c++11 } }
+// { dg-add-options strict_std }
#include <map>
diff --git a/libstdc++-v3/testsuite/23_containers/multimap/48101-3_neg.cc b/libstdc++-v3/testsuite/23_containers/multimap/48101-3_neg.cc
index 8f351db..e37e069 100644
--- a/libstdc++-v3/testsuite/23_containers/multimap/48101-3_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/multimap/48101-3_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <map>
diff --git a/libstdc++-v3/testsuite/23_containers/multimap/48101_neg.cc b/libstdc++-v3/testsuite/23_containers/multimap/48101_neg.cc
index 942a5aa..55626ed 100644
--- a/libstdc++-v3/testsuite/23_containers/multimap/48101_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/multimap/48101_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-do compile }
-// { dg-options "-std=c++11" }
+// { dg-do compile { target c++11 } }
#include <map>
diff --git a/libstdc++-v3/testsuite/23_containers/multimap/modifiers/emplace/92878_92947.cc b/libstdc++-v3/testsuite/23_containers/multimap/modifiers/emplace/92878_92947.cc
index e7412ef..700bf17 100644
--- a/libstdc++-v3/testsuite/23_containers/multimap/modifiers/emplace/92878_92947.cc
+++ b/libstdc++-v3/testsuite/23_containers/multimap/modifiers/emplace/92878_92947.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/23_containers/multimap/operations/contains.cc b/libstdc++-v3/testsuite/23_containers/multimap/operations/contains.cc
index 906301e..955b866 100644
--- a/libstdc++-v3/testsuite/23_containers/multimap/operations/contains.cc
+++ b/libstdc++-v3/testsuite/23_containers/multimap/operations/contains.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <map>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/multimap/operators/cmp_c++20.cc b/libstdc++-v3/testsuite/23_containers/multimap/operators/cmp_c++20.cc
index 355b3dd..5ba8929 100644
--- a/libstdc++-v3/testsuite/23_containers/multimap/operators/cmp_c++20.cc
+++ b/libstdc++-v3/testsuite/23_containers/multimap/operators/cmp_c++20.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <map>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/multiset/48101-2_neg.cc b/libstdc++-v3/testsuite/23_containers/multiset/48101-2_neg.cc
index c1c1f64..619b97e 100644
--- a/libstdc++-v3/testsuite/23_containers/multiset/48101-2_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/multiset/48101-2_neg.cc
@@ -15,8 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-do compile }
-// { dg-options "-std=c++11" }
+// { dg-do compile { target c++11 } }
+// { dg-add-options strict_std }
#include <set>
diff --git a/libstdc++-v3/testsuite/23_containers/multiset/48101-3_neg.cc b/libstdc++-v3/testsuite/23_containers/multiset/48101-3_neg.cc
index 35a1234..0aeaa23 100644
--- a/libstdc++-v3/testsuite/23_containers/multiset/48101-3_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/multiset/48101-3_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <set>
diff --git a/libstdc++-v3/testsuite/23_containers/multiset/modifiers/emplace/92878_92947.cc b/libstdc++-v3/testsuite/23_containers/multiset/modifiers/emplace/92878_92947.cc
index 241c640..a16d959 100644
--- a/libstdc++-v3/testsuite/23_containers/multiset/modifiers/emplace/92878_92947.cc
+++ b/libstdc++-v3/testsuite/23_containers/multiset/modifiers/emplace/92878_92947.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/23_containers/multiset/operations/contains.cc b/libstdc++-v3/testsuite/23_containers/multiset/operations/contains.cc
index f5144ee..9ba1e0d 100644
--- a/libstdc++-v3/testsuite/23_containers/multiset/operations/contains.cc
+++ b/libstdc++-v3/testsuite/23_containers/multiset/operations/contains.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <set>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/multiset/operators/cmp_c++20.cc b/libstdc++-v3/testsuite/23_containers/multiset/operators/cmp_c++20.cc
index acbb5aa..82d2eb1 100644
--- a/libstdc++-v3/testsuite/23_containers/multiset/operators/cmp_c++20.cc
+++ b/libstdc++-v3/testsuite/23_containers/multiset/operators/cmp_c++20.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <set>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/priority_queue/92878_92947.cc b/libstdc++-v3/testsuite/23_containers/priority_queue/92878_92947.cc
index 01f1fb4..92d200b 100644
--- a/libstdc++-v3/testsuite/23_containers/priority_queue/92878_92947.cc
+++ b/libstdc++-v3/testsuite/23_containers/priority_queue/92878_92947.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/23_containers/queue/92878_92947.cc b/libstdc++-v3/testsuite/23_containers/queue/92878_92947.cc
index e2e7477..0b4b947 100644
--- a/libstdc++-v3/testsuite/23_containers/queue/92878_92947.cc
+++ b/libstdc++-v3/testsuite/23_containers/queue/92878_92947.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/23_containers/queue/cmp_c++20.cc b/libstdc++-v3/testsuite/23_containers/queue/cmp_c++20.cc
index 643c986..5a04e8c 100644
--- a/libstdc++-v3/testsuite/23_containers/queue/cmp_c++20.cc
+++ b/libstdc++-v3/testsuite/23_containers/queue/cmp_c++20.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <queue>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/queue/cons_from_iters.cc b/libstdc++-v3/testsuite/23_containers/queue/cons_from_iters.cc
index 1237d6eb..334ef00 100644
--- a/libstdc++-v3/testsuite/23_containers/queue/cons_from_iters.cc
+++ b/libstdc++-v3/testsuite/23_containers/queue/cons_from_iters.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <queue>
diff --git a/libstdc++-v3/testsuite/23_containers/set/48101-2_neg.cc b/libstdc++-v3/testsuite/23_containers/set/48101-2_neg.cc
index 6466b38..d83a08c 100644
--- a/libstdc++-v3/testsuite/23_containers/set/48101-2_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/set/48101-2_neg.cc
@@ -15,8 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-do compile }
-// { dg-options "-std=c++11" }
+// { dg-do compile { target c++11 } }
+// { dg-add-options strict_std }
#include <set>
diff --git a/libstdc++-v3/testsuite/23_containers/set/48101-3_neg.cc b/libstdc++-v3/testsuite/23_containers/set/48101-3_neg.cc
index 3065e70..a334335 100644
--- a/libstdc++-v3/testsuite/23_containers/set/48101-3_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/set/48101-3_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <set>
diff --git a/libstdc++-v3/testsuite/23_containers/set/erasure.cc b/libstdc++-v3/testsuite/23_containers/set/erasure.cc
index eafb4b1..a2bbf3a 100644
--- a/libstdc++-v3/testsuite/23_containers/set/erasure.cc
+++ b/libstdc++-v3/testsuite/23_containers/set/erasure.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2018-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/23_containers/set/modifiers/emplace/92878_92947.cc b/libstdc++-v3/testsuite/23_containers/set/modifiers/emplace/92878_92947.cc
index e46188d..999dcbf 100644
--- a/libstdc++-v3/testsuite/23_containers/set/modifiers/emplace/92878_92947.cc
+++ b/libstdc++-v3/testsuite/23_containers/set/modifiers/emplace/92878_92947.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/23_containers/set/operations/contains.cc b/libstdc++-v3/testsuite/23_containers/set/operations/contains.cc
index 79f4412..9498827 100644
--- a/libstdc++-v3/testsuite/23_containers/set/operations/contains.cc
+++ b/libstdc++-v3/testsuite/23_containers/set/operations/contains.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <set>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/set/operators/cmp_c++20.cc b/libstdc++-v3/testsuite/23_containers/set/operators/cmp_c++20.cc
index 9e2e170..390d8c9 100644
--- a/libstdc++-v3/testsuite/23_containers/set/operators/cmp_c++20.cc
+++ b/libstdc++-v3/testsuite/23_containers/set/operators/cmp_c++20.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <set>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/span/1.cc b/libstdc++-v3/testsuite/23_containers/span/1.cc
index 7f99f92..40bb7a0 100644
--- a/libstdc++-v3/testsuite/23_containers/span/1.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <span>
diff --git a/libstdc++-v3/testsuite/23_containers/span/101411.cc b/libstdc++-v3/testsuite/23_containers/span/101411.cc
index dbc13c5..7d060fa 100644
--- a/libstdc++-v3/testsuite/23_containers/span/101411.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/101411.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
#include <span>
diff --git a/libstdc++-v3/testsuite/23_containers/span/2.cc b/libstdc++-v3/testsuite/23_containers/span/2.cc
index 2967687c..533d172 100644
--- a/libstdc++-v3/testsuite/23_containers/span/2.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/2.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <version>
diff --git a/libstdc++-v3/testsuite/23_containers/span/back_assert_neg.cc b/libstdc++-v3/testsuite/23_containers/span/back_assert_neg.cc
index 2b4dee6..b42aea3 100644
--- a/libstdc++-v3/testsuite/23_containers/span/back_assert_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/back_assert_neg.cc
@@ -15,9 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { xfail *-*-* } }
-// { dg-require-effective-target c++2a }
+// { dg-do run { target c++20 xfail *-*-* } }
+// { dg-add-options no_pch }
#undef _GLIBCXX_ASSERTIONS
#define _GLIBCXX_ASSERTIONS
diff --git a/libstdc++-v3/testsuite/23_containers/span/back_neg.cc b/libstdc++-v3/testsuite/23_containers/span/back_neg.cc
index 01083e6..d3ea4f4 100644
--- a/libstdc++-v3/testsuite/23_containers/span/back_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/back_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <span>
diff --git a/libstdc++-v3/testsuite/23_containers/span/cons_1_assert_neg.cc b/libstdc++-v3/testsuite/23_containers/span/cons_1_assert_neg.cc
index 2f55512..1020846 100644
--- a/libstdc++-v3/testsuite/23_containers/span/cons_1_assert_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/cons_1_assert_neg.cc
@@ -1,6 +1,5 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { xfail *-*-* } }
-// { dg-require-effective-target c++2a }
+// { dg-do run { target c++20 xfail *-*-* } }
+// { dg-add-options no_pch }
#undef _GLIBCXX_DEBUG
#define _GLIBCXX_DEBUG
diff --git a/libstdc++-v3/testsuite/23_containers/span/cons_2_assert_neg.cc b/libstdc++-v3/testsuite/23_containers/span/cons_2_assert_neg.cc
index efef0e6..e3a3a26 100644
--- a/libstdc++-v3/testsuite/23_containers/span/cons_2_assert_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/cons_2_assert_neg.cc
@@ -1,6 +1,5 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { xfail *-*-* } }
-// { dg-require-effective-target c++2a }
+// { dg-do run { target c++20 xfail *-*-* } }
+// { dg-add-options no_pch }
#undef _GLIBCXX_DEBUG
#define _GLIBCXX_DEBUG
diff --git a/libstdc++-v3/testsuite/23_containers/span/contiguous_range_neg.cc b/libstdc++-v3/testsuite/23_containers/span/contiguous_range_neg.cc
index d5f6492..2ed4474 100644
--- a/libstdc++-v3/testsuite/23_containers/span/contiguous_range_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/contiguous_range_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=c++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <span>
#include <deque>
diff --git a/libstdc++-v3/testsuite/23_containers/span/deduction.cc b/libstdc++-v3/testsuite/23_containers/span/deduction.cc
index 886abd3..162de26 100644
--- a/libstdc++-v3/testsuite/23_containers/span/deduction.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/deduction.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <span>
diff --git a/libstdc++-v3/testsuite/23_containers/span/everything.cc b/libstdc++-v3/testsuite/23_containers/span/everything.cc
index 74f943e..31c1734 100644
--- a/libstdc++-v3/testsuite/23_containers/span/everything.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/everything.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=c++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/span/explicit.cc b/libstdc++-v3/testsuite/23_containers/span/explicit.cc
index b0a1311..7de90d6 100644
--- a/libstdc++-v3/testsuite/23_containers/span/explicit.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/explicit.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <span>
diff --git a/libstdc++-v3/testsuite/23_containers/span/first_2_assert_neg.cc b/libstdc++-v3/testsuite/23_containers/span/first_2_assert_neg.cc
index 93cd095..876a6b7 100644
--- a/libstdc++-v3/testsuite/23_containers/span/first_2_assert_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/first_2_assert_neg.cc
@@ -15,9 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { xfail *-*-* } }
-// { dg-require-effective-target c++2a }
+// { dg-do run { target c++20 xfail *-*-* } }
+// { dg-add-options no_pch }
#undef _GLIBCXX_ASSERTIONS
#define _GLIBCXX_ASSERTIONS
diff --git a/libstdc++-v3/testsuite/23_containers/span/first_assert_neg.cc b/libstdc++-v3/testsuite/23_containers/span/first_assert_neg.cc
index 4ff56bf..f1d8cdc 100644
--- a/libstdc++-v3/testsuite/23_containers/span/first_assert_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/first_assert_neg.cc
@@ -15,9 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { xfail *-*-* } }
-// { dg-require-effective-target c++2a }
+// { dg-do run { target c++20 xfail *-*-* } }
+// { dg-add-options no_pch }
#undef _GLIBCXX_ASSERTIONS
#define _GLIBCXX_ASSERTIONS
diff --git a/libstdc++-v3/testsuite/23_containers/span/first_neg.cc b/libstdc++-v3/testsuite/23_containers/span/first_neg.cc
index 8ed6829..4a8cd18 100644
--- a/libstdc++-v3/testsuite/23_containers/span/first_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/first_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <span>
diff --git a/libstdc++-v3/testsuite/23_containers/span/front_assert_neg.cc b/libstdc++-v3/testsuite/23_containers/span/front_assert_neg.cc
index 2d4320d..12cbd4a 100644
--- a/libstdc++-v3/testsuite/23_containers/span/front_assert_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/front_assert_neg.cc
@@ -15,9 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { xfail *-*-* } }
-// { dg-require-effective-target c++2a }
+// { dg-do run { target c++20 xfail *-*-* } }
+// { dg-add-options no_pch }
#undef _GLIBCXX_ASSERTIONS
#define _GLIBCXX_ASSERTIONS
diff --git a/libstdc++-v3/testsuite/23_containers/span/front_neg.cc b/libstdc++-v3/testsuite/23_containers/span/front_neg.cc
index f8e8100..b5525db 100644
--- a/libstdc++-v3/testsuite/23_containers/span/front_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/front_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <span>
diff --git a/libstdc++-v3/testsuite/23_containers/span/index_op_assert_neg.cc b/libstdc++-v3/testsuite/23_containers/span/index_op_assert_neg.cc
index b2633cb..c75924e 100644
--- a/libstdc++-v3/testsuite/23_containers/span/index_op_assert_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/index_op_assert_neg.cc
@@ -15,9 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { xfail *-*-* } }
-// { dg-require-effective-target c++2a }
+// { dg-do run { target c++20 xfail *-*-* } }
+// { dg-add-options no_pch }
#undef _GLIBCXX_ASSERTIONS
#define _GLIBCXX_ASSERTIONS
diff --git a/libstdc++-v3/testsuite/23_containers/span/index_op_neg.cc b/libstdc++-v3/testsuite/23_containers/span/index_op_neg.cc
index 8bbe8ea..6e8cd49 100644
--- a/libstdc++-v3/testsuite/23_containers/span/index_op_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/index_op_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <span>
diff --git a/libstdc++-v3/testsuite/23_containers/span/last_2_assert_neg.cc b/libstdc++-v3/testsuite/23_containers/span/last_2_assert_neg.cc
index 90689691..a464fa5 100644
--- a/libstdc++-v3/testsuite/23_containers/span/last_2_assert_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/last_2_assert_neg.cc
@@ -15,9 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { xfail *-*-* } }
-// { dg-require-effective-target c++2a }
+// { dg-do run { target c++20 xfail *-*-* } }
+// { dg-add-options no_pch }
#undef _GLIBCXX_ASSERTIONS
#define _GLIBCXX_ASSERTIONS
diff --git a/libstdc++-v3/testsuite/23_containers/span/last_assert_neg.cc b/libstdc++-v3/testsuite/23_containers/span/last_assert_neg.cc
index 59cd44a..f36db45 100644
--- a/libstdc++-v3/testsuite/23_containers/span/last_assert_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/last_assert_neg.cc
@@ -15,9 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { xfail *-*-* } }
-// { dg-require-effective-target c++2a }
+// { dg-do run { target c++20 xfail *-*-* } }
+// { dg-add-options no_pch }
#undef _GLIBCXX_ASSERTIONS
#define _GLIBCXX_ASSERTIONS
diff --git a/libstdc++-v3/testsuite/23_containers/span/last_neg.cc b/libstdc++-v3/testsuite/23_containers/span/last_neg.cc
index 9c360d2..2e86233 100644
--- a/libstdc++-v3/testsuite/23_containers/span/last_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/last_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <span>
diff --git a/libstdc++-v3/testsuite/23_containers/span/layout_compat.cc b/libstdc++-v3/testsuite/23_containers/span/layout_compat.cc
index 01f5eae..b681590 100644
--- a/libstdc++-v3/testsuite/23_containers/span/layout_compat.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/layout_compat.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <span>
#include <cstddef>
diff --git a/libstdc++-v3/testsuite/23_containers/span/lwg3255.cc b/libstdc++-v3/testsuite/23_containers/span/lwg3255.cc
index d504634..c669575 100644
--- a/libstdc++-v3/testsuite/23_containers/span/lwg3255.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/lwg3255.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <span>
#include <array>
diff --git a/libstdc++-v3/testsuite/23_containers/span/nothrow_cons.cc b/libstdc++-v3/testsuite/23_containers/span/nothrow_cons.cc
index dc716db..feafb9a 100644
--- a/libstdc++-v3/testsuite/23_containers/span/nothrow_cons.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/nothrow_cons.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <span>
diff --git a/libstdc++-v3/testsuite/23_containers/span/subspan_2_assert_neg.cc b/libstdc++-v3/testsuite/23_containers/span/subspan_2_assert_neg.cc
index 488b560..12b79ff 100644
--- a/libstdc++-v3/testsuite/23_containers/span/subspan_2_assert_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/subspan_2_assert_neg.cc
@@ -15,9 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { xfail *-*-* } }
-// { dg-require-effective-target c++2a }
+// { dg-do run { target c++20 xfail *-*-* } }
+// { dg-add-options no_pch }
#undef _GLIBCXX_ASSERTIONS
#define _GLIBCXX_ASSERTIONS
diff --git a/libstdc++-v3/testsuite/23_containers/span/subspan_3_assert_neg.cc b/libstdc++-v3/testsuite/23_containers/span/subspan_3_assert_neg.cc
index 8324edf..3130a50 100644
--- a/libstdc++-v3/testsuite/23_containers/span/subspan_3_assert_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/subspan_3_assert_neg.cc
@@ -15,9 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { xfail *-*-* } }
-// { dg-require-effective-target c++2a }
+// { dg-do run { target c++20 xfail *-*-* } }
+// { dg-add-options no_pch }
#undef _GLIBCXX_ASSERTIONS
#define _GLIBCXX_ASSERTIONS
diff --git a/libstdc++-v3/testsuite/23_containers/span/subspan_4_assert_neg.cc b/libstdc++-v3/testsuite/23_containers/span/subspan_4_assert_neg.cc
index b1dbfe6..2a57ddf 100644
--- a/libstdc++-v3/testsuite/23_containers/span/subspan_4_assert_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/subspan_4_assert_neg.cc
@@ -15,9 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { xfail *-*-* } }
-// { dg-require-effective-target c++2a }
+// { dg-do run { target c++20 xfail *-*-* } }
+// { dg-add-options no_pch }
#undef _GLIBCXX_ASSERTIONS
#define _GLIBCXX_ASSERTIONS
diff --git a/libstdc++-v3/testsuite/23_containers/span/subspan_5_assert_neg.cc b/libstdc++-v3/testsuite/23_containers/span/subspan_5_assert_neg.cc
index 2102fd0..48aaeaf 100644
--- a/libstdc++-v3/testsuite/23_containers/span/subspan_5_assert_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/subspan_5_assert_neg.cc
@@ -15,9 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { xfail *-*-* } }
-// { dg-require-effective-target c++2a }
+// { dg-do run { target c++20 xfail *-*-* } }
+// { dg-add-options no_pch }
#undef _GLIBCXX_ASSERTIONS
#define _GLIBCXX_ASSERTIONS
diff --git a/libstdc++-v3/testsuite/23_containers/span/subspan_6_assert_neg.cc b/libstdc++-v3/testsuite/23_containers/span/subspan_6_assert_neg.cc
index c003561..2c90c5e 100644
--- a/libstdc++-v3/testsuite/23_containers/span/subspan_6_assert_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/subspan_6_assert_neg.cc
@@ -15,9 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { xfail *-*-* } }
-// { dg-require-effective-target c++2a }
+// { dg-do run { target c++20 xfail *-*-* } }
+// { dg-add-options no_pch }
#undef _GLIBCXX_ASSERTIONS
#define _GLIBCXX_ASSERTIONS
diff --git a/libstdc++-v3/testsuite/23_containers/span/subspan_assert_neg.cc b/libstdc++-v3/testsuite/23_containers/span/subspan_assert_neg.cc
index c46b78f..4873c75 100644
--- a/libstdc++-v3/testsuite/23_containers/span/subspan_assert_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/subspan_assert_neg.cc
@@ -15,9 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { xfail *-*-* } }
-// { dg-require-effective-target c++2a }
+// { dg-do run { target c++20 xfail *-*-* } }
+// { dg-add-options no_pch }
#undef _GLIBCXX_ASSERTIONS
#define _GLIBCXX_ASSERTIONS
diff --git a/libstdc++-v3/testsuite/23_containers/span/subspan_neg.cc b/libstdc++-v3/testsuite/23_containers/span/subspan_neg.cc
index 205bafd..3c69f23 100644
--- a/libstdc++-v3/testsuite/23_containers/span/subspan_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/subspan_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <span>
diff --git a/libstdc++-v3/testsuite/23_containers/span/trivially_copyable.cc b/libstdc++-v3/testsuite/23_containers/span/trivially_copyable.cc
index e374829..ae4f4b6 100644
--- a/libstdc++-v3/testsuite/23_containers/span/trivially_copyable.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/trivially_copyable.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2251r1.pdf
diff --git a/libstdc++-v3/testsuite/23_containers/stack/92878_92947.cc b/libstdc++-v3/testsuite/23_containers/stack/92878_92947.cc
index ab340b3..0a2dea8 100644
--- a/libstdc++-v3/testsuite/23_containers/stack/92878_92947.cc
+++ b/libstdc++-v3/testsuite/23_containers/stack/92878_92947.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/23_containers/stack/cmp_c++20.cc b/libstdc++-v3/testsuite/23_containers/stack/cmp_c++20.cc
index 912eada..671be8b 100644
--- a/libstdc++-v3/testsuite/23_containers/stack/cmp_c++20.cc
+++ b/libstdc++-v3/testsuite/23_containers/stack/cmp_c++20.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <stack>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/stack/cons_from_iters.cc b/libstdc++-v3/testsuite/23_containers/stack/cons_from_iters.cc
index 2125df5..7724095 100644
--- a/libstdc++-v3/testsuite/23_containers/stack/cons_from_iters.cc
+++ b/libstdc++-v3/testsuite/23_containers/stack/cons_from_iters.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <stack>
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_map/48101-2_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_map/48101-2_neg.cc
index 8ea74e6..c45ef0d 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_map/48101-2_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_map/48101-2_neg.cc
@@ -15,8 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-do compile }
-// { dg-options "-std=c++11" }
+// { dg-do compile { target c++11 } }
+// { dg-add-options strict_std }
#include <unordered_map>
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_map/48101-3_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_map/48101-3_neg.cc
index f9e042e..1466479 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_map/48101-3_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_map/48101-3_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <unordered_map>
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_map/erasure.cc b/libstdc++-v3/testsuite/23_containers/unordered_map/erasure.cc
index faebd31..696fc05 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_map/erasure.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_map/erasure.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2018-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/92878_92947.cc b/libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/92878_92947.cc
index 9a0eb75..0e48561 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/92878_92947.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/92878_92947.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_map/operations/1.cc b/libstdc++-v3/testsuite/23_containers/unordered_map/operations/1.cc
index 835f845..cfeca60 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_map/operations/1.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_map/operations/1.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
#include <unordered_map>
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_map/operations/contains.cc b/libstdc++-v3/testsuite/23_containers/unordered_map/operations/contains.cc
index dde645b..547828d 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_map/operations/contains.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_map/operations/contains.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <unordered_map>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multimap/48101-2_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_multimap/48101-2_neg.cc
index 38afec9..39eeb0f 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_multimap/48101-2_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_multimap/48101-2_neg.cc
@@ -15,8 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-do compile }
-// { dg-options "-std=c++11" }
+// { dg-do compile { target c++11 } }
+// { dg-add-options strict_std }
#include <unordered_map>
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multimap/48101-3_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_multimap/48101-3_neg.cc
index 0879ccf..79ed16a 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_multimap/48101-3_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_multimap/48101-3_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <unordered_map>
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/92878_92947.cc b/libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/92878_92947.cc
index 980a3cd..116d5d4 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/92878_92947.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_multimap/modifiers/92878_92947.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multimap/operations/1.cc b/libstdc++-v3/testsuite/23_containers/unordered_multimap/operations/1.cc
index 988a666..7e3867f 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_multimap/operations/1.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_multimap/operations/1.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
#include <unordered_map>
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multimap/operations/contains.cc b/libstdc++-v3/testsuite/23_containers/unordered_multimap/operations/contains.cc
index 3d9f4ec..ebb7342 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_multimap/operations/contains.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_multimap/operations/contains.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <unordered_map>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multiset/48101-2_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_multiset/48101-2_neg.cc
index 389cb94..006716e 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_multiset/48101-2_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_multiset/48101-2_neg.cc
@@ -15,8 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-do compile }
-// { dg-options "-std=c++11" }
+// { dg-do compile { target c++11 } }
+// { dg-add-options strict_std }
#include <unordered_set>
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multiset/48101-3_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_multiset/48101-3_neg.cc
index 01de7f5..796875a 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_multiset/48101-3_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_multiset/48101-3_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <unordered_set>
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/92878_92947.cc b/libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/92878_92947.cc
index 16c28d4..fb3d174 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/92878_92947.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/92878_92947.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multiset/operations/1.cc b/libstdc++-v3/testsuite/23_containers/unordered_multiset/operations/1.cc
index 91b0f87..7db4d12 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_multiset/operations/1.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_multiset/operations/1.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
#include <unordered_set>
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multiset/operations/contains.cc b/libstdc++-v3/testsuite/23_containers/unordered_multiset/operations/contains.cc
index 44c88d5..9b216bb 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_multiset/operations/contains.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_multiset/operations/contains.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <unordered_set>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/48101-2_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_set/48101-2_neg.cc
index 08ef3b5..ed5a778 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_set/48101-2_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_set/48101-2_neg.cc
@@ -15,8 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-do compile }
-// { dg-options "-std=c++11" }
+// { dg-do compile { target c++11 } }
+// { dg-add-options strict_std }
#include <unordered_set>
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/48101-3_neg.cc b/libstdc++-v3/testsuite/23_containers/unordered_set/48101-3_neg.cc
index 77edab6..3052188 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_set/48101-3_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_set/48101-3_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <unordered_set>
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/erasure.cc b/libstdc++-v3/testsuite/23_containers/unordered_set/erasure.cc
index 31611e3..2384136 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_set/erasure.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_set/erasure.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2018-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/92878_92947.cc b/libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/92878_92947.cc
index 0ee4b84..86b9204 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/92878_92947.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/92878_92947.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/operations/1.cc b/libstdc++-v3/testsuite/23_containers/unordered_set/operations/1.cc
index dea21df..b2f1399 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_set/operations/1.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_set/operations/1.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
#include <unordered_set>
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/operations/contains.cc b/libstdc++-v3/testsuite/23_containers/unordered_set/operations/contains.cc
index 4713c5f..356e809 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_set/operations/contains.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_set/operations/contains.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <unordered_set>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/vector/48101-2_neg.cc b/libstdc++-v3/testsuite/23_containers/vector/48101-2_neg.cc
index ed51112..0dd7595 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/48101-2_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/48101-2_neg.cc
@@ -15,8 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-do compile }
-// { dg-options "-std=c++11" }
+// { dg-do compile { target c++11 } }
+// { dg-add-options strict_std }
#include <vector>
diff --git a/libstdc++-v3/testsuite/23_containers/vector/48101-3_neg.cc b/libstdc++-v3/testsuite/23_containers/vector/48101-3_neg.cc
index 0cf23fa..23b72ee 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/48101-3_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/48101-3_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <vector>
diff --git a/libstdc++-v3/testsuite/23_containers/vector/bool/capacity/constexpr.cc b/libstdc++-v3/testsuite/23_containers/vector/bool/capacity/constexpr.cc
index 50e420b..d44e9d9 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/bool/capacity/constexpr.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/bool/capacity/constexpr.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-xfail-if "not supported" { debug_mode } }
diff --git a/libstdc++-v3/testsuite/23_containers/vector/bool/cmp_c++20.cc b/libstdc++-v3/testsuite/23_containers/vector/bool/cmp_c++20.cc
index 570f168..66197e0 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/bool/cmp_c++20.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/bool/cmp_c++20.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-xfail-if "not supported" { debug_mode } }
#include <vector>
diff --git a/libstdc++-v3/testsuite/23_containers/vector/bool/cons/constexpr.cc b/libstdc++-v3/testsuite/23_containers/vector/bool/cons/constexpr.cc
index 3087cbd..0e0c1e1 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/bool/cons/constexpr.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/bool/cons/constexpr.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-xfail-if "not supported" { debug_mode } }
diff --git a/libstdc++-v3/testsuite/23_containers/vector/bool/element_access/1.cc b/libstdc++-v3/testsuite/23_containers/vector/bool/element_access/1.cc
index 9016c02..2a43084 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/bool/element_access/1.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/bool/element_access/1.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
// { dg-xfail-if "not supported" { debug_mode } }
diff --git a/libstdc++-v3/testsuite/23_containers/vector/bool/element_access/constexpr.cc b/libstdc++-v3/testsuite/23_containers/vector/bool/element_access/constexpr.cc
index e2ec21c..5b8ca94 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/bool/element_access/constexpr.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/bool/element_access/constexpr.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-xfail-if "not supported" { debug_mode } }
diff --git a/libstdc++-v3/testsuite/23_containers/vector/bool/iterator_c++20.cc b/libstdc++-v3/testsuite/23_containers/vector/bool/iterator_c++20.cc
index 811f907..dd0b15a 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/bool/iterator_c++20.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/bool/iterator_c++20.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <vector>
diff --git a/libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/assign/constexpr.cc b/libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/assign/constexpr.cc
index 94e318e..3ad7dda 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/assign/constexpr.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/assign/constexpr.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-xfail-if "not supported" { debug_mode } }
diff --git a/libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/constexpr.cc b/libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/constexpr.cc
index 634cc4e..22a4df5 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/constexpr.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/constexpr.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-xfail-if "not supported" { debug_mode } }
diff --git a/libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/swap/constexpr.cc b/libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/swap/constexpr.cc
index 40ff299..624ff96 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/swap/constexpr.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/swap/constexpr.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-xfail-if "not supported" { debug_mode } }
diff --git a/libstdc++-v3/testsuite/23_containers/vector/capacity/constexpr.cc b/libstdc++-v3/testsuite/23_containers/vector/capacity/constexpr.cc
index f102e78..018a479 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/capacity/constexpr.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/capacity/constexpr.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-xfail-if "not supported" { debug_mode } }
diff --git a/libstdc++-v3/testsuite/23_containers/vector/cmp_c++20.cc b/libstdc++-v3/testsuite/23_containers/vector/cmp_c++20.cc
index 52c2c59..72c5c6c 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/cmp_c++20.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/cmp_c++20.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-xfail-if "not supported" { debug_mode } }
#include <vector>
diff --git a/libstdc++-v3/testsuite/23_containers/vector/cons/constexpr.cc b/libstdc++-v3/testsuite/23_containers/vector/cons/constexpr.cc
index e6324ad..9a78458 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/cons/constexpr.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/cons/constexpr.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-xfail-if "not supported" { debug_mode } }
diff --git a/libstdc++-v3/testsuite/23_containers/vector/data_access/constexpr.cc b/libstdc++-v3/testsuite/23_containers/vector/data_access/constexpr.cc
index 3f69750..f5b601a 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/data_access/constexpr.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/data_access/constexpr.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-xfail-if "not supported" { debug_mode } }
diff --git a/libstdc++-v3/testsuite/23_containers/vector/element_access/constexpr.cc b/libstdc++-v3/testsuite/23_containers/vector/element_access/constexpr.cc
index b9239ae..60c66dc 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/element_access/constexpr.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/element_access/constexpr.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-xfail-if "not supported" { debug_mode } }
diff --git a/libstdc++-v3/testsuite/23_containers/vector/erasure.cc b/libstdc++-v3/testsuite/23_containers/vector/erasure.cc
index ca92599..2135b6b 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/erasure.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/erasure.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2018-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/23_containers/vector/modifiers/assign/constexpr.cc b/libstdc++-v3/testsuite/23_containers/vector/modifiers/assign/constexpr.cc
index 6531101..cca20f4 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/modifiers/assign/constexpr.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/modifiers/assign/constexpr.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-xfail-if "not supported" { debug_mode } }
diff --git a/libstdc++-v3/testsuite/23_containers/vector/modifiers/constexpr.cc b/libstdc++-v3/testsuite/23_containers/vector/modifiers/constexpr.cc
index f0d9561..766e3a7 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/modifiers/constexpr.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/modifiers/constexpr.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-xfail-if "not supported" { debug_mode } }
diff --git a/libstdc++-v3/testsuite/23_containers/vector/modifiers/emplace/92878_92947.cc b/libstdc++-v3/testsuite/23_containers/vector/modifiers/emplace/92878_92947.cc
index eec7ff0..8895dbf 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/modifiers/emplace/92878_92947.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/modifiers/emplace/92878_92947.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
diff --git a/libstdc++-v3/testsuite/23_containers/vector/modifiers/swap/constexpr.cc b/libstdc++-v3/testsuite/23_containers/vector/modifiers/swap/constexpr.cc
index aa3436c..45b3986 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/modifiers/swap/constexpr.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/modifiers/swap/constexpr.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-xfail-if "not supported" { debug_mode } }
diff --git a/libstdc++-v3/testsuite/23_containers/vector/requirements/version.cc b/libstdc++-v3/testsuite/23_containers/vector/requirements/version.cc
index 4c69d14..50a10d2 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/requirements/version.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/requirements/version.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do preprocess { target c++20 } }
// { dg-require-effective-target hosted }
diff --git a/libstdc++-v3/testsuite/24_iterators/aliases.cc b/libstdc++-v3/testsuite/24_iterators/aliases.cc
index 4abec9d..89ee996 100644
--- a/libstdc++-v3/testsuite/24_iterators/aliases.cc
+++ b/libstdc++-v3/testsuite/24_iterators/aliases.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <iterator>
diff --git a/libstdc++-v3/testsuite/24_iterators/associated_types/incrementable.traits.cc b/libstdc++-v3/testsuite/24_iterators/associated_types/incrementable.traits.cc
index ba6c2de..54f96c6 100644
--- a/libstdc++-v3/testsuite/24_iterators/associated_types/incrementable.traits.cc
+++ b/libstdc++-v3/testsuite/24_iterators/associated_types/incrementable.traits.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <iterator>
diff --git a/libstdc++-v3/testsuite/24_iterators/associated_types/iterator.traits.cc b/libstdc++-v3/testsuite/24_iterators/associated_types/iterator.traits.cc
index d7b0d17..f979397 100644
--- a/libstdc++-v3/testsuite/24_iterators/associated_types/iterator.traits.cc
+++ b/libstdc++-v3/testsuite/24_iterators/associated_types/iterator.traits.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <iterator>
diff --git a/libstdc++-v3/testsuite/24_iterators/associated_types/readable.traits.cc b/libstdc++-v3/testsuite/24_iterators/associated_types/readable.traits.cc
index 8fc66cf..9d03991 100644
--- a/libstdc++-v3/testsuite/24_iterators/associated_types/readable.traits.cc
+++ b/libstdc++-v3/testsuite/24_iterators/associated_types/readable.traits.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <iterator>
diff --git a/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/constexpr.cc b/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/constexpr.cc
index 8155ec2..9bb8e96 100644
--- a/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/constexpr.cc
+++ b/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <iterator>
diff --git a/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/pr93884.cc b/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/pr93884.cc
index 3a284a0..6e01652 100644
--- a/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/pr93884.cc
+++ b/libstdc++-v3/testsuite/24_iterators/back_insert_iterator/pr93884.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <iterator>
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/24_iterators/bidirectional/concept.cc b/libstdc++-v3/testsuite/24_iterators/bidirectional/concept.cc
index d053ad3..a239ef8 100644
--- a/libstdc++-v3/testsuite/24_iterators/bidirectional/concept.cc
+++ b/libstdc++-v3/testsuite/24_iterators/bidirectional/concept.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <iterator>
diff --git a/libstdc++-v3/testsuite/24_iterators/common_iterator/1.cc b/libstdc++-v3/testsuite/24_iterators/common_iterator/1.cc
index f251e3c..7448d91 100644
--- a/libstdc++-v3/testsuite/24_iterators/common_iterator/1.cc
+++ b/libstdc++-v3/testsuite/24_iterators/common_iterator/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <iterator>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/24_iterators/common_iterator/100823.cc b/libstdc++-v3/testsuite/24_iterators/common_iterator/100823.cc
index b42dd08..0784aec 100644
--- a/libstdc++-v3/testsuite/24_iterators/common_iterator/100823.cc
+++ b/libstdc++-v3/testsuite/24_iterators/common_iterator/100823.cc
@@ -1,4 +1,4 @@
-// { dg-options "-std=gnu++20 -D_GLIBCXX_ASSERTIONS" }
+// { dg-options "-D_GLIBCXX_ASSERTIONS" }
// { dg-do run { target c++20 } }
#include <iterator>
#include <testsuite_iterators.h>
diff --git a/libstdc++-v3/testsuite/24_iterators/common_iterator/2.cc b/libstdc++-v3/testsuite/24_iterators/common_iterator/2.cc
index 8f41e27..4d77094 100644
--- a/libstdc++-v3/testsuite/24_iterators/common_iterator/2.cc
+++ b/libstdc++-v3/testsuite/24_iterators/common_iterator/2.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <iterator>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/24_iterators/const_iterator/1.cc b/libstdc++-v3/testsuite/24_iterators/const_iterator/1.cc
index 51befd2..8b74d11 100644
--- a/libstdc++-v3/testsuite/24_iterators/const_iterator/1.cc
+++ b/libstdc++-v3/testsuite/24_iterators/const_iterator/1.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <iterator>
diff --git a/libstdc++-v3/testsuite/24_iterators/contiguous/concept.cc b/libstdc++-v3/testsuite/24_iterators/contiguous/concept.cc
index 2ce5537..b567740 100644
--- a/libstdc++-v3/testsuite/24_iterators/contiguous/concept.cc
+++ b/libstdc++-v3/testsuite/24_iterators/contiguous/concept.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <iterator>
diff --git a/libstdc++-v3/testsuite/24_iterators/contiguous/tag.cc b/libstdc++-v3/testsuite/24_iterators/contiguous/tag.cc
index 308bd96..e51c9d6 100644
--- a/libstdc++-v3/testsuite/24_iterators/contiguous/tag.cc
+++ b/libstdc++-v3/testsuite/24_iterators/contiguous/tag.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <iterator>
diff --git a/libstdc++-v3/testsuite/24_iterators/counted_iterator/1.cc b/libstdc++-v3/testsuite/24_iterators/counted_iterator/1.cc
index 2c3ea4f..47b3ca2 100644
--- a/libstdc++-v3/testsuite/24_iterators/counted_iterator/1.cc
+++ b/libstdc++-v3/testsuite/24_iterators/counted_iterator/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <iterator>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/24_iterators/counted_iterator/lwg3389.cc b/libstdc++-v3/testsuite/24_iterators/counted_iterator/lwg3389.cc
index 33f3a04..0067e53 100644
--- a/libstdc++-v3/testsuite/24_iterators/counted_iterator/lwg3389.cc
+++ b/libstdc++-v3/testsuite/24_iterators/counted_iterator/lwg3389.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <iterator>
diff --git a/libstdc++-v3/testsuite/24_iterators/counted_iterator/lwg3643.cc b/libstdc++-v3/testsuite/24_iterators/counted_iterator/lwg3643.cc
index e6f12b4..e29239e 100644
--- a/libstdc++-v3/testsuite/24_iterators/counted_iterator/lwg3643.cc
+++ b/libstdc++-v3/testsuite/24_iterators/counted_iterator/lwg3643.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
#include <iterator>
diff --git a/libstdc++-v3/testsuite/24_iterators/customization_points/92894.cc b/libstdc++-v3/testsuite/24_iterators/customization_points/92894.cc
index 78d7a95..b9a33f3 100644
--- a/libstdc++-v3/testsuite/24_iterators/customization_points/92894.cc
+++ b/libstdc++-v3/testsuite/24_iterators/customization_points/92894.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <iterator>
diff --git a/libstdc++-v3/testsuite/24_iterators/customization_points/iter_move.cc b/libstdc++-v3/testsuite/24_iterators/customization_points/iter_move.cc
index e7d8d9b..a5f9ef78 100644
--- a/libstdc++-v3/testsuite/24_iterators/customization_points/iter_move.cc
+++ b/libstdc++-v3/testsuite/24_iterators/customization_points/iter_move.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <iterator>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/24_iterators/customization_points/iter_swap.cc b/libstdc++-v3/testsuite/24_iterators/customization_points/iter_swap.cc
index 76c6859..df0e656 100644
--- a/libstdc++-v3/testsuite/24_iterators/customization_points/iter_swap.cc
+++ b/libstdc++-v3/testsuite/24_iterators/customization_points/iter_swap.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <iterator>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/24_iterators/customization_points/lwg3420.cc b/libstdc++-v3/testsuite/24_iterators/customization_points/lwg3420.cc
index 2c522fc..b2e3956 100644
--- a/libstdc++-v3/testsuite/24_iterators/customization_points/lwg3420.cc
+++ b/libstdc++-v3/testsuite/24_iterators/customization_points/lwg3420.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// PR libstdc++/93983
diff --git a/libstdc++-v3/testsuite/24_iterators/forward/concept.cc b/libstdc++-v3/testsuite/24_iterators/forward/concept.cc
index 9711d66..70ab0beb 100644
--- a/libstdc++-v3/testsuite/24_iterators/forward/concept.cc
+++ b/libstdc++-v3/testsuite/24_iterators/forward/concept.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <iterator>
diff --git a/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/constexpr.cc b/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/constexpr.cc
index 8935841..b6cbf03 100644
--- a/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/constexpr.cc
+++ b/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <iterator>
diff --git a/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/pr93884.cc b/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/pr93884.cc
index 08edeb3..d1b47a6 100644
--- a/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/pr93884.cc
+++ b/libstdc++-v3/testsuite/24_iterators/front_insert_iterator/pr93884.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <iterator>
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++20.cc b/libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++20.cc
index ff0b6fa..f8d5119 100644
--- a/libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++20.cc
+++ b/libstdc++-v3/testsuite/24_iterators/headers/iterator/synopsis_c++20.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-normal-namespace "" }
#include <iterator>
diff --git a/libstdc++-v3/testsuite/24_iterators/indirect_callable/92894.cc b/libstdc++-v3/testsuite/24_iterators/indirect_callable/92894.cc
index 951b3ba..1fb1b8d 100644
--- a/libstdc++-v3/testsuite/24_iterators/indirect_callable/92894.cc
+++ b/libstdc++-v3/testsuite/24_iterators/indirect_callable/92894.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <iterator>
diff --git a/libstdc++-v3/testsuite/24_iterators/indirect_callable/projected-adl.cc b/libstdc++-v3/testsuite/24_iterators/indirect_callable/projected-adl.cc
index 4c2a095..a1a5cc4 100644
--- a/libstdc++-v3/testsuite/24_iterators/indirect_callable/projected-adl.cc
+++ b/libstdc++-v3/testsuite/24_iterators/indirect_callable/projected-adl.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// P2538R1 ADL-proof std::projected
diff --git a/libstdc++-v3/testsuite/24_iterators/indirect_callable/projected.cc b/libstdc++-v3/testsuite/24_iterators/indirect_callable/projected.cc
index f67e989..755d5a7 100644
--- a/libstdc++-v3/testsuite/24_iterators/indirect_callable/projected.cc
+++ b/libstdc++-v3/testsuite/24_iterators/indirect_callable/projected.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <iterator>
diff --git a/libstdc++-v3/testsuite/24_iterators/input/concept.cc b/libstdc++-v3/testsuite/24_iterators/input/concept.cc
index 44aa7e9..08e4e38 100644
--- a/libstdc++-v3/testsuite/24_iterators/input/concept.cc
+++ b/libstdc++-v3/testsuite/24_iterators/input/concept.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <iterator>
diff --git a/libstdc++-v3/testsuite/24_iterators/insert_iterator/constexpr.cc b/libstdc++-v3/testsuite/24_iterators/insert_iterator/constexpr.cc
index 8848759..ed2b648 100644
--- a/libstdc++-v3/testsuite/24_iterators/insert_iterator/constexpr.cc
+++ b/libstdc++-v3/testsuite/24_iterators/insert_iterator/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <iterator>
diff --git a/libstdc++-v3/testsuite/24_iterators/istream_iterator/cons/sentinel.cc b/libstdc++-v3/testsuite/24_iterators/istream_iterator/cons/sentinel.cc
index 77dc741..cbf647a 100644
--- a/libstdc++-v3/testsuite/24_iterators/istream_iterator/cons/sentinel.cc
+++ b/libstdc++-v3/testsuite/24_iterators/istream_iterator/cons/sentinel.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/24_iterators/istream_iterator/sentinel.cc b/libstdc++-v3/testsuite/24_iterators/istream_iterator/sentinel.cc
index eecfba7..d14ec8f 100644
--- a/libstdc++-v3/testsuite/24_iterators/istream_iterator/sentinel.cc
+++ b/libstdc++-v3/testsuite/24_iterators/istream_iterator/sentinel.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc b/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc
index 9301780..c78f763 100644
--- a/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc
+++ b/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-effective-target hosted }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
diff --git a/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/sentinel.cc b/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/sentinel.cc
index 9368833..0b10a14 100644
--- a/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/sentinel.cc
+++ b/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/sentinel.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/24_iterators/move_iterator/cust.cc b/libstdc++-v3/testsuite/24_iterators/move_iterator/cust.cc
index b8e38bb..3d73919 100644
--- a/libstdc++-v3/testsuite/24_iterators/move_iterator/cust.cc
+++ b/libstdc++-v3/testsuite/24_iterators/move_iterator/cust.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <iterator>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/24_iterators/move_iterator/dr3435.cc b/libstdc++-v3/testsuite/24_iterators/move_iterator/dr3435.cc
index fbca6fe..80da4c0 100644
--- a/libstdc++-v3/testsuite/24_iterators/move_iterator/dr3435.cc
+++ b/libstdc++-v3/testsuite/24_iterators/move_iterator/dr3435.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <iterator>
#include <compare>
diff --git a/libstdc++-v3/testsuite/24_iterators/move_iterator/input_iterator.cc b/libstdc++-v3/testsuite/24_iterators/move_iterator/input_iterator.cc
index adaa12a..ae53ecf 100644
--- a/libstdc++-v3/testsuite/24_iterators/move_iterator/input_iterator.cc
+++ b/libstdc++-v3/testsuite/24_iterators/move_iterator/input_iterator.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <iterator>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3390.cc b/libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3390.cc
index a6b57bf..d0adabf 100644
--- a/libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3390.cc
+++ b/libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3390.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <iterator>
diff --git a/libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3391.cc b/libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3391.cc
index 5f454e1..40b9da9 100644
--- a/libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3391.cc
+++ b/libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3391.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Verify LWG 3391 changes.
diff --git a/libstdc++-v3/testsuite/24_iterators/move_iterator/move_only.cc b/libstdc++-v3/testsuite/24_iterators/move_iterator/move_only.cc
index 01b66d2..3a0e499 100644
--- a/libstdc++-v3/testsuite/24_iterators/move_iterator/move_only.cc
+++ b/libstdc++-v3/testsuite/24_iterators/move_iterator/move_only.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <iterator>
diff --git a/libstdc++-v3/testsuite/24_iterators/move_iterator/p2520r0.cc b/libstdc++-v3/testsuite/24_iterators/move_iterator/p2520r0.cc
index e36ac57..4742e88 100644
--- a/libstdc++-v3/testsuite/24_iterators/move_iterator/p2520r0.cc
+++ b/libstdc++-v3/testsuite/24_iterators/move_iterator/p2520r0.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-add-options no_pch }
diff --git a/libstdc++-v3/testsuite/24_iterators/move_iterator/rel_ops_c++20.cc b/libstdc++-v3/testsuite/24_iterators/move_iterator/rel_ops_c++20.cc
index 9f437ac..292baea 100644
--- a/libstdc++-v3/testsuite/24_iterators/move_iterator/rel_ops_c++20.cc
+++ b/libstdc++-v3/testsuite/24_iterators/move_iterator/rel_ops_c++20.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <iterator>
diff --git a/libstdc++-v3/testsuite/24_iterators/move_iterator/sentinel.cc b/libstdc++-v3/testsuite/24_iterators/move_iterator/sentinel.cc
index 4ee8e46..a76a580 100644
--- a/libstdc++-v3/testsuite/24_iterators/move_iterator/sentinel.cc
+++ b/libstdc++-v3/testsuite/24_iterators/move_iterator/sentinel.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <iterator>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/24_iterators/normal_iterator/cmp_c++20.cc b/libstdc++-v3/testsuite/24_iterators/normal_iterator/cmp_c++20.cc
index 82b8568..da464c9 100644
--- a/libstdc++-v3/testsuite/24_iterators/normal_iterator/cmp_c++20.cc
+++ b/libstdc++-v3/testsuite/24_iterators/normal_iterator/cmp_c++20.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <iterator>
#include <vector>
diff --git a/libstdc++-v3/testsuite/24_iterators/output/concept.cc b/libstdc++-v3/testsuite/24_iterators/output/concept.cc
index 9be1c14..f3551bd 100644
--- a/libstdc++-v3/testsuite/24_iterators/output/concept.cc
+++ b/libstdc++-v3/testsuite/24_iterators/output/concept.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <iterator>
diff --git a/libstdc++-v3/testsuite/24_iterators/random_access/concept.cc b/libstdc++-v3/testsuite/24_iterators/random_access/concept.cc
index 0ed9ded..c26a426 100644
--- a/libstdc++-v3/testsuite/24_iterators/random_access/concept.cc
+++ b/libstdc++-v3/testsuite/24_iterators/random_access/concept.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <iterator>
diff --git a/libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp20.cc b/libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp20.cc
index 99852eb..e5e129e 100644
--- a/libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp20.cc
+++ b/libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp20.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2019-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp20_neg.cc b/libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp20_neg.cc
index af65ded..03b8a37 100644
--- a/libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp20_neg.cc
+++ b/libstdc++-v3/testsuite/24_iterators/range_access/range_access_cpp20_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <iterator>
diff --git a/libstdc++-v3/testsuite/24_iterators/range_operations/100768.cc b/libstdc++-v3/testsuite/24_iterators/range_operations/100768.cc
index 0c0b79c..c9f3827 100644
--- a/libstdc++-v3/testsuite/24_iterators/range_operations/100768.cc
+++ b/libstdc++-v3/testsuite/24_iterators/range_operations/100768.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// PR libstdc++/100768 - Range iterator operations should be function objects
diff --git a/libstdc++-v3/testsuite/24_iterators/range_operations/advance.cc b/libstdc++-v3/testsuite/24_iterators/range_operations/advance.cc
index 62ff47e..43d6877 100644
--- a/libstdc++-v3/testsuite/24_iterators/range_operations/advance.cc
+++ b/libstdc++-v3/testsuite/24_iterators/range_operations/advance.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <iterator>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/24_iterators/range_operations/advance_debug_neg.cc b/libstdc++-v3/testsuite/24_iterators/range_operations/advance_debug_neg.cc
index 4d363c4..b951182 100644
--- a/libstdc++-v3/testsuite/24_iterators/range_operations/advance_debug_neg.cc
+++ b/libstdc++-v3/testsuite/24_iterators/range_operations/advance_debug_neg.cc
@@ -15,9 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a -D_GLIBCXX_ASSERTIONS" }
-// { dg-do run { xfail *-*-* } }
-// { dg-require-effective-target c++2a }
+// { dg-options "-D_GLIBCXX_ASSERTIONS" }
+// { dg-do run { target c++20 xfail *-*-* } }
#include <iterator>
#include <testsuite_iterators.h>
diff --git a/libstdc++-v3/testsuite/24_iterators/range_operations/advance_overflow.cc b/libstdc++-v3/testsuite/24_iterators/range_operations/advance_overflow.cc
index 0fadcd6..76babdd 100644
--- a/libstdc++-v3/testsuite/24_iterators/range_operations/advance_overflow.cc
+++ b/libstdc++-v3/testsuite/24_iterators/range_operations/advance_overflow.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// Public domain testcase from Casey Carter, send to LWG list on 2021-07-24.
diff --git a/libstdc++-v3/testsuite/24_iterators/range_operations/distance.cc b/libstdc++-v3/testsuite/24_iterators/range_operations/distance.cc
index 77dc5e8..57530d6 100644
--- a/libstdc++-v3/testsuite/24_iterators/range_operations/distance.cc
+++ b/libstdc++-v3/testsuite/24_iterators/range_operations/distance.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <iterator>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/24_iterators/range_operations/lwg3392.cc b/libstdc++-v3/testsuite/24_iterators/range_operations/lwg3392.cc
index 3278035..4125c66 100644
--- a/libstdc++-v3/testsuite/24_iterators/range_operations/lwg3392.cc
+++ b/libstdc++-v3/testsuite/24_iterators/range_operations/lwg3392.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
#include <iterator>
diff --git a/libstdc++-v3/testsuite/24_iterators/range_operations/next.cc b/libstdc++-v3/testsuite/24_iterators/range_operations/next.cc
index ef2a738..6a88e87 100644
--- a/libstdc++-v3/testsuite/24_iterators/range_operations/next.cc
+++ b/libstdc++-v3/testsuite/24_iterators/range_operations/next.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <iterator>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/24_iterators/range_operations/prev.cc b/libstdc++-v3/testsuite/24_iterators/range_operations/prev.cc
index 123b4a8..a400547 100644
--- a/libstdc++-v3/testsuite/24_iterators/range_operations/prev.cc
+++ b/libstdc++-v3/testsuite/24_iterators/range_operations/prev.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <iterator>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/24_iterators/reverse_iterator/100639.cc b/libstdc++-v3/testsuite/24_iterators/reverse_iterator/100639.cc
index 5d0a7f4..68bf4e0 100644
--- a/libstdc++-v3/testsuite/24_iterators/reverse_iterator/100639.cc
+++ b/libstdc++-v3/testsuite/24_iterators/reverse_iterator/100639.cc
@@ -15,8 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=c++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
+// { dg-add-options strict_std }
// PR libstdc++/100639
diff --git a/libstdc++-v3/testsuite/24_iterators/reverse_iterator/cust.cc b/libstdc++-v3/testsuite/24_iterators/reverse_iterator/cust.cc
index 77f4e08..5bf40ae 100644
--- a/libstdc++-v3/testsuite/24_iterators/reverse_iterator/cust.cc
+++ b/libstdc++-v3/testsuite/24_iterators/reverse_iterator/cust.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <iterator>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/24_iterators/reverse_iterator/dr3435.cc b/libstdc++-v3/testsuite/24_iterators/reverse_iterator/dr3435.cc
index dd5afc9..4263a86 100644
--- a/libstdc++-v3/testsuite/24_iterators/reverse_iterator/dr3435.cc
+++ b/libstdc++-v3/testsuite/24_iterators/reverse_iterator/dr3435.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <iterator>
#include <compare>
diff --git a/libstdc++-v3/testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc b/libstdc++-v3/testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc
index 8911d8a..cb7543a 100644
--- a/libstdc++-v3/testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc
+++ b/libstdc++-v3/testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <iterator>
diff --git a/libstdc++-v3/testsuite/25_algorithms/adjacent_find/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/adjacent_find/constexpr.cc
index 1ba75b4..501b5db 100644
--- a/libstdc++-v3/testsuite/25_algorithms/adjacent_find/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/adjacent_find/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/adjacent_find/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/adjacent_find/constrained.cc
index 0484563..bbb0090 100644
--- a/libstdc++-v3/testsuite/25_algorithms/adjacent_find/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/adjacent_find/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/all_of/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/all_of/constexpr.cc
index fd7ea0f..260d488 100644
--- a/libstdc++-v3/testsuite/25_algorithms/all_of/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/all_of/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/all_of/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/all_of/constrained.cc
index 8da20d6..8c7d8f9 100644
--- a/libstdc++-v3/testsuite/25_algorithms/all_of/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/all_of/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/any_of/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/any_of/constexpr.cc
index d8f6104..4d30d98 100644
--- a/libstdc++-v3/testsuite/25_algorithms/any_of/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/any_of/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/any_of/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/any_of/constrained.cc
index 14e67d8..8cf7f3c 100644
--- a/libstdc++-v3/testsuite/25_algorithms/any_of/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/any_of/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/binary_search/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/binary_search/constexpr.cc
index 8e12d15..2048abd 100644
--- a/libstdc++-v3/testsuite/25_algorithms/binary_search/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/binary_search/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/binary_search/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/binary_search/constrained.cc
index 1f3f92e..b2c6881 100644
--- a/libstdc++-v3/testsuite/25_algorithms/binary_search/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/binary_search/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/clamp/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/clamp/constrained.cc
index 990e5b7..37211f4 100644
--- a/libstdc++-v3/testsuite/25_algorithms/clamp/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/clamp/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <functional>
diff --git a/libstdc++-v3/testsuite/25_algorithms/constexpr_macro.cc b/libstdc++-v3/testsuite/25_algorithms/constexpr_macro.cc
index e70605f..d591b11 100644
--- a/libstdc++-v3/testsuite/25_algorithms/constexpr_macro.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/constexpr_macro.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-effective-target hosted }
#include <version>
diff --git a/libstdc++-v3/testsuite/25_algorithms/contains/1.cc b/libstdc++-v3/testsuite/25_algorithms/contains/1.cc
index 146ab59..7d3fa04 100644
--- a/libstdc++-v3/testsuite/25_algorithms/contains/1.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/contains/1.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/25_algorithms/contains_subrange/1.cc b/libstdc++-v3/testsuite/25_algorithms/contains_subrange/1.cc
index 6c3c99c..5482cc1 100644
--- a/libstdc++-v3/testsuite/25_algorithms/contains_subrange/1.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/contains_subrange/1.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/25_algorithms/copy/95578.cc b/libstdc++-v3/testsuite/25_algorithms/copy/95578.cc
index 155d4b7..92519cc 100644
--- a/libstdc++-v3/testsuite/25_algorithms/copy/95578.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/copy/95578.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <vector>
diff --git a/libstdc++-v3/testsuite/25_algorithms/copy/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/copy/constexpr.cc
index 1d7940c..5d12fe0 100644
--- a/libstdc++-v3/testsuite/25_algorithms/copy/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/copy/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/copy/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/copy/constrained.cc
index 4f2e808..0608086 100644
--- a/libstdc++-v3/testsuite/25_algorithms/copy/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/copy/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <vector>
diff --git a/libstdc++-v3/testsuite/25_algorithms/copy/debug/constexpr_neg.cc b/libstdc++-v3/testsuite/25_algorithms/copy/debug/constexpr_neg.cc
index bf3c493..d99a95e 100644
--- a/libstdc++-v3/testsuite/25_algorithms/copy/debug/constexpr_neg.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/copy/debug/constexpr_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-debug-mode "" }
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/25_algorithms/copy_backward/95578.cc b/libstdc++-v3/testsuite/25_algorithms/copy_backward/95578.cc
index 4426af9..910a8b1 100644
--- a/libstdc++-v3/testsuite/25_algorithms/copy_backward/95578.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/copy_backward/95578.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <vector>
diff --git a/libstdc++-v3/testsuite/25_algorithms/copy_backward/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/copy_backward/constexpr.cc
index c2ec568..efafa08 100644
--- a/libstdc++-v3/testsuite/25_algorithms/copy_backward/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/copy_backward/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/copy_backward/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/copy_backward/constrained.cc
index fc3f87e..4bf13ef 100644
--- a/libstdc++-v3/testsuite/25_algorithms/copy_backward/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/copy_backward/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <vector>
diff --git a/libstdc++-v3/testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc b/libstdc++-v3/testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc
index 6bf7f47..0077fb6 100644
--- a/libstdc++-v3/testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-debug-mode "" }
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/25_algorithms/copy_if/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/copy_if/constexpr.cc
index e3c2328..7f22f13 100644
--- a/libstdc++-v3/testsuite/25_algorithms/copy_if/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/copy_if/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/copy_if/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/copy_if/constrained.cc
index c35e343..d3772e8 100644
--- a/libstdc++-v3/testsuite/25_algorithms/copy_if/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/copy_if/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <vector>
diff --git a/libstdc++-v3/testsuite/25_algorithms/copy_n/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/copy_n/constexpr.cc
index 39b0a6d..26dfd46 100644
--- a/libstdc++-v3/testsuite/25_algorithms/copy_n/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/copy_n/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/copy_n/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/copy_n/constrained.cc
index 20abe04..cd7c91a 100644
--- a/libstdc++-v3/testsuite/25_algorithms/copy_n/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/copy_n/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <vector>
diff --git a/libstdc++-v3/testsuite/25_algorithms/count/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/count/constexpr.cc
index 2bfb86b..4432778 100644
--- a/libstdc++-v3/testsuite/25_algorithms/count/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/count/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/count/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/count/constrained.cc
index 09a26dd..8686e08 100644
--- a/libstdc++-v3/testsuite/25_algorithms/count/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/count/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/count_if/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/count_if/constexpr.cc
index 3a0e28c..6325fdc 100644
--- a/libstdc++-v3/testsuite/25_algorithms/count_if/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/count_if/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/count_if/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/count_if/constrained.cc
index c22cb59..f1804f4 100644
--- a/libstdc++-v3/testsuite/25_algorithms/count_if/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/count_if/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/cpp_lib_constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/cpp_lib_constexpr.cc
index c2eb07e..0774032 100644
--- a/libstdc++-v3/testsuite/25_algorithms/cpp_lib_constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/cpp_lib_constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/25_algorithms/equal/95578.cc b/libstdc++-v3/testsuite/25_algorithms/equal/95578.cc
index 6b01a69..f1816b6 100644
--- a/libstdc++-v3/testsuite/25_algorithms/equal/95578.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/equal/95578.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <vector>
diff --git a/libstdc++-v3/testsuite/25_algorithms/equal/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/equal/constexpr.cc
index 7259000..65d9707 100644
--- a/libstdc++-v3/testsuite/25_algorithms/equal/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/equal/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/equal/constexpr_neg.cc b/libstdc++-v3/testsuite/25_algorithms/equal/constexpr_neg.cc
index fd89ac0..db4cd2a 100644
--- a/libstdc++-v3/testsuite/25_algorithms/equal/constexpr_neg.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/equal/constexpr_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-normal-mode "" }
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/25_algorithms/equal/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/equal/constrained.cc
index c8bb00b..ac1feb3 100644
--- a/libstdc++-v3/testsuite/25_algorithms/equal/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/equal/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-effective-target hosted }
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/25_algorithms/equal/debug/constexpr_neg.cc b/libstdc++-v3/testsuite/25_algorithms/equal/debug/constexpr_neg.cc
index f5e46e5..5379dd3 100644
--- a/libstdc++-v3/testsuite/25_algorithms/equal/debug/constexpr_neg.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/equal/debug/constexpr_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-debug-mode "" }
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/25_algorithms/equal_range/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/equal_range/constexpr.cc
index a902e80..d8f265d 100644
--- a/libstdc++-v3/testsuite/25_algorithms/equal_range/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/equal_range/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/equal_range/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/equal_range/constrained.cc
index 04108b8..31bc434 100644
--- a/libstdc++-v3/testsuite/25_algorithms/equal_range/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/equal_range/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/fill/94017.cc b/libstdc++-v3/testsuite/25_algorithms/fill/94017.cc
index 23dc457..dc36af4 100644
--- a/libstdc++-v3/testsuite/25_algorithms/fill/94017.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/fill/94017.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/fill/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/fill/constexpr.cc
index 9c1ac5c..59bdd11 100644
--- a/libstdc++-v3/testsuite/25_algorithms/fill/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/fill/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/fill/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/fill/constrained.cc
index fe86839..296274f 100644
--- a/libstdc++-v3/testsuite/25_algorithms/fill/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/fill/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/fill_n/94017.cc b/libstdc++-v3/testsuite/25_algorithms/fill_n/94017.cc
index 1c0d7e5..cf69331 100644
--- a/libstdc++-v3/testsuite/25_algorithms/fill_n/94017.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/fill_n/94017.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/fill_n/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/fill_n/constexpr.cc
index 0fdf22e..9c02474 100644
--- a/libstdc++-v3/testsuite/25_algorithms/fill_n/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/fill_n/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/fill_n/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/fill_n/constrained.cc
index 7533490..7d21f48 100644
--- a/libstdc++-v3/testsuite/25_algorithms/fill_n/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/fill_n/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/find/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/find/constexpr.cc
index 9005f9f..85f49f4 100644
--- a/libstdc++-v3/testsuite/25_algorithms/find/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/find/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/find/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/find/constrained.cc
index 0f0b735..378e631 100644
--- a/libstdc++-v3/testsuite/25_algorithms/find/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/find/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/find_end/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/find_end/constexpr.cc
index 5315cb7..663539ba 100644
--- a/libstdc++-v3/testsuite/25_algorithms/find_end/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/find_end/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/find_end/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/find_end/constrained.cc
index e6369dd..51f3250 100644
--- a/libstdc++-v3/testsuite/25_algorithms/find_end/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/find_end/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/find_first_of/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/find_first_of/constexpr.cc
index b60594d..0c3c155 100644
--- a/libstdc++-v3/testsuite/25_algorithms/find_first_of/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/find_first_of/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/find_first_of/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/find_first_of/constrained.cc
index b1684a8..0320df8 100644
--- a/libstdc++-v3/testsuite/25_algorithms/find_first_of/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/find_first_of/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/find_if/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/find_if/constexpr.cc
index a0f8402..39592bf 100644
--- a/libstdc++-v3/testsuite/25_algorithms/find_if/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/find_if/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/find_if/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/find_if/constrained.cc
index d8240e8..210fc88 100644
--- a/libstdc++-v3/testsuite/25_algorithms/find_if/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/find_if/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/find_if_not/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/find_if_not/constexpr.cc
index 3c0d445..667b141 100644
--- a/libstdc++-v3/testsuite/25_algorithms/find_if_not/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/find_if_not/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/find_if_not/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/find_if_not/constrained.cc
index 1655b00..312a839 100644
--- a/libstdc++-v3/testsuite/25_algorithms/find_if_not/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/find_if_not/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/find_last/1.cc b/libstdc++-v3/testsuite/25_algorithms/find_last/1.cc
index ef5844c..911e228 100644
--- a/libstdc++-v3/testsuite/25_algorithms/find_last/1.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/find_last/1.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/25_algorithms/find_last_if/1.cc b/libstdc++-v3/testsuite/25_algorithms/find_last_if/1.cc
index 0a72347..1e880b3 100644
--- a/libstdc++-v3/testsuite/25_algorithms/find_last_if/1.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/find_last_if/1.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/25_algorithms/find_last_if_not/1.cc b/libstdc++-v3/testsuite/25_algorithms/find_last_if_not/1.cc
index 98aa94b..907c24a 100644
--- a/libstdc++-v3/testsuite/25_algorithms/find_last_if_not/1.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/find_last_if_not/1.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/25_algorithms/fold_left/1.cc b/libstdc++-v3/testsuite/25_algorithms/fold_left/1.cc
index 4041d13..b08a065 100644
--- a/libstdc++-v3/testsuite/25_algorithms/fold_left/1.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/fold_left/1.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/25_algorithms/fold_right/1.cc b/libstdc++-v3/testsuite/25_algorithms/fold_right/1.cc
index b08b57c..207d51f 100644
--- a/libstdc++-v3/testsuite/25_algorithms/fold_right/1.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/fold_right/1.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/25_algorithms/for_each/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/for_each/constexpr.cc
index 06ccf12..7bc64eb 100644
--- a/libstdc++-v3/testsuite/25_algorithms/for_each/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/for_each/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/for_each/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/for_each/constrained.cc
index 2258ebb..1150f14 100644
--- a/libstdc++-v3/testsuite/25_algorithms/for_each/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/for_each/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <functional>
diff --git a/libstdc++-v3/testsuite/25_algorithms/generate/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/generate/constexpr.cc
index 716ba4f..0e7bd72 100644
--- a/libstdc++-v3/testsuite/25_algorithms/generate/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/generate/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/generate/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/generate/constrained.cc
index ee159df..90cac5a 100644
--- a/libstdc++-v3/testsuite/25_algorithms/generate/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/generate/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/generate_n/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/generate_n/constexpr.cc
index 6a29eb2..ff3f7ac 100644
--- a/libstdc++-v3/testsuite/25_algorithms/generate_n/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/generate_n/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/generate_n/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/generate_n/constrained.cc
index be2c717..c2445e9 100644
--- a/libstdc++-v3/testsuite/25_algorithms/generate_n/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/generate_n/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/heap/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/heap/constrained.cc
index 01507f2..20dc63d 100644
--- a/libstdc++-v3/testsuite/25_algorithms/heap/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/heap/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-cstdint "" }
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/25_algorithms/includes/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/includes/constrained.cc
index 8bf156c..3463db9 100644
--- a/libstdc++-v3/testsuite/25_algorithms/includes/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/includes/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <functional>
diff --git a/libstdc++-v3/testsuite/25_algorithms/inplace_merge/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/inplace_merge/constrained.cc
index 5e72acc..a17f2ee 100644
--- a/libstdc++-v3/testsuite/25_algorithms/inplace_merge/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/inplace_merge/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <vector>
diff --git a/libstdc++-v3/testsuite/25_algorithms/iota/1.cc b/libstdc++-v3/testsuite/25_algorithms/iota/1.cc
index ad2bf08..61bf418 100644
--- a/libstdc++-v3/testsuite/25_algorithms/iota/1.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/iota/1.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/25_algorithms/is_heap/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/is_heap/constexpr.cc
index 7448a9e..30a2e12 100644
--- a/libstdc++-v3/testsuite/25_algorithms/is_heap/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/is_heap/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <functional>
diff --git a/libstdc++-v3/testsuite/25_algorithms/is_heap_until/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/is_heap_until/constexpr.cc
index 3134f60..a58707b 100644
--- a/libstdc++-v3/testsuite/25_algorithms/is_heap_until/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/is_heap_until/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/is_partitioned/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/is_partitioned/constexpr.cc
index 8a6d0a2..08557d8 100644
--- a/libstdc++-v3/testsuite/25_algorithms/is_partitioned/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/is_partitioned/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/is_partitioned/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/is_partitioned/constrained.cc
index cb2d442..a35e3f4 100644
--- a/libstdc++-v3/testsuite/25_algorithms/is_partitioned/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/is_partitioned/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/is_permutation/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/is_permutation/constexpr.cc
index 9226f50..7586966 100644
--- a/libstdc++-v3/testsuite/25_algorithms/is_permutation/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/is_permutation/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/is_permutation/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/is_permutation/constrained.cc
index e503247..ffdb2d4 100644
--- a/libstdc++-v3/testsuite/25_algorithms/is_permutation/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/is_permutation/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <iterator>
diff --git a/libstdc++-v3/testsuite/25_algorithms/is_sorted/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/is_sorted/constexpr.cc
index a6282ac..637489f 100644
--- a/libstdc++-v3/testsuite/25_algorithms/is_sorted/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/is_sorted/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/is_sorted/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/is_sorted/constrained.cc
index 7309c3f..ee978e9 100644
--- a/libstdc++-v3/testsuite/25_algorithms/is_sorted/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/is_sorted/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/is_sorted_until/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/is_sorted_until/constexpr.cc
index f54953d..05b096a 100644
--- a/libstdc++-v3/testsuite/25_algorithms/is_sorted_until/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/is_sorted_until/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/is_sorted_until/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/is_sorted_until/constrained.cc
index e3b64fb..b693f72 100644
--- a/libstdc++-v3/testsuite/25_algorithms/is_sorted_until/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/is_sorted_until/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/iter_swap/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/iter_swap/constexpr.cc
index 1919554..c58191c 100644
--- a/libstdc++-v3/testsuite/25_algorithms/iter_swap/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/iter_swap/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/93972.cc b/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/93972.cc
index cc4ea7b..418f084 100644
--- a/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/93972.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/93972.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/95578.cc b/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/95578.cc
index 24f52bf..568346b 100644
--- a/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/95578.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/95578.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <vector>
diff --git a/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/constexpr.cc
index a6f4322..06eccf5 100644
--- a/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/constrained.cc
index e8eafa9..609d604 100644
--- a/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-effective-target hosted }
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare_three_way/1.cc b/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare_three_way/1.cc
index 633a5bd..bd761b0 100644
--- a/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare_three_way/1.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare_three_way/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare_three_way/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare_three_way/constexpr.cc
index 7781ffd..019179f 100644
--- a/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare_three_way/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare_three_way/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/25_algorithms/lower_bound/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/lower_bound/constexpr.cc
index 6f3f61d..450d095 100644
--- a/libstdc++-v3/testsuite/25_algorithms/lower_bound/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/lower_bound/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/lower_bound/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/lower_bound/constrained.cc
index 9795467..6b3992f 100644
--- a/libstdc++-v3/testsuite/25_algorithms/lower_bound/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/lower_bound/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc b/libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc
index 74f947e..6b41a8c 100644
--- a/libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-debug-mode { } }
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc b/libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc
index 4b125b5..0d8413a 100644
--- a/libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-debug-mode { } }
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc b/libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc
index 1edf35c..a052b71 100644
--- a/libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-debug-mode { } }
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/25_algorithms/make_heap/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/make_heap/constexpr.cc
index 5399782..07c5758 100644
--- a/libstdc++-v3/testsuite/25_algorithms/make_heap/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/make_heap/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/max/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/max/constrained.cc
index b204d8b..13e450f 100644
--- a/libstdc++-v3/testsuite/25_algorithms/max/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/max/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <functional>
diff --git a/libstdc++-v3/testsuite/25_algorithms/max_element/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/max_element/constrained.cc
index 0b8af2b..fcb8b37 100644
--- a/libstdc++-v3/testsuite/25_algorithms/max_element/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/max_element/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <functional>
diff --git a/libstdc++-v3/testsuite/25_algorithms/merge/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/merge/constexpr.cc
index fa0c7e3..7e5cc50 100644
--- a/libstdc++-v3/testsuite/25_algorithms/merge/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/merge/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/merge/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/merge/constrained.cc
index cffca3c..41923fc 100644
--- a/libstdc++-v3/testsuite/25_algorithms/merge/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/merge/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <vector>
diff --git a/libstdc++-v3/testsuite/25_algorithms/min/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/min/constrained.cc
index ce2163e..2f07532 100644
--- a/libstdc++-v3/testsuite/25_algorithms/min/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/min/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <functional>
diff --git a/libstdc++-v3/testsuite/25_algorithms/min_element/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/min_element/constrained.cc
index 2709571..8c53539 100644
--- a/libstdc++-v3/testsuite/25_algorithms/min_element/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/min_element/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <functional>
diff --git a/libstdc++-v3/testsuite/25_algorithms/minmax/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/minmax/constrained.cc
index 4fce546..262cde7 100644
--- a/libstdc++-v3/testsuite/25_algorithms/minmax/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/minmax/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <string>
diff --git a/libstdc++-v3/testsuite/25_algorithms/minmax_element/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/minmax_element/constrained.cc
index 1e5f7c9..e6a57c1 100644
--- a/libstdc++-v3/testsuite/25_algorithms/minmax_element/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/minmax_element/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <functional>
diff --git a/libstdc++-v3/testsuite/25_algorithms/mismatch/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/mismatch/constexpr.cc
index 537e8ac..5389d4f 100644
--- a/libstdc++-v3/testsuite/25_algorithms/mismatch/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/mismatch/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/mismatch/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/mismatch/constrained.cc
index ddb0170..d1237e1 100644
--- a/libstdc++-v3/testsuite/25_algorithms/mismatch/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/mismatch/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/move/93872.cc b/libstdc++-v3/testsuite/25_algorithms/move/93872.cc
index 2b77a4f..ce22147 100644
--- a/libstdc++-v3/testsuite/25_algorithms/move/93872.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/move/93872.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <iterator>
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/25_algorithms/move/95578.cc b/libstdc++-v3/testsuite/25_algorithms/move/95578.cc
index aec6520..a65e2ba 100644
--- a/libstdc++-v3/testsuite/25_algorithms/move/95578.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/move/95578.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <vector>
diff --git a/libstdc++-v3/testsuite/25_algorithms/move/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/move/constexpr.cc
index eb1f3b1..f678e10 100644
--- a/libstdc++-v3/testsuite/25_algorithms/move/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/move/constexpr.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/25_algorithms/move/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/move/constrained.cc
index 29a1aba..abedfe7 100644
--- a/libstdc++-v3/testsuite/25_algorithms/move/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/move/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <vector>
diff --git a/libstdc++-v3/testsuite/25_algorithms/move_backward/93872.cc b/libstdc++-v3/testsuite/25_algorithms/move_backward/93872.cc
index 10b5855..29a54d4 100644
--- a/libstdc++-v3/testsuite/25_algorithms/move_backward/93872.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/move_backward/93872.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <iterator>
diff --git a/libstdc++-v3/testsuite/25_algorithms/move_backward/95578.cc b/libstdc++-v3/testsuite/25_algorithms/move_backward/95578.cc
index 5940393..eb97b74 100644
--- a/libstdc++-v3/testsuite/25_algorithms/move_backward/95578.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/move_backward/95578.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <vector>
diff --git a/libstdc++-v3/testsuite/25_algorithms/move_backward/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/move_backward/constrained.cc
index bf9be9c..ebca065 100644
--- a/libstdc++-v3/testsuite/25_algorithms/move_backward/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/move_backward/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <vector>
diff --git a/libstdc++-v3/testsuite/25_algorithms/next_permutation/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/next_permutation/constexpr.cc
index 2e49652..9993277 100644
--- a/libstdc++-v3/testsuite/25_algorithms/next_permutation/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/next_permutation/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/next_permutation/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/next_permutation/constrained.cc
index 1fb911a..20c46fd 100644
--- a/libstdc++-v3/testsuite/25_algorithms/next_permutation/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/next_permutation/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/none_of/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/none_of/constexpr.cc
index e0bdd40..e155579 100644
--- a/libstdc++-v3/testsuite/25_algorithms/none_of/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/none_of/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/none_of/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/none_of/constrained.cc
index aa95570..84fafdc 100644
--- a/libstdc++-v3/testsuite/25_algorithms/none_of/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/none_of/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/nth_element/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/nth_element/constexpr.cc
index b9e1b22..4962f45 100644
--- a/libstdc++-v3/testsuite/25_algorithms/nth_element/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/nth_element/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/nth_element/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/nth_element/constrained.cc
index 79ddf80..eee682cc 100644
--- a/libstdc++-v3/testsuite/25_algorithms/nth_element/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/nth_element/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-cstdint "" }
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/25_algorithms/partial_sort/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/partial_sort/constexpr.cc
index 9eddfd9..00002b4 100644
--- a/libstdc++-v3/testsuite/25_algorithms/partial_sort/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/partial_sort/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/partial_sort/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/partial_sort/constrained.cc
index ee40b9e..c19574c 100644
--- a/libstdc++-v3/testsuite/25_algorithms/partial_sort/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/partial_sort/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-cstdint "" }
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/constexpr.cc
index 6782130..f070524 100644
--- a/libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/constrained.cc
index d521c0a..3ae74e7 100644
--- a/libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-cstdint "" }
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/25_algorithms/partition/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/partition/constexpr.cc
index 8879260..190cc24 100644
--- a/libstdc++-v3/testsuite/25_algorithms/partition/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/partition/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/partition/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/partition/constrained.cc
index cd393c0..7049efd 100644
--- a/libstdc++-v3/testsuite/25_algorithms/partition/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/partition/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/partition_copy/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/partition_copy/constexpr.cc
index ab57e4f..dcdee06 100644
--- a/libstdc++-v3/testsuite/25_algorithms/partition_copy/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/partition_copy/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/partition_copy/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/partition_copy/constrained.cc
index d0189cb..be3ace7 100644
--- a/libstdc++-v3/testsuite/25_algorithms/partition_copy/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/partition_copy/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/partition_point/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/partition_point/constexpr.cc
index c41f559..20aa221 100644
--- a/libstdc++-v3/testsuite/25_algorithms/partition_point/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/partition_point/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/partition_point/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/partition_point/constrained.cc
index 3b50730..de46523 100644
--- a/libstdc++-v3/testsuite/25_algorithms/partition_point/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/partition_point/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/pop_heap/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/pop_heap/constexpr.cc
index c569729..f7bc052 100644
--- a/libstdc++-v3/testsuite/25_algorithms/pop_heap/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/pop_heap/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/prev_permutation/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/prev_permutation/constexpr.cc
index ac75fec..8e2b254 100644
--- a/libstdc++-v3/testsuite/25_algorithms/prev_permutation/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/prev_permutation/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/prev_permutation/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/prev_permutation/constrained.cc
index cab8ba2..e31e594 100644
--- a/libstdc++-v3/testsuite/25_algorithms/prev_permutation/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/prev_permutation/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/push_heap/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/push_heap/constexpr.cc
index e1aa47b..9794796 100644
--- a/libstdc++-v3/testsuite/25_algorithms/push_heap/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/push_heap/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/remove/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/remove/constexpr.cc
index dfb1ea9..22dba85 100644
--- a/libstdc++-v3/testsuite/25_algorithms/remove/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/remove/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/remove/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/remove/constrained.cc
index 144bd8d..81f3954 100644
--- a/libstdc++-v3/testsuite/25_algorithms/remove/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/remove/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/remove_copy/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/remove_copy/constexpr.cc
index b691481..685e39cf 100644
--- a/libstdc++-v3/testsuite/25_algorithms/remove_copy/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/remove_copy/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/remove_copy/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/remove_copy/constrained.cc
index 92841e4..60daaf6 100644
--- a/libstdc++-v3/testsuite/25_algorithms/remove_copy/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/remove_copy/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/remove_copy_if/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/remove_copy_if/constexpr.cc
index 2f55cf6..2fab7f3 100644
--- a/libstdc++-v3/testsuite/25_algorithms/remove_copy_if/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/remove_copy_if/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/remove_copy_if/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/remove_copy_if/constrained.cc
index ae07592..d389863 100644
--- a/libstdc++-v3/testsuite/25_algorithms/remove_copy_if/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/remove_copy_if/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/remove_if/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/remove_if/constexpr.cc
index 3c55c17..4888e48 100644
--- a/libstdc++-v3/testsuite/25_algorithms/remove_if/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/remove_if/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/remove_if/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/remove_if/constrained.cc
index 9d11c69..934357b 100644
--- a/libstdc++-v3/testsuite/25_algorithms/remove_if/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/remove_if/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/replace/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/replace/constrained.cc
index df0e3f4..8e6de45 100644
--- a/libstdc++-v3/testsuite/25_algorithms/replace/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/replace/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/replace_copy/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/replace_copy/constexpr.cc
index 7c0fbed..8c0aed4 100644
--- a/libstdc++-v3/testsuite/25_algorithms/replace_copy/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/replace_copy/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/replace_copy/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/replace_copy/constrained.cc
index 76794db..c016c2b 100644
--- a/libstdc++-v3/testsuite/25_algorithms/replace_copy/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/replace_copy/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/replace_copy_if/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/replace_copy_if/constexpr.cc
index f0e4729..86cde83 100644
--- a/libstdc++-v3/testsuite/25_algorithms/replace_copy_if/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/replace_copy_if/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/replace_copy_if/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/replace_copy_if/constrained.cc
index d767776..463e7c5 100644
--- a/libstdc++-v3/testsuite/25_algorithms/replace_copy_if/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/replace_copy_if/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/replace_if/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/replace_if/constexpr.cc
index 1036f8f..e729589 100644
--- a/libstdc++-v3/testsuite/25_algorithms/replace_if/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/replace_if/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/replace_if/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/replace_if/constrained.cc
index cfc31f1..89d78ac 100644
--- a/libstdc++-v3/testsuite/25_algorithms/replace_if/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/replace_if/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/reverse/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/reverse/constexpr.cc
index 1514001..ea559c0 100644
--- a/libstdc++-v3/testsuite/25_algorithms/reverse/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/reverse/constexpr.cc
@@ -14,8 +14,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/reverse/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/reverse/constrained.cc
index aea8558..6d4603c 100644
--- a/libstdc++-v3/testsuite/25_algorithms/reverse/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/reverse/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/reverse_copy/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/reverse_copy/constexpr.cc
index 3700be2..7d7b47f 100644
--- a/libstdc++-v3/testsuite/25_algorithms/reverse_copy/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/reverse_copy/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/reverse_copy/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/reverse_copy/constrained.cc
index d1bd535..68e6936 100644
--- a/libstdc++-v3/testsuite/25_algorithms/reverse_copy/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/reverse_copy/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/rotate/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/rotate/constexpr.cc
index b58f7f1..e65cae7 100644
--- a/libstdc++-v3/testsuite/25_algorithms/rotate/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/rotate/constexpr.cc
@@ -14,8 +14,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/rotate/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/rotate/constrained.cc
index d0b6409..0167f13 100644
--- a/libstdc++-v3/testsuite/25_algorithms/rotate/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/rotate/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/rotate_copy/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/rotate_copy/constexpr.cc
index c85aa70..467f7c3 100644
--- a/libstdc++-v3/testsuite/25_algorithms/rotate_copy/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/rotate_copy/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/rotate_copy/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/rotate_copy/constrained.cc
index 2d709bb..ab3b5e6 100644
--- a/libstdc++-v3/testsuite/25_algorithms/rotate_copy/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/rotate_copy/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/sample/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/sample/constrained.cc
index 4f176c6..5b089d6 100644
--- a/libstdc++-v3/testsuite/25_algorithms/sample/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/sample/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-cstdint "" }
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/25_algorithms/search/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/search/constexpr.cc
index 0ada072e..8a0edc6 100644
--- a/libstdc++-v3/testsuite/25_algorithms/search/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/search/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/search/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/search/constrained.cc
index f1f5000..0848a0a 100644
--- a/libstdc++-v3/testsuite/25_algorithms/search/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/search/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/search_n/97828.cc b/libstdc++-v3/testsuite/25_algorithms/search_n/97828.cc
index 662f5a2..b6f9fda 100644
--- a/libstdc++-v3/testsuite/25_algorithms/search_n/97828.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/search_n/97828.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// PR libstdc++/97828
diff --git a/libstdc++-v3/testsuite/25_algorithms/search_n/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/search_n/constexpr.cc
index 1941ea7..7285379 100644
--- a/libstdc++-v3/testsuite/25_algorithms/search_n/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/search_n/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/search_n/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/search_n/constrained.cc
index a5df93b..503bcd2 100644
--- a/libstdc++-v3/testsuite/25_algorithms/search_n/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/search_n/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <functional>
diff --git a/libstdc++-v3/testsuite/25_algorithms/set_difference/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/set_difference/constexpr.cc
index 04f1706..94c4aa3 100644
--- a/libstdc++-v3/testsuite/25_algorithms/set_difference/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/set_difference/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/set_difference/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/set_difference/constrained.cc
index f668196..ca57ab6 100644
--- a/libstdc++-v3/testsuite/25_algorithms/set_difference/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/set_difference/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <functional>
diff --git a/libstdc++-v3/testsuite/25_algorithms/set_intersection/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/set_intersection/constexpr.cc
index 4a6721e..8135f9f 100644
--- a/libstdc++-v3/testsuite/25_algorithms/set_intersection/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/set_intersection/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/set_intersection/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/set_intersection/constrained.cc
index e56b978..7f554b2 100644
--- a/libstdc++-v3/testsuite/25_algorithms/set_intersection/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/set_intersection/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <functional>
diff --git a/libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/constexpr.cc
index 5877020..49f9cff 100644
--- a/libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/constrained.cc
index 033de26..83c643f 100644
--- a/libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-cstdint "" }
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/25_algorithms/set_union/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/set_union/constexpr.cc
index 52b3103..d520346 100644
--- a/libstdc++-v3/testsuite/25_algorithms/set_union/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/set_union/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/set_union/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/set_union/constrained.cc
index 3b7882f..3b52337 100644
--- a/libstdc++-v3/testsuite/25_algorithms/set_union/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/set_union/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <functional>
diff --git a/libstdc++-v3/testsuite/25_algorithms/shift_left/1.cc b/libstdc++-v3/testsuite/25_algorithms/shift_left/1.cc
index fd65b41..5bb8e92 100644
--- a/libstdc++-v3/testsuite/25_algorithms/shift_left/1.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/shift_left/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/shift_right/1.cc b/libstdc++-v3/testsuite/25_algorithms/shift_right/1.cc
index 1a03e29..70b07a5 100644
--- a/libstdc++-v3/testsuite/25_algorithms/shift_right/1.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/shift_right/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/shuffle/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/shuffle/constrained.cc
index e2f329c..b6c2d7f 100644
--- a/libstdc++-v3/testsuite/25_algorithms/shuffle/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/shuffle/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-cstdint "" }
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/25_algorithms/sort/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/sort/constexpr.cc
index ddbd376..40fcf53 100644
--- a/libstdc++-v3/testsuite/25_algorithms/sort/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/sort/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/sort/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/sort/constrained.cc
index 3b8bbf8..f6379d6 100644
--- a/libstdc++-v3/testsuite/25_algorithms/sort/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/sort/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-cstdint "" }
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/25_algorithms/sort_heap/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/sort_heap/constexpr.cc
index a8a8ce1..d3b4b9a 100644
--- a/libstdc++-v3/testsuite/25_algorithms/sort_heap/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/sort_heap/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/stable_partition/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/stable_partition/constrained.cc
index f3f4e23..4dfc21d 100644
--- a/libstdc++-v3/testsuite/25_algorithms/stable_partition/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/stable_partition/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// std::stable_partition is not freestanding.
// { dg-require-effective-target hosted }
diff --git a/libstdc++-v3/testsuite/25_algorithms/stable_sort/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/stable_sort/constrained.cc
index 68b9d5b..f24e810 100644
--- a/libstdc++-v3/testsuite/25_algorithms/stable_sort/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/stable_sort/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-cstdint "" }
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/25_algorithms/swap/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/swap/constexpr.cc
index 9259c06..aad91d1 100644
--- a/libstdc++-v3/testsuite/25_algorithms/swap/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/swap/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/25_algorithms/swap_ranges/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/swap_ranges/constexpr.cc
index b2f25e1..78e1fe5 100644
--- a/libstdc++-v3/testsuite/25_algorithms/swap_ranges/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/swap_ranges/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/swap_ranges/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/swap_ranges/constrained.cc
index c79e783..aea3a66 100644
--- a/libstdc++-v3/testsuite/25_algorithms/swap_ranges/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/swap_ranges/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/transform/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/transform/constexpr.cc
index bcd3135..47ba3c6 100644
--- a/libstdc++-v3/testsuite/25_algorithms/transform/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/transform/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/transform/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/transform/constrained.cc
index 377fd43..73a584a 100644
--- a/libstdc++-v3/testsuite/25_algorithms/transform/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/transform/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <functional>
diff --git a/libstdc++-v3/testsuite/25_algorithms/unique/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/unique/constexpr.cc
index 31c1262..29545c2 100644
--- a/libstdc++-v3/testsuite/25_algorithms/unique/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/unique/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/unique/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/unique/constrained.cc
index 09e855e..d015e3d 100644
--- a/libstdc++-v3/testsuite/25_algorithms/unique/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/unique/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <list>
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/25_algorithms/unique_copy/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/unique_copy/constexpr.cc
index 324dfee..71d5860 100644
--- a/libstdc++-v3/testsuite/25_algorithms/unique_copy/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/unique_copy/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/unique_copy/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/unique_copy/constrained.cc
index 388fc27..e2dd6c1 100644
--- a/libstdc++-v3/testsuite/25_algorithms/unique_copy/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/unique_copy/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/upper_bound/constexpr.cc b/libstdc++-v3/testsuite/25_algorithms/upper_bound/constexpr.cc
index 88d45f6..09fa944 100644
--- a/libstdc++-v3/testsuite/25_algorithms/upper_bound/constexpr.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/upper_bound/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/25_algorithms/upper_bound/constrained.cc b/libstdc++-v3/testsuite/25_algorithms/upper_bound/constrained.cc
index 7c0acc8..7a8710a 100644
--- a/libstdc++-v3/testsuite/25_algorithms/upper_bound/constrained.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/upper_bound/constrained.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc b/libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc
index 577fbfe..6c39732 100644
--- a/libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-debug-mode { } }
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc b/libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc
index 0774c17..133265a 100644
--- a/libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-debug-mode { } }
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc b/libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc
index 31bb9c3..9b6ce3f 100644
--- a/libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-debug-mode { } }
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/26_numerics/accumulate/constexpr.cc b/libstdc++-v3/testsuite/26_numerics/accumulate/constexpr.cc
index a6b1ec1..91e4f8a 100644
--- a/libstdc++-v3/testsuite/26_numerics/accumulate/constexpr.cc
+++ b/libstdc++-v3/testsuite/26_numerics/accumulate/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <functional>
#include <numeric>
diff --git a/libstdc++-v3/testsuite/26_numerics/accumulate/lwg2055.cc b/libstdc++-v3/testsuite/26_numerics/accumulate/lwg2055.cc
index 3fd8486..6cdca64 100644
--- a/libstdc++-v3/testsuite/26_numerics/accumulate/lwg2055.cc
+++ b/libstdc++-v3/testsuite/26_numerics/accumulate/lwg2055.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <numeric>
#include <iterator>
diff --git a/libstdc++-v3/testsuite/26_numerics/adjacent_difference/constexpr.cc b/libstdc++-v3/testsuite/26_numerics/adjacent_difference/constexpr.cc
index 0d5265d..bc67b4b 100644
--- a/libstdc++-v3/testsuite/26_numerics/adjacent_difference/constexpr.cc
+++ b/libstdc++-v3/testsuite/26_numerics/adjacent_difference/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <functional>
#include <numeric>
diff --git a/libstdc++-v3/testsuite/26_numerics/adjacent_difference/lwg2055.cc b/libstdc++-v3/testsuite/26_numerics/adjacent_difference/lwg2055.cc
index 870ddaf..4bd2c47 100644
--- a/libstdc++-v3/testsuite/26_numerics/adjacent_difference/lwg2055.cc
+++ b/libstdc++-v3/testsuite/26_numerics/adjacent_difference/lwg2055.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <numeric>
#include <iterator>
diff --git a/libstdc++-v3/testsuite/26_numerics/bit/bit.byteswap/byteswap.cc b/libstdc++-v3/testsuite/26_numerics/bit/bit.byteswap/byteswap.cc
index 19f852f..034019b 100644
--- a/libstdc++-v3/testsuite/26_numerics/bit/bit.byteswap/byteswap.cc
+++ b/libstdc++-v3/testsuite/26_numerics/bit/bit.byteswap/byteswap.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2b" }
// { dg-do compile { target c++23 } }
#include <bit>
diff --git a/libstdc++-v3/testsuite/26_numerics/bit/bit.byteswap/version.cc b/libstdc++-v3/testsuite/26_numerics/bit/bit.byteswap/version.cc
index ffe2566..c179944 100644
--- a/libstdc++-v3/testsuite/26_numerics/bit/bit.byteswap/version.cc
+++ b/libstdc++-v3/testsuite/26_numerics/bit/bit.byteswap/version.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2b" }
// { dg-do compile { target c++23 } }
#include <version>
diff --git a/libstdc++-v3/testsuite/26_numerics/bit/bit.cast/105027.cc b/libstdc++-v3/testsuite/26_numerics/bit/bit.cast/105027.cc
index 301d94e..5cba403 100644
--- a/libstdc++-v3/testsuite/26_numerics/bit/bit.cast/105027.cc
+++ b/libstdc++-v3/testsuite/26_numerics/bit/bit.cast/105027.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// PR libstdc++/105027 - Missing constraints on std::bit_cast
diff --git a/libstdc++-v3/testsuite/26_numerics/bit/bit.cast/bit_cast.cc b/libstdc++-v3/testsuite/26_numerics/bit/bit.cast/bit_cast.cc
index efbf447..dc7249d 100644
--- a/libstdc++-v3/testsuite/26_numerics/bit/bit.cast/bit_cast.cc
+++ b/libstdc++-v3/testsuite/26_numerics/bit/bit.cast/bit_cast.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <bit>
diff --git a/libstdc++-v3/testsuite/26_numerics/bit/bit.cast/version.cc b/libstdc++-v3/testsuite/26_numerics/bit/bit.cast/version.cc
index 691a758..296adf7 100644
--- a/libstdc++-v3/testsuite/26_numerics/bit/bit.cast/version.cc
+++ b/libstdc++-v3/testsuite/26_numerics/bit/bit.cast/version.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <version>
diff --git a/libstdc++-v3/testsuite/26_numerics/bit/bit.count/countl_one.cc b/libstdc++-v3/testsuite/26_numerics/bit/bit.count/countl_one.cc
index c821173..1616e89 100644
--- a/libstdc++-v3/testsuite/26_numerics/bit/bit.count/countl_one.cc
+++ b/libstdc++-v3/testsuite/26_numerics/bit/bit.count/countl_one.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <bit>
#include <limits>
diff --git a/libstdc++-v3/testsuite/26_numerics/bit/bit.count/countl_zero.cc b/libstdc++-v3/testsuite/26_numerics/bit/bit.count/countl_zero.cc
index 5cf208a..fb062c2 100644
--- a/libstdc++-v3/testsuite/26_numerics/bit/bit.count/countl_zero.cc
+++ b/libstdc++-v3/testsuite/26_numerics/bit/bit.count/countl_zero.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <bit>
#include <limits>
diff --git a/libstdc++-v3/testsuite/26_numerics/bit/bit.count/countr_one.cc b/libstdc++-v3/testsuite/26_numerics/bit/bit.count/countr_one.cc
index 9e9bfcc..f63ec1e 100644
--- a/libstdc++-v3/testsuite/26_numerics/bit/bit.count/countr_one.cc
+++ b/libstdc++-v3/testsuite/26_numerics/bit/bit.count/countr_one.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <bit>
#include <limits>
diff --git a/libstdc++-v3/testsuite/26_numerics/bit/bit.count/countr_zero.cc b/libstdc++-v3/testsuite/26_numerics/bit/bit.count/countr_zero.cc
index 044e1ea..f4de8f8 100644
--- a/libstdc++-v3/testsuite/26_numerics/bit/bit.count/countr_zero.cc
+++ b/libstdc++-v3/testsuite/26_numerics/bit/bit.count/countr_zero.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <bit>
#include <limits>
diff --git a/libstdc++-v3/testsuite/26_numerics/bit/bit.count/popcount.cc b/libstdc++-v3/testsuite/26_numerics/bit/bit.count/popcount.cc
index f524e1f..53cb1da 100644
--- a/libstdc++-v3/testsuite/26_numerics/bit/bit.count/popcount.cc
+++ b/libstdc++-v3/testsuite/26_numerics/bit/bit.count/popcount.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <bit>
#include <limits>
diff --git a/libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc b/libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc
index 25bddf5..7e5ce85 100644
--- a/libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc
+++ b/libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <bit>
#include <limits>
diff --git a/libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_ceil_neg.cc b/libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_ceil_neg.cc
index 67aa736..50e63d7 100644
--- a/libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_ceil_neg.cc
+++ b/libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_ceil_neg.cc
@@ -15,8 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a -D_GLIBCXX_ASSERTIONS" }
-// { dg-do run { target c++2a } }
+// { dg-options "-D_GLIBCXX_ASSERTIONS" }
+// { dg-do run { target c++20 } }
// { dg-xfail-run-if "__glibcxx_assert in bit_ceil should fail" { *-*-* } }
#include <bit>
diff --git a/libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc b/libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc
index 5a879ab..fb343b4 100644
--- a/libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc
+++ b/libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <bit>
#include <limits>
diff --git a/libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_width.cc b/libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_width.cc
index 57a1135..d513f1b 100644
--- a/libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_width.cc
+++ b/libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_width.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <bit>
#include <limits>
diff --git a/libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc b/libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc
index 8064eda..74fc684 100644
--- a/libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc
+++ b/libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <bit>
#include <limits>
diff --git a/libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/lwg3656.cc b/libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/lwg3656.cc
index 4752c3b..b9b332f 100644
--- a/libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/lwg3656.cc
+++ b/libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/lwg3656.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
#include <bit>
diff --git a/libstdc++-v3/testsuite/26_numerics/bit/bit.rotate/rotl.cc b/libstdc++-v3/testsuite/26_numerics/bit/bit.rotate/rotl.cc
index 9a908f6..f9c7133 100644
--- a/libstdc++-v3/testsuite/26_numerics/bit/bit.rotate/rotl.cc
+++ b/libstdc++-v3/testsuite/26_numerics/bit/bit.rotate/rotl.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <bit>
#include <limits>
diff --git a/libstdc++-v3/testsuite/26_numerics/bit/bit.rotate/rotr.cc b/libstdc++-v3/testsuite/26_numerics/bit/bit.rotate/rotr.cc
index d3462cb..48cadd7 100644
--- a/libstdc++-v3/testsuite/26_numerics/bit/bit.rotate/rotr.cc
+++ b/libstdc++-v3/testsuite/26_numerics/bit/bit.rotate/rotr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <bit>
#include <limits>
diff --git a/libstdc++-v3/testsuite/26_numerics/bit/header-2.cc b/libstdc++-v3/testsuite/26_numerics/bit/header-2.cc
index 0059c31..07d0865 100644
--- a/libstdc++-v3/testsuite/26_numerics/bit/header-2.cc
+++ b/libstdc++-v3/testsuite/26_numerics/bit/header-2.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <version>
diff --git a/libstdc++-v3/testsuite/26_numerics/bit/header.cc b/libstdc++-v3/testsuite/26_numerics/bit/header.cc
index 00a958e..36207bb 100644
--- a/libstdc++-v3/testsuite/26_numerics/bit/header.cc
+++ b/libstdc++-v3/testsuite/26_numerics/bit/header.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <bit>
diff --git a/libstdc++-v3/testsuite/26_numerics/complex/1.cc b/libstdc++-v3/testsuite/26_numerics/complex/1.cc
index 15379d0..229926c 100644
--- a/libstdc++-v3/testsuite/26_numerics/complex/1.cc
+++ b/libstdc++-v3/testsuite/26_numerics/complex/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do preprocess { target c++2a } }
+// { dg-do preprocess { target c++20 } }
#include <complex>
diff --git a/libstdc++-v3/testsuite/26_numerics/complex/2.cc b/libstdc++-v3/testsuite/26_numerics/complex/2.cc
index bdc2edb..6276e2d 100644
--- a/libstdc++-v3/testsuite/26_numerics/complex/2.cc
+++ b/libstdc++-v3/testsuite/26_numerics/complex/2.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do preprocess { target c++2a } }
+// { dg-do preprocess { target c++20 } }
// { dg-require-effective-target hosted }
#include <version>
diff --git a/libstdc++-v3/testsuite/26_numerics/complex/comparison_operators/more_constexpr.cc b/libstdc++-v3/testsuite/26_numerics/complex/comparison_operators/more_constexpr.cc
index 300b0c6..1472507 100644
--- a/libstdc++-v3/testsuite/26_numerics/complex/comparison_operators/more_constexpr.cc
+++ b/libstdc++-v3/testsuite/26_numerics/complex/comparison_operators/more_constexpr.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2018-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/26_numerics/complex/ext_c++23.cc b/libstdc++-v3/testsuite/26_numerics/complex/ext_c++23.cc
index 68edcd2..f845457 100644
--- a/libstdc++-v3/testsuite/26_numerics/complex/ext_c++23.cc
+++ b/libstdc++-v3/testsuite/26_numerics/complex/ext_c++23.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2b" }
// { dg-do link { target c++23 } }
#include <stdfloat>
diff --git a/libstdc++-v3/testsuite/26_numerics/complex/operators/more_constexpr.cc b/libstdc++-v3/testsuite/26_numerics/complex/operators/more_constexpr.cc
index ff2f49f..320770e 100644
--- a/libstdc++-v3/testsuite/26_numerics/complex/operators/more_constexpr.cc
+++ b/libstdc++-v3/testsuite/26_numerics/complex/operators/more_constexpr.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2018-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/26_numerics/complex/requirements/more_constexpr.cc b/libstdc++-v3/testsuite/26_numerics/complex/requirements/more_constexpr.cc
index 65533db..40d2187 100644
--- a/libstdc++-v3/testsuite/26_numerics/complex/requirements/more_constexpr.cc
+++ b/libstdc++-v3/testsuite/26_numerics/complex/requirements/more_constexpr.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2018-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/26_numerics/complex/value_operations/more_constexpr.cc b/libstdc++-v3/testsuite/26_numerics/complex/value_operations/more_constexpr.cc
index 6118471..ff2ee69 100644
--- a/libstdc++-v3/testsuite/26_numerics/complex/value_operations/more_constexpr.cc
+++ b/libstdc++-v3/testsuite/26_numerics/complex/value_operations/more_constexpr.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2018-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/26_numerics/endian/1.cc b/libstdc++-v3/testsuite/26_numerics/endian/1.cc
index fd32140..1dd89df 100644
--- a/libstdc++-v3/testsuite/26_numerics/endian/1.cc
+++ b/libstdc++-v3/testsuite/26_numerics/endian/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <bit>
diff --git a/libstdc++-v3/testsuite/26_numerics/endian/2.cc b/libstdc++-v3/testsuite/26_numerics/endian/2.cc
index 569882c..2822be3 100644
--- a/libstdc++-v3/testsuite/26_numerics/endian/2.cc
+++ b/libstdc++-v3/testsuite/26_numerics/endian/2.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <bit>
diff --git a/libstdc++-v3/testsuite/26_numerics/endian/3.cc b/libstdc++-v3/testsuite/26_numerics/endian/3.cc
index 63b4459..7e02cab 100644
--- a/libstdc++-v3/testsuite/26_numerics/endian/3.cc
+++ b/libstdc++-v3/testsuite/26_numerics/endian/3.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <version>
diff --git a/libstdc++-v3/testsuite/26_numerics/exclusive_scan/constexpr.cc b/libstdc++-v3/testsuite/26_numerics/exclusive_scan/constexpr.cc
index deabdfe..d6609dd 100644
--- a/libstdc++-v3/testsuite/26_numerics/exclusive_scan/constexpr.cc
+++ b/libstdc++-v3/testsuite/26_numerics/exclusive_scan/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <functional>
#include <numeric>
diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c++23.cc b/libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c++23.cc
index 50612fc..653e228 100644
--- a/libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c++23.cc
+++ b/libstdc++-v3/testsuite/26_numerics/headers/cmath/c99_classification_macros_c++23.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2b" }
// { dg-do link { target c++23 } }
// { dg-excess-errors "" { target uclibc } }
diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc b/libstdc++-v3/testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc
index 5800f3b..efcebe4 100644
--- a/libstdc++-v3/testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc
+++ b/libstdc++-v3/testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2b" }
// { dg-do link { target c++23 } }
#include <stdfloat>
diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_std_c++23.cc b/libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_std_c++23.cc
index ce529af..d9acc6a 100644
--- a/libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_std_c++23.cc
+++ b/libstdc++-v3/testsuite/26_numerics/headers/cmath/functions_std_c++23.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2b" }
// { dg-do link { target c++23 } }
#include <stdfloat>
diff --git a/libstdc++-v3/testsuite/26_numerics/headers/cmath/nextafter_c++23.cc b/libstdc++-v3/testsuite/26_numerics/headers/cmath/nextafter_c++23.cc
index 462a601..8745076 100644
--- a/libstdc++-v3/testsuite/26_numerics/headers/cmath/nextafter_c++23.cc
+++ b/libstdc++-v3/testsuite/26_numerics/headers/cmath/nextafter_c++23.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2b" }
// { dg-do run { target c++23 } }
#include <stdfloat>
diff --git a/libstdc++-v3/testsuite/26_numerics/inclusive_scan/constexpr.cc b/libstdc++-v3/testsuite/26_numerics/inclusive_scan/constexpr.cc
index 2e39394..63053ed 100644
--- a/libstdc++-v3/testsuite/26_numerics/inclusive_scan/constexpr.cc
+++ b/libstdc++-v3/testsuite/26_numerics/inclusive_scan/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <functional>
#include <numeric>
diff --git a/libstdc++-v3/testsuite/26_numerics/inner_product/constexpr.cc b/libstdc++-v3/testsuite/26_numerics/inner_product/constexpr.cc
index 55ed5fd..1cc3803 100644
--- a/libstdc++-v3/testsuite/26_numerics/inner_product/constexpr.cc
+++ b/libstdc++-v3/testsuite/26_numerics/inner_product/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <functional>
#include <numeric>
diff --git a/libstdc++-v3/testsuite/26_numerics/inner_product/lwg2055.cc b/libstdc++-v3/testsuite/26_numerics/inner_product/lwg2055.cc
index 647583c..66953c4 100644
--- a/libstdc++-v3/testsuite/26_numerics/inner_product/lwg2055.cc
+++ b/libstdc++-v3/testsuite/26_numerics/inner_product/lwg2055.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <numeric>
#include <iterator>
diff --git a/libstdc++-v3/testsuite/26_numerics/iota/constexpr.cc b/libstdc++-v3/testsuite/26_numerics/iota/constexpr.cc
index 8b7ea23..089c4fb 100644
--- a/libstdc++-v3/testsuite/26_numerics/iota/constexpr.cc
+++ b/libstdc++-v3/testsuite/26_numerics/iota/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <numeric>
diff --git a/libstdc++-v3/testsuite/26_numerics/lerp/1.cc b/libstdc++-v3/testsuite/26_numerics/lerp/1.cc
index 328f509..65b71543 100644
--- a/libstdc++-v3/testsuite/26_numerics/lerp/1.cc
+++ b/libstdc++-v3/testsuite/26_numerics/lerp/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <cmath>
diff --git a/libstdc++-v3/testsuite/26_numerics/lerp/constexpr.cc b/libstdc++-v3/testsuite/26_numerics/lerp/constexpr.cc
index f1ab42b..10956a5 100644
--- a/libstdc++-v3/testsuite/26_numerics/lerp/constexpr.cc
+++ b/libstdc++-v3/testsuite/26_numerics/lerp/constexpr.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <cmath>
diff --git a/libstdc++-v3/testsuite/26_numerics/lerp/version.cc b/libstdc++-v3/testsuite/26_numerics/lerp/version.cc
index c19ead7..63206ba 100644
--- a/libstdc++-v3/testsuite/26_numerics/lerp/version.cc
+++ b/libstdc++-v3/testsuite/26_numerics/lerp/version.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do preprocess { target c++2a } }
+// { dg-do preprocess { target c++20 } }
// { dg-require-effective-target hosted }
#include <version>
diff --git a/libstdc++-v3/testsuite/26_numerics/midpoint/floating.cc b/libstdc++-v3/testsuite/26_numerics/midpoint/floating.cc
index 7ccf317..32985db 100644
--- a/libstdc++-v3/testsuite/26_numerics/midpoint/floating.cc
+++ b/libstdc++-v3/testsuite/26_numerics/midpoint/floating.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <numeric>
#include <limits>
diff --git a/libstdc++-v3/testsuite/26_numerics/midpoint/integral.cc b/libstdc++-v3/testsuite/26_numerics/midpoint/integral.cc
index 0157db5b..0f8a16e 100644
--- a/libstdc++-v3/testsuite/26_numerics/midpoint/integral.cc
+++ b/libstdc++-v3/testsuite/26_numerics/midpoint/integral.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <numeric>
diff --git a/libstdc++-v3/testsuite/26_numerics/midpoint/pointer.cc b/libstdc++-v3/testsuite/26_numerics/midpoint/pointer.cc
index 6d70cfe..c119685 100644
--- a/libstdc++-v3/testsuite/26_numerics/midpoint/pointer.cc
+++ b/libstdc++-v3/testsuite/26_numerics/midpoint/pointer.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <numeric>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/26_numerics/midpoint/pointer_neg.cc b/libstdc++-v3/testsuite/26_numerics/midpoint/pointer_neg.cc
index 8fa8d53..1935ed4 100644
--- a/libstdc++-v3/testsuite/26_numerics/midpoint/pointer_neg.cc
+++ b/libstdc++-v3/testsuite/26_numerics/midpoint/pointer_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <numeric>
diff --git a/libstdc++-v3/testsuite/26_numerics/midpoint/version.cc b/libstdc++-v3/testsuite/26_numerics/midpoint/version.cc
index c19ead7..63206ba 100644
--- a/libstdc++-v3/testsuite/26_numerics/midpoint/version.cc
+++ b/libstdc++-v3/testsuite/26_numerics/midpoint/version.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do preprocess { target c++2a } }
+// { dg-do preprocess { target c++20 } }
// { dg-require-effective-target hosted }
#include <version>
diff --git a/libstdc++-v3/testsuite/26_numerics/numbers/1.cc b/libstdc++-v3/testsuite/26_numerics/numbers/1.cc
index 8371452..f41551c 100644
--- a/libstdc++-v3/testsuite/26_numerics/numbers/1.cc
+++ b/libstdc++-v3/testsuite/26_numerics/numbers/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <numbers>
diff --git a/libstdc++-v3/testsuite/26_numerics/numbers/2.cc b/libstdc++-v3/testsuite/26_numerics/numbers/2.cc
index e35bda3..d9e791e 100644
--- a/libstdc++-v3/testsuite/26_numerics/numbers/2.cc
+++ b/libstdc++-v3/testsuite/26_numerics/numbers/2.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <version>
diff --git a/libstdc++-v3/testsuite/26_numerics/numbers/3.cc b/libstdc++-v3/testsuite/26_numerics/numbers/3.cc
index ff0fb1a..c7e32c9 100644
--- a/libstdc++-v3/testsuite/26_numerics/numbers/3.cc
+++ b/libstdc++-v3/testsuite/26_numerics/numbers/3.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <numbers>
diff --git a/libstdc++-v3/testsuite/26_numerics/numbers/4.cc b/libstdc++-v3/testsuite/26_numerics/numbers/4.cc
index e89167e..990a167 100644
--- a/libstdc++-v3/testsuite/26_numerics/numbers/4.cc
+++ b/libstdc++-v3/testsuite/26_numerics/numbers/4.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2b" }
// { dg-do compile { target c++23 } }
#include <numbers>
diff --git a/libstdc++-v3/testsuite/26_numerics/numbers/float128.cc b/libstdc++-v3/testsuite/26_numerics/numbers/float128.cc
index ff50cf4..a5983b7 100644
--- a/libstdc++-v3/testsuite/26_numerics/numbers/float128.cc
+++ b/libstdc++-v3/testsuite/26_numerics/numbers/float128.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <numbers>
diff --git a/libstdc++-v3/testsuite/26_numerics/numbers/nonfloat_neg.cc b/libstdc++-v3/testsuite/26_numerics/numbers/nonfloat_neg.cc
index b7f1afc..35e2ad8 100644
--- a/libstdc++-v3/testsuite/26_numerics/numbers/nonfloat_neg.cc
+++ b/libstdc++-v3/testsuite/26_numerics/numbers/nonfloat_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <numbers>
diff --git a/libstdc++-v3/testsuite/26_numerics/partial_sum/constexpr.cc b/libstdc++-v3/testsuite/26_numerics/partial_sum/constexpr.cc
index 9737f96..782f074 100644
--- a/libstdc++-v3/testsuite/26_numerics/partial_sum/constexpr.cc
+++ b/libstdc++-v3/testsuite/26_numerics/partial_sum/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <functional>
#include <numeric>
diff --git a/libstdc++-v3/testsuite/26_numerics/partial_sum/lwg2055.cc b/libstdc++-v3/testsuite/26_numerics/partial_sum/lwg2055.cc
index 627371b..c1fd6d5 100644
--- a/libstdc++-v3/testsuite/26_numerics/partial_sum/lwg2055.cc
+++ b/libstdc++-v3/testsuite/26_numerics/partial_sum/lwg2055.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <numeric>
#include <iterator>
diff --git a/libstdc++-v3/testsuite/26_numerics/random/concept.cc b/libstdc++-v3/testsuite/26_numerics/random/concept.cc
index fcc1614..0b37290 100644
--- a/libstdc++-v3/testsuite/26_numerics/random/concept.cc
+++ b/libstdc++-v3/testsuite/26_numerics/random/concept.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-cstdint "" }
#include <random>
diff --git a/libstdc++-v3/testsuite/26_numerics/reduce/constexpr.cc b/libstdc++-v3/testsuite/26_numerics/reduce/constexpr.cc
index eb89d73..89eda70 100644
--- a/libstdc++-v3/testsuite/26_numerics/reduce/constexpr.cc
+++ b/libstdc++-v3/testsuite/26_numerics/reduce/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <functional>
#include <numeric>
diff --git a/libstdc++-v3/testsuite/26_numerics/slice/compare.cc b/libstdc++-v3/testsuite/26_numerics/slice/compare.cc
index c239896..2c269b2 100644
--- a/libstdc++-v3/testsuite/26_numerics/slice/compare.cc
+++ b/libstdc++-v3/testsuite/26_numerics/slice/compare.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <valarray>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/26_numerics/transform_exclusive_scan/constexpr.cc b/libstdc++-v3/testsuite/26_numerics/transform_exclusive_scan/constexpr.cc
index f409a33..9ca770a 100644
--- a/libstdc++-v3/testsuite/26_numerics/transform_exclusive_scan/constexpr.cc
+++ b/libstdc++-v3/testsuite/26_numerics/transform_exclusive_scan/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <functional>
#include <numeric>
diff --git a/libstdc++-v3/testsuite/26_numerics/transform_inclusive_scan/constexpr.cc b/libstdc++-v3/testsuite/26_numerics/transform_inclusive_scan/constexpr.cc
index 8f3d527..ff3639f 100644
--- a/libstdc++-v3/testsuite/26_numerics/transform_inclusive_scan/constexpr.cc
+++ b/libstdc++-v3/testsuite/26_numerics/transform_inclusive_scan/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <functional>
#include <numeric>
diff --git a/libstdc++-v3/testsuite/26_numerics/transform_reduce/constexpr.cc b/libstdc++-v3/testsuite/26_numerics/transform_reduce/constexpr.cc
index 5eeeec9..e331f53 100644
--- a/libstdc++-v3/testsuite/26_numerics/transform_reduce/constexpr.cc
+++ b/libstdc++-v3/testsuite/26_numerics/transform_reduce/constexpr.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <functional>
#include <numeric>
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/native_handle/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/native_handle/char/1.cc
new file mode 100644
index 0000000..749451a
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/native_handle/char/1.cc
@@ -0,0 +1,61 @@
+// { dg-options "-fno-inline" }
+// { dg-do run { target c++26 } }
+// { dg-additional-files "filebuf_members-1.txt" }
+
+#include <fstream>
+
+#ifndef __cpp_lib_fstream_native_handle
+# error "Feature-test macro for fstream_native_handle missing in <fstream>"
+#elif __cpp_lib_fstream_native_handle != 202306L
+# error "Feature-test macro for fstream_native_handle has wrong value in <fstream>"
+#endif
+
+using type = std::basic_filebuf<char>::native_handle_type;
+
+#include <cstdio> // std::fclose(FILE*)
+#if __has_include(<unistd.h>)
+# include <unistd.h> // close(int)
+#endif
+#if __has_include(<handleapi.h>)
+# include <handleapi.h> // CloseHandle(HANDLE)
+#endif
+
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+ std::filebuf f;
+ f.open("filebuf_members-1.txt", std::ios::in);
+ type handle = f.native_handle();
+
+ auto native_close = []<typename HandleT>(HandleT handle) {
+ if constexpr (std::is_same_v<HandleT, std::FILE*>)
+ std::fclose(handle); // --enable-cstdio=stdio_pure
+#if __has_include(<unistd.h>)
+ else if constexpr (std::is_same_v<HandleT, int>)
+ ::close(handle); // POSIX
+#endif
+#if __has_include(<handleapi.h>)
+ else if constexpr (std::is_same_v<HandleT, void*>)
+ ::CloseHandle(handle); // Windows
+#endif
+ else
+ VERIFY( false );
+ };
+ native_close(handle);
+
+ try
+ {
+ f.sgetc();
+ VERIFY( false );
+ }
+ catch (const std::ios::failure&)
+ {
+ }
+}
+
+int main()
+{
+ test01();
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/native_handle/version.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/native_handle/version.cc
new file mode 100644
index 0000000..46c400d
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/native_handle/version.cc
@@ -0,0 +1,10 @@
+// { dg-do preprocess { target c++26 } }
+// { dg-require-effective-target hosted }
+
+#include <version>
+
+#ifndef __cpp_lib_fstream_native_handle
+# error "Feature-test macro for fstream_native_handle missing in <version>"
+#elif __cpp_lib_fstream_native_handle != 202306L
+# error "Feature-test macro for fstream_native_handle has wrong value in <version>"
+#endif
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/native_handle/wchar_t/1.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/native_handle/wchar_t/1.cc
new file mode 100644
index 0000000..7ee5e4e
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/native_handle/wchar_t/1.cc
@@ -0,0 +1,55 @@
+// { dg-options "-fno-inline" }
+// { dg-do run { target c++26 } }
+// { dg-additional-files "filebuf_members-1.txt" }
+
+#include <fstream>
+
+using type = std::basic_filebuf<wchar_t>::native_handle_type;
+
+#include <cstdio> // std::fclose(FILE*)
+#if __has_include(<unistd.h>)
+# include <unistd.h> // close(int)
+#endif
+#if __has_include(<handleapi.h>)
+# include <handleapi.h> // CloseHandle(HANDLE)
+#endif
+
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+ std::wfilebuf f;
+ f.open("filebuf_members-1.txt", std::wios::in);
+ type handle = f.native_handle();
+
+ auto native_close = []<typename HandleT>(HandleT handle) {
+ if constexpr (std::is_same_v<HandleT, std::FILE*>)
+ std::fclose(handle); // --enable-cstdio=stdio_pure
+#if __has_include(<unistd.h>)
+ else if constexpr (std::is_same_v<HandleT, int>)
+ ::close(handle); // POSIX
+#endif
+#if __has_include(<handleapi.h>)
+ else if constexpr (std::is_same_v<HandleT, void*>)
+ ::CloseHandle(handle); // Windows
+#endif
+ else
+ VERIFY( false );
+ };
+ native_close(handle);
+
+ try
+ {
+ f.sgetc();
+ VERIFY( false );
+ }
+ catch (const std::ios::failure&)
+ {
+ }
+}
+
+int main()
+{
+ test01();
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc
index c812c52..5afa33e 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc
@@ -21,14 +21,12 @@
// { dg-require-fileio "" }
// { dg-require-binary-io "" }
+// { dg-additional-files "seekoff-1io.tst" }
#include <fstream>
#include <testsuite_hooks.h>
#include <testsuite_io.h>
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
const char name_01[] = "seekoff-1io.tst";
void test05()
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc
index 4cfaf68..cd3f765 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc
@@ -21,14 +21,12 @@
// { dg-require-fileio "" }
// { dg-require-binary-io "" }
+// { dg-additional-files "seekoff-2io.tst" }
#include <fstream>
#include <testsuite_hooks.h>
#include <testsuite_io.h>
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
const char name_01[] = "seekoff-2io.tst";
void test05()
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/1-io.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/1-io.cc
index 57eabe3..4566ebd 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/1-io.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/1-io.cc
@@ -20,14 +20,12 @@
// 27.8.1.4 Overridden virtual functions
// { dg-require-fileio "" }
+// { dg-additional-files "seekpos-1io.tst" }
#include <fstream>
#include <testsuite_hooks.h>
#include <testsuite_io.h>
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
const char name_01[] = "seekpos-1io.tst"; // file with data in it
void test05()
diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/2-io.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/2-io.cc
index 714c3d6..8500dd5 100644
--- a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/2-io.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/char/2-io.cc
@@ -20,14 +20,12 @@
// 27.8.1.4 Overridden virtual functions
// { dg-require-fileio "" }
+// { dg-additional-files "seekpos-2io.tst" }
#include <fstream>
#include <testsuite_hooks.h>
#include <testsuite_io.h>
-// @require@ %-*.tst %-*.txt
-// @diff@ %-*.tst %*.txt
-
const char name_01[] = "seekpos-2io.tst"; // file with data in it
void test05()
diff --git a/libstdc++-v3/testsuite/27_io/basic_fstream/native_handle/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_fstream/native_handle/char/1.cc
new file mode 100644
index 0000000..a0e6557
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/basic_fstream/native_handle/char/1.cc
@@ -0,0 +1,21 @@
+// { dg-options "-fno-inline" }
+// { dg-do run { target c++26 } }
+// { dg-additional-files "filebuf_members-1.txt" }
+
+#include <fstream>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+ static_assert( std::is_same_v<std::filebuf::native_handle_type,
+ std::fstream::native_handle_type> );
+ std::fstream f;
+ f.open("filebuf_members-1.txt", std::ios::in);
+ VERIFY( f.native_handle() == f.rdbuf()->native_handle() );
+}
+
+int main()
+{
+ test01();
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_fstream/native_handle/wchar_t/1.cc b/libstdc++-v3/testsuite/27_io/basic_fstream/native_handle/wchar_t/1.cc
new file mode 100644
index 0000000..fe9395c1
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/basic_fstream/native_handle/wchar_t/1.cc
@@ -0,0 +1,21 @@
+// { dg-options "-fno-inline" }
+// { dg-do run { target c++26 } }
+// { dg-additional-files "filebuf_members-1.txt" }
+
+#include <fstream>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+ static_assert( std::is_same_v<std::wfilebuf::native_handle_type,
+ std::wfstream::native_handle_type> );
+ std::wfstream f;
+ f.open("filebuf_members-1.txt", std::wios::in);
+ VERIFY( f.native_handle() == f.rdbuf()->native_handle() );
+}
+
+int main()
+{
+ test01();
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ifstream/native_handle/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_ifstream/native_handle/char/1.cc
new file mode 100644
index 0000000..9eb477b
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/basic_ifstream/native_handle/char/1.cc
@@ -0,0 +1,21 @@
+// { dg-options "-fno-inline" }
+// { dg-do run { target c++26 } }
+// { dg-additional-files "filebuf_members-1.txt" }
+
+#include <fstream>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+ static_assert( std::is_same_v<std::filebuf::native_handle_type,
+ std::ifstream::native_handle_type> );
+ std::ifstream f;
+ f.open("filebuf_members-1.txt");
+ VERIFY( f.native_handle() == f.rdbuf()->native_handle() );
+}
+
+int main()
+{
+ test01();
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ifstream/native_handle/wchar_t/1.cc b/libstdc++-v3/testsuite/27_io/basic_ifstream/native_handle/wchar_t/1.cc
new file mode 100644
index 0000000..a4680ae
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/basic_ifstream/native_handle/wchar_t/1.cc
@@ -0,0 +1,21 @@
+// { dg-options "-fno-inline" }
+// { dg-do run { target c++26 } }
+// { dg-additional-files "filebuf_members-1.txt" }
+
+#include <fstream>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+ static_assert( std::is_same_v<std::wfilebuf::native_handle_type,
+ std::wifstream::native_handle_type> );
+ std::wifstream f;
+ f.open("filebuf_members-1.txt");
+ VERIFY( f.native_handle() == f.rdbuf()->native_handle() );
+}
+
+int main()
+{
+ test01();
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/lwg2499.cc b/libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/lwg2499.cc
index 75ec75b..060cb93 100644
--- a/libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/lwg2499.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/lwg2499.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// LWG 2499
// operator>>(basic_istream&, CharT*) makes it hard to avoid buffer overflows
diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc b/libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc
index a214365..02b0e9a 100644
--- a/libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// LWG 2499
// operator>>(basic_istream&, CharT*) makes it hard to avoid buffer overflows
diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499.cc b/libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499.cc
index 62689b3..9605a4f 100644
--- a/libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// LWG 2499
// operator>>(basic_istream&, CharT*) makes it hard to avoid buffer overflows
diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc b/libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc
index dae4935..3e808aa 100644
--- a/libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// LWG 2499
// operator>>(basic_istream&, CharT*) makes it hard to avoid buffer overflows
diff --git a/libstdc++-v3/testsuite/27_io/basic_istringstream/cons/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_istringstream/cons/char/1.cc
index e5b141d..923eaa0 100644
--- a/libstdc++-v3/testsuite/27_io/basic_istringstream/cons/char/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_istringstream/cons/char/1.cc
@@ -17,8 +17,7 @@
// C++20 29.8.3.2 basic_istringstream constructors [istringstream.cons]
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-effective-target cxx11_abi }
#include <sstream>
diff --git a/libstdc++-v3/testsuite/27_io/basic_istringstream/cons/wchar_t/1.cc b/libstdc++-v3/testsuite/27_io/basic_istringstream/cons/wchar_t/1.cc
index 771e149..f75afcc1 100644
--- a/libstdc++-v3/testsuite/27_io/basic_istringstream/cons/wchar_t/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_istringstream/cons/wchar_t/1.cc
@@ -17,8 +17,7 @@
// C++20 29.8.3.2 basic_istringstream constructors [istringstream.cons]
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-effective-target cxx11_abi }
#include <sstream>
diff --git a/libstdc++-v3/testsuite/27_io/basic_istringstream/str/char/2.cc b/libstdc++-v3/testsuite/27_io/basic_istringstream/str/char/2.cc
index 9447731..641cf52 100644
--- a/libstdc++-v3/testsuite/27_io/basic_istringstream/str/char/2.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_istringstream/str/char/2.cc
@@ -17,8 +17,7 @@
// 29.8.3.4 basic_istringstream member functions [istringstream.members]
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-effective-target cxx11_abi }
#include <sstream>
diff --git a/libstdc++-v3/testsuite/27_io/basic_istringstream/str/wchar_t/2.cc b/libstdc++-v3/testsuite/27_io/basic_istringstream/str/wchar_t/2.cc
index 6a848f4..0d4ee36 100644
--- a/libstdc++-v3/testsuite/27_io/basic_istringstream/str/wchar_t/2.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_istringstream/str/wchar_t/2.cc
@@ -17,8 +17,7 @@
// 29.8.3.4 basic_istringstream member functions [istringstream.members]
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-effective-target cxx11_abi }
#include <sstream>
diff --git a/libstdc++-v3/testsuite/27_io/basic_istringstream/view/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_istringstream/view/char/1.cc
index 04aae81..781c9ab 100644
--- a/libstdc++-v3/testsuite/27_io/basic_istringstream/view/char/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_istringstream/view/char/1.cc
@@ -17,8 +17,7 @@
// 29.8.3.4 basic_istringstream member functions [istringstream.members]
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <sstream>
#include <string_view>
diff --git a/libstdc++-v3/testsuite/27_io/basic_istringstream/view/wchar_t/1.cc b/libstdc++-v3/testsuite/27_io/basic_istringstream/view/wchar_t/1.cc
index 06b04b3..ed6b905 100644
--- a/libstdc++-v3/testsuite/27_io/basic_istringstream/view/wchar_t/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_istringstream/view/wchar_t/1.cc
@@ -17,8 +17,7 @@
// 27.7.1.1 basic_stringbuf constructors [lib.stringbuf.cons]
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <sstream>
#include <string_view>
diff --git a/libstdc++-v3/testsuite/27_io/basic_ofstream/native_handle/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_ofstream/native_handle/char/1.cc
new file mode 100644
index 0000000..38aea6f
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/basic_ofstream/native_handle/char/1.cc
@@ -0,0 +1,21 @@
+// { dg-options "-fno-inline" }
+// { dg-do run { target c++26 } }
+// { dg-additional-files "filebuf_members-1.txt" }
+
+#include <fstream>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+ static_assert( std::is_same_v<std::filebuf::native_handle_type,
+ std::ofstream::native_handle_type> );
+ std::ofstream f;
+ f.open("filebuf_members-1.txt");
+ VERIFY( f.native_handle() == f.rdbuf()->native_handle() );
+}
+
+int main()
+{
+ test01();
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ofstream/native_handle/wchar_t/1.cc b/libstdc++-v3/testsuite/27_io/basic_ofstream/native_handle/wchar_t/1.cc
new file mode 100644
index 0000000..dcc72e9
--- /dev/null
+++ b/libstdc++-v3/testsuite/27_io/basic_ofstream/native_handle/wchar_t/1.cc
@@ -0,0 +1,21 @@
+// { dg-options "-fno-inline" }
+// { dg-do run { target c++26 } }
+// { dg-additional-files "filebuf_members-1.txt" }
+
+#include <fstream>
+#include <testsuite_hooks.h>
+
+void
+test01()
+{
+ static_assert( std::is_same_v<std::wfilebuf::native_handle_type,
+ std::wofstream::native_handle_type> );
+ std::wofstream f;
+ f.open("filebuf_members-1.txt");
+ VERIFY( f.native_handle() == f.rdbuf()->native_handle() );
+}
+
+int main()
+{
+ test01();
+}
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/emit/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/emit/1.cc
index a72ba45..2c2709a 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ostream/emit/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ostream/emit/1.cc
@@ -15,9 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
// { dg-additional-options "-pthread" { target pthread } }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-effective-target cxx11_abi }
// { dg-require-effective-target rtti }
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc
index d23a3e9..73c0ab3 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc
@@ -19,8 +19,7 @@
// Test character inserters defined as deleted by P1423.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <ostream>
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc
index fddadeb..b3bcbb0 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc
@@ -19,8 +19,7 @@
// Test wide character inserters defined as deleted by P1423.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <ostream>
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc
index 151e13d..1a7d25d 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc
@@ -1,4 +1,4 @@
-// { dg-options "-std=gnu++23 -fno-inline" }
+// { dg-options "-fno-inline" }
// { dg-do run { target c++23 } }
#include <sstream>
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/char/1.cc
index af8766f..d43472b 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/char/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/char/1.cc
@@ -17,8 +17,7 @@
// C++20 29.8.4.2 basic_ostringstream constructors [ostringstream.cons]
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-effective-target cxx11_abi }
#include <sstream>
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/wchar_t/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/wchar_t/1.cc
index 3e5eda3..7157257 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/wchar_t/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ostringstream/cons/wchar_t/1.cc
@@ -17,8 +17,7 @@
// C++20 29.8.4.2 basic_ostringstream constructors [ostringstream.cons]
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-effective-target cxx11_abi }
#include <sstream>
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostringstream/str/char/3.cc b/libstdc++-v3/testsuite/27_io/basic_ostringstream/str/char/3.cc
index 3dabd32..fbb77d0 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ostringstream/str/char/3.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ostringstream/str/char/3.cc
@@ -17,8 +17,7 @@
// 29.8.4.4 basic_ostringstream member functions [ostringstream.members]
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-effective-target cxx11_abi }
#include <sstream>
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostringstream/str/wchar_t/3.cc b/libstdc++-v3/testsuite/27_io/basic_ostringstream/str/wchar_t/3.cc
index 13d862b..bb1aefe 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ostringstream/str/wchar_t/3.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ostringstream/str/wchar_t/3.cc
@@ -17,8 +17,7 @@
// 29.8.4.4 basic_ostringstream member functions [ostringstream.members]
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-effective-target cxx11_abi }
#include <sstream>
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostringstream/view/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostringstream/view/char/1.cc
index 4127908..ab938a7 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ostringstream/view/char/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ostringstream/view/char/1.cc
@@ -17,8 +17,7 @@
// 29.8.4.4 basic_ostringstream member functions [ostringstream.members]
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <sstream>
#include <string_view>
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc b/libstdc++-v3/testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc
index 2f177d4..bc5f9ab 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc
@@ -17,8 +17,7 @@
// 29.8.4.4 basic_ostringstream member functions [ostringstream.members]
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <sstream>
#include <string_view>
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/char/2.cc b/libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/char/2.cc
index 28c0e2c..bfc2ee2 100644
--- a/libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/char/2.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/char/2.cc
@@ -17,8 +17,7 @@
// C++20 29.8.2.2 basic_stringbuf constructors [stringbuf.cons]
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-effective-target cxx11_abi }
#include <sstream>
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/wchar_t/2.cc b/libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/wchar_t/2.cc
index cbe9360..0c7352c 100644
--- a/libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/wchar_t/2.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_stringbuf/cons/wchar_t/2.cc
@@ -17,8 +17,7 @@
// C++20 29.8.2.2 basic_stringbuf constructors [stringbuf.cons]
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-effective-target cxx11_abi }
#include <sstream>
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/4.cc b/libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/4.cc
index efa0cc7..b2dc2a3 100644
--- a/libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/4.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_stringbuf/str/char/4.cc
@@ -17,8 +17,7 @@
// 29.8.2.4 basic_stringbuf member functions [stringbuf.members]
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-effective-target cxx11_abi }
#include <sstream>
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/4.cc b/libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/4.cc
index 4a002b9..349be66 100644
--- a/libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/4.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_stringbuf/str/wchar_t/4.cc
@@ -17,8 +17,7 @@
// 29.8.2.4 basic_stringbuf member functions [stringbuf.members]
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-effective-target cxx11_abi }
#include <sstream>
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringbuf/view/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_stringbuf/view/char/1.cc
index 138f4b1..4e58113 100644
--- a/libstdc++-v3/testsuite/27_io/basic_stringbuf/view/char/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_stringbuf/view/char/1.cc
@@ -17,8 +17,7 @@
// 27.7.1.1 basic_stringbuf constructors [lib.stringbuf.cons]
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <sstream>
#include <string_view>
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc b/libstdc++-v3/testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc
index 30b8f05..a303d3b 100644
--- a/libstdc++-v3/testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc
@@ -17,8 +17,7 @@
// 27.7.1.1 basic_stringbuf constructors [lib.stringbuf.cons]
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <sstream>
#include <string_view>
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringstream/cons/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_stringstream/cons/char/1.cc
index 9eff397..abbad36 100644
--- a/libstdc++-v3/testsuite/27_io/basic_stringstream/cons/char/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_stringstream/cons/char/1.cc
@@ -17,8 +17,7 @@
// C++20 29.8.5.2 basic_stringstream constructors [stringstream.cons]
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-effective-target cxx11_abi }
#include <sstream>
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringstream/cons/char/97719.cc b/libstdc++-v3/testsuite/27_io/basic_stringstream/cons/char/97719.cc
index 6a65d52..ad78358 100644
--- a/libstdc++-v3/testsuite/27_io/basic_stringstream/cons/char/97719.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_stringstream/cons/char/97719.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <sstream>
#include <iterator>
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringstream/cons/wchar_t/1.cc b/libstdc++-v3/testsuite/27_io/basic_stringstream/cons/wchar_t/1.cc
index 8007b53..e1a308a 100644
--- a/libstdc++-v3/testsuite/27_io/basic_stringstream/cons/wchar_t/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_stringstream/cons/wchar_t/1.cc
@@ -17,8 +17,7 @@
// C++20 29.8.5.2 basic_stringstream constructors [stringstream.cons]
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-effective-target cxx11_abi }
#include <sstream>
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/5.cc b/libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/5.cc
index e503023..812c4dd 100644
--- a/libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/5.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_stringstream/str/char/5.cc
@@ -17,8 +17,7 @@
// 29.8.5.4 basic_stringstream member functions [stringstream.members]
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-effective-target cxx11_abi }
#include <sstream>
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/5.cc.cc b/libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/5.cc.cc
index 370760e..109ffed 100644
--- a/libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/5.cc.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_stringstream/str/wchar_t/5.cc.cc
@@ -17,8 +17,7 @@
// 29.8.5.4 basic_stringstream member functions [stringstream.members]
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-effective-target cxx11_abi }
#include <sstream>
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringstream/view/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_stringstream/view/char/1.cc
index 91d329d..c86933c 100644
--- a/libstdc++-v3/testsuite/27_io/basic_stringstream/view/char/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_stringstream/view/char/1.cc
@@ -17,8 +17,7 @@
// 29.8.5.4 basic_stringstream member functions [stringstream.members]
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <sstream>
#include <string_view>
diff --git a/libstdc++-v3/testsuite/27_io/basic_stringstream/view/wchar_t/1.cc b/libstdc++-v3/testsuite/27_io/basic_stringstream/view/wchar_t/1.cc
index 7af53dc..73bde02 100644
--- a/libstdc++-v3/testsuite/27_io/basic_stringstream/view/wchar_t/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_stringstream/view/wchar_t/1.cc
@@ -17,8 +17,7 @@
// 27.7.1.1 basic_stringbuf constructors [lib.stringbuf.cons]
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <sstream>
#include <string_view>
diff --git a/libstdc++-v3/testsuite/27_io/basic_syncbuf/1.cc b/libstdc++-v3/testsuite/27_io/basic_syncbuf/1.cc
index 80ccce8..d48ad09 100644
--- a/libstdc++-v3/testsuite/27_io/basic_syncbuf/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_syncbuf/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-effective-target cxx11_abi }
#include <syncstream>
diff --git a/libstdc++-v3/testsuite/27_io/basic_syncbuf/2.cc b/libstdc++-v3/testsuite/27_io/basic_syncbuf/2.cc
index a58da3d..ad1ab38 100644
--- a/libstdc++-v3/testsuite/27_io/basic_syncbuf/2.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_syncbuf/2.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-effective-target cxx11_abi }
// { dg-require-effective-target hosted }
diff --git a/libstdc++-v3/testsuite/27_io/basic_syncbuf/basic_ops/1.cc b/libstdc++-v3/testsuite/27_io/basic_syncbuf/basic_ops/1.cc
index 8c1c99a..2e719b0 100644
--- a/libstdc++-v3/testsuite/27_io/basic_syncbuf/basic_ops/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_syncbuf/basic_ops/1.cc
@@ -15,9 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
// { dg-additional-options "-pthread" { target pthread } }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-effective-target cxx11_abi }
#include <sstream>
diff --git a/libstdc++-v3/testsuite/27_io/basic_syncbuf/requirements/types.cc b/libstdc++-v3/testsuite/27_io/basic_syncbuf/requirements/types.cc
index 355941d..9364a30 100644
--- a/libstdc++-v3/testsuite/27_io/basic_syncbuf/requirements/types.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_syncbuf/requirements/types.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-effective-target cxx11_abi }
#include <syncstream>
diff --git a/libstdc++-v3/testsuite/27_io/basic_syncbuf/sync_ops/1.cc b/libstdc++-v3/testsuite/27_io/basic_syncbuf/sync_ops/1.cc
index 753a341..2f82669 100644
--- a/libstdc++-v3/testsuite/27_io/basic_syncbuf/sync_ops/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_syncbuf/sync_ops/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-effective-target cxx11_abi }
// { dg-require-gthreads "" }
// { dg-add-options libatomic }
diff --git a/libstdc++-v3/testsuite/27_io/basic_syncstream/1.cc b/libstdc++-v3/testsuite/27_io/basic_syncstream/1.cc
index 80ccce8..d48ad09 100644
--- a/libstdc++-v3/testsuite/27_io/basic_syncstream/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_syncstream/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-effective-target cxx11_abi }
#include <syncstream>
diff --git a/libstdc++-v3/testsuite/27_io/basic_syncstream/2.cc b/libstdc++-v3/testsuite/27_io/basic_syncstream/2.cc
index a58da3d..ad1ab38 100644
--- a/libstdc++-v3/testsuite/27_io/basic_syncstream/2.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_syncstream/2.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-effective-target cxx11_abi }
// { dg-require-effective-target hosted }
diff --git a/libstdc++-v3/testsuite/27_io/basic_syncstream/basic_ops/1.cc b/libstdc++-v3/testsuite/27_io/basic_syncstream/basic_ops/1.cc
index 60181a5..39c0d91 100644
--- a/libstdc++-v3/testsuite/27_io/basic_syncstream/basic_ops/1.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_syncstream/basic_ops/1.cc
@@ -15,9 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
// { dg-additional-options "-pthread" { target pthread } }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-effective-target cxx11_abi }
#include <sstream>
diff --git a/libstdc++-v3/testsuite/27_io/basic_syncstream/requirements/types.cc b/libstdc++-v3/testsuite/27_io/basic_syncstream/requirements/types.cc
index 990e6dc..92ad944 100644
--- a/libstdc++-v3/testsuite/27_io/basic_syncstream/requirements/types.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_syncstream/requirements/types.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-effective-target cxx11_abi }
#include <syncstream>
diff --git a/libstdc++-v3/testsuite/27_io/filesystem/iterators/106201.cc b/libstdc++-v3/testsuite/27_io/filesystem/iterators/106201.cc
index c5fefd9..4002c7a 100644
--- a/libstdc++-v3/testsuite/27_io/filesystem/iterators/106201.cc
+++ b/libstdc++-v3/testsuite/27_io/filesystem/iterators/106201.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-require-filesystem-ts "" }
diff --git a/libstdc++-v3/testsuite/27_io/filesystem/iterators/lwg3719.cc b/libstdc++-v3/testsuite/27_io/filesystem/iterators/lwg3719.cc
index c19cddc..9dcb0e0 100644
--- a/libstdc++-v3/testsuite/27_io/filesystem/iterators/lwg3719.cc
+++ b/libstdc++-v3/testsuite/27_io/filesystem/iterators/lwg3719.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
// { dg-require-filesystem-ts "" }
diff --git a/libstdc++-v3/testsuite/27_io/filesystem/path/factory/u8path-depr.cc b/libstdc++-v3/testsuite/27_io/filesystem/path/factory/u8path-depr.cc
index de54668..ffa5997 100644
--- a/libstdc++-v3/testsuite/27_io/filesystem/path/factory/u8path-depr.cc
+++ b/libstdc++-v3/testsuite/27_io/filesystem/path/factory/u8path-depr.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
#include <filesystem>
diff --git a/libstdc++-v3/testsuite/27_io/filesystem/path/native/conv_c++23.cc b/libstdc++-v3/testsuite/27_io/filesystem/path/native/conv_c++23.cc
index b4efed2..35b0e8b 100644
--- a/libstdc++-v3/testsuite/27_io/filesystem/path/native/conv_c++23.cc
+++ b/libstdc++-v3/testsuite/27_io/filesystem/path/native/conv_c++23.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
#include <filesystem>
diff --git a/libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/cmp_c++20.cc b/libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/cmp_c++20.cc
index 75bdea8..6c51059 100644
--- a/libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/cmp_c++20.cc
+++ b/libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/cmp_c++20.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/27_io/spanstream/1.cc b/libstdc++-v3/testsuite/27_io/spanstream/1.cc
index b66ee60..bd45a38 100644
--- a/libstdc++-v3/testsuite/27_io/spanstream/1.cc
+++ b/libstdc++-v3/testsuite/27_io/spanstream/1.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <spanstream>
diff --git a/libstdc++-v3/testsuite/27_io/spanstream/2.cc b/libstdc++-v3/testsuite/27_io/spanstream/2.cc
index a13a50b..6b5f622 100644
--- a/libstdc++-v3/testsuite/27_io/spanstream/2.cc
+++ b/libstdc++-v3/testsuite/27_io/spanstream/2.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <spanstream>
diff --git a/libstdc++-v3/testsuite/27_io/spanstream/version.cc b/libstdc++-v3/testsuite/27_io/spanstream/version.cc
index 26077c9..7434e3b 100644
--- a/libstdc++-v3/testsuite/27_io/spanstream/version.cc
+++ b/libstdc++-v3/testsuite/27_io/spanstream/version.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
// { dg-require-effective-target hosted }
diff --git a/libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/lwg3719.cc b/libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/lwg3719.cc
index e8c8f79..b110420 100644
--- a/libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/lwg3719.cc
+++ b/libstdc++-v3/testsuite/28_regex/iterators/regex_iterator/lwg3719.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
#include <regex>
diff --git a/libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc b/libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc
index 5c36ace..02019db 100644
--- a/libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc
+++ b/libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
#include <regex>
diff --git a/libstdc++-v3/testsuite/28_regex/sub_match/compare_c++20.cc b/libstdc++-v3/testsuite/28_regex/sub_match/compare_c++20.cc
index 0beaec0e..d60ab41 100644
--- a/libstdc++-v3/testsuite/28_regex/sub_match/compare_c++20.cc
+++ b/libstdc++-v3/testsuite/28_regex/sub_match/compare_c++20.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-timeout-factor 2 }
#include <regex>
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc b/libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc
index c4ab876..01f7475 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc
@@ -1,5 +1,5 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
+// { dg-require-thread-fence "" }
// { dg-add-options libatomic }
#include <atomic>
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc b/libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc
index 47d5a5d..809c6c0 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc
@@ -15,8 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
+// { dg-require-thread-fence "" }
#include <atomic>
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic/lock_free_aliases.cc b/libstdc++-v3/testsuite/29_atomics/atomic/lock_free_aliases.cc
index 02c4ccc..8192f73 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic/lock_free_aliases.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic/lock_free_aliases.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
#include <atomic>
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic/requirements/types_neg.cc b/libstdc++-v3/testsuite/29_atomics/atomic/requirements/types_neg.cc
index 29a42c5..7070fb8 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic/requirements/types_neg.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic/requirements/types_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <atomic>
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/1.cc b/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/1.cc
index 2f23459..3ded103 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/1.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-effective-target gthreads }
// { dg-require-effective-target hosted }
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/100334.cc b/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/100334.cc
index 06e4a2e..78e718e 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/100334.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/100334.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-gthreads "" }
// { dg-additional-options "-pthread" { target pthread } }
// { dg-add-options libatomic }
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/102994.cc b/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/102994.cc
index 72d9a92..6b77acf 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/102994.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/102994.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-require-gthreads "" }
// { dg-require-effective-target hosted }
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/2.cc b/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/2.cc
index 0c4a1b8..d07bdee 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/2.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/2.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-effective-target gthreads }
// { dg-require-effective-target hosted }
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/bool.cc b/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/bool.cc
index 0af0c7d..d80d371 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/bool.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/bool.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-gthreads "" }
// { dg-additional-options "-pthread" { target pthread } }
// { dg-add-options libatomic }
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/generic.cc b/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/generic.cc
index cdd6c49..57fc43e 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/generic.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/generic.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-gthreads "" }
// { dg-additional-options "-pthread" { target pthread } }
// { dg-add-options libatomic }
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/pointers.cc b/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/pointers.cc
index 10274cc..0e069f2 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/pointers.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/pointers.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-additional-options "-pthread" { target pthread } }
// { dg-require-gthreads "" }
// { dg-add-options libatomic }
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/value_init.cc b/libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/value_init.cc
index 565d1ac..084e293 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/value_init.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/value_init.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <atomic>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_flag/test/explicit.cc b/libstdc++-v3/testsuite/29_atomics/atomic_flag/test/explicit.cc
index fc8d658..f223ca1 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_flag/test/explicit.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_flag/test/explicit.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-thread-fence "" }
// Copyright (C) 2008-2023 Free Software Foundation, Inc.
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_flag/test/implicit.cc b/libstdc++-v3/testsuite/29_atomics/atomic_flag/test/implicit.cc
index 2840055..83c984f 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_flag/test/implicit.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_flag/test/implicit.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-thread-fence "" }
// Copyright (C) 2008-2023 Free Software Foundation, Inc.
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_flag/wait_notify/1.cc b/libstdc++-v3/testsuite/29_atomics/atomic_flag/wait_notify/1.cc
index 777fa91..9c4983d 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_flag/wait_notify/1.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_flag/wait_notify/1.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-gthreads "" }
// { dg-additional-options "-pthread" { target pthread } }
// { dg-add-options libatomic }
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_float/1.cc b/libstdc++-v3/testsuite/29_atomics/atomic_float/1.cc
index e2e5003..3c2997f 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_float/1.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_float/1.cc
@@ -15,9 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
// { dg-add-options ieee }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <atomic>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_float/95282.cc b/libstdc++-v3/testsuite/29_atomics/atomic_float/95282.cc
index 1313fdf..f7ba286 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_float/95282.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_float/95282.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <atomic>
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_float/requirements.cc b/libstdc++-v3/testsuite/29_atomics/atomic_float/requirements.cc
index 832714a..bec94d9 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_float/requirements.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_float/requirements.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <atomic>
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_float/requirements_cxx23.cc b/libstdc++-v3/testsuite/29_atomics/atomic_float/requirements_cxx23.cc
index df1562d..04393a7 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_float/requirements_cxx23.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_float/requirements_cxx23.cc
@@ -15,7 +15,6 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2b" }
// { dg-do compile { target c++23 } }
#include <atomic>
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_float/value_init.cc b/libstdc++-v3/testsuite/29_atomics/atomic_float/value_init.cc
index 1cd1efb..9b84e47 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_float/value_init.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_float/value_init.cc
@@ -15,8 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
+// { dg-require-thread-fence "" }
// { dg-add-options libatomic }
#include <atomic>
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_float/wait_notify.cc b/libstdc++-v3/testsuite/29_atomics/atomic_float/wait_notify.cc
index 50c5be6..eff3a05 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_float/wait_notify.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_float/wait_notify.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-gthreads "" }
// { dg-additional-options "-pthread" { target pthread } }
// { dg-add-options libatomic }
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/value_init.cc b/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/value_init.cc
index 96615a7..58b03f3 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/value_init.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/value_init.cc
@@ -15,8 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
+// { dg-require-thread-fence "" }
#include <atomic>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_integral/wait_notify.cc b/libstdc++-v3/testsuite/29_atomics/atomic_integral/wait_notify.cc
index 0e6a307..d032be8 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_integral/wait_notify.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_integral/wait_notify.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-gthreads "" }
// { dg-add-options libatomic }
// { dg-additional-options "-pthread" { target pthread } }
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc b/libstdc++-v3/testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc
index 0dab8a2..2a3d1d4 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc
@@ -1,5 +1,5 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
+// { dg-require-thread-fence "" }
// { dg-add-options libatomic }
#include <atomic>
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_ref/deduction.cc b/libstdc++-v3/testsuite/29_atomics/atomic_ref/deduction.cc
index 1298b78..dbefc9b 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_ref/deduction.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_ref/deduction.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <atomic>
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_ref/float.cc b/libstdc++-v3/testsuite/29_atomics/atomic_ref/float.cc
index a34aa39..82db34a 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_ref/float.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_ref/float.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <atomic>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_ref/generic.cc b/libstdc++-v3/testsuite/29_atomics/atomic_ref/generic.cc
index 14f417d..f875175 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_ref/generic.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_ref/generic.cc
@@ -15,8 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
+// { dg-require-thread-fence "" }
// { dg-add-options libatomic }
#include <atomic>
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_ref/integral.cc b/libstdc++-v3/testsuite/29_atomics/atomic_ref/integral.cc
index e03ca92..eb22afc 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_ref/integral.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_ref/integral.cc
@@ -15,8 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
+// { dg-require-thread-fence "" }
// { dg-add-options libatomic }
#include <atomic>
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_ref/pointer.cc b/libstdc++-v3/testsuite/29_atomics/atomic_ref/pointer.cc
index 8cd0e12..6fe00b5 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_ref/pointer.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_ref/pointer.cc
@@ -15,8 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
+// { dg-require-thread-fence "" }
// { dg-add-options libatomic }
#include <atomic>
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_ref/requirements.cc b/libstdc++-v3/testsuite/29_atomics/atomic_ref/requirements.cc
index 5e61d80..42be6e4 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_ref/requirements.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_ref/requirements.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <atomic>
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_ref/wait_notify.cc b/libstdc++-v3/testsuite/29_atomics/atomic_ref/wait_notify.cc
index ede4646..05316f7 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_ref/wait_notify.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_ref/wait_notify.cc
@@ -1,6 +1,5 @@
-// { dg-options "-std=gnu++2a -pthread" }
-// { dg-do run { target c++2a } }
-// { dg-require-effective-target pthread }
+// { dg-do run { target c++20 } }
+// { dg-additional-options "-pthread" { target pthread } }
// { dg-require-gthreads "" }
// { dg-add-options libatomic }
diff --git a/libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++20.cc b/libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++20.cc
index 3440347..71bf22f 100644
--- a/libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++20.cc
+++ b/libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++20.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-cstdint "" }
// Copyright (C) 2008-2023 Free Software Foundation, Inc.
diff --git a/libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc b/libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc
index fcf9e97..3dfdfe4 100644
--- a/libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc
+++ b/libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-cstdint "" }
// Copyright (C) 2009-2023 Free Software Foundation, Inc.
diff --git a/libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++2a.cc b/libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++2a.cc
index 4e5bf25..fe6c9fe 100644
--- a/libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++2a.cc
+++ b/libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++2a.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2019-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc b/libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc
index 8eba8bf..42e6793 100644
--- a/libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc
+++ b/libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc
@@ -1,5 +1,7 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
+// Disable PCH because <bits/stdc++.h> includes <stdatomic.h> which declares
+// memory_order in the global namespace.
+// { dg-add-options no_pch }
// Copyright (C) 2019-2023 Free Software Foundation, Inc.
//
@@ -23,7 +25,7 @@
void test01()
{
// Not global scoped, only namespace std.
- using memory_order; // { dg-error "expected nested-name-specifier" }
+ using ::memory_order; // { dg-error "has not been declared" }
constexpr auto relaxed = memory_order::relaxed; // { dg-error "has not been declared" }
constexpr auto consume = memory_order::consume; // { dg-error "has not been declared" }
constexpr auto acquire = memory_order::acquire; // { dg-error "has not been declared" }
diff --git a/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/c_compat.cc b/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/c_compat.cc
index 3364c60..70d37d4 100644
--- a/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/c_compat.cc
+++ b/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/c_compat.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
#include <stdatomic.h>
diff --git a/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/version.cc b/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/version.cc
index ab74fe6..26fa76d 100644
--- a/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/version.cc
+++ b/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/version.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do preprocess { target c++23 } }
// <stdatomic.h> is not freestanding.
diff --git a/libstdc++-v3/testsuite/30_threads/barrier/1.cc b/libstdc++-v3/testsuite/30_threads/barrier/1.cc
index 5b0bcb4..e7f62a1 100644
--- a/libstdc++-v3/testsuite/30_threads/barrier/1.cc
+++ b/libstdc++-v3/testsuite/30_threads/barrier/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-effective-target gthreads }
#include <barrier>
diff --git a/libstdc++-v3/testsuite/30_threads/barrier/2.cc b/libstdc++-v3/testsuite/30_threads/barrier/2.cc
index 1981920..d33597a 100644
--- a/libstdc++-v3/testsuite/30_threads/barrier/2.cc
+++ b/libstdc++-v3/testsuite/30_threads/barrier/2.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-effective-target gthreads }
// { dg-require-effective-target hosted }
diff --git a/libstdc++-v3/testsuite/30_threads/barrier/arrive.cc b/libstdc++-v3/testsuite/30_threads/barrier/arrive.cc
index 8e5c9ad..77fa121 100644
--- a/libstdc++-v3/testsuite/30_threads/barrier/arrive.cc
+++ b/libstdc++-v3/testsuite/30_threads/barrier/arrive.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-gthreads "" }
// { dg-additional-options "-pthread" { target pthread } }
// { dg-add-options libatomic }
diff --git a/libstdc++-v3/testsuite/30_threads/barrier/arrive_and_drop.cc b/libstdc++-v3/testsuite/30_threads/barrier/arrive_and_drop.cc
index 061b27c..3ec6090 100644
--- a/libstdc++-v3/testsuite/30_threads/barrier/arrive_and_drop.cc
+++ b/libstdc++-v3/testsuite/30_threads/barrier/arrive_and_drop.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-gthreads "" }
// { dg-additional-options "-pthread" { target pthread } }
// { dg-add-options libatomic }
diff --git a/libstdc++-v3/testsuite/30_threads/barrier/arrive_and_wait.cc b/libstdc++-v3/testsuite/30_threads/barrier/arrive_and_wait.cc
index a8d59c3..6ef9e62 100644
--- a/libstdc++-v3/testsuite/30_threads/barrier/arrive_and_wait.cc
+++ b/libstdc++-v3/testsuite/30_threads/barrier/arrive_and_wait.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-gthreads "" }
// { dg-additional-options "-pthread" { target pthread } }
// { dg-add-options libatomic }
diff --git a/libstdc++-v3/testsuite/30_threads/barrier/completion.cc b/libstdc++-v3/testsuite/30_threads/barrier/completion.cc
index acb3d7a..8848c3b4 100644
--- a/libstdc++-v3/testsuite/30_threads/barrier/completion.cc
+++ b/libstdc++-v3/testsuite/30_threads/barrier/completion.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-gthreads "" }
// { dg-additional-options "-pthread" { target pthread } }
// { dg-add-options libatomic }
diff --git a/libstdc++-v3/testsuite/30_threads/condition_variable/members/clock_neg.cc b/libstdc++-v3/testsuite/30_threads/condition_variable/members/clock_neg.cc
index f1f1cda..21bfc65 100644
--- a/libstdc++-v3/testsuite/30_threads/condition_variable/members/clock_neg.cc
+++ b/libstdc++-v3/testsuite/30_threads/condition_variable/members/clock_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <condition_variable>
diff --git a/libstdc++-v3/testsuite/30_threads/condition_variable_any/members/clock_neg.cc b/libstdc++-v3/testsuite/30_threads/condition_variable_any/members/clock_neg.cc
index eeb0cd2..b4a777d 100644
--- a/libstdc++-v3/testsuite/30_threads/condition_variable_any/members/clock_neg.cc
+++ b/libstdc++-v3/testsuite/30_threads/condition_variable_any/members/clock_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <condition_variable>
diff --git a/libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/1.cc b/libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/1.cc
index 16dc911..8c17397 100644
--- a/libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/1.cc
+++ b/libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <condition_variable>
diff --git a/libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/2.cc b/libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/2.cc
index 3a226f9..754bd91 100644
--- a/libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/2.cc
+++ b/libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/2.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-effective-target hosted }
#include <version>
diff --git a/libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc b/libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc
index edebaa6..bac1f35 100644
--- a/libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc
+++ b/libstdc++-v3/testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc
@@ -15,11 +15,9 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a -pthread" }
// { dg-add-options libatomic }
-// { dg-do run }
-// { dg-require-effective-target c++2a }
-// { dg-require-effective-target pthread }
+// { dg-do run { target c++20 } }
+// { dg-additional-options "-pthread" { target pthread } }
#include <condition_variable>
#include <thread>
diff --git a/libstdc++-v3/testsuite/30_threads/future/members/clock_neg.cc b/libstdc++-v3/testsuite/30_threads/future/members/clock_neg.cc
index 6c2b9e2..4a791a8 100644
--- a/libstdc++-v3/testsuite/30_threads/future/members/clock_neg.cc
+++ b/libstdc++-v3/testsuite/30_threads/future/members/clock_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <future>
diff --git a/libstdc++-v3/testsuite/30_threads/headers/stop_token/synopsis.cc b/libstdc++-v3/testsuite/30_threads/headers/stop_token/synopsis.cc
index e069b54..269e5fb 100644
--- a/libstdc++-v3/testsuite/30_threads/headers/stop_token/synopsis.cc
+++ b/libstdc++-v3/testsuite/30_threads/headers/stop_token/synopsis.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-normal-namespace "" }
#include <stop_token>
diff --git a/libstdc++-v3/testsuite/30_threads/headers/thread/types_std_c++20.cc b/libstdc++-v3/testsuite/30_threads/headers/thread/types_std_c++20.cc
index 7e4b057..dc9bcb2 100644
--- a/libstdc++-v3/testsuite/30_threads/headers/thread/types_std_c++20.cc
+++ b/libstdc++-v3/testsuite/30_threads/headers/thread/types_std_c++20.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-gthreads "" }
// Copyright (C) 2019-2023 Free Software Foundation, Inc.
diff --git a/libstdc++-v3/testsuite/30_threads/jthread/1.cc b/libstdc++-v3/testsuite/30_threads/jthread/1.cc
index 0f8e91c..e4063af 100644
--- a/libstdc++-v3/testsuite/30_threads/jthread/1.cc
+++ b/libstdc++-v3/testsuite/30_threads/jthread/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-gthreads "" }
#include <thread>
diff --git a/libstdc++-v3/testsuite/30_threads/jthread/100612.cc b/libstdc++-v3/testsuite/30_threads/jthread/100612.cc
index d6c8170..9b43618 100644
--- a/libstdc++-v3/testsuite/30_threads/jthread/100612.cc
+++ b/libstdc++-v3/testsuite/30_threads/jthread/100612.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-additional-options "-pthread" { target pthread } }
// { dg-require-gthreads "" }
diff --git a/libstdc++-v3/testsuite/30_threads/jthread/3.cc b/libstdc++-v3/testsuite/30_threads/jthread/3.cc
index ef0252a..796481c 100644
--- a/libstdc++-v3/testsuite/30_threads/jthread/3.cc
+++ b/libstdc++-v3/testsuite/30_threads/jthread/3.cc
@@ -15,9 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a -pthread" }
-// { dg-do compile { target c++2a } }
-// { dg-require-effective-target pthread }
+// { dg-do compile { target c++20 } }
+// { dg-additional-options "-pthread" { target pthread } }
// { dg-require-gthreads "" }
#include <thread>
diff --git a/libstdc++-v3/testsuite/30_threads/jthread/95989.cc b/libstdc++-v3/testsuite/30_threads/jthread/95989.cc
index e98836d..81de2fb 100644
--- a/libstdc++-v3/testsuite/30_threads/jthread/95989.cc
+++ b/libstdc++-v3/testsuite/30_threads/jthread/95989.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-gthreads {} }
// { dg-additional-options "-pthread" { target pthread } }
// { dg-additional-options "-static" { target static } }
diff --git a/libstdc++-v3/testsuite/30_threads/jthread/jthread.cc b/libstdc++-v3/testsuite/30_threads/jthread/jthread.cc
index bfc1380..d734c57 100644
--- a/libstdc++-v3/testsuite/30_threads/jthread/jthread.cc
+++ b/libstdc++-v3/testsuite/30_threads/jthread/jthread.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-add-options libatomic }
// { dg-additional-options "-pthread" { target pthread } }
// { dg-require-gthreads "" }
diff --git a/libstdc++-v3/testsuite/30_threads/jthread/version.cc b/libstdc++-v3/testsuite/30_threads/jthread/version.cc
index f34e054..48241e9 100644
--- a/libstdc++-v3/testsuite/30_threads/jthread/version.cc
+++ b/libstdc++-v3/testsuite/30_threads/jthread/version.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-gthreads "" }
// { dg-require-effective-target hosted }
diff --git a/libstdc++-v3/testsuite/30_threads/latch/1.cc b/libstdc++-v3/testsuite/30_threads/latch/1.cc
index 21df10b..6f4da11 100644
--- a/libstdc++-v3/testsuite/30_threads/latch/1.cc
+++ b/libstdc++-v3/testsuite/30_threads/latch/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <latch>
diff --git a/libstdc++-v3/testsuite/30_threads/latch/2.cc b/libstdc++-v3/testsuite/30_threads/latch/2.cc
index 201ffe5..4ebd9e6 100644
--- a/libstdc++-v3/testsuite/30_threads/latch/2.cc
+++ b/libstdc++-v3/testsuite/30_threads/latch/2.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-effective-target hosted }
#include <version>
diff --git a/libstdc++-v3/testsuite/30_threads/latch/3.cc b/libstdc++-v3/testsuite/30_threads/latch/3.cc
index 0017019..6052cb7 100644
--- a/libstdc++-v3/testsuite/30_threads/latch/3.cc
+++ b/libstdc++-v3/testsuite/30_threads/latch/3.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-gthreads "" }
// { dg-additional-options "-pthread" { target pthread } }
// { dg-add-options libatomic }
diff --git a/libstdc++-v3/testsuite/30_threads/packaged_task/cons/deduction_c++23.cc b/libstdc++-v3/testsuite/30_threads/packaged_task/cons/deduction_c++23.cc
index e36edfa0..6a43cf9 100644
--- a/libstdc++-v3/testsuite/30_threads/packaged_task/cons/deduction_c++23.cc
+++ b/libstdc++-v3/testsuite/30_threads/packaged_task/cons/deduction_c++23.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
#include <future>
diff --git a/libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/clock_neg.cc b/libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/clock_neg.cc
index 264add0..bcd9081 100644
--- a/libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/clock_neg.cc
+++ b/libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/clock_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <mutex>
diff --git a/libstdc++-v3/testsuite/30_threads/semaphore/1.cc b/libstdc++-v3/testsuite/30_threads/semaphore/1.cc
index a38ae35..f58e7f5 100644
--- a/libstdc++-v3/testsuite/30_threads/semaphore/1.cc
+++ b/libstdc++-v3/testsuite/30_threads/semaphore/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <semaphore>
diff --git a/libstdc++-v3/testsuite/30_threads/semaphore/100806.cc b/libstdc++-v3/testsuite/30_threads/semaphore/100806.cc
index 2fa2628..c770f05 100644
--- a/libstdc++-v3/testsuite/30_threads/semaphore/100806.cc
+++ b/libstdc++-v3/testsuite/30_threads/semaphore/100806.cc
@@ -1,6 +1,5 @@
-// { dg-options "-std=gnu++2a -pthread" }
-// { dg-do run { target c++2a } }
-// { dg-require-effective-target pthread }
+// { dg-do run { target c++20 } }
+// { dg-additional-options "-pthread" { target pthread } }
// { dg-require-gthreads "" }
// { dg-add-options libatomic }
diff --git a/libstdc++-v3/testsuite/30_threads/semaphore/2.cc b/libstdc++-v3/testsuite/30_threads/semaphore/2.cc
index 1d2f9ce..0bab294 100644
--- a/libstdc++-v3/testsuite/30_threads/semaphore/2.cc
+++ b/libstdc++-v3/testsuite/30_threads/semaphore/2.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-effective-target hosted }
#include <version>
diff --git a/libstdc++-v3/testsuite/30_threads/semaphore/least_max_value_neg.cc b/libstdc++-v3/testsuite/30_threads/semaphore/least_max_value_neg.cc
index afecff9..be29a8e 100644
--- a/libstdc++-v3/testsuite/30_threads/semaphore/least_max_value_neg.cc
+++ b/libstdc++-v3/testsuite/30_threads/semaphore/least_max_value_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-effective-target pthread }
// { dg-require-gthreads "" }
diff --git a/libstdc++-v3/testsuite/30_threads/semaphore/try_acquire.cc b/libstdc++-v3/testsuite/30_threads/semaphore/try_acquire.cc
index b9661aa..082ab17 100644
--- a/libstdc++-v3/testsuite/30_threads/semaphore/try_acquire.cc
+++ b/libstdc++-v3/testsuite/30_threads/semaphore/try_acquire.cc
@@ -15,9 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a -pthread" }
-// { dg-do run { target c++2a } }
-// { dg-require-effective-target pthread }
+// { dg-do run { target c++20 } }
+// { dg-additional-options "-pthread" { target pthread } }
// { dg-require-gthreads "" }
// { dg-add-options libatomic }
diff --git a/libstdc++-v3/testsuite/30_threads/semaphore/try_acquire_for.cc b/libstdc++-v3/testsuite/30_threads/semaphore/try_acquire_for.cc
index 250bfe3..901e15c 100644
--- a/libstdc++-v3/testsuite/30_threads/semaphore/try_acquire_for.cc
+++ b/libstdc++-v3/testsuite/30_threads/semaphore/try_acquire_for.cc
@@ -15,9 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a -pthread" }
-// { dg-do run { target c++2a } }
-// { dg-require-effective-target pthread }
+// { dg-do run { target c++20 } }
+// { dg-additional-options "-pthread" { target pthread } }
// { dg-require-gthreads "" }
// { dg-add-options libatomic }
diff --git a/libstdc++-v3/testsuite/30_threads/semaphore/try_acquire_posix.cc b/libstdc++-v3/testsuite/30_threads/semaphore/try_acquire_posix.cc
index a8f0fe3..8828212 100644
--- a/libstdc++-v3/testsuite/30_threads/semaphore/try_acquire_posix.cc
+++ b/libstdc++-v3/testsuite/30_threads/semaphore/try_acquire_posix.cc
@@ -15,9 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a -pthread" }
-// { dg-do run { target c++2a } }
-// { dg-require-effective-target pthread }
+// { dg-do run { target c++20 } }
+// { dg-additional-options "-pthread" { target pthread } }
// { dg-require-gthreads "" }
// { dg-add-options libatomic }
diff --git a/libstdc++-v3/testsuite/30_threads/semaphore/try_acquire_until.cc b/libstdc++-v3/testsuite/30_threads/semaphore/try_acquire_until.cc
index bde0c0d..4a7f97b 100644
--- a/libstdc++-v3/testsuite/30_threads/semaphore/try_acquire_until.cc
+++ b/libstdc++-v3/testsuite/30_threads/semaphore/try_acquire_until.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-require-gthreads "" }
// { dg-additional-options "-pthread" { target pthread } }
// { dg-add-options libatomic }
diff --git a/libstdc++-v3/testsuite/30_threads/shared_future/members/clock_neg.cc b/libstdc++-v3/testsuite/30_threads/shared_future/members/clock_neg.cc
index 9d332db..c669af3 100644
--- a/libstdc++-v3/testsuite/30_threads/shared_future/members/clock_neg.cc
+++ b/libstdc++-v3/testsuite/30_threads/shared_future/members/clock_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <future>
diff --git a/libstdc++-v3/testsuite/30_threads/shared_lock/locking/clock_neg.cc b/libstdc++-v3/testsuite/30_threads/shared_lock/locking/clock_neg.cc
index e5a8be75..9a2dde0 100644
--- a/libstdc++-v3/testsuite/30_threads/shared_lock/locking/clock_neg.cc
+++ b/libstdc++-v3/testsuite/30_threads/shared_lock/locking/clock_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <shared_mutex>
diff --git a/libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock_until/clock_neg.cc b/libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock_until/clock_neg.cc
index 3f9b4cc..7de9947 100644
--- a/libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock_until/clock_neg.cc
+++ b/libstdc++-v3/testsuite/30_threads/shared_timed_mutex/try_lock_until/clock_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <shared_mutex>
diff --git a/libstdc++-v3/testsuite/30_threads/stop_token/1.cc b/libstdc++-v3/testsuite/30_threads/stop_token/1.cc
index 7e1fd78..099c6c1 100644
--- a/libstdc++-v3/testsuite/30_threads/stop_token/1.cc
+++ b/libstdc++-v3/testsuite/30_threads/stop_token/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <stop_token>
diff --git a/libstdc++-v3/testsuite/30_threads/stop_token/2.cc b/libstdc++-v3/testsuite/30_threads/stop_token/2.cc
index 3a226f9..754bd91 100644
--- a/libstdc++-v3/testsuite/30_threads/stop_token/2.cc
+++ b/libstdc++-v3/testsuite/30_threads/stop_token/2.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-effective-target hosted }
#include <version>
diff --git a/libstdc++-v3/testsuite/30_threads/stop_token/stop_callback.cc b/libstdc++-v3/testsuite/30_threads/stop_token/stop_callback.cc
index 9755053..1bd16a1 100644
--- a/libstdc++-v3/testsuite/30_threads/stop_token/stop_callback.cc
+++ b/libstdc++-v3/testsuite/30_threads/stop_token/stop_callback.cc
@@ -15,9 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
// { dg-add-options libatomic }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <stop_token>
#include <functional>
diff --git a/libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/deadlock-mt.cc b/libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/deadlock-mt.cc
index f616287..e780955 100644
--- a/libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/deadlock-mt.cc
+++ b/libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/deadlock-mt.cc
@@ -15,10 +15,9 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a -pthread" }
// { dg-add-options libatomic }
-// { dg-require-effective-target c++2a }
-// { dg-require-effective-target pthread }
+// { dg-do run { target c++20 } }
+// { dg-additional-options "-pthread" { target pthread } }
// { dg-require-gthreads "" }
#include <stop_token>
diff --git a/libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/deadlock.cc b/libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/deadlock.cc
index aa9c41c..d2b4d03 100644
--- a/libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/deadlock.cc
+++ b/libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/deadlock.cc
@@ -15,9 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
// { dg-add-options libatomic }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <stop_token>
#include <memory>
diff --git a/libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/destroy.cc b/libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/destroy.cc
index 6bdd4d13..f13761c 100644
--- a/libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/destroy.cc
+++ b/libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/destroy.cc
@@ -15,10 +15,9 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a -pthread" }
// { dg-add-options libatomic }
-// { dg-require-effective-target c++2a }
-// { dg-require-effective-target pthread }
+// { dg-do run { target c++20 } }
+// { dg-additional-options "-pthread" { target pthread } }
// { dg-require-gthreads "" }
#include <stop_token>
diff --git a/libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/destructible_neg.cc b/libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/destructible_neg.cc
index f9fc640..55a0596 100644
--- a/libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/destructible_neg.cc
+++ b/libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/destructible_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <stop_token>
diff --git a/libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/invocable_neg.cc b/libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/invocable_neg.cc
index 6cf78b5..4e3cd34 100644
--- a/libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/invocable_neg.cc
+++ b/libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/invocable_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <stop_token>
diff --git a/libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/invoke.cc b/libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/invoke.cc
index 65d3346..ad95e30 100644
--- a/libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/invoke.cc
+++ b/libstdc++-v3/testsuite/30_threads/stop_token/stop_callback/invoke.cc
@@ -15,9 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
// { dg-add-options libatomic }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <stop_token>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/30_threads/stop_token/stop_source.cc b/libstdc++-v3/testsuite/30_threads/stop_token/stop_source.cc
index fac94f3..a48e87c 100644
--- a/libstdc++-v3/testsuite/30_threads/stop_token/stop_source.cc
+++ b/libstdc++-v3/testsuite/30_threads/stop_token/stop_source.cc
@@ -15,9 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
// { dg-add-options libatomic }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <stop_token>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/30_threads/stop_token/stop_source/assign.cc b/libstdc++-v3/testsuite/30_threads/stop_token/stop_source/assign.cc
index 37599c1..6e58d58 100644
--- a/libstdc++-v3/testsuite/30_threads/stop_token/stop_source/assign.cc
+++ b/libstdc++-v3/testsuite/30_threads/stop_token/stop_source/assign.cc
@@ -15,9 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
// { dg-add-options libatomic }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <stop_token>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/30_threads/stop_token/stop_token.cc b/libstdc++-v3/testsuite/30_threads/stop_token/stop_token.cc
index 537b2c8..91c8933 100644
--- a/libstdc++-v3/testsuite/30_threads/stop_token/stop_token.cc
+++ b/libstdc++-v3/testsuite/30_threads/stop_token/stop_token.cc
@@ -15,9 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
// { dg-add-options libatomic }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <stop_token>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/30_threads/stop_token/stop_token/stop_possible.cc b/libstdc++-v3/testsuite/30_threads/stop_token/stop_token/stop_possible.cc
index 7fd9119..9d89989 100644
--- a/libstdc++-v3/testsuite/30_threads/stop_token/stop_token/stop_possible.cc
+++ b/libstdc++-v3/testsuite/30_threads/stop_token/stop_token/stop_possible.cc
@@ -15,9 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
// { dg-add-options libatomic }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <stop_token>
#include <memory>
diff --git a/libstdc++-v3/testsuite/30_threads/thread/id/operators_c++20.cc b/libstdc++-v3/testsuite/30_threads/thread/id/operators_c++20.cc
index 667b6a3..a2dd216 100644
--- a/libstdc++-v3/testsuite/30_threads/thread/id/operators_c++20.cc
+++ b/libstdc++-v3/testsuite/30_threads/thread/id/operators_c++20.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/clock_neg.cc b/libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/clock_neg.cc
index 35655e5..1bae79d 100644
--- a/libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/clock_neg.cc
+++ b/libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/clock_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <mutex>
diff --git a/libstdc++-v3/testsuite/30_threads/unique_lock/locking/clock_neg.cc b/libstdc++-v3/testsuite/30_threads/unique_lock/locking/clock_neg.cc
index dbfd852..110604b 100644
--- a/libstdc++-v3/testsuite/30_threads/unique_lock/locking/clock_neg.cc
+++ b/libstdc++-v3/testsuite/30_threads/unique_lock/locking/clock_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <mutex>
diff --git a/libstdc++-v3/testsuite/Makefile.am b/libstdc++-v3/testsuite/Makefile.am
index ef579d9..4cee585 100644
--- a/libstdc++-v3/testsuite/Makefile.am
+++ b/libstdc++-v3/testsuite/Makefile.am
@@ -61,6 +61,7 @@ site.exp: Makefile
@echo 'set baseline_dir "$(baseline_dir)"' >> site.tmp
@echo 'set baseline_subdir_switch "$(baseline_subdir_switch)"' >> site.tmp
@echo 'set TEST_GCC_EXEC_PREFIX "$(libdir)/gcc/"' >> site.tmp
+ @echo 'set v3-use-std-list 1' >> site.tmp
@echo '## All variables above are generated by configure. Do Not Edit ##' >>site.tmp
@test ! -f site.exp || \
sed '1,/^## All variables above are.*##/ d' site.exp >> site.tmp
diff --git a/libstdc++-v3/testsuite/Makefile.in b/libstdc++-v3/testsuite/Makefile.in
index 462db4f..2e42d47 100644
--- a/libstdc++-v3/testsuite/Makefile.in
+++ b/libstdc++-v3/testsuite/Makefile.in
@@ -624,6 +624,7 @@ site.exp: Makefile
@echo 'set baseline_dir "$(baseline_dir)"' >> site.tmp
@echo 'set baseline_subdir_switch "$(baseline_subdir_switch)"' >> site.tmp
@echo 'set TEST_GCC_EXEC_PREFIX "$(libdir)/gcc/"' >> site.tmp
+ @echo 'set v3-use-std-list 1' >> site.tmp
@echo '## All variables above are generated by configure. Do Not Edit ##' >>site.tmp
@test ! -f site.exp || \
sed '1,/^## All variables above are.*##/ d' site.exp >> site.tmp
diff --git a/libstdc++-v3/testsuite/experimental/filesystem/iterators/106201.cc b/libstdc++-v3/testsuite/experimental/filesystem/iterators/106201.cc
index 017b72e..425bd33 100644
--- a/libstdc++-v3/testsuite/experimental/filesystem/iterators/106201.cc
+++ b/libstdc++-v3/testsuite/experimental/filesystem/iterators/106201.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-require-filesystem-ts "" }
diff --git a/libstdc++-v3/testsuite/experimental/filesystem/path/native/conv_c++23.cc b/libstdc++-v3/testsuite/experimental/filesystem/path/native/conv_c++23.cc
index 81f5754..e5e20cd 100644
--- a/libstdc++-v3/testsuite/experimental/filesystem/path/native/conv_c++23.cc
+++ b/libstdc++-v3/testsuite/experimental/filesystem/path/native/conv_c++23.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
// { dg-require-filesystem-ts "" }
diff --git a/libstdc++-v3/testsuite/experimental/scopeguard/exit.cc b/libstdc++-v3/testsuite/experimental/scopeguard/exit.cc
index 60616d1..86e8821 100644
--- a/libstdc++-v3/testsuite/experimental/scopeguard/exit.cc
+++ b/libstdc++-v3/testsuite/experimental/scopeguard/exit.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
#include <experimental/scope>
diff --git a/libstdc++-v3/testsuite/experimental/scopeguard/uniqueres.cc b/libstdc++-v3/testsuite/experimental/scopeguard/uniqueres.cc
index fe9d6ee..27a427f 100644
--- a/libstdc++-v3/testsuite/experimental/scopeguard/uniqueres.cc
+++ b/libstdc++-v3/testsuite/experimental/scopeguard/uniqueres.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
#include <experimental/scope>
diff --git a/libstdc++-v3/testsuite/lib/dg-options.exp b/libstdc++-v3/testsuite/lib/dg-options.exp
index 7ee32fb..84ad0c6 100644
--- a/libstdc++-v3/testsuite/lib/dg-options.exp
+++ b/libstdc++-v3/testsuite/lib/dg-options.exp
@@ -352,6 +352,13 @@ proc add_options_for_using-deprecated { flags } {
return "$flags -U_GLIBCXX_USE_DEPRECATED -D_GLIBCXX_USE_DEPRECATED=1"
}
+# Add options for strict -std=c++NN dialects.
+# This is a dummy option that does nothing, but it causes v3-dg-runtest
+# to alter its behaviour.
+proc add_options_for_strict_std { flags } {
+ return $flags
+}
+
# Like dg-options, but adds to the default options rather than replacing them.
proc dg-additional-options { args } {
@@ -373,3 +380,11 @@ proc dg-additional-options { args } {
eval lappend extra-tool-flags [lindex $args 1]
}
}
+
+set v3_additional_files ""
+
+# Process a { dg-additional-files "filelist" } directive in the test.
+proc dg-additional-files { line filelist } {
+ global v3_additional_files
+ set v3_additional_files $filelist
+}
diff --git a/libstdc++-v3/testsuite/lib/libstdc++.exp b/libstdc++-v3/testsuite/lib/libstdc++.exp
index 271f877..608056e 100644
--- a/libstdc++-v3/testsuite/lib/libstdc++.exp
+++ b/libstdc++-v3/testsuite/lib/libstdc++.exp
@@ -44,6 +44,21 @@ proc load_gcc_lib { filename } {
set loaded_libs($filename) ""
}
+#
+# search_for -- looks for a string match in a file
+#
+proc search_for { file pattern } {
+ set fd [open $file r]
+ while { [gets $fd cur_line]>=0 } {
+ if [string match "*$pattern*" $cur_line] then {
+ close $fd
+ return 1
+ }
+ }
+ close $fd
+ return 0
+}
+
# system routines
load_lib dg.exp
load_lib libgloss.exp
@@ -143,7 +158,8 @@ proc libstdc++_init { testfile } {
global dg-do-what-default
set dg-do-what-default run
- # Copy any required data files.
+ # Copy all required data files.
+ # TODO: Use dg-additional-files in individual tests instead of doing this.
v3-copy-files [glob -nocomplain "$srcdir/data/*.tst"]
v3-copy-files [glob -nocomplain "$srcdir/data/*.txt"]
@@ -459,6 +475,98 @@ if { [info procs saved-dg-test] == [list] } {
}
}
+# Find the minimum standard required by a test, if higher than the default_std.
+proc v3-minimum-std { test default_std max_std } {
+ for {set s $default_std} {$s <= $max_std} {incr s 3} {
+ if [search_for $test "\{ dg-do * \{ target c++$s"] {
+ return $s
+ } elseif [search_for $test "\{ dg-require-effective-target c++$s"] {
+ return $s
+ }
+ }
+ # TODO: replace all c++2a with c++20 and remove this case.
+ if [search_for $test "\{ dg-do * \{ target c++2a"] {
+ return 20
+ }
+ return $default_std
+}
+
+# Allow v3_std_list to be set in configuration files, e.g., ~/.dejagnurc
+if ![info exists v3_std_list] {
+ set v3_std_list { }
+}
+# Allow v3_std_list to be set from the environment.
+if [info exists env(GLIBCXX_TESTSUITE_STDS)] {
+ set v3_std_list [split $env(GLIBCXX_TESTSUITE_STDS) ","]
+}
+
+# Modified dg-runtest that runs tests in multiple standard modes,
+# unless they specifically specify one standard.
+proc v3-dg-runtest { testcases flags default-extra-flags } {
+ global runtests
+
+ foreach test $testcases {
+ # If we're only testing specific files and this isn't one of them, skip it.
+ if ![runtest_file_p $runtests $test] {
+ continue
+ }
+
+ # If the testcase specifies a standard, use that one.
+ # If not, run it under several standards, allowing GNU extensions
+ # unless strict_std is requested.
+ if ![search_for $test "// \{ dg-*options*-std=*++"] {
+ if [search_for $test "{ dg-add-options strict_std }"] {
+ set std_prefix "-std=c++"
+ } else {
+ set std_prefix "-std=gnu++"
+ }
+
+ # See above for the initial value of this list.
+ global v3_std_list
+ if { [llength $v3_std_list] > 0 } {
+ set std_list $v3_std_list
+ } else {
+ # If the test requires a newer C++ version than which
+ # is tested by default, use that C++ version for that
+ # single test.
+ # These should be adjusted whenever the default -std is
+ # updated or newer C++ effective target is added.
+ set default_std 17
+ set max_std 26
+ set min_std [v3-minimum-std $test $default_std $max_std]
+ if { $min_std > $default_std } {
+ set std_list $min_std
+ if { $min_std != $max_std } {
+ # Also test the latest version.
+ lappend std_list "$max_std"
+ }
+ } else {
+ # Only run each test once with the default -std option.
+ # This avoids increasing the run time for most testers.
+ # Libstdc++ developers can override this with v3_std_list.
+ set std_list $default_std
+ }
+ }
+ set option_list { }
+ foreach x $std_list {
+ if { $x eq "impcx" } then { set x "26 -fimplicit-constexpr" }
+ lappend option_list "${std_prefix}$x"
+ }
+ } else {
+ verbose "using -std option specified in [file tail $test]" 2
+ set option_list { "" }
+ }
+
+ set nshort [file tail [file dirname $test]]/[file tail $test]
+
+ foreach flags_t $option_list {
+ verbose "Testing $nshort, $flags $flags_t" 1
+ dg-test $test "$flags $flags_t" ${default-extra-flags}
+ }
+ }
+}
+
+
# True if the library supports wchar_t.
set v3-wchar_t 0
@@ -519,6 +627,12 @@ proc v3_target_compile { source dest type options } {
lappend options "compiler=$cxx_final"
lappend options "timeout=[timeout_value]"
+ global v3_additional_files
+ foreach file [split $v3_additional_files " "] {
+ global srcdir
+ v3-copy-file "$srcdir/data/$file" $file
+ }
+
set comp_output [target_compile $source $dest $type $options]
return $comp_output
diff --git a/libstdc++-v3/testsuite/libstdc++-dg/conformance.exp b/libstdc++-v3/testsuite/libstdc++-dg/conformance.exp
index 32d6f69..96dcc1f 100644
--- a/libstdc++-v3/testsuite/libstdc++-dg/conformance.exp
+++ b/libstdc++-v3/testsuite/libstdc++-dg/conformance.exp
@@ -44,6 +44,7 @@ if {[info exists blddir]} {
}
if {[info exists tests_file] && [file exists $tests_file]} {
set f [open $tests_file]
+ verbose -log "reading test files from $tests_file" 1
while { ! [eof $f] } {
set t [gets $f]
if { [string length "$t"] != 0 } {
@@ -108,7 +109,8 @@ set tests [lsort $tests]
# Main loop.
global DEFAULT_CXXFLAGS
global PCH_CXXFLAGS
-dg-runtest $tests "" "$DEFAULT_CXXFLAGS $PCH_CXXFLAGS"
+# Modified version of dg-runtest
+v3-dg-runtest $tests "" "$DEFAULT_CXXFLAGS $PCH_CXXFLAGS"
# Finally run simd tests with extra SIMD-relevant flags
global DEFAULT_VECTCFLAGS
diff --git a/libstdc++-v3/testsuite/std/concepts/1.cc b/libstdc++-v3/testsuite/std/concepts/1.cc
index add7b0e..0301b91 100644
--- a/libstdc++-v3/testsuite/std/concepts/1.cc
+++ b/libstdc++-v3/testsuite/std/concepts/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do preprocess { target c++2a } }
+// { dg-do preprocess { target c++20 } }
#include <concepts>
diff --git a/libstdc++-v3/testsuite/std/concepts/2.cc b/libstdc++-v3/testsuite/std/concepts/2.cc
index 0098a2e..53a1e00 100644
--- a/libstdc++-v3/testsuite/std/concepts/2.cc
+++ b/libstdc++-v3/testsuite/std/concepts/2.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do preprocess { target c++2a } }
+// { dg-do preprocess { target c++20 } }
#include <version>
diff --git a/libstdc++-v3/testsuite/std/concepts/concepts.callable/invocable.cc b/libstdc++-v3/testsuite/std/concepts/concepts.callable/invocable.cc
index bb9849b..9a19854 100644
--- a/libstdc++-v3/testsuite/std/concepts/concepts.callable/invocable.cc
+++ b/libstdc++-v3/testsuite/std/concepts/concepts.callable/invocable.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <concepts>
diff --git a/libstdc++-v3/testsuite/std/concepts/concepts.callable/regular_invocable.cc b/libstdc++-v3/testsuite/std/concepts/concepts.callable/regular_invocable.cc
index a18fbfc..98f58f9 100644
--- a/libstdc++-v3/testsuite/std/concepts/concepts.callable/regular_invocable.cc
+++ b/libstdc++-v3/testsuite/std/concepts/concepts.callable/regular_invocable.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <concepts>
diff --git a/libstdc++-v3/testsuite/std/concepts/concepts.callable/relation.cc b/libstdc++-v3/testsuite/std/concepts/concepts.callable/relation.cc
index 75cbbdf..6c3e182 100644
--- a/libstdc++-v3/testsuite/std/concepts/concepts.callable/relation.cc
+++ b/libstdc++-v3/testsuite/std/concepts/concepts.callable/relation.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <concepts>
diff --git a/libstdc++-v3/testsuite/std/concepts/concepts.callable/strictweakorder.cc b/libstdc++-v3/testsuite/std/concepts/concepts.callable/strictweakorder.cc
index b43d485..3686175 100644
--- a/libstdc++-v3/testsuite/std/concepts/concepts.callable/strictweakorder.cc
+++ b/libstdc++-v3/testsuite/std/concepts/concepts.callable/strictweakorder.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <concepts>
diff --git a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/floating_point.cc b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/floating_point.cc
index 15f892b..96d9588 100644
--- a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/floating_point.cc
+++ b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/floating_point.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <concepts>
diff --git a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc
index b9cc5cd..53ea3e3 100644
--- a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc
+++ b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <concepts>
diff --git a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc
index 6e18e91..906a2bf 100644
--- a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc
+++ b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <concepts>
diff --git a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc
index 8578dc0..37e80fc 100644
--- a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc
+++ b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <concepts>
diff --git a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.assignable/1.cc b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.assignable/1.cc
index b0aca56..fd45713 100644
--- a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.assignable/1.cc
+++ b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.assignable/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <concepts>
diff --git a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.common/1.cc b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.common/1.cc
index 4d6254c..6b7c329 100644
--- a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.common/1.cc
+++ b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.common/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <concepts>
diff --git a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.commonref/1.cc b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.commonref/1.cc
index 118ee8c..f56e0b0 100644
--- a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.commonref/1.cc
+++ b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.commonref/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <concepts>
diff --git a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.constructible/1.cc b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.constructible/1.cc
index b66c286..d6c985e 100644
--- a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.constructible/1.cc
+++ b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.constructible/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <concepts>
diff --git a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.convertible/1.cc b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.convertible/1.cc
index cc2bc94..eaa624e 100644
--- a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.convertible/1.cc
+++ b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.convertible/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <concepts>
diff --git a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.copyconstructible/1.cc b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.copyconstructible/1.cc
index 9f6f3f7..7d4a66f 100644
--- a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.copyconstructible/1.cc
+++ b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.copyconstructible/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <concepts>
diff --git a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.defaultinitializable/1.cc b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.defaultinitializable/1.cc
index 4a47974..be020a9 100644
--- a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.defaultinitializable/1.cc
+++ b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.defaultinitializable/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <concepts>
diff --git a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.defaultinitializable/lwg3149.cc b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.defaultinitializable/lwg3149.cc
index 7f49a2a..53b3d1f 100644
--- a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.defaultinitializable/lwg3149.cc
+++ b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.defaultinitializable/lwg3149.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <concepts>
diff --git a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.derived/1.cc b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.derived/1.cc
index f877d53..8624b35 100644
--- a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.derived/1.cc
+++ b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.derived/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <concepts>
diff --git a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.destructible/1.cc b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.destructible/1.cc
index 29ab514..2f915bc 100644
--- a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.destructible/1.cc
+++ b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.destructible/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <concepts>
diff --git a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.moveconstructible/1.cc b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.moveconstructible/1.cc
index 26debdf..a540f91 100644
--- a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.moveconstructible/1.cc
+++ b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.moveconstructible/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <concepts>
diff --git a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.same/1.cc b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.same/1.cc
index 7dbaa08..3537ed2 100644
--- a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.same/1.cc
+++ b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.same/1.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <concepts>
diff --git a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc
index 2bc7a43..0502707 100644
--- a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc
+++ b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <concepts>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.swappable/swappable.cc b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.swappable/swappable.cc
index d0487e0..76e23e2 100644
--- a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.swappable/swappable.cc
+++ b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.swappable/swappable.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <concepts>
diff --git a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.swappable/swappable_with.cc b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.swappable/swappable_with.cc
index 90db5a9..5a956dc 100644
--- a/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.swappable/swappable_with.cc
+++ b/libstdc++-v3/testsuite/std/concepts/concepts.lang/concept.swappable/swappable_with.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <concepts>
diff --git a/libstdc++-v3/testsuite/std/concepts/concepts.object/copyable.cc b/libstdc++-v3/testsuite/std/concepts/concepts.object/copyable.cc
index 3fab3d8..cece910 100644
--- a/libstdc++-v3/testsuite/std/concepts/concepts.object/copyable.cc
+++ b/libstdc++-v3/testsuite/std/concepts/concepts.object/copyable.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <concepts>
diff --git a/libstdc++-v3/testsuite/std/concepts/concepts.object/movable.cc b/libstdc++-v3/testsuite/std/concepts/concepts.object/movable.cc
index e087a66..16f3927 100644
--- a/libstdc++-v3/testsuite/std/concepts/concepts.object/movable.cc
+++ b/libstdc++-v3/testsuite/std/concepts/concepts.object/movable.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <concepts>
diff --git a/libstdc++-v3/testsuite/std/concepts/concepts.object/regular.cc b/libstdc++-v3/testsuite/std/concepts/concepts.object/regular.cc
index 3dcc66a..485dc42 100644
--- a/libstdc++-v3/testsuite/std/concepts/concepts.object/regular.cc
+++ b/libstdc++-v3/testsuite/std/concepts/concepts.object/regular.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <concepts>
diff --git a/libstdc++-v3/testsuite/std/concepts/concepts.object/semiregular.cc b/libstdc++-v3/testsuite/std/concepts/concepts.object/semiregular.cc
index 633a9f1..0d1c9f7 100644
--- a/libstdc++-v3/testsuite/std/concepts/concepts.object/semiregular.cc
+++ b/libstdc++-v3/testsuite/std/concepts/concepts.object/semiregular.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <concepts>
diff --git a/libstdc++-v3/testsuite/std/format/arguments/args.cc b/libstdc++-v3/testsuite/std/format/arguments/args.cc
index ae2eab6..a45f3fb 100644
--- a/libstdc++-v3/testsuite/std/format/arguments/args.cc
+++ b/libstdc++-v3/testsuite/std/format/arguments/args.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
#include <format>
diff --git a/libstdc++-v3/testsuite/std/format/arguments/lwg3810.cc b/libstdc++-v3/testsuite/std/format/arguments/lwg3810.cc
index 9ccb654..f89f402 100644
--- a/libstdc++-v3/testsuite/std/format/arguments/lwg3810.cc
+++ b/libstdc++-v3/testsuite/std/format/arguments/lwg3810.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// LWG 3810. CTAD for std::basic_format_args
diff --git a/libstdc++-v3/testsuite/std/format/error.cc b/libstdc++-v3/testsuite/std/format/error.cc
index a6918f5..878f60e 100644
--- a/libstdc++-v3/testsuite/std/format/error.cc
+++ b/libstdc++-v3/testsuite/std/format/error.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
#include <format>
diff --git a/libstdc++-v3/testsuite/std/format/format_string.cc b/libstdc++-v3/testsuite/std/format/format_string.cc
index 1dd6ca8..71c3d5d 100644
--- a/libstdc++-v3/testsuite/std/format/format_string.cc
+++ b/libstdc++-v3/testsuite/std/format/format_string.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
#include <format>
diff --git a/libstdc++-v3/testsuite/std/format/formatter/concept.cc b/libstdc++-v3/testsuite/std/format/formatter/concept.cc
index fe56dc4..e28a8c2 100644
--- a/libstdc++-v3/testsuite/std/format/formatter/concept.cc
+++ b/libstdc++-v3/testsuite/std/format/formatter/concept.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do compile { target c++23 } }
#include <format>
diff --git a/libstdc++-v3/testsuite/std/format/formatter/ext_float.cc b/libstdc++-v3/testsuite/std/format/formatter/ext_float.cc
index 8981029..82e696f 100644
--- a/libstdc++-v3/testsuite/std/format/formatter/ext_float.cc
+++ b/libstdc++-v3/testsuite/std/format/formatter/ext_float.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
#include <format>
diff --git a/libstdc++-v3/testsuite/std/format/formatter/requirements.cc b/libstdc++-v3/testsuite/std/format/formatter/requirements.cc
index 7d95f7f..bde67e5 100644
--- a/libstdc++-v3/testsuite/std/format/formatter/requirements.cc
+++ b/libstdc++-v3/testsuite/std/format/formatter/requirements.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
#include <format>
diff --git a/libstdc++-v3/testsuite/std/format/functions/107871.cc b/libstdc++-v3/testsuite/std/format/functions/107871.cc
index 1fb558e..f9125b9 100644
--- a/libstdc++-v3/testsuite/std/format/functions/107871.cc
+++ b/libstdc++-v3/testsuite/std/format/functions/107871.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
#include <format>
diff --git a/libstdc++-v3/testsuite/std/format/functions/format.cc b/libstdc++-v3/testsuite/std/format/functions/format.cc
index 5141cbd..dacc276 100644
--- a/libstdc++-v3/testsuite/std/format/functions/format.cc
+++ b/libstdc++-v3/testsuite/std/format/functions/format.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
// { dg-add-options no_pch }
diff --git a/libstdc++-v3/testsuite/std/format/functions/format_c++23.cc b/libstdc++-v3/testsuite/std/format/functions/format_c++23.cc
deleted file mode 100644
index 3caa70f..0000000
--- a/libstdc++-v3/testsuite/std/format/functions/format_c++23.cc
+++ /dev/null
@@ -1,5 +0,0 @@
-// { dg-do run { target c++23 } }
-// { dg-add-options no_pch }
-// This test does not have -std=gnu++20 in dg-options so that format.cc
-// can be tested for e.g. -std=c++26
-#include "format.cc"
diff --git a/libstdc++-v3/testsuite/std/format/functions/format_to.cc b/libstdc++-v3/testsuite/std/format/functions/format_to.cc
index c5c3c50..94e6262b 100644
--- a/libstdc++-v3/testsuite/std/format/functions/format_to.cc
+++ b/libstdc++-v3/testsuite/std/format/functions/format_to.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
#include <format>
diff --git a/libstdc++-v3/testsuite/std/format/functions/format_to_n.cc b/libstdc++-v3/testsuite/std/format/functions/format_to_n.cc
index f7df3ed..d698222 100644
--- a/libstdc++-v3/testsuite/std/format/functions/format_to_n.cc
+++ b/libstdc++-v3/testsuite/std/format/functions/format_to_n.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
#include <format>
diff --git a/libstdc++-v3/testsuite/std/format/functions/size.cc b/libstdc++-v3/testsuite/std/format/functions/size.cc
index 4509a7c..1ece410 100644
--- a/libstdc++-v3/testsuite/std/format/functions/size.cc
+++ b/libstdc++-v3/testsuite/std/format/functions/size.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
#include <format>
diff --git a/libstdc++-v3/testsuite/std/format/functions/vformat_to.cc b/libstdc++-v3/testsuite/std/format/functions/vformat_to.cc
index 6fa33b9..fe0367f 100644
--- a/libstdc++-v3/testsuite/std/format/functions/vformat_to.cc
+++ b/libstdc++-v3/testsuite/std/format/functions/vformat_to.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
#include <format>
diff --git a/libstdc++-v3/testsuite/std/format/parse_ctx.cc b/libstdc++-v3/testsuite/std/format/parse_ctx.cc
index 260caf1..497427b 100644
--- a/libstdc++-v3/testsuite/std/format/parse_ctx.cc
+++ b/libstdc++-v3/testsuite/std/format/parse_ctx.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
#include <format>
diff --git a/libstdc++-v3/testsuite/std/format/string.cc b/libstdc++-v3/testsuite/std/format/string.cc
index a472f8d..5d33864 100644
--- a/libstdc++-v3/testsuite/std/format/string.cc
+++ b/libstdc++-v3/testsuite/std/format/string.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
#include <format>
diff --git a/libstdc++-v3/testsuite/std/format/string_neg.cc b/libstdc++-v3/testsuite/std/format/string_neg.cc
index 8ec7096..7a60ef8 100644
--- a/libstdc++-v3/testsuite/std/format/string_neg.cc
+++ b/libstdc++-v3/testsuite/std/format/string_neg.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
#include <format>
diff --git a/libstdc++-v3/testsuite/std/ranges/97600.cc b/libstdc++-v3/testsuite/std/ranges/97600.cc
index 7da0542..569a4ef 100644
--- a/libstdc++-v3/testsuite/std/ranges/97600.cc
+++ b/libstdc++-v3/testsuite/std/ranges/97600.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// PR libstdc++/97600
diff --git a/libstdc++-v3/testsuite/std/ranges/access/101782.cc b/libstdc++-v3/testsuite/std/ranges/access/101782.cc
index abb0c8d..25fea79 100644
--- a/libstdc++-v3/testsuite/std/ranges/access/101782.cc
+++ b/libstdc++-v3/testsuite/std/ranges/access/101782.cc
@@ -1,4 +1,4 @@
-// { dg-options "-std=gnu++20 -fconcepts-ts" }
+// { dg-options "-fconcepts-ts" }
// { dg-do compile { target c++20 } }
// PR testsuite/101782
diff --git a/libstdc++-v3/testsuite/std/ranges/access/begin.cc b/libstdc++-v3/testsuite/std/ranges/access/begin.cc
index 0bc0999..ac813df 100644
--- a/libstdc++-v3/testsuite/std/ranges/access/begin.cc
+++ b/libstdc++-v3/testsuite/std/ranges/access/begin.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <ranges>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/std/ranges/access/begin_neg.cc b/libstdc++-v3/testsuite/std/ranges/access/begin_neg.cc
index 0be7358..023ea0e 100644
--- a/libstdc++-v3/testsuite/std/ranges/access/begin_neg.cc
+++ b/libstdc++-v3/testsuite/std/ranges/access/begin_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/access/cbegin.cc b/libstdc++-v3/testsuite/std/ranges/access/cbegin.cc
index 3667b0d..0b53a6e 100644
--- a/libstdc++-v3/testsuite/std/ranges/access/cbegin.cc
+++ b/libstdc++-v3/testsuite/std/ranges/access/cbegin.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <ranges>
#include <utility> // as_const
diff --git a/libstdc++-v3/testsuite/std/ranges/access/cdata.cc b/libstdc++-v3/testsuite/std/ranges/access/cdata.cc
index d69b04c..69c9112 100644
--- a/libstdc++-v3/testsuite/std/ranges/access/cdata.cc
+++ b/libstdc++-v3/testsuite/std/ranges/access/cdata.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <ranges>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/std/ranges/access/cend.cc b/libstdc++-v3/testsuite/std/ranges/access/cend.cc
index 3726ebb..aa304fe 100644
--- a/libstdc++-v3/testsuite/std/ranges/access/cend.cc
+++ b/libstdc++-v3/testsuite/std/ranges/access/cend.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <ranges>
#include <utility> // as_const
diff --git a/libstdc++-v3/testsuite/std/ranges/access/crbegin.cc b/libstdc++-v3/testsuite/std/ranges/access/crbegin.cc
index 95b4607f..0421716 100644
--- a/libstdc++-v3/testsuite/std/ranges/access/crbegin.cc
+++ b/libstdc++-v3/testsuite/std/ranges/access/crbegin.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <ranges>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/std/ranges/access/crend.cc b/libstdc++-v3/testsuite/std/ranges/access/crend.cc
index 2e4c0f3..5ef218b 100644
--- a/libstdc++-v3/testsuite/std/ranges/access/crend.cc
+++ b/libstdc++-v3/testsuite/std/ranges/access/crend.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <ranges>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/std/ranges/access/data.cc b/libstdc++-v3/testsuite/std/ranges/access/data.cc
index 366db74..1e3d6f2 100644
--- a/libstdc++-v3/testsuite/std/ranges/access/data.cc
+++ b/libstdc++-v3/testsuite/std/ranges/access/data.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <ranges>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/std/ranges/access/empty.cc b/libstdc++-v3/testsuite/std/ranges/access/empty.cc
index 51898ec..a0b474c 100644
--- a/libstdc++-v3/testsuite/std/ranges/access/empty.cc
+++ b/libstdc++-v3/testsuite/std/ranges/access/empty.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <ranges>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/std/ranges/access/end.cc b/libstdc++-v3/testsuite/std/ranges/access/end.cc
index 6c96b313..f795e70 100644
--- a/libstdc++-v3/testsuite/std/ranges/access/end.cc
+++ b/libstdc++-v3/testsuite/std/ranges/access/end.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <ranges>
#include <utility> // as_const
diff --git a/libstdc++-v3/testsuite/std/ranges/access/end_neg.cc b/libstdc++-v3/testsuite/std/ranges/access/end_neg.cc
index 6e19cbd..7daeec0 100644
--- a/libstdc++-v3/testsuite/std/ranges/access/end_neg.cc
+++ b/libstdc++-v3/testsuite/std/ranges/access/end_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/access/lwg3467.cc b/libstdc++-v3/testsuite/std/ranges/access/lwg3467.cc
index e5b3be0..6fed902 100644
--- a/libstdc++-v3/testsuite/std/ranges/access/lwg3467.cc
+++ b/libstdc++-v3/testsuite/std/ranges/access/lwg3467.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// LWG 3467. bool can't be an integer-like type
diff --git a/libstdc++-v3/testsuite/std/ranges/access/p2602.cc b/libstdc++-v3/testsuite/std/ranges/access/p2602.cc
index 9c6a0e6..8c403c1 100644
--- a/libstdc++-v3/testsuite/std/ranges/access/p2602.cc
+++ b/libstdc++-v3/testsuite/std/ranges/access/p2602.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// P2602R2 Poison Pills are Too Toxic
diff --git a/libstdc++-v3/testsuite/std/ranges/access/rbegin.cc b/libstdc++-v3/testsuite/std/ranges/access/rbegin.cc
index b7314b8..ad9deeb 100644
--- a/libstdc++-v3/testsuite/std/ranges/access/rbegin.cc
+++ b/libstdc++-v3/testsuite/std/ranges/access/rbegin.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <ranges>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/std/ranges/access/rend.cc b/libstdc++-v3/testsuite/std/ranges/access/rend.cc
index d3d9041..3e25c90 100644
--- a/libstdc++-v3/testsuite/std/ranges/access/rend.cc
+++ b/libstdc++-v3/testsuite/std/ranges/access/rend.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <ranges>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/std/ranges/access/size.cc b/libstdc++-v3/testsuite/std/ranges/access/size.cc
index e52e296..a5795a6 100644
--- a/libstdc++-v3/testsuite/std/ranges/access/size.cc
+++ b/libstdc++-v3/testsuite/std/ranges/access/size.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <ranges>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/std/ranges/access/size_neg.cc b/libstdc++-v3/testsuite/std/ranges/access/size_neg.cc
index 2cb8563..446d833 100644
--- a/libstdc++-v3/testsuite/std/ranges/access/size_neg.cc
+++ b/libstdc++-v3/testsuite/std/ranges/access/size_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/access/ssize.cc b/libstdc++-v3/testsuite/std/ranges/access/ssize.cc
index abc6997..4702135 100644
--- a/libstdc++-v3/testsuite/std/ranges/access/ssize.cc
+++ b/libstdc++-v3/testsuite/std/ranges/access/ssize.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <ranges>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/100479.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/100479.cc
index a8cb503..8f5814c 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/100479.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/100479.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// PR libstdc++/100479
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/100577.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/100577.cc
index 59f8819..29fa073 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/100577.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/100577.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// PR libstdc++/100577
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/93978.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/93978.cc
index 256ee7f..9690a37 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/93978.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/93978.cc
@@ -15,9 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
// { dg-additional-options "-O -Wall" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <ranges>
#include <vector>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/95322.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/95322.cc
index 792bbff..f583276 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/95322.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/95322.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++20" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <ranges>
#include <testsuite_iterators.h>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/99433.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/99433.cc
index c9fcc11..bb86806 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/99433.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/99433.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// PR libstdc++/99433
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/adjacent/1.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/adjacent/1.cc
index 19640ab..b83743a 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/adjacent/1.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/adjacent/1.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/adjacent_transform/1.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/adjacent_transform/1.cc
index c32c639..6aeedba 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/adjacent_transform/1.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/adjacent_transform/1.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/all.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/all.cc
index 6bbaf73..dadd081 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/all.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/all.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/as_const/1.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/as_const/1.cc
index ac1be74..48c7d38 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/as_const/1.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/as_const/1.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/as_rvalue/1.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/as_rvalue/1.cc
index da82960..74223a6 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/as_rvalue/1.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/as_rvalue/1.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/chunk/1.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/chunk/1.cc
index 18b934f..7b8d4ba 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/chunk/1.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/chunk/1.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/chunk_by/1.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/chunk_by/1.cc
index a8fceb1..656c3c0 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/chunk_by/1.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/chunk_by/1.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/common.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/common.cc
index 2e179c3..8404317 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/common.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/common.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/conditionally_borrowed.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/conditionally_borrowed.cc
index 0f813d3..77b802a 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/conditionally_borrowed.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/conditionally_borrowed.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <ranges>
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/counted.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/counted.cc
index d99e962..89fea46 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/counted.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/counted.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/detail/copyable_box.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/detail/copyable_box.cc
index 209ce3e..dbc1fd2 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/detail/copyable_box.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/detail/copyable_box.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/drop.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/drop.cc
index 2c4047d..4f4030c 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/drop.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/drop.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/drop_while.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/drop_while.cc
index 5022e52..0d3a88d 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/drop_while.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/drop_while.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/elements.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/elements.cc
index 1b49282..05ccec4 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/elements.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/elements.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/enumerate/1.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/enumerate/1.cc
index 445d985..d522168 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/enumerate/1.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/enumerate/1.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/filter.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/filter.cc
index 2ad3653..9a9b2ac 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/filter.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/filter.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/join.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/join.cc
index 7401d69..377b771 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/join.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/join.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <array>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/join_with/1.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/join_with/1.cc
index 15127c0..7bed169 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/join_with/1.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/join_with/1.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split.cc
index 4e5c0dc..5895b7e 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split_neg.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split_neg.cc
index 6c6fe17..cd569bb 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split_neg.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-effective-target hosted }
#include <algorithm>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/lwg3286.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/lwg3286.cc
index e30945f..1c1c590 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/lwg3286.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/lwg3286.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <ranges>
#include <testsuite_iterators.h>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/lwg3313_neg.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/lwg3313_neg.cc
index 2fe119e..d0a07c7 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/lwg3313_neg.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/lwg3313_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <array>
#include <iterator>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/lwg3325_neg.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/lwg3325_neg.cc
index 24e7e5c..60960a5 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/lwg3325_neg.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/lwg3325_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/lwg3406.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/lwg3406.cc
index 68d41b4..7e87fb6 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/lwg3406.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/lwg3406.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/lwg3715.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/lwg3715.cc
index 96ee708..b42762d 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/lwg3715.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/lwg3715.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
// Verify LWG 3715 changes.
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/p1739.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/p1739.cc
index a1e6673..d9188ba 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/p1739.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/p1739.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
// { dg-require-effective-target hosted }
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/p2281.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/p2281.cc
index 2025ddb..3785c88 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/p2281.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/p2281.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/p2770r0.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/p2770r0.cc
index 15d71b2..e754da4 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/p2770r0.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/p2770r0.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/reverse.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/reverse.cc
index b07883e..647f4cc 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/reverse.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/reverse.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/sizeof.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/sizeof.cc
index f420afc..2efb53fd 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/sizeof.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/sizeof.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <ranges>
#include <string_view>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/slide/1.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/slide/1.cc
index 8c015c1..8dfb871 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/slide/1.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/slide/1.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/split.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/split.cc
index d49d594..1d96269 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/split.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/split.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/stride/1.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/stride/1.cc
index 92aca35..dfc413d 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/stride/1.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/stride/1.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/take.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/take.cc
index a1f6068..91c6261 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/take.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/take.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <forward_list>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/take_while.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/take_while.cc
index 098091e..7476b8f 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/take_while.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/take_while.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <forward_list>
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/transform.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/transform.cc
index d9801d5..b6d4981 100644
--- a/libstdc++-v3/testsuite/std/ranges/adaptors/transform.cc
+++ b/libstdc++-v3/testsuite/std/ranges/adaptors/transform.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/cartesian_product/1.cc b/libstdc++-v3/testsuite/std/ranges/cartesian_product/1.cc
index ef2ece4..8938e92 100644
--- a/libstdc++-v3/testsuite/std/ranges/cartesian_product/1.cc
+++ b/libstdc++-v3/testsuite/std/ranges/cartesian_product/1.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/empty_view.cc b/libstdc++-v3/testsuite/std/ranges/empty_view.cc
index ea5a106..21ea305 100644
--- a/libstdc++-v3/testsuite/std/ranges/empty_view.cc
+++ b/libstdc++-v3/testsuite/std/ranges/empty_view.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/headers/ranges/synopsis.cc b/libstdc++-v3/testsuite/std/ranges/headers/ranges/synopsis.cc
index 67af2f8..dfa3fca 100644
--- a/libstdc++-v3/testsuite/std/ranges/headers/ranges/synopsis.cc
+++ b/libstdc++-v3/testsuite/std/ranges/headers/ranges/synopsis.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/iota/93267.cc b/libstdc++-v3/testsuite/std/ranges/iota/93267.cc
index 3bb74bb..4306aea4 100644
--- a/libstdc++-v3/testsuite/std/ranges/iota/93267.cc
+++ b/libstdc++-v3/testsuite/std/ranges/iota/93267.cc
@@ -15,8 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=c++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
+// { dg-add-options strict_std }
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/iota/96042.cc b/libstdc++-v3/testsuite/std/ranges/iota/96042.cc
index 7070a7d..6c553de 100644
--- a/libstdc++-v3/testsuite/std/ranges/iota/96042.cc
+++ b/libstdc++-v3/testsuite/std/ranges/iota/96042.cc
@@ -15,8 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=c++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
+// { dg-add-options strict_std }
#include <ranges>
#include <limits>
diff --git a/libstdc++-v3/testsuite/std/ranges/iota/difference_type.cc b/libstdc++-v3/testsuite/std/ranges/iota/difference_type.cc
index 0af3cdc..9375492 100644
--- a/libstdc++-v3/testsuite/std/ranges/iota/difference_type.cc
+++ b/libstdc++-v3/testsuite/std/ranges/iota/difference_type.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <ranges>
#include <limits>
diff --git a/libstdc++-v3/testsuite/std/ranges/iota/iota_view.cc b/libstdc++-v3/testsuite/std/ranges/iota/iota_view.cc
index 0d2eaf1..134e20f 100644
--- a/libstdc++-v3/testsuite/std/ranges/iota/iota_view.cc
+++ b/libstdc++-v3/testsuite/std/ranges/iota/iota_view.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/iota/iterator.cc b/libstdc++-v3/testsuite/std/ranges/iota/iterator.cc
index 4b2ac3a..7ae5b2e 100644
--- a/libstdc++-v3/testsuite/std/ranges/iota/iterator.cc
+++ b/libstdc++-v3/testsuite/std/ranges/iota/iterator.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/iota/lwg3292_neg.cc b/libstdc++-v3/testsuite/std/ranges/iota/lwg3292_neg.cc
index f15d8aa..ea7721f 100644
--- a/libstdc++-v3/testsuite/std/ranges/iota/lwg3292_neg.cc
+++ b/libstdc++-v3/testsuite/std/ranges/iota/lwg3292_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// { dg-require-effective-target hosted }
#include <sstream>
diff --git a/libstdc++-v3/testsuite/std/ranges/iota/max_size_type.cc b/libstdc++-v3/testsuite/std/ranges/iota/max_size_type.cc
index 54c26ba..a1fbc3241 100644
--- a/libstdc++-v3/testsuite/std/ranges/iota/max_size_type.cc
+++ b/libstdc++-v3/testsuite/std/ranges/iota/max_size_type.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// { dg-timeout-factor 4 }
#include <limits>
diff --git a/libstdc++-v3/testsuite/std/ranges/iota/size.cc b/libstdc++-v3/testsuite/std/ranges/iota/size.cc
index 958cb5f..28848d5 100644
--- a/libstdc++-v3/testsuite/std/ranges/iota/size.cc
+++ b/libstdc++-v3/testsuite/std/ranges/iota/size.cc
@@ -15,8 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=c++2a" }
// { dg-do compile { target c++2a } }
+// { dg-add-options strict_std }
#include <ranges>
#include <limits>
diff --git a/libstdc++-v3/testsuite/std/ranges/istream_view.cc b/libstdc++-v3/testsuite/std/ranges/istream_view.cc
index cc1c3e0..14ec85a 100644
--- a/libstdc++-v3/testsuite/std/ranges/istream_view.cc
+++ b/libstdc++-v3/testsuite/std/ranges/istream_view.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/p2259.cc b/libstdc++-v3/testsuite/std/ranges/p2259.cc
index 0e816bd..fb0de98 100644
--- a/libstdc++-v3/testsuite/std/ranges/p2259.cc
+++ b/libstdc++-v3/testsuite/std/ranges/p2259.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Verify P2259 changes.
diff --git a/libstdc++-v3/testsuite/std/ranges/p2325.cc b/libstdc++-v3/testsuite/std/ranges/p2325.cc
index accd265..23d6307 100644
--- a/libstdc++-v3/testsuite/std/ranges/p2325.cc
+++ b/libstdc++-v3/testsuite/std/ranges/p2325.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-require-effective-target hosted }
// P2325R3 "Views should not be required to be default constructible"
diff --git a/libstdc++-v3/testsuite/std/ranges/p2367.cc b/libstdc++-v3/testsuite/std/ranges/p2367.cc
index 13bd2c9..9a034a3 100644
--- a/libstdc++-v3/testsuite/std/ranges/p2367.cc
+++ b/libstdc++-v3/testsuite/std/ranges/p2367.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Verify P2367 changes.
diff --git a/libstdc++-v3/testsuite/std/ranges/range.cc b/libstdc++-v3/testsuite/std/ranges/range.cc
index f721ec3..728fd66 100644
--- a/libstdc++-v3/testsuite/std/ranges/range.cc
+++ b/libstdc++-v3/testsuite/std/ranges/range.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <ranges>
#include <testsuite_iterators.h>
diff --git a/libstdc++-v3/testsuite/std/ranges/range_adaptor_closure.cc b/libstdc++-v3/testsuite/std/ranges/range_adaptor_closure.cc
index 6221f07..104fd22 100644
--- a/libstdc++-v3/testsuite/std/ranges/range_adaptor_closure.cc
+++ b/libstdc++-v3/testsuite/std/ranges/range_adaptor_closure.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/refinements.cc b/libstdc++-v3/testsuite/std/ranges/refinements.cc
index 582bf62..27351d0 100644
--- a/libstdc++-v3/testsuite/std/ranges/refinements.cc
+++ b/libstdc++-v3/testsuite/std/ranges/refinements.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <ranges>
#include <testsuite_iterators.h>
diff --git a/libstdc++-v3/testsuite/std/ranges/repeat/1.cc b/libstdc++-v3/testsuite/std/ranges/repeat/1.cc
index c62122c..3063640 100644
--- a/libstdc++-v3/testsuite/std/ranges/repeat/1.cc
+++ b/libstdc++-v3/testsuite/std/ranges/repeat/1.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/safe_range.cc b/libstdc++-v3/testsuite/std/ranges/safe_range.cc
index bdebfe8..fc3bdd0 100644
--- a/libstdc++-v3/testsuite/std/ranges/safe_range.cc
+++ b/libstdc++-v3/testsuite/std/ranges/safe_range.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <ranges>
#include <testsuite_iterators.h>
diff --git a/libstdc++-v3/testsuite/std/ranges/safe_range_types.cc b/libstdc++-v3/testsuite/std/ranges/safe_range_types.cc
index fc43871..c123afc 100644
--- a/libstdc++-v3/testsuite/std/ranges/safe_range_types.cc
+++ b/libstdc++-v3/testsuite/std/ranges/safe_range_types.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <ranges>
#include <span>
diff --git a/libstdc++-v3/testsuite/std/ranges/single_view.cc b/libstdc++-v3/testsuite/std/ranges/single_view.cc
index 8dfe6bb..336e3bc 100644
--- a/libstdc++-v3/testsuite/std/ranges/single_view.cc
+++ b/libstdc++-v3/testsuite/std/ranges/single_view.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <ranges>
#include <utility> // as_const
diff --git a/libstdc++-v3/testsuite/std/ranges/sized.cc b/libstdc++-v3/testsuite/std/ranges/sized.cc
index 17bbd08..9a9ef9c 100644
--- a/libstdc++-v3/testsuite/std/ranges/sized.cc
+++ b/libstdc++-v3/testsuite/std/ranges/sized.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <ranges>
#include <testsuite_iterators.h>
diff --git a/libstdc++-v3/testsuite/std/ranges/subrange/1.cc b/libstdc++-v3/testsuite/std/ranges/subrange/1.cc
index 8a53261..4a29c79 100644
--- a/libstdc++-v3/testsuite/std/ranges/subrange/1.cc
+++ b/libstdc++-v3/testsuite/std/ranges/subrange/1.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/subrange/96042.cc b/libstdc++-v3/testsuite/std/ranges/subrange/96042.cc
index bc22f99..3856952 100644
--- a/libstdc++-v3/testsuite/std/ranges/subrange/96042.cc
+++ b/libstdc++-v3/testsuite/std/ranges/subrange/96042.cc
@@ -15,8 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=c++20" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
+// { dg-add-options strict_std }
#include <ranges>
#include <limits>
diff --git a/libstdc++-v3/testsuite/std/ranges/subrange/97512.cc b/libstdc++-v3/testsuite/std/ranges/subrange/97512.cc
index c4b1ef7..184feab 100644
--- a/libstdc++-v3/testsuite/std/ranges/subrange/97512.cc
+++ b/libstdc++-v3/testsuite/std/ranges/subrange/97512.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// PR libstdc++/97512
// Check that structured bindings work for subranges without <ranges>.
diff --git a/libstdc++-v3/testsuite/std/ranges/subrange/constexpr.cc b/libstdc++-v3/testsuite/std/ranges/subrange/constexpr.cc
index f5bc52b..295042f 100644
--- a/libstdc++-v3/testsuite/std/ranges/subrange/constexpr.cc
+++ b/libstdc++-v3/testsuite/std/ranges/subrange/constexpr.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/subrange/lwg3282_neg.cc b/libstdc++-v3/testsuite/std/ranges/subrange/lwg3282_neg.cc
index dafaf25..c7d93a4 100644
--- a/libstdc++-v3/testsuite/std/ranges/subrange/lwg3282_neg.cc
+++ b/libstdc++-v3/testsuite/std/ranges/subrange/lwg3282_neg.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <ranges>
@@ -36,9 +35,9 @@ test_lwg3404()
// LWG 3404. Finish removing subrange's conversions from pair-like
std::pair<char*, char*> p;
subrange sb1(p); // { dg-error "no matching function" }
- // { dg-error "class template argument deduction" "" { target *-*-* } 38 }
+ // { dg-error "class template argument deduction" "" { target *-*-* } 37 }
subrange sb2(p, p.second - p.first); // { dg-error "no matching function" }
- // { dg-error "class template argument deduction" "" { target *-*-* } 40 }
+ // { dg-error "class template argument deduction" "" { target *-*-* } 39 }
// { dg-prune-output "in requirements with" }
}
diff --git a/libstdc++-v3/testsuite/std/ranges/subrange/lwg3286.cc b/libstdc++-v3/testsuite/std/ranges/subrange/lwg3286.cc
index c46523c..f4dc233 100644
--- a/libstdc++-v3/testsuite/std/ranges/subrange/lwg3286.cc
+++ b/libstdc++-v3/testsuite/std/ranges/subrange/lwg3286.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <ranges>
#include <testsuite_iterators.h>
diff --git a/libstdc++-v3/testsuite/std/ranges/subrange/lwg3433.cc b/libstdc++-v3/testsuite/std/ranges/subrange/lwg3433.cc
index 559c5bc..c7a33c8 100644
--- a/libstdc++-v3/testsuite/std/ranges/subrange/lwg3433.cc
+++ b/libstdc++-v3/testsuite/std/ranges/subrange/lwg3433.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <algorithm>
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/subrange/sizeof.cc b/libstdc++-v3/testsuite/std/ranges/subrange/sizeof.cc
index 1e7c7c1..7d3a4eb 100644
--- a/libstdc++-v3/testsuite/std/ranges/subrange/sizeof.cc
+++ b/libstdc++-v3/testsuite/std/ranges/subrange/sizeof.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <iterator>
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/subrange/tuple_like.cc b/libstdc++-v3/testsuite/std/ranges/subrange/tuple_like.cc
index c3450fe..742fdc4 100644
--- a/libstdc++-v3/testsuite/std/ranges/subrange/tuple_like.cc
+++ b/libstdc++-v3/testsuite/std/ranges/subrange/tuple_like.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/version_c++23.cc b/libstdc++-v3/testsuite/std/ranges/version_c++23.cc
index 64b7df4..f68df67 100644
--- a/libstdc++-v3/testsuite/std/ranges/version_c++23.cc
+++ b/libstdc++-v3/testsuite/std/ranges/version_c++23.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do preprocess { target c++23 } }
#include <version>
diff --git a/libstdc++-v3/testsuite/std/ranges/view.cc b/libstdc++-v3/testsuite/std/ranges/view.cc
index 94e285b..bfc52ff 100644
--- a/libstdc++-v3/testsuite/std/ranges/view.cc
+++ b/libstdc++-v3/testsuite/std/ranges/view.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <ranges>
#include <span>
diff --git a/libstdc++-v3/testsuite/std/ranges/zip/1.cc b/libstdc++-v3/testsuite/std/ranges/zip/1.cc
index 8ca386d..f7c2c00 100644
--- a/libstdc++-v3/testsuite/std/ranges/zip/1.cc
+++ b/libstdc++-v3/testsuite/std/ranges/zip/1.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/ranges/zip_transform/1.cc b/libstdc++-v3/testsuite/std/ranges/zip_transform/1.cc
index d858b02..20abdcb 100644
--- a/libstdc++-v3/testsuite/std/ranges/zip_transform/1.cc
+++ b/libstdc++-v3/testsuite/std/ranges/zip_transform/1.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++23" }
// { dg-do run { target c++23 } }
#include <ranges>
diff --git a/libstdc++-v3/testsuite/std/time/clock/file/io.cc b/libstdc++-v3/testsuite/std/time/clock/file/io.cc
index a6c7c71..c3ac6cf 100644
--- a/libstdc++-v3/testsuite/std/time/clock/file/io.cc
+++ b/libstdc++-v3/testsuite/std/time/clock/file/io.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
#include <chrono>
diff --git a/libstdc++-v3/testsuite/std/time/clock/file/members.cc b/libstdc++-v3/testsuite/std/time/clock/file/members.cc
index b34df49..d9949b6 100644
--- a/libstdc++-v3/testsuite/std/time/clock/file/members.cc
+++ b/libstdc++-v3/testsuite/std/time/clock/file/members.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
#include <chrono>
#include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/std/time/clock/file/overview.cc b/libstdc++-v3/testsuite/std/time/clock/file/overview.cc
index e27dfaf..33d31f6 100644
--- a/libstdc++-v3/testsuite/std/time/clock/file/overview.cc
+++ b/libstdc++-v3/testsuite/std/time/clock/file/overview.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <chrono>
diff --git a/libstdc++-v3/testsuite/std/time/clock/gps/1.cc b/libstdc++-v3/testsuite/std/time/clock/gps/1.cc
index f6bfe49..8be517b 100644
--- a/libstdc++-v3/testsuite/std/time/clock/gps/1.cc
+++ b/libstdc++-v3/testsuite/std/time/clock/gps/1.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
#include <chrono>
diff --git a/libstdc++-v3/testsuite/std/time/clock/gps/io.cc b/libstdc++-v3/testsuite/std/time/clock/gps/io.cc
index c4fe9be..eac1c13 100644
--- a/libstdc++-v3/testsuite/std/time/clock/gps/io.cc
+++ b/libstdc++-v3/testsuite/std/time/clock/gps/io.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
#include <chrono>
diff --git a/libstdc++-v3/testsuite/std/time/clock/local/io.cc b/libstdc++-v3/testsuite/std/time/clock/local/io.cc
index a7c018d..b16ddba 100644
--- a/libstdc++-v3/testsuite/std/time/clock/local/io.cc
+++ b/libstdc++-v3/testsuite/std/time/clock/local/io.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
#include <chrono>
diff --git a/libstdc++-v3/testsuite/std/time/clock/system/io.cc b/libstdc++-v3/testsuite/std/time/clock/system/io.cc
index 8bfaad3..d096235 100644
--- a/libstdc++-v3/testsuite/std/time/clock/system/io.cc
+++ b/libstdc++-v3/testsuite/std/time/clock/system/io.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
#include <chrono>
diff --git a/libstdc++-v3/testsuite/std/time/clock/tai/1.cc b/libstdc++-v3/testsuite/std/time/clock/tai/1.cc
index 08fc972..63cc992 100644
--- a/libstdc++-v3/testsuite/std/time/clock/tai/1.cc
+++ b/libstdc++-v3/testsuite/std/time/clock/tai/1.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
#include <chrono>
diff --git a/libstdc++-v3/testsuite/std/time/clock/tai/io.cc b/libstdc++-v3/testsuite/std/time/clock/tai/io.cc
index 530af75..0c5b587 100644
--- a/libstdc++-v3/testsuite/std/time/clock/tai/io.cc
+++ b/libstdc++-v3/testsuite/std/time/clock/tai/io.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
#include <chrono>
diff --git a/libstdc++-v3/testsuite/std/time/clock/utc/1.cc b/libstdc++-v3/testsuite/std/time/clock/utc/1.cc
index 18578fb..4852658 100644
--- a/libstdc++-v3/testsuite/std/time/clock/utc/1.cc
+++ b/libstdc++-v3/testsuite/std/time/clock/utc/1.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
#include <chrono>
diff --git a/libstdc++-v3/testsuite/std/time/clock/utc/io.cc b/libstdc++-v3/testsuite/std/time/clock/utc/io.cc
index c49f6f7..f39eb3f 100644
--- a/libstdc++-v3/testsuite/std/time/clock/utc/io.cc
+++ b/libstdc++-v3/testsuite/std/time/clock/utc/io.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
#include <chrono>
diff --git a/libstdc++-v3/testsuite/std/time/clock/utc/leap_second_info.cc b/libstdc++-v3/testsuite/std/time/clock/utc/leap_second_info.cc
index 0140c75..2fabda4 100644
--- a/libstdc++-v3/testsuite/std/time/clock/utc/leap_second_info.cc
+++ b/libstdc++-v3/testsuite/std/time/clock/utc/leap_second_info.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
// { dg-additional-options "-DHAVE_TZDB" { target tzdb } }
diff --git a/libstdc++-v3/testsuite/std/time/day/1.cc b/libstdc++-v3/testsuite/std/time/day/1.cc
index 8f1632f..60bdc6c 100644
--- a/libstdc++-v3/testsuite/std/time/day/1.cc
+++ b/libstdc++-v3/testsuite/std/time/day/1.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/std/time/day/io.cc b/libstdc++-v3/testsuite/std/time/day/io.cc
index d8691b72..cf5cd34 100644
--- a/libstdc++-v3/testsuite/std/time/day/io.cc
+++ b/libstdc++-v3/testsuite/std/time/day/io.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
// { dg-require-namedlocale "fr_FR.ISO8859-15" }
diff --git a/libstdc++-v3/testsuite/std/time/exceptions.cc b/libstdc++-v3/testsuite/std/time/exceptions.cc
index 650b1fe..06b8a53 100644
--- a/libstdc++-v3/testsuite/std/time/exceptions.cc
+++ b/libstdc++-v3/testsuite/std/time/exceptions.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
// { dg-require-effective-target tzdb }
diff --git a/libstdc++-v3/testsuite/std/time/format.cc b/libstdc++-v3/testsuite/std/time/format.cc
index 0dc45d5..97035e2 100644
--- a/libstdc++-v3/testsuite/std/time/format.cc
+++ b/libstdc++-v3/testsuite/std/time/format.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
#include <chrono>
diff --git a/libstdc++-v3/testsuite/std/time/hh_mm_ss/1.cc b/libstdc++-v3/testsuite/std/time/hh_mm_ss/1.cc
index 85f991c..b581cb0 100644
--- a/libstdc++-v3/testsuite/std/time/hh_mm_ss/1.cc
+++ b/libstdc++-v3/testsuite/std/time/hh_mm_ss/1.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/std/time/hh_mm_ss/109772.cc b/libstdc++-v3/testsuite/std/time/hh_mm_ss/109772.cc
index 36137f2..4aa3e31 100644
--- a/libstdc++-v3/testsuite/std/time/hh_mm_ss/109772.cc
+++ b/libstdc++-v3/testsuite/std/time/hh_mm_ss/109772.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// PR libstdc++/109772 Memory layout optimization of chrono::hh_mm_ss is wrong
diff --git a/libstdc++-v3/testsuite/std/time/hh_mm_ss/io.cc b/libstdc++-v3/testsuite/std/time/hh_mm_ss/io.cc
index ddb1ad7..e431f0c 100644
--- a/libstdc++-v3/testsuite/std/time/hh_mm_ss/io.cc
+++ b/libstdc++-v3/testsuite/std/time/hh_mm_ss/io.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
#include <chrono>
diff --git a/libstdc++-v3/testsuite/std/time/is_am/1.cc b/libstdc++-v3/testsuite/std/time/is_am/1.cc
index aef660c..de3f3d9 100644
--- a/libstdc++-v3/testsuite/std/time/is_am/1.cc
+++ b/libstdc++-v3/testsuite/std/time/is_am/1.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/std/time/is_pm/1.cc b/libstdc++-v3/testsuite/std/time/is_pm/1.cc
index d7ee974..6c059c7 100644
--- a/libstdc++-v3/testsuite/std/time/is_pm/1.cc
+++ b/libstdc++-v3/testsuite/std/time/is_pm/1.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/std/time/make12/1.cc b/libstdc++-v3/testsuite/std/time/make12/1.cc
index b516df2..1ccf19a 100644
--- a/libstdc++-v3/testsuite/std/time/make12/1.cc
+++ b/libstdc++-v3/testsuite/std/time/make12/1.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/std/time/make24/1.cc b/libstdc++-v3/testsuite/std/time/make24/1.cc
index 99f9d80..6ede922 100644
--- a/libstdc++-v3/testsuite/std/time/make24/1.cc
+++ b/libstdc++-v3/testsuite/std/time/make24/1.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/std/time/month/1.cc b/libstdc++-v3/testsuite/std/time/month/1.cc
index 89cb9ab..773f772 100644
--- a/libstdc++-v3/testsuite/std/time/month/1.cc
+++ b/libstdc++-v3/testsuite/std/time/month/1.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/std/time/month/io.cc b/libstdc++-v3/testsuite/std/time/month/io.cc
index 9cf5b05..fb1c642 100644
--- a/libstdc++-v3/testsuite/std/time/month/io.cc
+++ b/libstdc++-v3/testsuite/std/time/month/io.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
// { dg-require-namedlocale "fr_FR.ISO8859-15" }
diff --git a/libstdc++-v3/testsuite/std/time/month_day/1.cc b/libstdc++-v3/testsuite/std/time/month_day/1.cc
index 8c7553c..2c26567 100644
--- a/libstdc++-v3/testsuite/std/time/month_day/1.cc
+++ b/libstdc++-v3/testsuite/std/time/month_day/1.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/std/time/month_day/io.cc b/libstdc++-v3/testsuite/std/time/month_day/io.cc
index a3f4599..4dafbb2 100644
--- a/libstdc++-v3/testsuite/std/time/month_day/io.cc
+++ b/libstdc++-v3/testsuite/std/time/month_day/io.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
// { dg-require-namedlocale "fr_FR.ISO8859-15" }
diff --git a/libstdc++-v3/testsuite/std/time/month_day_last/1.cc b/libstdc++-v3/testsuite/std/time/month_day_last/1.cc
index 92326ce..4ebf643 100644
--- a/libstdc++-v3/testsuite/std/time/month_day_last/1.cc
+++ b/libstdc++-v3/testsuite/std/time/month_day_last/1.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/std/time/month_day_last/io.cc b/libstdc++-v3/testsuite/std/time/month_day_last/io.cc
index 6bd95d9..4f430d4 100644
--- a/libstdc++-v3/testsuite/std/time/month_day_last/io.cc
+++ b/libstdc++-v3/testsuite/std/time/month_day_last/io.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
// { dg-require-namedlocale "fr_FR.ISO8859-15" }
diff --git a/libstdc++-v3/testsuite/std/time/month_weekday/1.cc b/libstdc++-v3/testsuite/std/time/month_weekday/1.cc
index b332c65..7bcdf51 100644
--- a/libstdc++-v3/testsuite/std/time/month_weekday/1.cc
+++ b/libstdc++-v3/testsuite/std/time/month_weekday/1.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/std/time/month_weekday/io.cc b/libstdc++-v3/testsuite/std/time/month_weekday/io.cc
index a62f84a..ee841eb 100644
--- a/libstdc++-v3/testsuite/std/time/month_weekday/io.cc
+++ b/libstdc++-v3/testsuite/std/time/month_weekday/io.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
// { dg-require-namedlocale "fr_FR.ISO8859-15" }
diff --git a/libstdc++-v3/testsuite/std/time/month_weekday_last/1.cc b/libstdc++-v3/testsuite/std/time/month_weekday_last/1.cc
index ff86e1d..208c34b 100644
--- a/libstdc++-v3/testsuite/std/time/month_weekday_last/1.cc
+++ b/libstdc++-v3/testsuite/std/time/month_weekday_last/1.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/std/time/month_weekday_last/io.cc b/libstdc++-v3/testsuite/std/time/month_weekday_last/io.cc
index f69cc18..96a9ad9 100644
--- a/libstdc++-v3/testsuite/std/time/month_weekday_last/io.cc
+++ b/libstdc++-v3/testsuite/std/time/month_weekday_last/io.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
// { dg-require-namedlocale "fr_FR.ISO8859-15" }
diff --git a/libstdc++-v3/testsuite/std/time/parse.cc b/libstdc++-v3/testsuite/std/time/parse.cc
index 0ef56cf..8bb0fd0 100644
--- a/libstdc++-v3/testsuite/std/time/parse.cc
+++ b/libstdc++-v3/testsuite/std/time/parse.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
#include <chrono>
diff --git a/libstdc++-v3/testsuite/std/time/syn_c++20.cc b/libstdc++-v3/testsuite/std/time/syn_c++20.cc
index 307d84e..9f0e5ee 100644
--- a/libstdc++-v3/testsuite/std/time/syn_c++20.cc
+++ b/libstdc++-v3/testsuite/std/time/syn_c++20.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <chrono>
diff --git a/libstdc++-v3/testsuite/std/time/time_zone/get_info_local.cc b/libstdc++-v3/testsuite/std/time/time_zone/get_info_local.cc
index e5e342d..d2972ac 100644
--- a/libstdc++-v3/testsuite/std/time/time_zone/get_info_local.cc
+++ b/libstdc++-v3/testsuite/std/time/time_zone/get_info_local.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
// { dg-require-effective-target tzdb }
diff --git a/libstdc++-v3/testsuite/std/time/time_zone/get_info_sys.cc b/libstdc++-v3/testsuite/std/time/time_zone/get_info_sys.cc
index a669b68..769c774 100644
--- a/libstdc++-v3/testsuite/std/time/time_zone/get_info_sys.cc
+++ b/libstdc++-v3/testsuite/std/time/time_zone/get_info_sys.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
// { dg-require-effective-target tzdb }
diff --git a/libstdc++-v3/testsuite/std/time/time_zone/requirements.cc b/libstdc++-v3/testsuite/std/time/time_zone/requirements.cc
index 9bbe319..929fea2 100644
--- a/libstdc++-v3/testsuite/std/time/time_zone/requirements.cc
+++ b/libstdc++-v3/testsuite/std/time/time_zone/requirements.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-require-effective-target cxx11_abi }
diff --git a/libstdc++-v3/testsuite/std/time/traits/is_clock.cc b/libstdc++-v3/testsuite/std/time/traits/is_clock.cc
index 94c1a08..1d936a5 100644
--- a/libstdc++-v3/testsuite/std/time/traits/is_clock.cc
+++ b/libstdc++-v3/testsuite/std/time/traits/is_clock.cc
@@ -15,8 +15,7 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
#include <chrono>
#include <slow_clock.h>
diff --git a/libstdc++-v3/testsuite/std/time/tzdb/1.cc b/libstdc++-v3/testsuite/std/time/tzdb/1.cc
index 877a55b..cf9df95 100644
--- a/libstdc++-v3/testsuite/std/time/tzdb/1.cc
+++ b/libstdc++-v3/testsuite/std/time/tzdb/1.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
// { dg-require-effective-target cxx11_abi }
diff --git a/libstdc++-v3/testsuite/std/time/tzdb/leap_seconds.cc b/libstdc++-v3/testsuite/std/time/tzdb/leap_seconds.cc
index d270382..f5401a2 100644
--- a/libstdc++-v3/testsuite/std/time/tzdb/leap_seconds.cc
+++ b/libstdc++-v3/testsuite/std/time/tzdb/leap_seconds.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
// { dg-require-effective-target tzdb }
// { dg-require-effective-target cxx11_abi }
diff --git a/libstdc++-v3/testsuite/std/time/tzdb_list/1.cc b/libstdc++-v3/testsuite/std/time/tzdb_list/1.cc
index e52f346..587aa95 100644
--- a/libstdc++-v3/testsuite/std/time/tzdb_list/1.cc
+++ b/libstdc++-v3/testsuite/std/time/tzdb_list/1.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
// { dg-require-effective-target tzdb }
// { dg-require-effective-target cxx11_abi }
diff --git a/libstdc++-v3/testsuite/std/time/tzdb_list/requirements.cc b/libstdc++-v3/testsuite/std/time/tzdb_list/requirements.cc
index a2fd8a4..b26704f 100644
--- a/libstdc++-v3/testsuite/std/time/tzdb_list/requirements.cc
+++ b/libstdc++-v3/testsuite/std/time/tzdb_list/requirements.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-require-effective-target cxx11_abi }
diff --git a/libstdc++-v3/testsuite/std/time/weekday/1.cc b/libstdc++-v3/testsuite/std/time/weekday/1.cc
index 1e018ea..00278c8 100644
--- a/libstdc++-v3/testsuite/std/time/weekday/1.cc
+++ b/libstdc++-v3/testsuite/std/time/weekday/1.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/std/time/weekday/io.cc b/libstdc++-v3/testsuite/std/time/weekday/io.cc
index ba9dce0..6f6a037 100644
--- a/libstdc++-v3/testsuite/std/time/weekday/io.cc
+++ b/libstdc++-v3/testsuite/std/time/weekday/io.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
// { dg-require-namedlocale "fr_FR.ISO8859-15" }
diff --git a/libstdc++-v3/testsuite/std/time/weekday_indexed/1.cc b/libstdc++-v3/testsuite/std/time/weekday_indexed/1.cc
index feeb19b..4eed4bf 100644
--- a/libstdc++-v3/testsuite/std/time/weekday_indexed/1.cc
+++ b/libstdc++-v3/testsuite/std/time/weekday_indexed/1.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/std/time/weekday_indexed/io.cc b/libstdc++-v3/testsuite/std/time/weekday_indexed/io.cc
index cdb91f4..530138e 100644
--- a/libstdc++-v3/testsuite/std/time/weekday_indexed/io.cc
+++ b/libstdc++-v3/testsuite/std/time/weekday_indexed/io.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
// { dg-require-namedlocale "fr_FR.ISO8859-15" }
diff --git a/libstdc++-v3/testsuite/std/time/weekday_last/1.cc b/libstdc++-v3/testsuite/std/time/weekday_last/1.cc
index d725926..7cb0d29 100644
--- a/libstdc++-v3/testsuite/std/time/weekday_last/1.cc
+++ b/libstdc++-v3/testsuite/std/time/weekday_last/1.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/std/time/weekday_last/io.cc b/libstdc++-v3/testsuite/std/time/weekday_last/io.cc
index b81830f..de88ad2 100644
--- a/libstdc++-v3/testsuite/std/time/weekday_last/io.cc
+++ b/libstdc++-v3/testsuite/std/time/weekday_last/io.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
// { dg-require-namedlocale "fr_FR.ISO8859-15" }
diff --git a/libstdc++-v3/testsuite/std/time/year/1.cc b/libstdc++-v3/testsuite/std/time/year/1.cc
index 7566b81..d8add17 100644
--- a/libstdc++-v3/testsuite/std/time/year/1.cc
+++ b/libstdc++-v3/testsuite/std/time/year/1.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/std/time/year/2.cc b/libstdc++-v3/testsuite/std/time/year/2.cc
index d704135..d76593a 100644
--- a/libstdc++-v3/testsuite/std/time/year/2.cc
+++ b/libstdc++-v3/testsuite/std/time/year/2.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2021-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/std/time/year/io.cc b/libstdc++-v3/testsuite/std/time/year/io.cc
index 0c47464..f26162d 100644
--- a/libstdc++-v3/testsuite/std/time/year/io.cc
+++ b/libstdc++-v3/testsuite/std/time/year/io.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
// { dg-require-namedlocale "fr_FR.ISO8859-15" }
diff --git a/libstdc++-v3/testsuite/std/time/year_month/1.cc b/libstdc++-v3/testsuite/std/time/year_month/1.cc
index 71d92cc..ceda568 100644
--- a/libstdc++-v3/testsuite/std/time/year_month/1.cc
+++ b/libstdc++-v3/testsuite/std/time/year_month/1.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/std/time/year_month/2.cc b/libstdc++-v3/testsuite/std/time/year_month/2.cc
index 2475dbb..73c9bbf 100644
--- a/libstdc++-v3/testsuite/std/time/year_month/2.cc
+++ b/libstdc++-v3/testsuite/std/time/year_month/2.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/std/time/year_month/io.cc b/libstdc++-v3/testsuite/std/time/year_month/io.cc
index 8dac248..1b58a9e 100644
--- a/libstdc++-v3/testsuite/std/time/year_month/io.cc
+++ b/libstdc++-v3/testsuite/std/time/year_month/io.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
// { dg-require-namedlocale "fr_FR.ISO8859-15" }
diff --git a/libstdc++-v3/testsuite/std/time/year_month_day/1.cc b/libstdc++-v3/testsuite/std/time/year_month_day/1.cc
index dcd88b9..33ac435 100644
--- a/libstdc++-v3/testsuite/std/time/year_month_day/1.cc
+++ b/libstdc++-v3/testsuite/std/time/year_month_day/1.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/std/time/year_month_day/2.cc b/libstdc++-v3/testsuite/std/time/year_month_day/2.cc
index 6a0e318..b14985f 100644
--- a/libstdc++-v3/testsuite/std/time/year_month_day/2.cc
+++ b/libstdc++-v3/testsuite/std/time/year_month_day/2.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/std/time/year_month_day/3.cc b/libstdc++-v3/testsuite/std/time/year_month_day/3.cc
index d298272..21916e2 100644
--- a/libstdc++-v3/testsuite/std/time/year_month_day/3.cc
+++ b/libstdc++-v3/testsuite/std/time/year_month_day/3.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2021-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/std/time/year_month_day/4.cc b/libstdc++-v3/testsuite/std/time/year_month_day/4.cc
index e76048d..3e72049 100644
--- a/libstdc++-v3/testsuite/std/time/year_month_day/4.cc
+++ b/libstdc++-v3/testsuite/std/time/year_month_day/4.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do run { target c++2a } }
+// { dg-do run { target c++20 } }
// Copyright (C) 2021-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/std/time/year_month_day/io.cc b/libstdc++-v3/testsuite/std/time/year_month_day/io.cc
index 6c30a87..636b305 100644
--- a/libstdc++-v3/testsuite/std/time/year_month_day/io.cc
+++ b/libstdc++-v3/testsuite/std/time/year_month_day/io.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
// { dg-require-namedlocale "fr_FR.ISO8859-15" }
diff --git a/libstdc++-v3/testsuite/std/time/year_month_day_last/1.cc b/libstdc++-v3/testsuite/std/time/year_month_day_last/1.cc
index 0420a26..5c89b7e 100644
--- a/libstdc++-v3/testsuite/std/time/year_month_day_last/1.cc
+++ b/libstdc++-v3/testsuite/std/time/year_month_day_last/1.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/std/time/year_month_day_last/2.cc b/libstdc++-v3/testsuite/std/time/year_month_day_last/2.cc
index c11fe9e..5e14f28 100644
--- a/libstdc++-v3/testsuite/std/time/year_month_day_last/2.cc
+++ b/libstdc++-v3/testsuite/std/time/year_month_day_last/2.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/std/time/year_month_day_last/io.cc b/libstdc++-v3/testsuite/std/time/year_month_day_last/io.cc
index cb60f07..0dcc1df 100644
--- a/libstdc++-v3/testsuite/std/time/year_month_day_last/io.cc
+++ b/libstdc++-v3/testsuite/std/time/year_month_day_last/io.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
// { dg-require-namedlocale "fr_FR.ISO8859-15" }
diff --git a/libstdc++-v3/testsuite/std/time/year_month_weekday/1.cc b/libstdc++-v3/testsuite/std/time/year_month_weekday/1.cc
index 2886bb2..f8ffe1c 100644
--- a/libstdc++-v3/testsuite/std/time/year_month_weekday/1.cc
+++ b/libstdc++-v3/testsuite/std/time/year_month_weekday/1.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/std/time/year_month_weekday/2.cc b/libstdc++-v3/testsuite/std/time/year_month_weekday/2.cc
index 162f21f..dba993a 100644
--- a/libstdc++-v3/testsuite/std/time/year_month_weekday/2.cc
+++ b/libstdc++-v3/testsuite/std/time/year_month_weekday/2.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/std/time/year_month_weekday/3.cc b/libstdc++-v3/testsuite/std/time/year_month_weekday/3.cc
index 01e93b4..83d0dcf 100644
--- a/libstdc++-v3/testsuite/std/time/year_month_weekday/3.cc
+++ b/libstdc++-v3/testsuite/std/time/year_month_weekday/3.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/std/time/year_month_weekday/io.cc b/libstdc++-v3/testsuite/std/time/year_month_weekday/io.cc
index 530429f..77fec80c 100644
--- a/libstdc++-v3/testsuite/std/time/year_month_weekday/io.cc
+++ b/libstdc++-v3/testsuite/std/time/year_month_weekday/io.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
// { dg-require-namedlocale "fr_FR.ISO8859-15" }
diff --git a/libstdc++-v3/testsuite/std/time/year_month_weekday_last/1.cc b/libstdc++-v3/testsuite/std/time/year_month_weekday_last/1.cc
index be71149..583f770 100644
--- a/libstdc++-v3/testsuite/std/time/year_month_weekday_last/1.cc
+++ b/libstdc++-v3/testsuite/std/time/year_month_weekday_last/1.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/std/time/year_month_weekday_last/2.cc b/libstdc++-v3/testsuite/std/time/year_month_weekday_last/2.cc
index 3a9796d..c7a1e31 100644
--- a/libstdc++-v3/testsuite/std/time/year_month_weekday_last/2.cc
+++ b/libstdc++-v3/testsuite/std/time/year_month_weekday_last/2.cc
@@ -1,5 +1,4 @@
-// { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do compile { target c++20 } }
// Copyright (C) 2020-2023 Free Software Foundation, Inc.
//
diff --git a/libstdc++-v3/testsuite/std/time/year_month_weekday_last/io.cc b/libstdc++-v3/testsuite/std/time/year_month_weekday_last/io.cc
index f6aff52..386f868 100644
--- a/libstdc++-v3/testsuite/std/time/year_month_weekday_last/io.cc
+++ b/libstdc++-v3/testsuite/std/time/year_month_weekday_last/io.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
// { dg-require-namedlocale "fr_FR.ISO8859-15" }
diff --git a/libstdc++-v3/testsuite/std/time/zoned_time/1.cc b/libstdc++-v3/testsuite/std/time/zoned_time/1.cc
index d908304..1623aca 100644
--- a/libstdc++-v3/testsuite/std/time/zoned_time/1.cc
+++ b/libstdc++-v3/testsuite/std/time/zoned_time/1.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
// { dg-require-effective-target tzdb }
// { dg-require-effective-target cxx11_abi }
diff --git a/libstdc++-v3/testsuite/std/time/zoned_time/custom.cc b/libstdc++-v3/testsuite/std/time/zoned_time/custom.cc
index dc2d9c0..83e1f6d 100644
--- a/libstdc++-v3/testsuite/std/time/zoned_time/custom.cc
+++ b/libstdc++-v3/testsuite/std/time/zoned_time/custom.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
// { dg-require-effective-target tzdb }
diff --git a/libstdc++-v3/testsuite/std/time/zoned_time/deduction.cc b/libstdc++-v3/testsuite/std/time/zoned_time/deduction.cc
index a26a6f4..05bc275 100644
--- a/libstdc++-v3/testsuite/std/time/zoned_time/deduction.cc
+++ b/libstdc++-v3/testsuite/std/time/zoned_time/deduction.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-require-effective-target cxx11_abi }
diff --git a/libstdc++-v3/testsuite/std/time/zoned_time/io.cc b/libstdc++-v3/testsuite/std/time/zoned_time/io.cc
index ad85122..6f3ed4d 100644
--- a/libstdc++-v3/testsuite/std/time/zoned_time/io.cc
+++ b/libstdc++-v3/testsuite/std/time/zoned_time/io.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
// { dg-require-effective-target cxx11_abi }
diff --git a/libstdc++-v3/testsuite/std/time/zoned_time/req_neg.cc b/libstdc++-v3/testsuite/std/time/zoned_time/req_neg.cc
index ae51a25..169dc6d 100644
--- a/libstdc++-v3/testsuite/std/time/zoned_time/req_neg.cc
+++ b/libstdc++-v3/testsuite/std/time/zoned_time/req_neg.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-require-effective-target cxx11_abi }
diff --git a/libstdc++-v3/testsuite/std/time/zoned_time/requirements.cc b/libstdc++-v3/testsuite/std/time/zoned_time/requirements.cc
index 6334e58..e7bf05e 100644
--- a/libstdc++-v3/testsuite/std/time/zoned_time/requirements.cc
+++ b/libstdc++-v3/testsuite/std/time/zoned_time/requirements.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-require-effective-target cxx11_abi }
diff --git a/libstdc++-v3/testsuite/std/time/zoned_traits.cc b/libstdc++-v3/testsuite/std/time/zoned_traits.cc
index 0cab8a2..83cf663 100644
--- a/libstdc++-v3/testsuite/std/time/zoned_traits.cc
+++ b/libstdc++-v3/testsuite/std/time/zoned_traits.cc
@@ -1,4 +1,3 @@
-// { dg-options "-std=gnu++20" }
// { dg-do run { target c++20 } }
// { dg-require-effective-target cxx11_abi }
diff --git a/libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/compile_cxx17.cc b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/compile_cxx17.cc
index 60264eb..a10ba8e 100644
--- a/libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/compile_cxx17.cc
+++ b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/compile_cxx17.cc
@@ -15,8 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=c++17" }
// { dg-do compile { target c++17 } }
+// { dg-add-options strict_std }
#include <tr1/cmath>
diff --git a/libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/compile_cxx17.cc b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/compile_cxx17.cc
index 40ea47c..91a5588 100644
--- a/libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/compile_cxx17.cc
+++ b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/compile_cxx17.cc
@@ -15,8 +15,8 @@
// with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>.
-// { dg-options "-std=c++17" }
// { dg-do compile { target c++17 } }
+// { dg-add-options strict_std }
#include <tr1/cmath>