[llvm-branch-commits] [llvm] [AMDGPU][DAGCombiner][GlobalISel] Extend allMulUsesCanBeContracted with FPEXT pattern (PR #188116)

via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Mon Mar 23 13:46:13 PDT 2026


github-actions[bot] wrote:

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

* 171661 tests passed
* 3068 tests skipped
* 3 tests failed

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

### LLVM
<details>
<summary>LLVM.CodeGen/AMDGPU/amdgpu-simplify-libcall-pow-codegen.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -passes=amdgpu-simplifylib,instcombine -amdgpu-prelink < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-pow-codegen.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -amdgpu-prelink | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-pow-codegen.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -passes=amdgpu-simplifylib,instcombine -amdgpu-prelink
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -amdgpu-prelink
# 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/AMDGPU/amdgpu-simplify-libcall-pow-codegen.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-pow-codegen.ll:37:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: s_add_u32 s16, s16, _Z3powff at rel32@lo+4
# |               ^
# | <stdin>:41:22: note: scanning from here
# |  s_getpc_b64 s[16:17]
# |                      ^
# | <stdin>:42:2: note: possible intended match here
# |  s_add_u32 s16, s16, _Z10__pow_fastff at gotpcrel32@lo+4
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-pow-codegen.ll:70:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: v_or_b32_e32 v0, v0, v1
# |               ^
# | <stdin>:114:26: note: scanning from here
# |  v_and_b32_e32 v0, v2, v0
# |                          ^
# | <stdin>:115:2: note: possible intended match here
# |  v_or_b32_e32 v0, v1, v0
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-pow-codegen.ll:179:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: v_or_b32_e32 v1, v2, v1
# |               ^
# | <stdin>:259:73: note: scanning from here
# |  buffer_load_dword v40, off, s[0:3], s33 offset:8 ; 4-byte Folded Reload
# |                                                                         ^
# | <stdin>:260:2: note: possible intended match here
# |  v_or_b32_e32 v1, v1, v2
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-pow-codegen.ll:356:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: v_or_b32_e32 v0, v0, v2
# |               ^
# | <stdin>:503:22: note: scanning from here
# |  v_exp_f16_e32 v2, v2
# |                      ^
# | <stdin>:504:2: note: possible intended match here
# |  v_or_b32_e32 v0, v2, v0
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-pow-codegen.ll:461:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: v_or_b32_e32 v1, v2, v1
# |               ^
# | <stdin>:646:73: note: scanning from here
# |  buffer_load_dword v40, off, s[0:3], s33 offset:8 ; 4-byte Folded Reload
# |                                                                         ^
# | <stdin>:647:2: note: possible intended match here
# |  v_or_b32_e32 v1, v1, v2
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-pow-codegen.ll:684:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: v_writelane_b32 v43, s16, 14
# |               ^
# | <stdin>:978:26: note: scanning from here
# |  s_mov_b64 exec, s[18:19]
# |                          ^
# | <stdin>:979:2: note: possible intended match here
# |  v_writelane_b32 v43, s16, 15
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-pow-codegen.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            36:  .p2align 6 
# |            37:  .type test_pow_fast_f32, at function 
# |            38: test_pow_fast_f32: ; @test_pow_fast_f32 
# |            39: ; %bb.0: 
# |            40:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            41:  s_getpc_b64 s[16:17] 
# | next:37'0                           X error: no match found
# |            42:  s_add_u32 s16, s16, _Z10__pow_fastff at gotpcrel32@lo+4 
# | next:37'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:37'1       ?                                                     possible intended match
# |            43:  s_addc_u32 s17, s17, _Z10__pow_fastff at gotpcrel32@hi+12 
# | next:37'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            44:  s_load_dwordx2 s[16:17], s[16:17], 0x0 
# | next:37'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            45:  s_waitcnt lgkmcnt(0) 
# | next:37'0      ~~~~~~~~~~~~~~~~~~~~~~
# |            46:  s_setpc_b64 s[16:17] 
# | next:37'0      ~~~~~~~~~~~~~~~~~~~~~~
# |            47: .Lfunc_end1: 
# | next:37'0      ~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           109:  v_trunc_f16_e32 v1, v1 
# |           110:  v_mul_f16_e32 v1, v3, v1 
# |           111:  v_exp_f16_e32 v1, v1 
# |           112:  v_cvt_i32_f32_e32 v2, v2 
# |           113:  v_lshlrev_b16_e32 v2, 15, v2 
# |           114:  v_and_b32_e32 v0, v2, v0 
# | next:70'0                               X error: no match found
# |           115:  v_or_b32_e32 v0, v1, v0 
# | next:70'0      ~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:70'1       ?                        possible intended match
# |           116:  s_setpc_b64 s[30:31] 
# | next:70'0      ~~~~~~~~~~~~~~~~~~~~~~
# |           117: .Lfunc_end3: 
# | next:70'0      ~~~~~~~~~~~~~
# |           118:  .size test_pow_fast_f16__integral_y, .Lfunc_end3-test_pow_fast_f16__integral_y 
# | next:70'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           119:  ; -- End function 
# | next:70'0      ~~~~~~~~~~~~~~~~~~~
# |           120:  .set test_pow_fast_f16__integral_y.num_vgpr, 4 
# | next:70'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           254:  s_swappc_b64 s[30:31], s[16:17] 
# |           255:  v_lshlrev_b32_e32 v2, 31, v41 
# |           256:  v_and_b32_e32 v2, v2, v42 
# |           257:  buffer_load_dword v42, off, s[0:3], s33 ; 4-byte Folded Reload 
# |           258:  buffer_load_dword v41, off, s[0:3], s33 offset:4 ; 4-byte Folded Reload 
# |           259:  buffer_load_dword v40, off, s[0:3], s33 offset:8 ; 4-byte Folded Reload 
# | next:179'0                                                                             X error: no match found
# |           260:  v_or_b32_e32 v1, v1, v2 
# | next:179'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:179'1      ?                        possible intended match
# |           261:  v_readlane_b32 s53, v43, 13 
# | next:179'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           262:  v_readlane_b32 s52, v43, 12 
# | next:179'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           263:  v_readlane_b32 s51, v43, 11 
# | next:179'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           264:  v_readlane_b32 s50, v43, 10 
# | next:179'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           265:  v_readlane_b32 s49, v43, 9 
# | next:179'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           498:  v_log_f16_e64 v3, |v0| 
# |           499:  v_lshlrev_b16_e32 v1, 15, v1 
# |           500:  v_and_b32_e32 v0, v1, v0 
# |           501:  v_cvt_f16_f32_e32 v2, v2 
# |           502:  v_mul_f16_e32 v2, v3, v2 
# |           503:  v_exp_f16_e32 v2, v2 
# | next:356'0                          X error: no match found
# |           504:  v_or_b32_e32 v0, v2, v0 
# | next:356'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:356'1      ?                        possible intended match
# |           505:  s_setpc_b64 s[30:31] 
# | next:356'0     ~~~~~~~~~~~~~~~~~~~~~~
# |           506: .Lfunc_end9: 
# | next:356'0     ~~~~~~~~~~~~~
# |           507:  .size test_pown_fast_f16, .Lfunc_end9-test_pown_fast_f16 
# | next:356'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           508:  ; -- End function 
# | next:356'0     ~~~~~~~~~~~~~~~~~~~
# |           509:  .set test_pown_fast_f16.num_vgpr, 4 
# | next:356'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           641:  s_swappc_b64 s[30:31], s[16:17] 
# |           642:  v_lshlrev_b32_e32 v2, 31, v41 
# |           643:  v_and_b32_e32 v2, v2, v42 
# |           644:  buffer_load_dword v42, off, s[0:3], s33 ; 4-byte Folded Reload 
# |           645:  buffer_load_dword v41, off, s[0:3], s33 offset:4 ; 4-byte Folded Reload 
# |           646:  buffer_load_dword v40, off, s[0:3], s33 offset:8 ; 4-byte Folded Reload 
# | next:461'0                                                                             X error: no match found
# |           647:  v_or_b32_e32 v1, v1, v2 
# | next:461'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:461'1      ?                        possible intended match
# |           648:  v_readlane_b32 s53, v43, 13 
# | next:461'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           649:  v_readlane_b32 s52, v43, 12 
# | next:461'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           650:  v_readlane_b32 s51, v43, 11 
# | next:461'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           651:  v_readlane_b32 s50, v43, 10 
# | next:461'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           652:  v_readlane_b32 s49, v43, 9 
# | next:461'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           973:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |           974:  s_mov_b32 s16, s33 
# |           975:  s_mov_b32 s33, s32 
# |           976:  s_or_saveexec_b64 s[18:19], -1 
# |           977:  buffer_store_dword v43, off, s[0:3], s33 offset:12 ; 4-byte Folded Spill 
# |           978:  s_mov_b64 exec, s[18:19] 
# | next:684'0                              X error: no match found
# |           979:  v_writelane_b32 v43, s16, 15 
# | next:684'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:684'1      ?                             possible intended match
# |           980:  v_writelane_b32 v43, s30, 0 
# | next:684'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           981:  v_writelane_b32 v43, s31, 1 
# | next:684'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           982:  v_writelane_b32 v43, s34, 2 
# | next:684'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           983:  v_writelane_b32 v43, s35, 3 
# | next:684'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           984:  v_writelane_b32 v43, s36, 4 
# | next:684'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<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/188116


More information about the llvm-branch-commits mailing list