On Thu, May 30, 2024 at 2:11 AM Patrick O'Neill <patr...@rivosinc.com> wrote: > > From: Greg McGary <g...@rivosinc.com> > > gcc/ChangeLog: > * gcc/tree-vect-stmts.cc (gcc/tree-vect-stmts.cc): Prevent > divide-by-zero. > * testsuite/gcc.target/riscv/rvv/autovec/no-segment.c: Remove dg-ice. > --- > No changes in v3. Depends on the risc-v backend option added in patch 1 to > trigger the ICE. > --- > gcc/testsuite/gcc.target/riscv/rvv/autovec/no-segment.c | 1 - > gcc/tree-vect-stmts.cc | 3 ++- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/no-segment.c > b/gcc/testsuite/gcc.target/riscv/rvv/autovec/no-segment.c > index dfbe09f01a1..79d03612a22 100644 > --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/no-segment.c > +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/no-segment.c
I'd like to reproduce but this testcase doesn't exist? There's also no bugreport to find a testcase it seems. Richard. > @@ -1,6 +1,5 @@ > /* { dg-do compile } */ > /* { dg-options "-march=rv64gcv -mabi=lp64d -mrvv-vector-bits=scalable -O3 > -mno-autovec-segment" } */ > -/* { dg-ice "Floating point exception" } */ > > enum e { c, d }; > enum g { f }; > diff --git a/gcc/tree-vect-stmts.cc b/gcc/tree-vect-stmts.cc > index 4219ad832db..34f5736ba00 100644 > --- a/gcc/tree-vect-stmts.cc > +++ b/gcc/tree-vect-stmts.cc > @@ -11558,7 +11558,8 @@ vectorizable_load (vec_info *vinfo, > - (vec_num * j + i) * nunits); > /* remain should now be > 0 and < nunits. */ > unsigned num; > - if (constant_multiple_p (nunits, remain, &num)) > + if (known_gt (remain, 0) > + && constant_multiple_p (nunits, remain, &num)) > { > tree ptype; > new_vtype > -- > 2.43.2 >