[llvm] [CodeGen] Expand unsupported interleave to shuffles (PR #210494)

via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 28 01:29:04 PDT 2026


github-actions[bot] wrote:

<!--PREMERGE ADVISOR COMMENT: Windows-->
# :window: Windows x64 Test Results

* 139056 tests passed
* 3591 tests skipped
* 2 tests failed

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

### LLVM
<details>
<summary>LLVM.CodeGen/AArch64/vector-deinterleave-load.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 < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\vector-deinterleave-load.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\vector-deinterleave-load.ll  --check-prefixes=CHECK,CHECK-IAENABLED
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=aarch64-linux-gnu
# 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\vector-deinterleave-load.ll' --check-prefixes=CHECK,CHECK-IAENABLED
# note: command had no output on stdout or stderr
# RUN: at line 3
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -mtriple=aarch64-linux-gnu -lower-interleaved-accesses=false < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\vector-deinterleave-load.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\vector-deinterleave-load.ll --check-prefixes=CHECK,CHECK-IADISABLED
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=aarch64-linux-gnu -lower-interleaved-accesses=false
# 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\vector-deinterleave-load.ll' --check-prefixes=CHECK,CHECK-IADISABLED
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\vector-deinterleave-load.ll:23:26: error: CHECK-IADISABLED-NEXT: expected string not found in input
# | ; CHECK-IADISABLED-NEXT: add x9, x0, x9
# |                          ^
# | <stdin>:11:17: note: scanning from here
# |  add x8, x8, #16
# |                 ^
# | <stdin>:12:2: note: possible intended match here
# |  add x10, x0, x9
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\vector-deinterleave-load.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            .
# |            .
# |            .
# |            6: aarch64_vector_deinterleave_idx_ld2: // @aarch64_vector_deinterleave_idx_ld2 
# |            7:  .cfi_startproc 
# |            8: // %bb.0: // %entry 
# |            9:  lsl x8, x1, #2 
# |           10:  and x9, x8, #0xfffffffffffffff0 
# |           11:  add x8, x8, #16 
# | next:23'0                    {   search range start (exclusive)
# | next:23'1                        error: no match found in search range
# |           12:  add x10, x0, x9 
# | next:23'2      ?                 possible intended match
# |           13:  and x8, x8, #0xfffffffffffffff0 
# |           14:  ld2 { v0.4s, v1.4s }, [x10] 
# |           15:  str q0, [x0, x9] 
# |           16:  str q1, [x0, x8] 
# |           17:  ret 
# |           18: .Lfunc_end0: 
# |           19:  .size aarch64_vector_deinterleave_idx_ld2, .Lfunc_end0-aarch64_vector_deinterleave_idx_ld2 
# |           20:  .cfi_endproc 
# |           21:  // -- End function 
# |           22:  .globl aarch64_vector_deinterleave_idx_ld3 // -- Begin function aarch64_vector_deinterleave_idx_ld3 
# |           23:  .p2align 2 
# |           24:  .type aarch64_vector_deinterleave_idx_ld3, at function 
# |           25: aarch64_vector_deinterleave_idx_ld3: // @aarch64_vector_deinterleave_idx_ld3 
# | next:23'3                                         }                                          search range end (exclusive)
# |           26:  .cfi_startproc 
# |           27: // %bb.0: // %entry 
# |           28:  lsl x8, x1, #2 
# |           29:  and x9, x8, #0xfffffffffffffff0 
# |           30:  add x10, x0, x9 
# |            .
# |            .
# |            .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.CodeGen/AArch64/vector-interleave-store.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 < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\vector-interleave-store.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\vector-interleave-store.ll --check-prefixes=CHECK,CHECK-IAENABLED
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=aarch64-linux-gnu
# 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\vector-interleave-store.ll' --check-prefixes=CHECK,CHECK-IAENABLED
# note: command had no output on stdout or stderr
# RUN: at line 3
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -mtriple=aarch64-linux-gnu -lower-interleaved-accesses=false < C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\vector-interleave-store.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\vector-interleave-store.ll --check-prefixes=CHECK,CHECK-IADISABLED
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=aarch64-linux-gnu -lower-interleaved-accesses=false
# 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\vector-interleave-store.ll' --check-prefixes=CHECK,CHECK-IADISABLED
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\vector-interleave-store.ll:17:26: error: CHECK-IADISABLED-NEXT: expected string not found in input
# | ; CHECK-IADISABLED-NEXT: zip2 v2.4s, v0.4s, v1.4s
# |                          ^
# | <stdin>:9:16: note: scanning from here
# |  lsr x8, x1, #2
# |                ^
# | <stdin>:13:2: note: possible intended match here
# |  st2 { v0.4s, v1.4s }, [x8]
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\vector-interleave-store.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            1:  .file "<stdin>" 
# |            2:  .text 
# |            3:  .globl aarch64_vector_interleave_idx_st2 // -- Begin function aarch64_vector_interleave_idx_st2 
# |            4:  .p2align 2 
# |            5:  .type aarch64_vector_interleave_idx_st2, at function 
# |            6: aarch64_vector_interleave_idx_st2: // @aarch64_vector_interleave_idx_st2 
# |            7:  .cfi_startproc 
# |            8: // %bb.0: // %entry 
# |            9:  lsr x8, x1, #2 
# | next:17'0                   {   search range start (exclusive)
# | next:17'1                       error: no match found in search range
# |           10:  // kill: def $q1 killed $q1 killed $q0_q1 def $q0_q1 
# |           11:  // kill: def $q0 killed $q0 killed $q0_q1 def $q0_q1 
# |           12:  add x8, x0, x8, lsl #4 
# |           13:  st2 { v0.4s, v1.4s }, [x8] 
# | next:17'2      ?                            possible intended match
# |           14:  ret 
# |           15: .Lfunc_end0: 
# |           16:  .size aarch64_vector_interleave_idx_st2, .Lfunc_end0-aarch64_vector_interleave_idx_st2 
# |           17:  .cfi_endproc 
# |           18:  // -- End function 
# |           19:  .globl aarch64_vector_interleave_idx_st3 // -- Begin function aarch64_vector_interleave_idx_st3 
# |           20:  .p2align 2 
# |           21:  .type aarch64_vector_interleave_idx_st3, at function 
# |           22: aarch64_vector_interleave_idx_st3: // @aarch64_vector_interleave_idx_st3 
# | next:17'3                                       }                                        search range end (exclusive)
# |           23:  .cfi_startproc 
# |           24: // %bb.0: // %entry 
# |           25:  lsr x8, x1, #2 
# |           26:  // kill: def $q2 killed $q2 killed $q0_q1_q2 def $q0_q1_q2 
# |           27:  // kill: def $q1 killed $q1 killed $q0_q1_q2 def $q0_q1_q2 
# |            .
# |            .
# |            .
# | >>>>>>
# `-----------------------------
# 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/210494


More information about the llvm-commits mailing list