On Tue, Jul 15, 2025 at 11:32 AM Robin Dapp <rdapp....@gmail.com> wrote: > > Hi, > > r16-2175-g5aa21765236730 introduced an assert for floating-point modes > when expanding an RDIV_EXPR but forgot fixed-point modes. This patch > adds ALL_FIXED_POINT_MODE_P to the assert. > > Bootstrap and regtest running on x86, aarch64, and power10. Regtested > on rv64gcv. Regtest on arm running, needed to set it up still.
OK. > Regards > Robin > > PR middle-end/121065 > > gcc/ChangeLog: > > * cfgexpand.cc (expand_debug_expr): Allow fixed-point modes for > RDIV_EXPR. > * optabs-tree.cc (optab_for_tree_code): Ditto. > > gcc/testsuite/ChangeLog: > > * gcc.target/arm/pr121065.c: New test. > --- > gcc/cfgexpand.cc | 3 ++- > gcc/optabs-tree.cc | 3 ++- > gcc/testsuite/gcc.target/arm/pr121065.c | 11 +++++++++++ > 3 files changed, 15 insertions(+), 2 deletions(-) > create mode 100644 gcc/testsuite/gcc.target/arm/pr121065.c > > diff --git a/gcc/cfgexpand.cc b/gcc/cfgexpand.cc > index a656ccebf17..8a55f4f472a 100644 > --- a/gcc/cfgexpand.cc > +++ b/gcc/cfgexpand.cc > @@ -5358,7 +5358,8 @@ expand_debug_expr (tree exp) > return simplify_gen_binary (MULT, mode, op0, op1); > > case RDIV_EXPR: > - gcc_assert (FLOAT_MODE_P (mode)); > + gcc_assert (FLOAT_MODE_P (mode) > + || ALL_FIXED_POINT_MODE_P (mode)); > /* Fall through. */ > case TRUNC_DIV_EXPR: > case EXACT_DIV_EXPR: > diff --git a/gcc/optabs-tree.cc b/gcc/optabs-tree.cc > index 9308a6dfd65..0de74c7966a 100644 > --- a/gcc/optabs-tree.cc > +++ b/gcc/optabs-tree.cc > @@ -82,7 +82,8 @@ optab_for_tree_code (enum tree_code code, const_tree type, > return unknown_optab; > /* FALLTHRU */ > case RDIV_EXPR: > - gcc_assert (FLOAT_TYPE_P (type)); > + gcc_assert (FLOAT_TYPE_P (type) > + || ALL_FIXED_POINT_MODE_P (TYPE_MODE (type))); > /* FALLTHRU */ > case TRUNC_DIV_EXPR: > case EXACT_DIV_EXPR: > diff --git a/gcc/testsuite/gcc.target/arm/pr121065.c > b/gcc/testsuite/gcc.target/arm/pr121065.c > new file mode 100644 > index 00000000000..dfc6059a46d > --- /dev/null > +++ b/gcc/testsuite/gcc.target/arm/pr121065.c > @@ -0,0 +1,11 @@ > +/* { dg-do compile } */ > +/* { dg-options "-mcpu=cortex-m55" } */ > + > +_Accum sa; > +char c; > + > +void > +div_csa () > +{ > + c /= sa; > +} > -- > 2.50.0 > >