[Bug target/126334] riscv: Scatter uses unordered load variants.
cvs-commit at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Aug 11 13:55:48 GMT 2026
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126334
--- Comment #6 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-14 branch has been updated by Jeff Law <law@gcc.gnu.org>:
https://gcc.gnu.org/g:7912912fc3968186b97e5f3430a6417be3c2df66
commit r14-12810-g7912912fc3968186b97e5f3430a6417be3c2df66
Author: Robin Dapp <robin.dapp@oss.qualcomm.com>
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.
(cherry picked from commit 7a5e4c2325ab22a096abb6127e4c9a1daadf3d3f)
More information about the Gcc-bugs
mailing list