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

Reply via email to