[llvm] [RFC][IR] Support vector splats in `ConstantPointerNull` (PR #195486)

via llvm-commits llvm-commits at lists.llvm.org
Sat May 2 15:55:09 PDT 2026


github-actions[bot] wrote:

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

* 134109 tests passed
* 3223 tests skipped
* 12 tests failed

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

### LLVM
<details>
<summary>LLVM.CodeGen/AArch64/arm64_32.ll</summary>

```
Exit Code: 2

Command Output (stdout):
--
# RUN: at line 1
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -mtriple=arm64_32-apple-ios7.0 C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\arm64_32.ll -filetype=obj -o - -disable-post-ra -frame-pointer=non-leaf |      c:\_work\llvm-project\llvm-project\build\bin\llvm-objdump.exe --private-headers - |      c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\arm64_32.ll --check-prefix=CHECK-MACHO
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=arm64_32-apple-ios7.0 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\arm64_32.ll' -filetype=obj -o - -disable-post-ra -frame-pointer=non-leaf
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llvm-objdump.exe' --private-headers -
# 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\arm64_32.ll' --check-prefix=CHECK-MACHO
# note: command had no output on stdout or stderr
# RUN: at line 4
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -mtriple=arm64_32-apple-ios7.0 C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\arm64_32.ll -o - -aarch64-enable-atomic-cfg-tidy=0 -disable-post-ra -frame-pointer=non-leaf | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\arm64_32.ll --check-prefix=CHECK --check-prefix=CHECK-OPT
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=arm64_32-apple-ios7.0 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\arm64_32.ll' -o - -aarch64-enable-atomic-cfg-tidy=0 -disable-post-ra -frame-pointer=non-leaf
# 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\arm64_32.ll' --check-prefix=CHECK --check-prefix=CHECK-OPT
# note: command had no output on stdout or stderr
# RUN: at line 5
c:\_work\llvm-project\llvm-project\build\bin\llc.exe -mtriple=arm64_32-apple-ios7.0 C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\arm64_32.ll -o - -fast-isel -aarch64-enable-atomic-cfg-tidy=0 -disable-post-ra -frame-pointer=non-leaf | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\arm64_32.ll --check-prefix=CHECK --check-prefix=CHECK-FAST
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\llc.exe' -mtriple=arm64_32-apple-ios7.0 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\arm64_32.ll' -o - -fast-isel -aarch64-enable-atomic-cfg-tidy=0 -disable-post-ra -frame-pointer=non-leaf
# .---command stderr------------
# | Assertion failed: VT == MVT::i64 && "Expected 64-bit pointers", file C:\_work\llvm-project\llvm-project\llvm\lib\Target\AArch64\AArch64FastISel.cpp, line 541
# | 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=arm64_32-apple-ios7.0 C:\\_work\\llvm-project\\llvm-project\\llvm\\test\\CodeGen\\AArch64\\arm64_32.ll -o - -fast-isel -aarch64-enable-atomic-cfg-tidy=0 -disable-post-ra -frame-pointer=non-leaf
# | 1.	Running pass 'Function Pass Manager' on module 'C:\_work\llvm-project\llvm-project\llvm\test\CodeGen\AArch64\arm64_32.ll'.
# | 2.	Running pass 'AArch64 Instruction Selection' on function '@test_pointer_vec_store'
# | Exception Code: 0xC000001D
# |  #0 0x00007ff627da5626 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x2de5626)
# |  #1 0x00007ff9d997bb04 (C:\Windows\System32\ucrtbase.dll+0x7bb04)
# |  #2 0x00007ff9d997cad1 (C:\Windows\System32\ucrtbase.dll+0x7cad1)
# |  #3 0x00007ff9d997e4a1 (C:\Windows\System32\ucrtbase.dll+0x7e4a1)
# |  #4 0x00007ff9d997e6e1 (C:\Windows\System32\ucrtbase.dll+0x7e6e1)
# |  #5 0x00007ff6296e719b (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x472719b)
# |  #6 0x00007ff627e0def8 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x2e4def8)
# |  #7 0x00007ff627e0dc25 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x2e4dc25)
# |  #8 0x00007ff6296ec2d7 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x472c2d7)
# |  #9 0x00007ff627e18ee1 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x2e58ee1)
# | #10 0x00007ff6256a0f3b (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x6e0f3b)
# | #11 0x00007ff62569dd25 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x6ddd25)
# | #12 0x00007ff62569ada4 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x6dada4)
# | #13 0x00007ff625a659d3 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0xaa59d3)
# | #14 0x00007ff6254aaa59 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x4eaa59)
# | #15 0x00007ff6254b34ed (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x4f34ed)
# | #16 0x00007ff6254ab6d8 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x4eb6d8)
# | #17 0x00007ff624fc747f (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x747f)
# | #18 0x00007ff629939390 (c:\_work\llvm-project\llvm-project\build\bin\llc.exe+0x4979390)
# | #19 0x00007ff9df904cb0 (C:\Windows\System32\KERNEL32.DLL+0x14cb0)
# | #20 0x00007ff9ebd5edcb (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\arm64_32.ll' --check-prefix=CHECK --check-prefix=CHECK-FAST
# .---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\arm64_32.ll --check-prefix=CHECK --check-prefix=CHECK-FAST
# `-----------------------------
# error: command failed with exit status: 2

--

```
</details>
<details>
<summary>LLVM.Transforms/CodeGenPrepare/AArch64/reduce-or-opt.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -codegenprepare -S < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\CodeGenPrepare\AArch64\reduce-or-opt.ll -mtriple=aarch64-none-linux-gnu -mattr=+sve | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\CodeGenPrepare\AArch64\reduce-or-opt.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -codegenprepare -S -mtriple=aarch64-none-linux-gnu -mattr=+sve
# 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\Transforms\CodeGenPrepare\AArch64\reduce-or-opt.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\CodeGenPrepare\AArch64\reduce-or-opt.ll:13:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[COND:%.*]] = icmp eq <2 x ptr> [[WIDE_LOAD]], zeroinitializer
# |               ^
# | <stdin>:13:53: note: scanning from here
# |  %wide.load = load <2 x ptr>, ptr %arrayidx, align 8
# |                                                     ^
# | <stdin>:13:53: note: with "WIDE_LOAD" equal to "%wide.load"
# |  %wide.load = load <2 x ptr>, ptr %arrayidx, align 8
# |                                                     ^
# | <stdin>:14:2: note: possible intended match here
# |  %cond = icmp eq <2 x ptr> %wide.load, splat (ptr null)
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\CodeGenPrepare\AArch64\reduce-or-opt.ll:51:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[COND:%.*]] = icmp eq <2 x ptr> [[WIDE_LOAD]], zeroinitializer
# |               ^
# | <stdin>:33:53: note: scanning from here
# |  %wide.load = load <2 x ptr>, ptr %arrayidx, align 8
# |                                                     ^
# | <stdin>:33:53: note: with "WIDE_LOAD" equal to "%wide.load"
# |  %wide.load = load <2 x ptr>, ptr %arrayidx, align 8
# |                                                     ^
# | <stdin>:34:2: note: possible intended match here
# |  %cond = icmp eq <2 x ptr> %wide.load, splat (ptr null)
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\CodeGenPrepare\AArch64\reduce-or-opt.ll:99:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[COND:%.*]] = icmp eq <vscale x 2 x ptr> [[WIDE_LOAD]], zeroinitializer
# |               ^
# | <stdin>:59:62: note: scanning from here
# |  %wide.load = load <vscale x 2 x ptr>, ptr %arrayidx, align 8
# |                                                              ^
# | <stdin>:59:62: note: with "WIDE_LOAD" equal to "%wide.load"
# |  %wide.load = load <vscale x 2 x ptr>, ptr %arrayidx, align 8
# |                                                              ^
# | <stdin>:60:2: note: possible intended match here
# |  %cond = icmp eq <vscale x 2 x ptr> %wide.load, splat (ptr null)
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\CodeGenPrepare\AArch64\reduce-or-opt.ll:143:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[COND:%.*]] = icmp eq <vscale x 2 x ptr> [[WIDE_LOAD]], zeroinitializer
# |               ^
# | <stdin>:83:62: note: scanning from here
# |  %wide.load = load <vscale x 2 x ptr>, ptr %arrayidx, align 8
# |                                                              ^
# | <stdin>:83:62: note: with "WIDE_LOAD" equal to "%wide.load"
# |  %wide.load = load <vscale x 2 x ptr>, ptr %arrayidx, align 8
# |                                                              ^
# | <stdin>:84:2: note: possible intended match here
# |  %cond = icmp eq <vscale x 2 x ptr> %wide.load, splat (ptr null)
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\CodeGenPrepare\AArch64\reduce-or-opt.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |             8:  br label %vector.body 
# |             9:  
# |            10: vector.body: ; preds = %vector.body, %entry 
# |            11:  %index = phi i64 [ 0, %entry ], [ %index.next, %vector.body ] 
# |            12:  %arrayidx = getelementptr inbounds ptr, ptr %src, i64 %index 
# |            13:  %wide.load = load <2 x ptr>, ptr %arrayidx, align 8 
# | next:13'0                                                          X error: no match found
# | next:13'1                                                            with "WIDE_LOAD" equal to "%wide.load"
# |            14:  %cond = icmp eq <2 x ptr> %wide.load, splat (ptr null) 
# | next:13'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:13'2       ?                                                       possible intended match
# |            15:  %index.next = add nuw i64 %index, 2 
# | next:13'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            16:  %or.reduc = tail call i1 @llvm.vector.reduce.or.v2i1(<2 x i1> %cond) 
# | next:13'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            17:  %iv.cmp = icmp eq i64 %index.next, 4 
# | next:13'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            18:  %exit.cond = or i1 %or.reduc, %iv.cmp 
# | next:13'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            19:  br i1 %exit.cond, label %middle.split, label %vector.body 
# | next:13'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |            28:  br label %vector.body 
# |            29:  
# |            30: vector.body: ; preds = %vector.body, %entry 
# |            31:  %index = phi i64 [ 0, %entry ], [ %index.next, %vector.body ] 
# |            32:  %arrayidx = getelementptr inbounds ptr, ptr %src, i64 %index 
# |            33:  %wide.load = load <2 x ptr>, ptr %arrayidx, align 8 
# | next:51'0                                                          X error: no match found
# | next:51'1                                                            with "WIDE_LOAD" equal to "%wide.load"
# |            34:  %cond = icmp eq <2 x ptr> %wide.load, splat (ptr null) 
# | next:51'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:51'2       ?                                                       possible intended match
# |            35:  %index.next = add nuw i64 %index, 2 
# | next:51'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            36:  %or.reduc = tail call i1 @llvm.vector.reduce.or.v2i1(<2 x i1> %cond) 
# | next:51'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            37:  %iv.cmp = icmp eq i64 %index.next, 4 
# | next:51'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            38:  %exit.cond = or i1 %or.reduc, %iv.cmp 
# | next:51'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            39:  br i1 %exit.cond, label %middle.split, label %vector.body 
# | next:51'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |            54:  br label %vector.body 
# |            55:  
# |            56: vector.body: ; preds = %vector.body, %entry 
# |            57:  %index = phi i64 [ 0, %entry ], [ %index.next, %vector.body ] 
# |            58:  %arrayidx = getelementptr inbounds ptr, ptr %src, i64 %index 
# |            59:  %wide.load = load <vscale x 2 x ptr>, ptr %arrayidx, align 8 
# | next:99'0                                                                   X error: no match found
# | next:99'1                                                                     with "WIDE_LOAD" equal to "%wide.load"
# |            60:  %cond = icmp eq <vscale x 2 x ptr> %wide.load, splat (ptr null) 
# | next:99'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:99'2       ?                                                                possible intended match
# |            61:  %0 = tail call i64 @llvm.vscale.i64() 
# | next:99'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            62:  %1 = shl nuw nsw i64 %0, 1 
# | next:99'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            63:  %index.next = add nuw i64 %index, %1 
# | next:99'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            64:  %or.reduc = tail call i1 @llvm.vector.reduce.or.nxv2i1(<vscale x 2 x i1> %cond) 
# | next:99'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            65:  %iv.cmp = icmp eq i64 %index.next, 4 
# | next:99'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |            78:  br label %vector.body 
# |            79:  
# |            80: vector.body: ; preds = %vector.body, %entry 
# |            81:  %index = phi i64 [ 0, %entry ], [ %index.next, %vector.body ] 
# |            82:  %arrayidx = getelementptr inbounds ptr, ptr %src, i64 %index 
# |            83:  %wide.load = load <vscale x 2 x ptr>, ptr %arrayidx, align 8 
# | next:143'0                                                                  X error: no match found
# | next:143'1                                                                    with "WIDE_LOAD" equal to "%wide.load"
# |            84:  %cond = icmp eq <vscale x 2 x ptr> %wide.load, splat (ptr null) 
# | next:143'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:143'2      ?                                                                possible intended match
# |            85:  %0 = tail call i64 @llvm.vscale.i64() 
# | next:143'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            86:  %1 = shl nuw nsw i64 %0, 1 
# | next:143'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            87:  %index.next = add nuw i64 %index, %1 
# | next:143'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            88:  %or.reduc = tail call i1 @llvm.vector.reduce.or.nxv2i1(<vscale x 2 x i1> %cond) 
# | next:143'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            89:  %iv.cmp = icmp eq i64 %index.next, 4 
# | next:143'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.Transforms/LoopVectorize/AArch64/epilog-vectorization-widen-inductions.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes='loop-vectorize' -force-vector-width=4 -enable-epilogue-vectorization -epilogue-vectorization-force-VF=2 -S C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\epilog-vectorization-widen-inductions.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\epilog-vectorization-widen-inductions.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-vectorize -force-vector-width=4 -enable-epilogue-vectorization -epilogue-vectorization-force-VF=2 -S 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\epilog-vectorization-widen-inductions.ll'
# 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\Transforms\LoopVectorize\AArch64\epilog-vectorization-widen-inductions.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\epilog-vectorization-widen-inductions.ll:22:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[TMP2:%.*]] = icmp ne <4 x ptr> [[VECTOR_GEP]], zeroinitializer
# |               ^
# | <stdin>:22:78: note: scanning from here
# |  %step.add = getelementptr i8, <4 x ptr> %vector.gep, <4 x i64> splat (i64 4)
# |                                                                              ^
# | <stdin>:22:78: note: with "VECTOR_GEP" equal to "%vector.gep"
# |  %step.add = getelementptr i8, <4 x ptr> %vector.gep, <4 x i64> splat (i64 4)
# |                                                                              ^
# | <stdin>:23:2: note: possible intended match here
# |  %2 = icmp ne <4 x ptr> %vector.gep, splat (ptr null)
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\epilog-vectorization-widen-inductions.ll:138:114: error: undefined variable: PROF3
# | ; CHECK-NEXT: br i1 [[MIN_EPILOG_ITERS_CHECK]], label [[VEC_EPILOG_SCALAR_PH]], label [[VEC_EPILOG_PH]], !prof [[PROF3]]
# |                                                                                                                  ^
# | <stdin>:132:53: note: with "MIN_EPILOG_ITERS_CHECK" equal to "%min.epilog.iters.check"
# |  %min.epilog.iters.check = icmp ult i64 %n.mod.vf, 2
# |                                                     ^
# | <stdin>:132:53: note: with "VEC_EPILOG_SCALAR_PH" equal to "%vec.epilog.scalar.ph"
# |  %min.epilog.iters.check = icmp ult i64 %n.mod.vf, 2
# |                                                     ^
# | <stdin>:132:53: note: with "VEC_EPILOG_PH" equal to "%vec.epilog.ph"
# |  %min.epilog.iters.check = icmp ult i64 %n.mod.vf, 2
# |                                                     ^
# | <stdin>:168:2: note: possible intended match here
# |  br i1 %exitcond, label %exit, label %loop, !llvm.loop !8
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\epilog-vectorization-widen-inductions.ll:222:114: error: undefined variable: PROF3
# | ; CHECK-NEXT: br i1 [[MIN_EPILOG_ITERS_CHECK]], label [[VEC_EPILOG_SCALAR_PH]], label [[VEC_EPILOG_PH]], !prof [[PROF3]]
# |                                                                                                                  ^
# | <stdin>:212:53: note: with "MIN_EPILOG_ITERS_CHECK" equal to "%min.epilog.iters.check"
# |  %min.epilog.iters.check = icmp ult i64 %n.mod.vf, 2
# |                                                     ^
# | <stdin>:212:53: note: with "VEC_EPILOG_SCALAR_PH" equal to "%vec.epilog.scalar.ph"
# |  %min.epilog.iters.check = icmp ult i64 %n.mod.vf, 2
# |                                                     ^
# | <stdin>:212:53: note: with "VEC_EPILOG_PH" equal to "%vec.epilog.ph"
# |  %min.epilog.iters.check = icmp ult i64 %n.mod.vf, 2
# |                                                     ^
# | <stdin>:239:2: note: possible intended match here
# |  br i1 %cmp.n11, label %exit, label %vec.epilog.scalar.ph
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\epilog-vectorization-widen-inductions.ll:305:114: error: undefined variable: PROF3
# | ; CHECK-NEXT: br i1 [[MIN_EPILOG_ITERS_CHECK]], label [[VEC_EPILOG_SCALAR_PH]], label [[VEC_EPILOG_PH]], !prof [[PROF3]]
# |                                                                                                                  ^
# | <stdin>:291:53: note: with "MIN_EPILOG_ITERS_CHECK" equal to "%min.epilog.iters.check"
# |  %min.epilog.iters.check = icmp ult i64 %n.mod.vf, 2
# |                                                     ^
# | <stdin>:291:53: note: with "VEC_EPILOG_SCALAR_PH" equal to "%vec.epilog.scalar.ph"
# |  %min.epilog.iters.check = icmp ult i64 %n.mod.vf, 2
# |                                                     ^
# | <stdin>:291:53: note: with "VEC_EPILOG_PH" equal to "%vec.epilog.ph"
# |  %min.epilog.iters.check = icmp ult i64 %n.mod.vf, 2
# |                                                     ^
# | <stdin>:331:2: note: possible intended match here
# |  br i1 %exitcond, label %exit, label %loop, !llvm.loop !14
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\epilog-vectorization-widen-inductions.ll:417:92: error: undefined variable: PROF3
# | ; CHECK-NEXT: br i1 true, label [[VEC_EPILOG_SCALAR_PH]], label [[VEC_EPILOG_PH]], !prof [[PROF3]]
# |                                                                                            ^
# | <stdin>:381:23: note: with "VEC_EPILOG_SCALAR_PH" equal to "%vec.epilog.scalar.ph"
# | vec.epilog.iter.check: ; preds = %middle.block
# |                       ^
# | <stdin>:381:23: note: with "VEC_EPILOG_PH" equal to "%vec.epilog.ph"
# | vec.epilog.iter.check: ; preds = %middle.block
# |                       ^
# | <stdin>:403:2: note: possible intended match here
# |  br i1 true, label %exit, label %vec.epilog.scalar.ph
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\epilog-vectorization-widen-inductions.ll:504:114: error: undefined variable: PROF3
# | ; CHECK-NEXT: br i1 [[MIN_EPILOG_ITERS_CHECK]], label [[VEC_EPILOG_SCALAR_PH]], label [[VEC_EPILOG_PH]], !prof [[PROF3]]
# |                                                                                                                  ^
# | <stdin>:460:53: note: with "MIN_EPILOG_ITERS_CHECK" equal to "%min.epilog.iters.check"
# |  %min.epilog.iters.check = icmp ult i64 %n.mod.vf, 2
# |                                                     ^
# | <stdin>:460:53: note: with "VEC_EPILOG_SCALAR_PH" equal to "%vec.epilog.scalar.ph"
# |  %min.epilog.iters.check = icmp ult i64 %n.mod.vf, 2
# |                                                     ^
# | <stdin>:460:53: note: with "VEC_EPILOG_PH" equal to "%vec.epilog.ph"
# |  %min.epilog.iters.check = icmp ult i64 %n.mod.vf, 2
# |                                                     ^
# | <stdin>:485:2: note: possible intended match here
# |  br i1 %cmp.n10, label %exit, label %vec.epilog.scalar.ph
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\epilog-vectorization-widen-inductions.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            17: vector.body: ; preds = %vector.body, %vector.ph 
# |            18:  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ] 
# |            19:  %pointer.phi = phi ptr [ %ptr.start.1, %vector.ph ], [ %ptr.ind, %vector.body ] 
# |            20:  %vector.gep = getelementptr i8, ptr %pointer.phi, <4 x i64> <i64 0, i64 1, i64 2, i64 3> 
# |            21:  %1 = extractelement <4 x ptr> %vector.gep, i64 0 
# |            22:  %step.add = getelementptr i8, <4 x ptr> %vector.gep, <4 x i64> splat (i64 4) 
# | next:22'0                                                                                   X error: no match found
# | next:22'1                                                                                     with "VECTOR_GEP" equal to "%vector.gep"
# |            23:  %2 = icmp ne <4 x ptr> %vector.gep, splat (ptr null) 
# | next:22'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:22'2       ?                                                     possible intended match
# |            24:  %3 = extractelement <4 x i1> %2, i64 0 
# | next:22'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            25:  %4 = extractelement <4 x i1> %2, i64 1 
# | next:22'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            26:  %5 = extractelement <4 x i1> %2, i64 2 
# | next:22'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            27:  %6 = extractelement <4 x i1> %2, i64 3 
# | next:22'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            28:  %7 = icmp ne <4 x ptr> %step.add, splat (ptr null) 
# | next:22'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           127: middle.block: ; preds = %vector.body 
# |           128:  %cmp.n = icmp eq i64 %N, %n.vec 
# |           129:  br i1 %cmp.n, label %exit, label %vec.epilog.iter.check 
# |           130:  
# |           131: vec.epilog.iter.check: ; preds = %middle.block 
# |           132:  %min.epilog.iters.check = icmp ult i64 %n.mod.vf, 2 
# | next:138'0                                                         X error: match failed for invalid pattern
# | next:138'1                                                           undefined variable: PROF3
# | next:138'2                                                           with "MIN_EPILOG_ITERS_CHECK" equal to "%min.epilog.iters.check"
# | next:138'3                                                           with "VEC_EPILOG_SCALAR_PH" equal to "%vec.epilog.scalar.ph"
# | next:138'4                                                           with "VEC_EPILOG_PH" equal to "%vec.epilog.ph"
# |           133:  br i1 %min.epilog.iters.check, label %vec.epilog.scalar.ph, label %vec.epilog.ph, !prof !3 
# | next:138'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           134:  
# | next:138'0     ~
# |           135: vec.epilog.ph: ; preds = %vector.main.loop.iter.check, %vec.epilog.iter.check 
# | next:138'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           136:  %vec.epilog.resume.val = phi i64 [ %n.vec, %vec.epilog.iter.check ], [ 0, %vector.main.loop.iter.check ] 
# | next:138'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           137:  %n.mod.vf2 = urem i64 %N, 2 
# | next:138'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           163:  %iv.1 = phi i64 [ %bc.resume.val, %vec.epilog.scalar.ph ], [ %iv.1.next, %loop ] 
# | next:138'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           164:  %gep.A = getelementptr inbounds i64, ptr %A, i64 %iv.1 
# | next:138'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           165:  store i64 %iv.1, ptr %gep.A, align 4 
# | next:138'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           166:  %iv.1.next = add nuw nsw i64 %iv.1, 1 
# | next:138'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           167:  %exitcond = icmp eq i64 %iv.1.next, %N 
# | next:138'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           168:  br i1 %exitcond, label %exit, label %loop, !llvm.loop !8 
# | next:138'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:138'5      ?                                                         possible intended match
# |           169:  
# | next:138'0     ~
# |           170: exit: ; preds = %vec.epilog.middle.block, %middle.block, %loop 
# | next:138'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           171:  ret void 
# | next:138'0     ~~~~~~~~~~
# |           172: } 
# | next:138'0     ~~
# |           173:  
# | next:138'0     ~
# |             .
# |             .
# |             .
# |           207: middle.block: ; preds = %vector.body 
# |           208:  %cmp.n = icmp eq i64 %0, %n.vec 
# |           209:  br i1 %cmp.n, label %exit, label %vec.epilog.iter.check 
# |           210:  
# |           211: vec.epilog.iter.check: ; preds = %middle.block 
# |           212:  %min.epilog.iters.check = icmp ult i64 %n.mod.vf, 2 
# | next:222'0                                                         X error: match failed for invalid pattern
# | next:222'1                                                           undefined variable: PROF3
# | next:222'2                                                           with "MIN_EPILOG_ITERS_CHECK" equal to "%min.epilog.iters.check"
# | next:222'3                                                           with "VEC_EPILOG_SCALAR_PH" equal to "%vec.epilog.scalar.ph"
# | next:222'4                                                           with "VEC_EPILOG_PH" equal to "%vec.epilog.ph"
# |           213:  br i1 %min.epilog.iters.check, label %vec.epilog.scalar.ph, label %vec.epilog.ph, !prof !3 
# | next:222'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           214:  
# | next:222'0     ~
# |           215: vec.epilog.ph: ; preds = %vector.main.loop.iter.check, %vec.epilog.iter.check 
# | next:222'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           216:  %vec.epilog.resume.val = phi i64 [ %n.vec, %vec.epilog.iter.check ], [ 0, %vector.main.loop.iter.check ] 
# | next:222'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           217:  %bc.resume.val = phi i64 [ %1, %vec.epilog.iter.check ], [ %start, %vector.main.loop.iter.check ] 
# | next:222'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           234:  %9 = icmp eq i64 %index.next9, %n.vec3 
# | next:222'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           235:  br i1 %9, label %vec.epilog.middle.block, label %vec.epilog.vector.body, !llvm.loop !10 
# | next:222'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           236:  
# | next:222'0     ~
# |           237: vec.epilog.middle.block: ; preds = %vec.epilog.vector.body 
# | next:222'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           238:  %cmp.n11 = icmp eq i64 %0, %n.vec3 
# | next:222'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           239:  br i1 %cmp.n11, label %exit, label %vec.epilog.scalar.ph 
# | next:222'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:222'5      ?                                                         possible intended match
# |           240:  
# | next:222'0     ~
# |           241: vec.epilog.scalar.ph: ; preds = %iter.check, %vec.epilog.iter.check, %vec.epilog.middle.block 
# | next:222'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           242:  %bc.resume.val12 = phi i64 [ %6, %vec.epilog.middle.block ], [ %1, %vec.epilog.iter.check ], [ %start, %iter.check ] 
# | next:222'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           243:  br label %loop 
# | next:222'0     ~~~~~~~~~~~~~~~~
# |           244:  
# | next:222'0     ~
# |             .
# |             .
# |             .
# |           286: middle.block: ; preds = %vector.body 
# |           287:  %cmp.n = icmp eq i64 %N, %n.vec 
# |           288:  br i1 %cmp.n, label %exit, label %vec.epilog.iter.check 
# |           289:  
# |           290: vec.epilog.iter.check: ; preds = %middle.block 
# |           291:  %min.epilog.iters.check = icmp ult i64 %n.mod.vf, 2 
# | next:305'0                                                         X error: match failed for invalid pattern
# | next:305'1                                                           undefined variable: PROF3
# | next:305'2                                                           with "MIN_EPILOG_ITERS_CHECK" equal to "%min.epilog.iters.check"
# | next:305'3                                                           with "VEC_EPILOG_SCALAR_PH" equal to "%vec.epilog.scalar.ph"
# | next:305'4                                                           with "VEC_EPILOG_PH" equal to "%vec.epilog.ph"
# |           292:  br i1 %min.epilog.iters.check, label %vec.epilog.scalar.ph, label %vec.epilog.ph, !prof !3 
# | next:305'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           293:  
# | next:305'0     ~
# |           294: vec.epilog.ph: ; preds = %vector.main.loop.iter.check, %vec.epilog.iter.check 
# | next:305'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           295:  %vec.epilog.resume.val = phi i64 [ %n.vec, %vec.epilog.iter.check ], [ 0, %vector.main.loop.iter.check ] 
# | next:305'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           296:  %n.mod.vf2 = urem i64 %N, 2 
# | next:305'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           326:  %add = add i64 %iv.2, 10 
# | next:305'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           327:  store i64 %add, ptr %gep.A, align 4 
# | next:305'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           328:  %iv.1.next = add nuw nsw i64 %iv.1, 1 
# | next:305'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           329:  %iv.2.next = add nuw nsw i64 %iv.1, 2 
# | next:305'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           330:  %exitcond = icmp eq i64 %iv.1.next, %N 
# | next:305'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           331:  br i1 %exitcond, label %exit, label %loop, !llvm.loop !14 
# | next:305'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:305'5      ?                                                          possible intended match
# |           332:  
# | next:305'0     ~
# |           333: exit: ; preds = %vec.epilog.middle.block, %middle.block, %loop 
# | next:305'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           334:  ret void 
# | next:305'0     ~~~~~~~~~~
# |           335: } 
# | next:305'0     ~~
# |           336:  
# | next:305'0     ~
# |             .
# |             .
# |             .
# |           376:  br i1 %2, label %middle.block, label %vector.body, !llvm.loop !15 
# |           377:  
# |           378: middle.block: ; preds = %vector.body 
# |           379:  br i1 true, label %exit, label %vec.epilog.iter.check 
# |           380:  
# |           381: vec.epilog.iter.check: ; preds = %middle.block 
# | next:417'0                           X~~~~~~~~~~~~~~~~~~~~~~~~ error: match failed for invalid pattern
# | next:417'1                                                     undefined variable: PROF3
# | next:417'2                                                     with "VEC_EPILOG_SCALAR_PH" equal to "%vec.epilog.scalar.ph"
# | next:417'3                                                     with "VEC_EPILOG_PH" equal to "%vec.epilog.ph"
# |           382:  br i1 true, label %vec.epilog.scalar.ph, label %vec.epilog.ph, !prof !3 
# | next:417'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           383:  
# | next:417'0     ~
# |           384: vec.epilog.ph: ; preds = %vector.main.loop.iter.check, %vec.epilog.iter.check 
# | next:417'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           385:  %vec.epilog.resume.val = phi i64 [ 10000, %vec.epilog.iter.check ], [ 0, %vector.main.loop.iter.check ] 
# | next:417'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           386:  %3 = trunc i64 %vec.epilog.resume.val to i8 
# | next:417'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           398:  %vec.ind.next4 = add <2 x i8> %vec.ind2, splat (i8 2) 
# | next:417'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           399:  %5 = icmp eq i64 %index.next3, 10000 
# | next:417'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           400:  br i1 %5, label %vec.epilog.middle.block, label %vec.epilog.vector.body, !llvm.loop !16 
# | next:417'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           401:  
# | next:417'0     ~
# |           402: vec.epilog.middle.block: ; preds = %vec.epilog.vector.body 
# | next:417'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           403:  br i1 true, label %exit, label %vec.epilog.scalar.ph 
# | next:417'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:417'4      ?                                                     possible intended match
# |           404:  
# | next:417'0     ~
# |           405: vec.epilog.scalar.ph: ; preds = %iter.check, %vec.epilog.iter.check, %vec.epilog.middle.block 
# | next:417'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           406:  %bc.resume.val = phi i64 [ 10000, %vec.epilog.middle.block ], [ 10000, %vec.epilog.iter.check ], [ 0, %iter.check ] 
# | next:417'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           407:  br label %loop 
# | next:417'0     ~~~~~~~~~~~~~~~~
# |           408:  
# | next:417'0     ~
# |             .
# |             .
# |             .
# |           455:  %8 = call i32 @llvm.vector.reduce.or.v4i32(<4 x i32> %bin.rdx) 
# |           456:  %cmp.n = icmp eq i64 %0, %n.vec 
# |           457:  br i1 %cmp.n, label %exit, label %vec.epilog.iter.check 
# |           458:  
# |           459: vec.epilog.iter.check: ; preds = %middle.block 
# |           460:  %min.epilog.iters.check = icmp ult i64 %n.mod.vf, 2 
# | next:504'0                                                         X error: match failed for invalid pattern
# | next:504'1                                                           undefined variable: PROF3
# | next:504'2                                                           with "MIN_EPILOG_ITERS_CHECK" equal to "%min.epilog.iters.check"
# | next:504'3                                                           with "VEC_EPILOG_SCALAR_PH" equal to "%vec.epilog.scalar.ph"
# | next:504'4                                                           with "VEC_EPILOG_PH" equal to "%vec.epilog.ph"
# |           461:  br i1 %min.epilog.iters.check, label %vec.epilog.scalar.ph, label %vec.epilog.ph, !prof !3 
# | next:504'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           462:  
# | next:504'0     ~
# |           463: vec.epilog.ph: ; preds = %vector.main.loop.iter.check, %vec.epilog.iter.check 
# | next:504'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           464:  %vec.epilog.resume.val = phi i64 [ %n.vec, %vec.epilog.iter.check ], [ 0, %vector.main.loop.iter.check ] 
# | next:504'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           465:  %bc.merge.rdx = phi i32 [ %8, %vec.epilog.iter.check ], [ 0, %vector.main.loop.iter.check ] 
# | next:504'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# |           480:  br i1 %13, label %vec.epilog.middle.block, label %vec.epilog.vector.body, !llvm.loop !19 
# | next:504'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           481:  
# | next:504'0     ~
# |           482: vec.epilog.middle.block: ; preds = %vec.epilog.vector.body 
# | next:504'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           483:  %14 = call i32 @llvm.vector.reduce.or.v2i32(<2 x i32> %12) 
# | next:504'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           484:  %cmp.n10 = icmp eq i64 %0, %n.vec5 
# | next:504'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           485:  br i1 %cmp.n10, label %exit, label %vec.epilog.scalar.ph 
# | next:504'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:504'5      ?                                                         possible intended match
# |           486:  
# | next:504'0     ~
# |           487: vec.epilog.scalar.ph: ; preds = %iter.check, %vec.epilog.iter.check, %vec.epilog.middle.block 
# | next:504'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           488:  %bc.resume.val = phi i64 [ %n.vec5, %vec.epilog.middle.block ], [ %n.vec, %vec.epilog.iter.check ], [ 0, %iter.check ] 
# | next:504'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           489:  %bc.merge.rdx11 = phi i32 [ %14, %vec.epilog.middle.block ], [ %8, %vec.epilog.iter.check ], [ 0, %iter.check ] 
# | next:504'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           490:  br label %loop 
# | next:504'0     ~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.Transforms/LoopVectorize/AArch64/sve-widen-phi.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -mtriple aarch64-linux-gnu -mattr=+sve -passes=loop-vectorize,instcombine -S    -tail-folding-policy=dont-fold-tail < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\sve-widen-phi.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\sve-widen-phi.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -mtriple aarch64-linux-gnu -mattr=+sve -passes=loop-vectorize,instcombine -S -tail-folding-policy=dont-fold-tail
# 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\Transforms\LoopVectorize\AArch64\sve-widen-phi.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\sve-widen-phi.ll:309:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[TMP6:%.*]] = icmp ne <vscale x 2 x ptr> [[VECTOR_GEP]], zeroinitializer
# |               ^
# | <stdin>:234:59: note: scanning from here
# |  %4 = extractelement <vscale x 2 x ptr> %vector.gep, i64 0
# |                                                           ^
# | <stdin>:234:59: note: with "VECTOR_GEP" equal to "%vector.gep"
# |  %4 = extractelement <vscale x 2 x ptr> %vector.gep, i64 0
# |                                                           ^
# | <stdin>:235:2: note: possible intended match here
# |  %5 = icmp ne <vscale x 2 x ptr> %vector.gep, splat (ptr null)
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\AArch64\sve-widen-phi.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |           229:  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ] 
# |           230:  %pointer.phi = phi ptr [ %ptr, %vector.ph ], [ %ptr.ind, %vector.body ] 
# |           231:  %2 = call <vscale x 2 x i64> @llvm.stepvector.nxv2i64() 
# |           232:  %3 = shl <vscale x 2 x i64> %2, splat (i64 1) 
# |           233:  %vector.gep = getelementptr i8, ptr %pointer.phi, <vscale x 2 x i64> %3 
# |           234:  %4 = extractelement <vscale x 2 x ptr> %vector.gep, i64 0 
# | next:309'0                                                               X error: no match found
# | next:309'1                                                                 with "VECTOR_GEP" equal to "%vector.gep"
# |           235:  %5 = icmp ne <vscale x 2 x ptr> %vector.gep, splat (ptr null) 
# | next:309'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:309'2      ?                                                              possible intended match
# |           236:  call void @llvm.masked.store.nxv2i16.p0(<vscale x 2 x i16> zeroinitializer, ptr align 2 %4, <vscale x 2 x i1> %5) 
# | next:309'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           237:  %index.next = add nuw i64 %index, %1 
# | next:309'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           238:  %6 = shl nuw nsw i64 %0, 2 
# | next:309'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           239:  %ptr.ind = getelementptr i8, ptr %pointer.phi, i64 %6 
# | next:309'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           240:  %7 = icmp eq i64 %index.next, 1024 
# | next:309'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.Transforms/LoopVectorize/RISCV/truncate-to-minimal-bitwidth-evl-crash.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes=loop-vectorize -tail-folding-policy=prefer-fold-tail -mtriple=riscv64 -mattr=+v -S C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\RISCV\truncate-to-minimal-bitwidth-evl-crash.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\RISCV\truncate-to-minimal-bitwidth-evl-crash.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-vectorize -tail-folding-policy=prefer-fold-tail -mtriple=riscv64 -mattr=+v -S 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\RISCV\truncate-to-minimal-bitwidth-evl-crash.ll'
# 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\Transforms\LoopVectorize\RISCV\truncate-to-minimal-bitwidth-evl-crash.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\RISCV\truncate-to-minimal-bitwidth-evl-crash.ll:18:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: call void @llvm.vp.scatter.nxv8i8.nxv8p0(<vscale x 8 x i8> zeroinitializer, <vscale x 8 x ptr> align 1 zeroinitializer, <vscale x 8 x i1> splat (i1 true), i32 [[TMP7]])
# |               ^
# | <stdin>:15:82: note: scanning from here
# |  %0 = call i32 @llvm.experimental.get.vector.length.i64(i64 %avl, i32 8, i1 true)
# |                                                                                  ^
# | <stdin>:15:82: note: with "TMP7" equal to "%0"
# |  %0 = call i32 @llvm.experimental.get.vector.length.i64(i64 %avl, i32 8, i1 true)
# |                                                                                  ^
# | <stdin>:16:2: note: possible intended match here
# |  call void @llvm.vp.scatter.nxv8i8.nxv8p0(<vscale x 8 x i8> zeroinitializer, <vscale x 8 x ptr> align 1 splat (ptr null), <vscale x 8 x i1> splat (i1 true), i32 %0)
# |  ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\RISCV\truncate-to-minimal-bitwidth-evl-crash.ll:120:12: error: undefined variable: LOOP0
# | ; CHECK: [[LOOP0]] = distinct !{[[LOOP0]], [[META1:![0-9]+]], [[META2:![0-9]+]]}
# |            ^
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\RISCV\truncate-to-minimal-bitwidth-evl-crash.ll:120:35: error: undefined variable: LOOP0
# | ; CHECK: [[LOOP0]] = distinct !{[[LOOP0]], [[META1:![0-9]+]], [[META2:![0-9]+]]}
# |                                   ^
# | <stdin>:99:2: note: possible intended match here
# | !0 = distinct !{!0, !1, !2}
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\RISCV\truncate-to-minimal-bitwidth-evl-crash.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |             10: vector.ph: ; preds = %entry 
# |             11:  br label %vector.body 
# |             12:  
# |             13: vector.body: ; preds = %vector.body, %vector.ph 
# |             14:  %avl = phi i64 [ 9, %vector.ph ], [ %avl.next, %vector.body ] 
# |             15:  %0 = call i32 @llvm.experimental.get.vector.length.i64(i64 %avl, i32 8, i1 true) 
# | next:18'0                                                                                        X error: no match found
# | next:18'1                                                                                          with "TMP7" equal to "%0"
# |             16:  call void @llvm.vp.scatter.nxv8i8.nxv8p0(<vscale x 8 x i8> zeroinitializer, <vscale x 8 x ptr> align 1 splat (ptr null), <vscale x 8 x i1> splat (i1 true), i32 %0) 
# | next:18'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:18'2        ?                                                                                                                                                                    possible intended match
# |             17:  %1 = zext i32 %0 to i64 
# | next:18'0       ~~~~~~~~~~~~~~~~~~~~~~~~~
# |             18:  %avl.next = sub nuw i64 %avl, %1 
# | next:18'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             19:  %2 = icmp eq i64 %avl.next, 0 
# | next:18'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             20:  br i1 %2, label %middle.block, label %vector.body, !llvm.loop !0 
# | next:18'0       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             21:  
# | next:18'0       ~
# |              .
# |              .
# |              .
# |             75:  %exitcond = icmp eq i32 %count.next, 0 
# |             76:  %iv.next = add i64 %iv, 1 
# |             77:  br i1 %exitcond, label %exit, label %loop, !llvm.loop !4 
# |             78:  
# |             79: exit: ; preds = %middle.block, %loop 
# |             80:  ret void 
# | check:120'0              X error: match failed for invalid pattern
# | check:120'1                undefined variable: LOOP0
# | check:120'2                undefined variable: LOOP0
# |             81: } 
# | check:120'0     ~~
# |             82:  
# | check:120'0     ~
# |             83: ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) 
# | check:120'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             84: declare i32 @llvm.experimental.get.vector.length.i64(i64, i32 immarg, i1 immarg) #1 
# | check:120'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             85:  
# | check:120'0     ~
# |              .
# |              .
# |              .
# |             94:  
# | check:120'0     ~
# |             95: attributes #0 = { "target-features"="+v" } 
# | check:120'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             96: attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } 
# | check:120'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             97: attributes #2 = { nocallback nofree nosync nounwind willreturn } 
# | check:120'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             98:  
# | check:120'0     ~
# |             99: !0 = distinct !{!0, !1, !2} 
# | check:120'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:120'3      ?                           possible intended match
# |            100: !1 = !{!"llvm.loop.isvectorized", i32 1} 
# | check:120'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            101: !2 = !{!"llvm.loop.unroll.runtime.disable"} 
# | check:120'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            102: !3 = distinct !{!3, !1, !2} 
# | check:120'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            103: !4 = distinct !{!4, !2, !1} 
# | check:120'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.Transforms/LoopVectorize/RISCV/type-info-cache-evl-crash.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes=loop-vectorize -tail-folding-policy=prefer-fold-tail -mtriple=riscv64 -mattr=+v -S C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\RISCV\type-info-cache-evl-crash.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\RISCV\type-info-cache-evl-crash.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=loop-vectorize -tail-folding-policy=prefer-fold-tail -mtriple=riscv64 -mattr=+v -S 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\RISCV\type-info-cache-evl-crash.ll'
# 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\Transforms\LoopVectorize\RISCV\type-info-cache-evl-crash.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\RISCV\type-info-cache-evl-crash.ll:38:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: call void @llvm.vp.scatter.nxv8i16.nxv8p0(<vscale x 8 x i16> zeroinitializer, <vscale x 8 x ptr> align 2 zeroinitializer, <vscale x 8 x i1> splat (i1 true), i32 [[TMP11]])
# |               ^
# | <stdin>:36:182: note: scanning from here
# |  call void @llvm.vp.scatter.nxv8i8.nxv8p0(<vscale x 8 x i8> %8, <vscale x 8 x ptr> align 1 %broadcast.splat, <vscale x 8 x i1> splat (i1 true), i32 %2), !alias.scope !3, !noalias !0
# |                                                                                                                                                                                      ^
# | <stdin>:36:182: note: with "TMP11" equal to "%2"
# |  call void @llvm.vp.scatter.nxv8i8.nxv8p0(<vscale x 8 x i8> %8, <vscale x 8 x ptr> align 1 %broadcast.splat, <vscale x 8 x i1> splat (i1 true), i32 %2), !alias.scope !3, !noalias !0
# |                                                                                                                                                                                      ^
# | <stdin>:37:2: note: possible intended match here
# |  call void @llvm.vp.scatter.nxv8i16.nxv8p0(<vscale x 8 x i16> zeroinitializer, <vscale x 8 x ptr> align 2 splat (ptr null), <vscale x 8 x i1> splat (i1 true), i32 %2)
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\LoopVectorize\RISCV\type-info-cache-evl-crash.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            .
# |            .
# |            .
# |           31:  %4 = zext <vscale x 8 x i8> %vp.op.load to <vscale x 8 x i32> 
# |           32:  %5 = ashr <vscale x 8 x i32> %4, zeroinitializer 
# |           33:  %6 = icmp ult <vscale x 8 x i32> %4, zeroinitializer 
# |           34:  %7 = select <vscale x 8 x i1> %6, <vscale x 8 x i32> %5, <vscale x 8 x i32> zeroinitializer 
# |           35:  %8 = trunc <vscale x 8 x i32> %7 to <vscale x 8 x i8> 
# |           36:  call void @llvm.vp.scatter.nxv8i8.nxv8p0(<vscale x 8 x i8> %8, <vscale x 8 x ptr> align 1 %broadcast.splat, <vscale x 8 x i1> splat (i1 true), i32 %2), !alias.scope !3, !noalias !0 
# | next:38'0                                                                                                                                                                                          X error: no match found
# | next:38'1                                                                                                                                                                                            with "TMP11" equal to "%2"
# |           37:  call void @llvm.vp.scatter.nxv8i16.nxv8p0(<vscale x 8 x i16> zeroinitializer, <vscale x 8 x ptr> align 2 splat (ptr null), <vscale x 8 x i1> splat (i1 true), i32 %2) 
# | next:38'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:38'2      ?                                                                                                                                                                      possible intended match
# |           38:  %9 = zext i32 %2 to i64 
# | next:38'0     ~~~~~~~~~~~~~~~~~~~~~~~~~
# |           39:  %current.iteration.next = add i64 %9, %index 
# | next:38'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           40:  %avl.next = sub nuw i64 %avl, %9 
# | next:38'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           41:  %10 = icmp eq i64 %avl.next, 0 
# | next:38'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           42:  br i1 %10, label %middle.block, label %vector.body, !llvm.loop !5 
# | next:38'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            .
# |            .
# |            .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.Transforms/SLPVectorizer/AArch64/InstructionsState-is-invalid-0.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -passes=slp-vectorizer -S C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\AArch64\InstructionsState-is-invalid-0.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\AArch64\InstructionsState-is-invalid-0.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -passes=slp-vectorizer -S 'C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\AArch64\InstructionsState-is-invalid-0.ll'
# 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\Transforms\SLPVectorizer\AArch64\InstructionsState-is-invalid-0.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\AArch64\InstructionsState-is-invalid-0.ll:15:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[TMP4:%.*]] = icmp ult <4 x ptr> [[TMP3]], zeroinitializer
# |               ^
# | <stdin>:12:91: note: scanning from here
# |  %3 = shufflevector <4 x ptr> %2, <4 x ptr> poison, <4 x i32> <i32 0, i32 0, i32 0, i32 1>
# |                                                                                           ^
# | <stdin>:12:91: note: with "TMP3" equal to "%3"
# |  %3 = shufflevector <4 x ptr> %2, <4 x ptr> poison, <4 x i32> <i32 0, i32 0, i32 0, i32 1>
# |                                                                                           ^
# | <stdin>:14:2: note: possible intended match here
# |  %5 = and <4 x i1> %4, zeroinitializer
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\AArch64\InstructionsState-is-invalid-0.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            .
# |            .
# |            .
# |            7: vector.scevcheck: 
# |            8:  %scevgep = getelementptr i8, ptr %0, i64 4 
# |            9:  %scevgep3 = getelementptr i8, ptr null, i64 4 
# |           10:  %1 = insertelement <4 x ptr> poison, ptr %0, i32 1 
# |           11:  %2 = insertelement <4 x ptr> %1, ptr %scevgep, i32 0 
# |           12:  %3 = shufflevector <4 x ptr> %2, <4 x ptr> poison, <4 x i32> <i32 0, i32 0, i32 0, i32 1> 
# | next:15'0                                                                                               X error: no match found
# | next:15'1                                                                                                 with "TMP3" equal to "%3"
# |           13:  %4 = icmp ult <4 x ptr> %3, splat (ptr null) 
# | next:15'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           14:  %5 = and <4 x i1> %4, zeroinitializer 
# | next:15'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:15'2      ?                                      possible intended match
# |           15:  %6 = insertelement <4 x ptr> poison, ptr %0, i32 0 
# | next:15'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           16:  %7 = insertelement <4 x ptr> %6, ptr %scevgep3, i32 1 
# | next:15'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           17:  %8 = shufflevector <4 x ptr> %7, <4 x ptr> poison, <4 x i32> <i32 0, i32 0, i32 0, i32 1> 
# | next:15'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           18:  %9 = icmp ult <4 x ptr> %8, splat (ptr null) 
# | next:15'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           19:  %10 = and <4 x i1> %9, zeroinitializer 
# | next:15'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            .
# |            .
# |            .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.Transforms/SLPVectorizer/AArch64/long-non-power-of-2.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -S --passes=slp-vectorizer -mtriple=arm64-apple-macosx15.0.0 < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\AArch64\long-non-power-of-2.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\AArch64\long-non-power-of-2.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -S --passes=slp-vectorizer -mtriple=arm64-apple-macosx15.0.0
# 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\Transforms\SLPVectorizer\AArch64\long-non-power-of-2.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\AArch64\long-non-power-of-2.ll:42:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[TMP23:%.*]] = icmp ult <2 x ptr> [[TMP22]], zeroinitializer
# |               ^
# | <stdin>:41:81: note: scanning from here
# |  %22 = insertelement <2 x ptr> <ptr poison, ptr null>, ptr %getelementptr, i32 0
# |                                                                                 ^
# | <stdin>:41:81: note: with "TMP22" equal to "%22"
# |  %22 = insertelement <2 x ptr> <ptr poison, ptr null>, ptr %getelementptr, i32 0
# |                                                                                 ^
# | <stdin>:42:2: note: possible intended match here
# |  %23 = icmp ult <2 x ptr> %22, splat (ptr null)
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\AArch64\long-non-power-of-2.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            .
# |            .
# |            .
# |           36:  %18 = shufflevector <2 x ptr> %1, <2 x ptr> poison, <4 x i32> <i32 0, i32 poison, i32 poison, i32 poison> 
# |           37:  %19 = shufflevector <4 x ptr> %17, <4 x ptr> %18, <4 x i32> <i32 4, i32 1, i32 2, i32 3> 
# |           38:  %20 = icmp ult <4 x ptr> %19, %7 
# |           39:  %21 = and <4 x i1> zeroinitializer, %20 
# |           40:  %icmp58 = icmp ult ptr %getelementptr, null 
# |           41:  %22 = insertelement <2 x ptr> <ptr poison, ptr null>, ptr %getelementptr, i32 0 
# | next:42'0                                                                                     X error: no match found
# | next:42'1                                                                                       with "TMP22" equal to "%22"
# |           42:  %23 = icmp ult <2 x ptr> %22, splat (ptr null) 
# | next:42'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:42'2      ?                                               possible intended match
# |           43:  %24 = insertelement <8 x ptr> <ptr null, ptr null, ptr null, ptr null, ptr poison, ptr poison, ptr null, ptr null>, ptr %arg, i32 4 
# | next:42'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           44:  %25 = insertelement <8 x ptr> %24, ptr %arg1, i32 5 
# | next:42'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           45:  %26 = icmp ult <8 x ptr> %25, %4 
# | next:42'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           46:  %27 = insertelement <8 x i1> <i1 false, i1 poison, i1 poison, i1 poison, i1 poison, i1 poison, i1 false, i1 false>, i1 %icmp58, i32 1 
# | next:42'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           47:  %28 = shufflevector <2 x i1> %23, <2 x i1> poison, <8 x i32> <i32 0, i32 1, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison> 
# | next:42'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            .
# |            .
# |            .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.Transforms/SLPVectorizer/AArch64/non-power-of-2-with-adjusted-gathers.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -S --passes=slp-vectorizer -mtriple=arm64-apple-macosx15.0.0 < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\AArch64\non-power-of-2-with-adjusted-gathers.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\AArch64\non-power-of-2-with-adjusted-gathers.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -S --passes=slp-vectorizer -mtriple=arm64-apple-macosx15.0.0
# 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\Transforms\SLPVectorizer\AArch64\non-power-of-2-with-adjusted-gathers.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\AArch64\non-power-of-2-with-adjusted-gathers.ll:21:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[TMP4:%.*]] = icmp ult <8 x ptr> [[TMP2]], zeroinitializer
# |               ^
# | <stdin>:20:32: note: scanning from here
# |  %and15 = and i1 false, %icmp14
# |                                ^
# | <stdin>:20:32: note: with "TMP2" equal to "%2"
# |  %and15 = and i1 false, %icmp14
# |                                ^
# | <stdin>:21:2: note: possible intended match here
# |  %4 = icmp ult <8 x ptr> %2, splat (ptr null)
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\AArch64\non-power-of-2-with-adjusted-gathers.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            .
# |            .
# |            .
# |           15:  %icmp7 = icmp ult ptr null, null 
# |           16:  %and = and i1 false, %icmp7 
# |           17:  %icmp11 = icmp ult ptr null, null 
# |           18:  %and12 = and i1 false, %icmp11 
# |           19:  %icmp14 = icmp ult ptr null, null 
# |           20:  %and15 = and i1 false, %icmp14 
# | next:21'0                                    X error: no match found
# | next:21'1                                      with "TMP2" equal to "%2"
# |           21:  %4 = icmp ult <8 x ptr> %2, splat (ptr null) 
# | next:21'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:21'2      ?                                             possible intended match
# |           22:  %5 = insertelement <8 x i1> <i1 false, i1 poison, i1 false, i1 false, i1 false, i1 false, i1 false, i1 false>, i1 %arg2, i32 1 
# | next:21'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           23:  %6 = and <8 x i1> %4, %5 
# | next:21'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           24:  %7 = extractelement <8 x ptr> %2, i32 3 
# | next:21'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           25:  %icmp46 = icmp ult ptr %7, null 
# | next:21'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           26:  %and47 = and i1 false, %icmp46 
# | next:21'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            .
# |            .
# |            .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.Transforms/SLPVectorizer/RISCV/complex-loads.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -S -mtriple riscv64-unknown-linux-gnu < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\RISCV\complex-loads.ll --passes=slp-vectorizer -mattr=+v | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\RISCV\complex-loads.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -S -mtriple riscv64-unknown-linux-gnu --passes=slp-vectorizer -mattr=+v
# 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\Transforms\SLPVectorizer\RISCV\complex-loads.ll'
# note: command had no output on stdout or stderr
# RUN: at line 3
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -S -mtriple riscv64-unknown-linux-gnu < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\RISCV\complex-loads.ll --passes=slp-vectorizer -mattr=+v -slp-threshold=-15 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\RISCV\complex-loads.ll --check-prefix=THR15
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -S -mtriple riscv64-unknown-linux-gnu --passes=slp-vectorizer -mattr=+v -slp-threshold=-15
# 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\Transforms\SLPVectorizer\RISCV\complex-loads.ll' --check-prefix=THR15
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\RISCV\complex-loads.ll:157:15: error: THR15-NEXT: expected string not found in input
# | ; THR15-NEXT: [[TMP0:%.*]] = call <2 x i8> @llvm.masked.gather.v2i8.v2p0(<2 x ptr> align 1 zeroinitializer, <2 x i1> splat (i1 true), <2 x i8> poison)
# |               ^
# | <stdin>:18:50: note: scanning from here
# |  %arrayidx5.3 = getelementptr i8, ptr null, i64 4
# |                                                  ^
# | <stdin>:19:2: note: possible intended match here
# |  %0 = call <2 x i8> @llvm.masked.gather.v2i8.v2p0(<2 x ptr> align 1 splat (ptr null), <2 x i1> splat (i1 true), <2 x i8> poison)
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\RISCV\complex-loads.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            13:  %arrayidx5.1 = getelementptr i8, ptr %add.ptr644, i64 4 
# |            14:  %add.ptr.1 = getelementptr i8, ptr %add.ptr, i64 %idx.ext 
# |            15:  %add.ptr64.1 = getelementptr i8, ptr %add.ptr64, i64 %idx.ext63 
# |            16:  %arrayidx3.2 = getelementptr i8, ptr %add.ptr.1, i64 4 
# |            17:  %arrayidx5.2 = getelementptr i8, ptr %add.ptr64.1, i64 4 
# |            18:  %arrayidx5.3 = getelementptr i8, ptr null, i64 4 
# | next:157'0                                                      X error: no match found
# |            19:  %0 = call <2 x i8> @llvm.masked.gather.v2i8.v2p0(<2 x ptr> align 1 splat (ptr null), <2 x i1> splat (i1 true), <2 x i8> poison) 
# | next:157'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:157'1      ?                                                                                                                                possible intended match
# |            20:  %1 = load <4 x i8>, ptr %pix1, align 1 
# | next:157'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            21:  %2 = zext <4 x i8> %1 to <4 x i32> 
# | next:157'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            22:  %3 = load <4 x i8>, ptr %pix2, align 1 
# | next:157'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            23:  %4 = zext <4 x i8> %3 to <4 x i32> 
# | next:157'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            24:  %5 = sub <4 x i32> %2, %4 
# | next:157'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.Transforms/SLPVectorizer/RISCV/remarks-insert-into-small-vector.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -S --passes=slp-vectorizer -mtriple=riscv64-unknown-linux -pass-remarks-output=C:\_work\llvm-project\llvm-project\build\test\Transforms\SLPVectorizer\RISCV\Output\remarks-insert-into-small-vector.ll.tmp -mattr=+v -slp-threshold=-10 < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\RISCV\remarks-insert-into-small-vector.ll | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\RISCV\remarks-insert-into-small-vector.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -S --passes=slp-vectorizer -mtriple=riscv64-unknown-linux '-pass-remarks-output=C:\_work\llvm-project\llvm-project\build\test\Transforms\SLPVectorizer\RISCV\Output\remarks-insert-into-small-vector.ll.tmp' -mattr=+v -slp-threshold=-10
# 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\Transforms\SLPVectorizer\RISCV\remarks-insert-into-small-vector.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\RISCV\remarks-insert-into-small-vector.ll:20:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[TMP5:%.*]] = call <2 x float> @llvm.masked.gather.v2f32.v2p0(<2 x ptr> align 4 zeroinitializer, <2 x i1> splat (i1 true), <2 x float> poison)
# |               ^
# | <stdin>:8:36: note: scanning from here
# |  %0 = load float, ptr null, align 4
# |                                    ^
# | <stdin>:9:2: note: possible intended match here
# |  %1 = call <2 x float> @llvm.masked.gather.v2f32.v2p0(<2 x ptr> align 4 splat (ptr null), <2 x i1> splat (i1 true), <2 x float> poison)
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\RISCV\remarks-insert-into-small-vector.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            1: ; ModuleID = '<stdin>' 
# |            2: source_filename = "<stdin>" 
# |            3: target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n32:64-S128" 
# |            4: target triple = "riscv64-unknown-linux" 
# |            5:  
# |            6: define void @test() #0 { 
# |            7: entry: 
# |            8:  %0 = load float, ptr null, align 4 
# | next:20'0                                        X error: no match found
# |            9:  %1 = call <2 x float> @llvm.masked.gather.v2f32.v2p0(<2 x ptr> align 4 splat (ptr null), <2 x i1> splat (i1 true), <2 x float> poison) 
# | next:20'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:20'1      ?                                                                                                                                       possible intended match
# |           10:  %2 = insertelement <2 x float> <float poison, float 0.000000e+00>, float %0, i32 0 
# | next:20'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           11:  %3 = fcmp ogt <2 x float> %2, %1 
# | next:20'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           12:  %4 = shufflevector <2 x i1> %3, <2 x i1> poison, <4 x i32> <i32 0, i32 1, i32 0, i32 1> 
# | next:20'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           13:  %5 = shufflevector <2 x float> %1, <2 x float> %2, <4 x i32> <i32 0, i32 1, i32 2, i32 poison> 
# | next:20'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           14:  %6 = shufflevector <4 x float> %5, <4 x float> <float poison, float poison, float poison, float 0.000000e+00>, <4 x i32> <i32 0, i32 1, i32 2, i32 7> 
# | next:20'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            .
# |            .
# |            .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.Transforms/SLPVectorizer/RISCV/strided-loads-with-external-indices.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe -S --passes=slp-vectorizer -slp-threshold=-50 -mtriple=riscv64-unknown-linux-gnu -mattr=+v < C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\RISCV\strided-loads-with-external-indices.ll| c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\RISCV\strided-loads-with-external-indices.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' -S --passes=slp-vectorizer -slp-threshold=-50 -mtriple=riscv64-unknown-linux-gnu -mattr=+v
# 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\Transforms\SLPVectorizer\RISCV\strided-loads-with-external-indices.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\RISCV\strided-loads-with-external-indices.ll:13:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[TMP0:%.*]] = call <2 x i32> @llvm.masked.gather.v2i32.v2p0(<2 x ptr> align 4 getelementptr ([[CLASS_A:%.*]], <2 x ptr> zeroinitializer, <2 x i64> <i64 0, i64 1>), <2 x i1> splat (i1 true), <2 x i32> poison)
# |               ^
# | <stdin>:13:6: note: scanning from here
# | body: ; preds = %body, %entry
# |      ^
# | <stdin>:14:2: note: possible intended match here
# |  %0 = call <2 x i32> @llvm.masked.gather.v2i32.v2p0(<2 x ptr> align 4 getelementptr (%class.A, <2 x ptr> splat (ptr null), <2 x i64> <i64 0, i64 1>), <2 x i1> splat (i1 true), <2 x i32> poison)
# |  ^
# | 
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Transforms\SLPVectorizer\RISCV\strided-loads-with-external-indices.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            .
# |            .
# |            .
# |            8: define void @test() #0 { 
# |            9: entry: 
# |           10:  %sub4.i.i65.us = or i64 0, 1 
# |           11:  br label %body 
# |           12:  
# |           13: body: ; preds = %body, %entry 
# | next:13'0          X~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# |           14:  %0 = call <2 x i32> @llvm.masked.gather.v2i32.v2p0(<2 x ptr> align 4 getelementptr (%class.A, <2 x ptr> splat (ptr null), <2 x i64> <i64 0, i64 1>), <2 x i1> splat (i1 true), <2 x i32> poison) 
# | next:13'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:13'1      ?                                                                                                                                                                                                 possible intended match
# |           15:  %1 = extractelement <2 x i32> %0, i32 0 
# | next:13'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           16:  %2 = extractelement <2 x i32> %0, i32 1 
# | next:13'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           17:  %cmp.i.i.i.i67.us = icmp slt i32 %1, %2 
# | next:13'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           18:  %spec.select.i.i68.us = select i1 false, i64 %sub4.i.i65.us, i64 0 
# | next:13'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           19:  br label %body 
# | next:13'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/195486


More information about the llvm-commits mailing list