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]>

Reply via email to