https://gcc.gnu.org/bugzilla/show_bug.cgi?id=128162
--- Comment #15 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Pan Li <[email protected]>: https://gcc.gnu.org/g:8495f6c4a66decb68c39c14dafb0ce7b2093acf8 commit r17-5790-g8495f6c4a66decb68c39c14dafb0ce7b2093acf8 Author: Pan Li <[email protected]> Date: Fri Oct 30 16:20:04 2026 +0800 RISC-V: Add tests for no reg overlap of int widen ternary [PR target/128162] Add test cases for the register group overlap of the integer widening ternary insns, to ensure the vs1 and vs2 will not fall inside the vd register group, as the vd is also read as the accumulator with a wider EEW. The test cases ask for the overlap by taking a piece of the vd register group as the vs1 or vs2, and cover below insns. vwmacc.vv, vwmaccu.vv, vwmaccsu.vv vwmacc.vx, vwmaccu.vx, vwmaccsu.vx, vwmaccus.vx vwmaccu.vx (the undef form from combine) sf.vqmacc[u|su|us].4x8x4, sf.vqmacc[u|su|us].2x8x2 nds.vd4dot[s|u|su].vv PR target/128162 gcc/testsuite/ChangeLog: * gcc.target/riscv/rvv/autovec/group_overlap/group_overlap.h: Add test helper macros. * gcc.target/riscv/rvv/autovec/group_overlap/nds_vd4dotsu_vv-u8-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/nds_vd4dotsu_vv-u8-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/nds_vd4dotsu_vv-u8-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/nds_vd4dotsu_vv-u8-m8.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/nds_vd4dotsu_vv-u16-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/nds_vd4dotsu_vv-u16-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/nds_vd4dotsu_vv-u16-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/nds_vd4dotsu_vv-u16-m8.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/nds_vd4dots_vv-i8-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/nds_vd4dots_vv-i8-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/nds_vd4dots_vv-i8-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/nds_vd4dots_vv-i8-m8.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/nds_vd4dots_vv-i16-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/nds_vd4dots_vv-i16-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/nds_vd4dots_vv-i16-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/nds_vd4dots_vv-i16-m8.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/nds_vd4dotu_vv-u8-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/nds_vd4dotu_vv-u8-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/nds_vd4dotu_vv-u8-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/nds_vd4dotu_vv-u8-m8.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/nds_vd4dotu_vv-u16-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/nds_vd4dotu_vv-u16-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/nds_vd4dotu_vv-u16-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/nds_vd4dotu_vv-u16-m8.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/sf_vqmaccsu_2x8x2-u8-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/sf_vqmaccsu_2x8x2-u8-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/sf_vqmaccsu_2x8x2-u8-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/sf_vqmaccsu_2x8x2-u8-m8.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/sf_vqmaccsu_4x8x4-u8-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/sf_vqmaccsu_4x8x4-u8-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/sf_vqmaccsu_4x8x4-u8-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/sf_vqmaccus_2x8x2-i8-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/sf_vqmaccus_2x8x2-i8-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/sf_vqmaccus_2x8x2-i8-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/sf_vqmaccus_2x8x2-i8-m8.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/sf_vqmaccus_4x8x4-i8-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/sf_vqmaccus_4x8x4-i8-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/sf_vqmaccus_4x8x4-i8-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/sf_vqmaccu_2x8x2-u8-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/sf_vqmaccu_2x8x2-u8-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/sf_vqmaccu_2x8x2-u8-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/sf_vqmaccu_2x8x2-u8-m8.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/sf_vqmaccu_4x8x4-u8-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/sf_vqmaccu_4x8x4-u8-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/sf_vqmaccu_4x8x4-u8-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/sf_vqmacc_2x8x2-i8-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/sf_vqmacc_2x8x2-i8-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/sf_vqmacc_2x8x2-i8-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/sf_vqmacc_2x8x2-i8-m8.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/sf_vqmacc_4x8x4-i8-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/sf_vqmacc_4x8x4-i8-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/sf_vqmacc_4x8x4-i8-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccsu_vv-i8-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccsu_vv-i8-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccsu_vv-i8-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccsu_vv-i16-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccsu_vv-i16-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccsu_vv-i16-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccsu_vv-i32-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccsu_vv-i32-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccsu_vv-i32-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccsu_vx-u8-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccsu_vx-u8-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccsu_vx-u8-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccsu_vx-u16-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccsu_vx-u16-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccsu_vx-u16-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccsu_vx-u32-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccsu_vx-u32-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccsu_vx-u32-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccus_vx-i8-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccus_vx-i8-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccus_vx-i8-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccus_vx-i16-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccus_vx-i16-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccus_vx-i16-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccus_vx-i32-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccus_vx-i32-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccus_vx-i32-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccu_vv-u8-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccu_vv-u8-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccu_vv-u8-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccu_vv-u16-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccu_vv-u16-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccu_vv-u16-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccu_vv-u32-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccu_vv-u32-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccu_vv-u32-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccu_vx-u8-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccu_vx-u8-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccu_vx-u8-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccu_vx-u16-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccu_vx-u16-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccu_vx-u16-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccu_vx-u32-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccu_vx-u32-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccu_vx-u32-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccu_vx_undef-u8-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccu_vx_undef-u8-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccu_vx_undef-u8-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccu_vx_undef-u16-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccu_vx_undef-u16-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccu_vx_undef-u16-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccu_vx_undef-u32-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccu_vx_undef-u32-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmaccu_vx_undef-u32-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmacc_vv-i8-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmacc_vv-i8-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmacc_vv-i8-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmacc_vv-i16-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmacc_vv-i16-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmacc_vv-i16-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmacc_vv-i32-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmacc_vv-i32-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmacc_vv-i32-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmacc_vx-i8-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmacc_vx-i8-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmacc_vx-i8-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmacc_vx-i16-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmacc_vx-i16-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmacc_vx-i16-m4.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmacc_vx-i32-m1.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmacc_vx-i32-m2.c: New test. * gcc.target/riscv/rvv/autovec/group_overlap/vwmacc_vx-i32-m4.c: New test. Signed-off-by: Pan Li <[email protected]>
