https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126334
--- Comment #3 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Robin Dapp <[email protected]>: https://gcc.gnu.org/g:5b0d2e93e1ad39ee6f731abeee2e8846bcf5da93 commit r17-2694-g5b0d2e93e1ad39ee6f731abeee2e8846bcf5da93 Author: Robin Dapp <[email protected]> Date: Tue Jul 21 10:37:58 2026 +0200 RISC-V: Use ordered scatter variants. The vectorizer expects scatters to write in an ordered fashion. Only the ordered indexed stores offer this, so use them instead of the unordered ones. PR target/126334 gcc/ChangeLog: * config/riscv/riscv-v.cc (get_gather_scatter_code): Use ordered indexed stores. gcc/testsuite/ChangeLog: * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-1.c: Adjust test expectations. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-10.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-11.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-12.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-2.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-3.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-4.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-5.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-6.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-7.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-8.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/gather_load_32-9.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_32-1.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_32-10.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_32-11.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_32-2.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_32-3.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_32-4.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_32-5.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_32-6.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_32-7.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_32-8.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_gather_load_32-9.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_32-1.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_32-10.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_32-2.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_32-3.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_32-4.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_32-5.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_32-6.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_32-7.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_32-8.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_32-9.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_64-1.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_64-10.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_64-2.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_64-3.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_64-4.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_64-5.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_64-6.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_64-7.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_64-8.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/mask_scatter_store_64-9.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_32-1.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_32-10.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_32-2.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_32-4.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_32-5.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_32-6.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_32-7.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_32-8.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_32-9.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_64-1.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_64-10.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_64-2.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_64-3.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_64-4.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_64-5.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_64-6.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_64-7.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_64-8.c: Ditto. * gcc.target/riscv/rvv/autovec/gather-scatter/scatter_store_64-9.c: Ditto.
