+2023-12-02 Richard Sandiford <richard.sandiford@arm.com>
+
+ * attribs.cc (comp_type_attributes): Pass the full TREE_PURPOSE
+ to lookup_attribute_spec, rather than just the name.
+ (remove_attributes_matching): Likewise.
+
+2023-12-02 Richard Sandiford <richard.sandiford@arm.com>
+
+ * attribs.cc (find_same_attribute): New function.
+ (decl_attributes, comp_type_attributes): Use it when looking
+ up one list's attributes in another list.
+
+2023-12-02 Richard Sandiford <richard.sandiford@arm.com>
+
+ * Makefile.in (GTFILES): Add attribs.cc.
+ * attribs.cc (gnu_namespace_cache): New variable.
+ (get_gnu_namespace): New function.
+ (lookup_attribute_spec): Use it instead of get_identifier ("gnu").
+ (get_attribute_namespace, attribs_cc_tests): Likewise.
+
+2023-12-02 Richard Sandiford <richard.sandiford@arm.com>
+
+ * attribs.h (scoped_attribute_specs): New structure.
+ (register_scoped_attributes): Take a reference to a
+ scoped_attribute_specs instead of separate namespace and array
+ parameters.
+ * plugin.h (register_scoped_attributes): Likewise.
+ * attribs.cc (register_scoped_attributes): Likewise.
+ (attribute_tables): Change into an array of scoped_attribute_specs
+ pointers. Reduce to 1 element for frontends and 1 element for targets.
+ (empty_attribute_table): Delete.
+ (check_attribute_tables): Update for changes to attribute_tables.
+ Use a hash_set to identify duplicates.
+ (handle_ignored_attributes_option): Update for above changes.
+ (init_attributes): Likewise.
+ (excl_pair): Delete.
+ (test_attribute_exclusions): Update for above changes. Don't
+ enforce symmetry for standard attributes in the top-level namespace.
+ * langhooks-def.h (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE): Delete.
+ (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Likewise.
+ (LANG_HOOKS_INITIALIZER): Update accordingly.
+ (LANG_HOOKS_ATTRIBUTE_TABLE): Define to an empty constructor.
+ * langhooks.h (lang_hooks::common_attribute_table): Delete.
+ (lang_hooks::format_attribute_table): Likewise.
+ (lang_hooks::attribute_table): Redefine to an array of
+ scoped_attribute_specs pointers.
+ * target-def.h (TARGET_GNU_ATTRIBUTES): New macro.
+ * target.def (attribute_spec): Redefine to return an array of
+ scoped_attribute_specs pointers.
+ * tree-inline.cc (function_attribute_inlinable_p): Update accordingly.
+ * doc/tm.texi: Regenerate.
+ * config/aarch64/aarch64.cc (aarch64_attribute_table): Define using
+ TARGET_GNU_ATTRIBUTES.
+ * config/alpha/alpha.cc (vms_attribute_table): Likewise.
+ * config/avr/avr.cc (avr_attribute_table): Likewise.
+ * config/bfin/bfin.cc (bfin_attribute_table): Likewise.
+ * config/bpf/bpf.cc (bpf_attribute_table): Likewise.
+ * config/csky/csky.cc (csky_attribute_table): Likewise.
+ * config/epiphany/epiphany.cc (epiphany_attribute_table): Likewise.
+ * config/gcn/gcn.cc (gcn_attribute_table): Likewise.
+ * config/h8300/h8300.cc (h8300_attribute_table): Likewise.
+ * config/loongarch/loongarch.cc (loongarch_attribute_table): Likewise.
+ * config/m32c/m32c.cc (m32c_attribute_table): Likewise.
+ * config/m32r/m32r.cc (m32r_attribute_table): Likewise.
+ * config/m68k/m68k.cc (m68k_attribute_table): Likewise.
+ * config/mcore/mcore.cc (mcore_attribute_table): Likewise.
+ * config/microblaze/microblaze.cc (microblaze_attribute_table):
+ Likewise.
+ * config/mips/mips.cc (mips_attribute_table): Likewise.
+ * config/msp430/msp430.cc (msp430_attribute_table): Likewise.
+ * config/nds32/nds32.cc (nds32_attribute_table): Likewise.
+ * config/nvptx/nvptx.cc (nvptx_attribute_table): Likewise.
+ * config/riscv/riscv.cc (riscv_attribute_table): Likewise.
+ * config/rl78/rl78.cc (rl78_attribute_table): Likewise.
+ * config/rx/rx.cc (rx_attribute_table): Likewise.
+ * config/s390/s390.cc (s390_attribute_table): Likewise.
+ * config/sh/sh.cc (sh_attribute_table): Likewise.
+ * config/sparc/sparc.cc (sparc_attribute_table): Likewise.
+ * config/stormy16/stormy16.cc (xstormy16_attribute_table): Likewise.
+ * config/v850/v850.cc (v850_attribute_table): Likewise.
+ * config/visium/visium.cc (visium_attribute_table): Likewise.
+ * config/arc/arc.cc (arc_attribute_table): Likewise. Move further
+ down file.
+ * config/arm/arm.cc (arm_attribute_table): Update for above changes,
+ using...
+ (arm_gnu_attributes, arm_gnu_attribute_table): ...these new globals.
+ * config/i386/i386-options.h (ix86_attribute_table): Delete.
+ (ix86_gnu_attribute_table): Declare.
+ * config/i386/i386-options.cc (ix86_attribute_table): Replace with...
+ (ix86_gnu_attributes, ix86_gnu_attribute_table): ...these two globals.
+ * config/i386/i386.cc (ix86_attribute_table): Define as an array of
+ scoped_attribute_specs pointers.
+ * config/ia64/ia64.cc (ia64_attribute_table): Update for above changes,
+ using...
+ (ia64_gnu_attributes, ia64_gnu_attribute_table): ...these new globals.
+ * config/rs6000/rs6000.cc (rs6000_attribute_table): Update for above
+ changes, using...
+ (rs6000_gnu_attributes, rs6000_gnu_attribute_table): ...these new
+ globals.
+
+2023-12-02 Roger Sayle <roger@nextmovesoftware.com>
+
+ * config/riscv/riscv-vsetvl.cc (csetvl_info::parse_insn): Rename
+ local variable from demand_flags to dflags, to avoid conflicting
+ with (enumeration) type of the same name.
+
+2023-12-02 Li Wei <liwei@loongson.cn>
+
+ * config/loongarch/loongarch.cc (loongarch_is_odd_extraction):
+ Supplementary function prototype.
+ (loongarch_is_even_extraction): Adjust.
+ (loongarch_try_expand_lsx_vshuf_const): Adjust.
+ (loongarch_is_extraction_permutation): Adjust.
+ (loongarch_expand_vec_perm_const_2): Adjust.
+
+2023-12-02 Li Wei <liwei@loongson.cn>
+
+ * config/loongarch/loongarch.md (v2di): Used to simplify the
+ following templates.
+ (popcount<mode>2): New.
+
+2023-12-02 Li Wei <liwei@loongson.cn>
+
+ * config/loongarch/loongarch.h (CTZ_DEFINED_VALUE_AT_ZERO): Add
+ description.
+ (CLZ_DEFINED_VALUE_AT_ZERO): Remove duplicate definition.
+
+2023-12-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ PR target/112801
+ * config/riscv/vector.md: Add !TARGET_64BIT.
+
+2023-12-02 Pan Li <pan2.li@intel.com>
+
+ PR target/112743
+ * config/riscv/riscv.cc (riscv_legitimize_move): Take the
+ exist (U *mode) and handle DFmode like DImode when EEW is
+ 32bits for ZVE32F.
+
2023-12-01 Andrew MacLeod <amacleod@redhat.com>
* gimple-range-fold.h (range_compatible_p): Relocate.
+2023-12-02 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/93762
+ PR fortran/100651
+ * gfortran.dg/optional_deferred_char_1.f90: New test.
+
+2023-12-02 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ * gcc.target/i386/libcall-1.c: Skip on darwin.
+
+2023-12-02 Li Wei <liwei@loongson.cn>
+
+ * gcc.target/loongarch/lasx-extract-even_odd-opt.c: New test.
+
+2023-12-02 Li Wei <liwei@loongson.cn>
+
+ * gcc.target/loongarch/popcnt.c: New test.
+ * gcc.target/loongarch/popcount.c: New test.
+
+2023-12-02 chenxiaolong <chenxiaolong@loongson.cn>
+
+ * gcc.target/loongarch/vector/lasx/lasx-xvabsd-1.c:Remove
+ the default Settings to run the behavior.
+ * gcc.target/loongarch/vector/lasx/lasx-xvabsd-2.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvadd.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvadda.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvaddi.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvaddwev-1.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvaddwev-2.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvaddwev-3.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvaddwod-1.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvaddwod-2.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvaddwod-3.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvand.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvandi.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvandn.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvavg-1.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvavg-2.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvavgr-1.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvavgr-2.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvbitclr.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvbitclri.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvbitrev.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvbitrevi.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvbitsel.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvbitseli.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvbitset.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvbitseti.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvbsll_v.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvbsrl_v.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvclo.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvclz.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvdiv-1.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvdiv-2.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvext2xv-1.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvext2xv-2.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvexth-1.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvexth-2.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvextl-1.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvextl-2.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvextrins.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfadd_d.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfadd_s.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfclass_d.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfclass_s.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfcmp_caf_s.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfcmp_ceq_s.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfcmp_cle_s.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfcmp_clt_s.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfcmp_cne_s.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfcmp_cor_s.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfcmp_cun_s.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfcmp_saf_s.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfcmp_seq_s.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfcmp_sle_s.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfcmp_slt_s.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfcmp_sne_s.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfcmp_sor_s.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfcmp_sun_s.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfcvt.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfcvth.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvffint-1.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvffint-2.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvffinth.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvflogb_d.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvflogb_s.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfmadd_d.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfmadd_s.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfmax_d.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfmax_s.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfmaxa_d.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfmaxa_s.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfnmadd_d.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfnmadd_s.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfrint_d.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfrint_s.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfrstp.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfrstpi.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfsqrt_d.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvfsqrt_s.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvftint-1.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvftint-2.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvftint-3.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvftintl.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvhaddw-1.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvhaddw-2.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvhsubw-1.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvhsubw-2.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvilvh.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvilvl.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvinsgr2vr.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvinsve0.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvld.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvldi.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmadd.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmaddwev-1.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmaddwev-2.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmaddwev-3.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmaddwod-1.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmaddwod-2.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmaddwod-3.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmax-1.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmax-2.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmaxi-1.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmaxi-2.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmin-1.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmin-2.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmini-1.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmini-2.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmod-1.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmod-2.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmskgez.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmskltz.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmsknz.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmsub.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmuh-1.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmuh-2.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmul.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmulwev-1.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmulwev-2.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmulwev-3.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmulwod-1.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmulwod-2.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvmulwod-3.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvneg.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvnor.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvnori.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvor.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvori.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvorn.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvpackev.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvpackod.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvpcnt.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvpickev.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvpickod.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvpickve.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvpickve2gr.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvprem.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvpremi.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvreplgr2vr.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvreplve.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvreplve0.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvreplvei.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvrotr.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvrotri.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsadd-1.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsadd-2.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsat-1.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsat-2.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvseq.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvseqi.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvshuf4i_b.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvshuf_b.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsigncov.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsle-1.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsle-2.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvslei-1.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvslei-2.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsll.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvslli.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsllwil-1.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsllwil-2.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvslt-1.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvslt-2.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvslti-1.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvslti-2.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsra.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsrai.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsran.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsrani.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsrar.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsrari.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsrarn.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsrarni.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsrl.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsrli.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsrln.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsrlni.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsrlr.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsrlri.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsrlrn.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsrlrni.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvssran.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvssrani.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvssrarn.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvssrarni.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvssrln.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvssrlni.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvssrlrn.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvssrlrni.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvssub-1.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvssub-2.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvst.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsub.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsubi.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsubwev-1.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsubwev-2.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsubwod-1.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvsubwod-2.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvxor.c:Dito.
+ * gcc.target/loongarch/vector/lasx/lasx-xvxori.c:Dito.
+ * gcc.target/loongarch/vector/loongarch-vector.exp:Added hardware
+ detection to set the behavior of program execution based on the
+ characteristics of the hardware.
+ * gcc.target/loongarch/vector/lsx/lsx-vabsd-1.c:Remove the default
+ Settings to run the behavior.
+ * gcc.target/loongarch/vector/lsx/lsx-vabsd-2.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vadd.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vadda.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vaddi.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vaddwev-1.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vaddwev-2.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vaddwev-3.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vaddwod-1.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vaddwod-2.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vaddwod-3.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vand.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vandi.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vandn.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vavg-1.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vavg-2.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vavgr-1.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vavgr-2.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vbitclr.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vbitclri.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vbitrev.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vbitrevi.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vbitsel.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vbitseli.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vbitset.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vbitseti.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vbsll.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vbsrl.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vclo.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vclz.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vdiv-1.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vdiv-2.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vexth-1.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vexth-2.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vextl-1.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vextl-2.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vextrins.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vfadd_d.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vfadd_s.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vfclass_d.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vfclass_s.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vfcmp_caf.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vfcmp_ceq.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vfcmp_cle.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vfcmp_clt.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vfcmp_cne.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vfcmp_cor.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vfcmp_cun.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vfcmp_saf.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vfcmp_seq.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vfcmp_sle.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vfcmp_slt.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vfcmp_sne.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vfcmp_sor.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vfcmp_sun.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vfcvt-1.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vfcvt-2.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vffint-1.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vffint-2.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vffint-3.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vflogb_d.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vflogb_s.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vfmadd_d.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vfmadd_s.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vfmax_d.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vfmax_s.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vfmaxa_d.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vfmaxa_s.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vfnmadd_d.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vfnmadd_s.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vfrint_d.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vfrint_s.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vfrstp.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vfrstpi.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vfsqrt_d.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vfsqrt_s.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vftint-1.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vftint-2.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vftint-3.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vftint-4.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vhaddw-1.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vhaddw-2.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vhsubw-1.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vhsubw-2.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vilvh.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vilvl.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vinsgr2vr.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vld.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vldi.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vmadd.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vmaddwev-1.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vmaddwev-2.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vmaddwev-3.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vmaddwod-1.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vmaddwod-2.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vmaddwod-3.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vmax-1.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vmax-2.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vmaxi-1.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vmaxi-2.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vmin-1.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vmin-2.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vmini-1.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vmini-2.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vmod-1.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vmod-2.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vmskgez.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vmskltz.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vmsknz.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vmsub.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vmuh-1.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vmuh-2.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vmul.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vmulwev-1.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vmulwev-2.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vmulwev-3.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vmulwod-1.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vmulwod-2.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vmulwod-3.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vneg.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vnor.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vnori.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vor.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vori.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vorn.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vpackev.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vpackod.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vpcnt.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vpickev.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vpickod.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vpickve2gr.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vpremi.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vreplgr2vr.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vreplve.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vreplvei.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vrotr.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vrotri.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vsadd-1.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vsadd-2.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vsat-1.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vsat-2.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vseq.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vseqi.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vshuf.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vshuf4i.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vsigncov.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vsle-1.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vsle-2.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vslei-1.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vslei-2.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vsll.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vslli.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vsllwil-1.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vsllwil-2.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vslt-1.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vslt-2.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vslti-1.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vslti-2.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vsra.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vsrai.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vsran.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vsrani.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vsrar.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vsrari.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vsrarn.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vsrarni.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vsrl.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vsrli.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vsrln.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vsrlni.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vsrlr.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vsrlri.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vsrlrn.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vsrlrni.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vssran.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vssrani.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vssrarn.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vssrarni.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vssrln.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vssrlni.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vssrlrn.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vssrlrni.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vssub-1.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vssub-2.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vst.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vsub.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vsubi.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vsubwev-1.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vsubwev-2.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vsubwod-1.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vsubwod-2.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vxor.c:Dito.
+ * gcc.target/loongarch/vector/lsx/lsx-vxori.c:Dito.
+
+2023-12-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
+
+ PR target/112801
+ * gcc.target/riscv/rvv/autovec/pr112801.c: New test.
+
+2023-12-02 Pan Li <pan2.li@intel.com>
+
+ PR target/112743
+ * gcc.target/riscv/rvv/base/pr112743-2.c: New test.
+
2023-12-01 Harald Anlauf <anlauf@gmx.de>
PR fortran/112772