https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127452
Bug ID: 127452
Summary: [17 Regression] forwprop generates 128bit
multiplication even if not supported by the target
Product: gcc
Version: 17.0
Status: UNCONFIRMED
Keywords: missed-optimization
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: rguenth at gcc dot gnu.org
Blocks: 53947
Target Milestone: ---
Target: x86_64-*-*
I see:
Long multiplication high part folded.
_34 = (uint128_t) operand1_14(D);
_9 = (uint128_t) operand2_16(D);
_7 = _9 * _34;
_28 = _7 >> 64;
_13 = (long unsigned int) _28;
generated from a 64bit highpart multiplication sequence even though the
operation is not supported. This prevents vectorization since the
highpart multiplication pattern support requires a MULHS support by
the target and has no fallback to the alternative that's later used
pre RTL expansion.
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53947
[Bug 53947] [meta-bug] vectorizer missed-optimizations