[llvm] [AArch64] Combine SVE shift and truncate into deinterleave (PR #213252)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Jul 31 06:45:40 PDT 2026
github-actions[bot] wrote:
<!--PREMERGE ADVISOR COMMENT: Windows-->
# :window: Windows x64 Test Results
* 139270 tests passed
* 3613 tests skipped
* 5 tests failed
## Failed Tests
(click on a test name to see its output)
### LLVM
<details>
<summary>LLVM.Analysis/UniformityAnalysis/AMDGPU/MIR/irreducible/diverged-entry-basic-gmir.mir</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 1
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -mtriple=amdgpu7.00-- -run-pass=print-machine-uniformity -o - C:\_work\llvm-project\llvm-project\llvm\test\Analysis\UniformityAnalysis\AMDGPU\MIR\irreducible\diverged-entry-basic-gmir.mir 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Analysis\UniformityAnalysis\AMDGPU\MIR\irreducible\diverged-entry-basic-gmir.mir
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=amdgpu7.00-- -run-pass=print-machine-uniformity -o - 'C:\_work\llvm-project\llvm-project\llvm\test\Analysis\UniformityAnalysis\AMDGPU\MIR\irreducible\diverged-entry-basic-gmir.mir'
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Analysis\UniformityAnalysis\AMDGPU\MIR\irreducible\diverged-entry-basic-gmir.mir'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Analysis\UniformityAnalysis\AMDGPU\MIR\irreducible\diverged-entry-basic-gmir.mir:7:15: error: CHECK-NEXT: is not on the line after the previous match
# | # CHECK-NEXT: depth=1: entries(bb.3 bb.1) bb.4 bb.2
# | ^
# | <stdin>:6:2: note: 'next' match was here
# | depth=1: entries(bb.3 bb.1) bb.4 bb.2
# | ^
# | <stdin>:4:28: note: previous match ended here
# | CYCLES WITH DIVERGENT EXIT:
# | ^
# | <stdin>:5:1: note: non-matching line after previous match is here
# | depth=2: entries(bb.4 bb.1) bb.2
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Analysis\UniformityAnalysis\AMDGPU\MIR\irreducible\diverged-entry-basic-gmir.mir
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | 1: MachineUniformityInfo for function: @divergent_cycle_1
# | 2: CYCLES ASSUMED DIVERGENT:
# | 3: depth=1: entries(bb.3 bb.1) bb.4 bb.2
# | 4: CYCLES WITH DIVERGENT EXIT:
# | next:7'0 { search range start (exclusive)
# | 5: depth=2: entries(bb.4 bb.1) bb.2
# | 6: depth=1: entries(bb.3 bb.1) bb.4 bb.2
# | next:7'1 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: match on wrong line
# | 7:
# | 8: BLOCK bb.0
# | 9: DEFINITIONS
# | 10: %0: %0:_(s32) = G_CONSTANT i32 0
# | 11: %1: %1:_(s32) = G_CONSTANT i32 1
# | .
# | .
# | .
# | 55: DEFINITIONS
# | 56: %13: %13:_(s32) = G_ADD %3:_, %1:_
# | 57: TERMINATORS
# | 58: S_ENDPGM 0
# | 59: END BLOCK
# | 60: MachineUniformityInfo for function: @uniform_cycle_1
# | next:7'2 } search range end (exclusive)
# | 61:
# | 62: BLOCK bb.0
# | 63: DEFINITIONS
# | 64: %0: %0:_(s32) = G_CONSTANT i32 0
# | 65: %1: %1:_(s32) = G_CONSTANT i32 1
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Analysis/UniformityAnalysis/AMDGPU/irreducible/diverged-entry-basic.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 1
c:\_work\llvm-project\llvm-project\build\bin\opt.exe C:\_work\llvm-project\llvm-project\llvm\test\Analysis\UniformityAnalysis\AMDGPU\irreducible\diverged-entry-basic.ll -mtriple amdgcn-- -passes='print<uniformity>' -disable-output 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Analysis\UniformityAnalysis\AMDGPU\irreducible\diverged-entry-basic.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Analysis\UniformityAnalysis\AMDGPU\irreducible\diverged-entry-basic.ll' -mtriple amdgcn-- '-passes=print<uniformity>' -disable-output
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Analysis\UniformityAnalysis\AMDGPU\irreducible\diverged-entry-basic.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Analysis\UniformityAnalysis\AMDGPU\irreducible\diverged-entry-basic.ll:9:10: error: CHECK: expected string not found in input
# | ; CHECK: depth=2: entries(S P) Q
# | ^
# | <stdin>:6:27: note: scanning from here
# | depth=1: entries(R P) S Q
# | ^
# | <stdin>:8:1: note: possible intended match here
# | BLOCK entry
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Analysis\UniformityAnalysis\AMDGPU\irreducible\diverged-entry-basic.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | 1: UniformityInfo for function 'divergent_cycle_1':
# | 2: CYCLES ASSUMED DIVERGENT:
# | 3: depth=1: entries(R P) S Q
# | 4: CYCLES WITH DIVERGENT EXIT:
# | 5: depth=2: entries(S P) Q
# | 6: depth=1: entries(R P) S Q
# | check:9'0 { search range start (exclusive)
# | check:9'1 error: no match found in search range
# | 7:
# | 8: BLOCK entry
# | check:9'2 ? possible intended match
# | 9: DEFINITIONS
# | 10: %cond.uni = icmp slt i32 %a, 0
# | 11: DIVERGENT: %tid = call i32 @llvm.amdgcn.workitem.id.x()
# | 12: DIVERGENT: %cond.div = icmp slt i32 %tid, 0
# | 13: TERMINATORS
# | .
# | .
# | .
# | 48: DEFINITIONS
# | 49: %ee = add i32 %b, 1
# | 50: TERMINATORS
# | 51: ret void
# | 52: END BLOCK
# | 53: UniformityInfo for function 'uniform_cycle_1':
# | check:9'3 } search range end (exclusive)
# | 54:
# | 55: BLOCK entry
# | 56: DEFINITIONS
# | 57: %cond.uni = icmp slt i32 %a, 0
# | 58: DIVERGENT: %tid = call i32 @llvm.amdgcn.workitem.id.x()
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.CodeGen/AArch64/sve-int-mulh-pred.ll</summary>
```
Exit Code: 2
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -mtriple=aarch64-linux-gnu -mattr=+sve < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\sve-int-mulh-pred.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\sve-int-mulh-pred.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=aarch64-linux-gnu -mattr=+sve
# .---command stderr------------
# | LLVM ERROR: Scalarization of scalable vectors is not supported.
# | PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and instructions to reproduce the bug.
# | Stack dump:
# | 0. Program arguments: c:\\_work\\llvm-project\\llvm-project\\build\\bin\\llc.exe -mtriple=aarch64-linux-gnu -mattr=+sve
# | 1. Running pass 'Function Pass Manager' on module '<stdin>'.
# | 2. Running pass 'AArch64 Instruction Selection' on function '@smulh_i64'
# | Exception Code: 0xC000001D
# | #0 0x00007ff645c421e6 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x2de21e6)
# | #1 0x00007ff8ee88bb04 (C:\Windows\System32\ucrtbase.dll+0x7bb04)
# | #2 0x00007ff8ee88cad1 (C:\Windows\System32\ucrtbase.dll+0x7cad1)
# | #3 0x00007ff6435ccc7a (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x76cc7a)
# | #4 0x00007ff6435cca55 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x76ca55)
# | #5 0x00007ff645ecd606 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x306d606)
# | #6 0x00007ff645ed27c2 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x30727c2)
# | #7 0x00007ff643582c40 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x722c40)
# | #8 0x00007ff643582170 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x722170)
# | #9 0x00007ff6435818a6 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x7218a6)
# | #10 0x00007ff64357d8e8 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x71d8e8)
# | #11 0x00007ff64357ac74 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x71ac74)
# | #12 0x00007ff643972c19 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0xb12c19)
# | #13 0x00007ff64338a430 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x52a430)
# | #14 0x00007ff643392cad (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x532cad)
# | #15 0x00007ff64338b4c0 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x52b4c0)
# | #16 0x00007ff642e6526e (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x526e)
# | #17 0x00007ff6478c81f0 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x4a681f0)
# | #18 0x00007ff8fa154cb0 (C:\Windows\System32\KERNEL32.DLL+0x14cb0)
# | #19 0x00007ff90467edcb (C:\Windows\SYSTEM32\ntdll.dll+0x7edcb)
# `-----------------------------
# error: command failed with exit status: 0xc000001d
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\sve-int-mulh-pred.ll'
# .---command stderr------------
# | FileCheck error: '<stdin>' is empty.
# | FileCheck command line: c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\sve-int-mulh-pred.ll
# `-----------------------------
# error: command failed with exit status: 2
--
```
</details>
<details>
<summary>LLVM.CodeGen/AArch64/sve2-int-mulh.ll</summary>
```
Exit Code: 2
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -mtriple=aarch64-linux-gnu -mattr=+sve2 < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\sve2-int-mulh.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\sve2-int-mulh.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=aarch64-linux-gnu -mattr=+sve2
# .---command stderr------------
# | LLVM ERROR: Scalarization of scalable vectors is not supported.
# | PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and instructions to reproduce the bug.
# | Stack dump:
# | 0. Program arguments: c:\\_work\\llvm-project\\llvm-project\\build\\bin\\llc.exe -mtriple=aarch64-linux-gnu -mattr=+sve2
# | 1. Running pass 'Function Pass Manager' on module '<stdin>'.
# | 2. Running pass 'AArch64 Instruction Selection' on function '@smulh_i64'
# | Exception Code: 0xC000001D
# | #0 0x00007ff645c421e6 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x2de21e6)
# | #1 0x00007ff8ee88bb04 (C:\Windows\System32\ucrtbase.dll+0x7bb04)
# | #2 0x00007ff8ee88cad1 (C:\Windows\System32\ucrtbase.dll+0x7cad1)
# | #3 0x00007ff6435ccc7a (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x76cc7a)
# | #4 0x00007ff6435cca55 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x76ca55)
# | #5 0x00007ff645ecd606 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x306d606)
# | #6 0x00007ff645ed27c2 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x30727c2)
# | #7 0x00007ff643582c40 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x722c40)
# | #8 0x00007ff643582170 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x722170)
# | #9 0x00007ff6435818a6 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x7218a6)
# | #10 0x00007ff64357d8e8 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x71d8e8)
# | #11 0x00007ff64357ac74 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x71ac74)
# | #12 0x00007ff643972c19 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0xb12c19)
# | #13 0x00007ff64338a430 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x52a430)
# | #14 0x00007ff643392cad (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x532cad)
# | #15 0x00007ff64338b4c0 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x52b4c0)
# | #16 0x00007ff642e6526e (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x526e)
# | #17 0x00007ff6478c81f0 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x4a681f0)
# | #18 0x00007ff8fa154cb0 (C:\Windows\System32\KERNEL32.DLL+0x14cb0)
# | #19 0x00007ff90467edcb (C:\Windows\SYSTEM32\ntdll.dll+0x7edcb)
# `-----------------------------
# error: command failed with exit status: 0xc000001d
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\sve2-int-mulh.ll'
# .---command stderr------------
# | FileCheck error: '<stdin>' is empty.
# | FileCheck command line: c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\sve2-int-mulh.ll
# `-----------------------------
# error: command failed with exit status: 2
--
```
</details>
<details>
<summary>LLVM.CodeGen/AArch64/sve2-intrinsics-combine-rshrnb.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -mtriple=aarch64-linux-gnu -mattr=+sve2 < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\sve2-intrinsics-combine-rshrnb.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\sve2-intrinsics-combine-rshrnb.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=aarch64-linux-gnu -mattr=+sve2
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\sve2-intrinsics-combine-rshrnb.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\sve2-intrinsics-combine-rshrnb.ll:165:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: rshrnb z1.s, z1.d, #32
# | ^
# | <stdin>:149:10: note: scanning from here
# | // %bb.0:
# | ^
# | <stdin>:152:2: note: possible intended match here
# | add z1.d, z1.d, z2.d
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\sve2-intrinsics-combine-rshrnb.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | .
# | .
# | .
# | 144: .p2align 2
# | 145: .type wide_add_shift_add_rshrnb_d, at function
# | 146: .variant_pcs wide_add_shift_add_rshrnb_d
# | 147: wide_add_shift_add_rshrnb_d: // @wide_add_shift_add_rshrnb_d
# | 148: .cfi_startproc
# | 149: // %bb.0:
# | next:165'0 { search range start (exclusive)
# | next:165'1 error: no match found in search range
# | 150: mov z2.d, #0x80000000
# | 151: ptrue p0.s
# | 152: add z1.d, z1.d, z2.d
# | next:165'2 ? possible intended match
# | 153: add z0.d, z0.d, z2.d
# | 154: ld1w { z2.s }, p0/z, [x0, x1, lsl #2]
# | 155: uzp2 z0.s, z0.s, z1.s
# | 156: add z0.s, z2.s, z0.s
# | 157: st1w { z0.s }, p0, [x0, x1, lsl #2]
# | .
# | .
# | .
# | 162: // -- End function
# | 163: .globl neg_wide_add_shift_add_rshrnb_d // -- Begin function neg_wide_add_shift_add_rshrnb_d
# | 164: .p2align 2
# | 165: .type neg_wide_add_shift_add_rshrnb_d, at function
# | 166: .variant_pcs neg_wide_add_shift_add_rshrnb_d
# | 167: neg_wide_add_shift_add_rshrnb_d: // @neg_wide_add_shift_add_rshrnb_d
# | next:165'3 } search range end (exclusive)
# | 168: .cfi_startproc
# | 169: // %bb.0:
# | 170: mov z2.d, #0x800000000000
# | 171: ptrue p0.s
# | 172: add z0.d, z0.d, z2.d
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# 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/213252
More information about the llvm-commits
mailing list