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.
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.
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:
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:
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-mcpu=cortex-m55" } */
+
+_Accum sa;
+char c;
+
+void
+div_csa ()
+{
+ c /= sa;
+}