Hi all,

The code in get_reassociation_width that forms FMAs aggressively when
they are fully pipelined expects the FMUL reassociation width in the
target to be less than for FMAs. This doesn't hold for all target
tunings.

This code shouldn't ICE, just avoid forming these FMAs here.
This patch does that.

The test case uses -mcpu=neoverse-n3 tuning because it uses the width of 6 for 
the fp reassociation cost. The test case in the PR uses neoverse-v2 but I 
intend to change the reassociation cost for neoverse-v2 in a future patch that 
would not trigger this ICE.

Bootstrapped and tested on aarch64-none-linux-gnu.
Ok for trunk?
Thanks,
Kyrill

Signed-off-by: Kyrylo Tkachov <ktkac...@nvidia.com>

PR tree-optimization/116139

gcc/ChangeLog:

        * tree-ssa-reassoc.cc (get_reassociation_width): Move width_mult
        <= width comparison to if condition rather than assert.

gcc/testsuite/ChangeLog:

        * gcc.target/aarch64/pr116139.c: New test.
---

Attachment: reassoc.patch
Description: reassoc.patch

Reply via email to