[llvm] [AMDGPU][DAGCombiner][GlobalISel] Prevent FMA contraction when multiply cannot be eliminated (PR #169735)

via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 4 08:12:12 PST 2025


github-actions[bot] wrote:

<!--PREMERGE ADVISOR COMMENT: Linux-->
# :penguin: Linux x64 Test Results

* 166755 tests passed
* 2905 tests skipped
* 2 tests failed

## Failed Tests
(click on a test name to see its output)

### LLVM
<details>
<summary>LLVM.CodeGen/PowerPC/fma-aggr-FMF.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/PowerPC/fma-aggr-FMF.ll -verify-machineinstrs -mtriple=powerpc64le-linux-gnu | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/PowerPC/fma-aggr-FMF.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -verify-machineinstrs -mtriple=powerpc64le-linux-gnu
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/PowerPC/fma-aggr-FMF.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/PowerPC/fma-aggr-FMF.ll:25:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: xsmulsp 3, 3, 4
# |               ^
# | <stdin>:28:9: note: scanning from here
# | # %bb.0:
# |         ^
# | <stdin>:30:2: note: possible intended match here
# |  xsmulsp 1, 3, 4
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/PowerPC/fma-aggr-FMF.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            .
# |            .
# |            .
# |           23:  .p2align 4 
# |           24:  .type no_fma_with_fewer_uses, at function 
# |           25: no_fma_with_fewer_uses: # @no_fma_with_fewer_uses 
# |           26: .Lfunc_begin1: 
# |           27:  .cfi_startproc 
# |           28: # %bb.0: 
# | next:25'0             X error: no match found
# |           29:  xsmulsp 0, 1, 2 
# | next:25'0     ~~~~~~~~~~~~~~~~~
# |           30:  xsmulsp 1, 3, 4 
# | next:25'0     ~~~~~~~~~~~~~~~~~
# | next:25'1      ?                possible intended match
# |           31:  xsaddsp 1, 0, 1 
# | next:25'0     ~~~~~~~~~~~~~~~~~
# |           32:  xsdivsp 1, 0, 1 
# | next:25'0     ~~~~~~~~~~~~~~~~~
# |           33:  blr 
# | next:25'0     ~~~~~
# |           34:  .long 0 
# | next:25'0     ~~~~~~~~~
# |           35:  .quad 0 
# | next:25'0     ~~~~~~~~~
# |            .
# |            .
# |            .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.CodeGen/PowerPC/fma-precision.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/PowerPC/fma-precision.ll -verify-machineinstrs -mcpu=pwr9 -mtriple=powerpc64le-linux-gnu | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/PowerPC/fma-precision.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -verify-machineinstrs -mcpu=pwr9 -mtriple=powerpc64le-linux-gnu
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/PowerPC/fma-precision.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/PowerPC/fma-precision.ll:104:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: xsmuldp 1, 1, 2
# |               ^
# | <stdin>:115:9: note: scanning from here
# | # %bb.0:
# |         ^
# | <stdin>:116:2: note: possible intended match here
# |  xsmuldp 0, 1, 2
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/PowerPC/fma-precision.ll:123:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: xsmuldp 5, 1, 2
# |               ^
# | <stdin>:135:9: note: scanning from here
# | # %bb.0:
# |         ^
# | <stdin>:136:2: note: possible intended match here
# |  xsmuldp 0, 1, 2
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/PowerPC/fma-precision.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |           110:  .p2align 4 
# |           111:  .type fma_multi_uses1, at function 
# |           112: fma_multi_uses1: # @fma_multi_uses1 
# |           113: .Lfunc_begin6: 
# |           114:  .cfi_startproc 
# |           115: # %bb.0: 
# | next:104'0             X error: no match found
# |           116:  xsmuldp 0, 1, 2 
# | next:104'0     ~~~~~~~~~~~~~~~~~
# | next:104'1      ?                possible intended match
# |           117:  xsmuldp 1, 3, 4 
# | next:104'0     ~~~~~~~~~~~~~~~~~
# |           118:  stfd 0, 0(7) 
# | next:104'0     ~~~~~~~~~~~~~~
# |           119:  stfd 0, 0(8) 
# | next:104'0     ~~~~~~~~~~~~~~
# |           120:  stfd 1, 0(9) 
# | next:104'0     ~~~~~~~~~~~~~~
# |           121:  xssubdp 1, 0, 1 
# | next:104'0     ~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           130:  .p2align 4 
# | next:104'0     ~~~~~~~~~~~~
# |           131:  .type fma_multi_uses2, at function 
# | next:104'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           132: fma_multi_uses2: # @fma_multi_uses2 
# | next:104'0     ~~~~~~~~~~~~~~~~
# |           133: .Lfunc_begin7: 
# |           134:  .cfi_startproc 
# |           135: # %bb.0: 
# | next:123'0             X error: no match found
# |           136:  xsmuldp 0, 1, 2 
# | next:123'0     ~~~~~~~~~~~~~~~~~
# | next:123'1      ?                possible intended match
# |           137:  xsmuldp 1, 3, 4 
# | next:123'0     ~~~~~~~~~~~~~~~~~
# |           138:  stfd 0, 0(7) 
# | next:123'0     ~~~~~~~~~~~~~~
# |           139:  stfd 1, 0(8) 
# | next:123'0     ~~~~~~~~~~~~~~
# |           140:  stfd 1, 0(9) 
# | next:123'0     ~~~~~~~~~~~~~~
# |           141:  xssubdp 1, 0, 1 
# | next:123'0     ~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>

If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the `infrastructure` label.

https://github.com/llvm/llvm-project/pull/169735


More information about the llvm-commits mailing list