[llvm] [LV] Support interleaving with conditional scalar assignments (PR #184099)

via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 2 03:38:01 PST 2026


github-actions[bot] wrote:

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

* 170335 tests passed
* 3088 tests skipped
* 4 tests failed

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

### LLVM
<details>
<summary>LLVM.Transforms/LoopVectorize/X86/conditional-scalar-assignment.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=loop-vectorize -S < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/X86/conditional-scalar-assignment.ll 2>&1 | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/X86/conditional-scalar-assignment.ll --check-prefix=X86
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=loop-vectorize -S
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/X86/conditional-scalar-assignment.ll --check-prefix=X86
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/X86/conditional-scalar-assignment.ll:760:13: error: X86-NEXT: expected string not found in input
# | ; X86-NEXT: [[MIN_ITERS_CHECK:%.*]] = icmp ult i64 [[N]], 4
# |             ^
# | <stdin>:314:7: note: scanning from here
# | entry:
# |       ^
# | <stdin>:314:7: note: with "N" equal to "%N"
# | entry:
# |       ^
# | <stdin>:315:13: note: possible intended match here
# |  %min.iters.check = icmp ult i64 %N, 8
# |             ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/X86/conditional-scalar-assignment.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |           309:  %select.data.lcssa = phi i8 [ %select.data, %loop ], [ %8, %middle.block ] 
# |           310:  ret i8 %select.data.lcssa 
# |           311: } 
# |           312:  
# |           313: define i32 @simple_csa_int_select_use_interleave(i64 %N, ptr %data, i32 %a) { 
# |           314: entry: 
# | next:760'0           X error: no match found
# | next:760'1             with "N" equal to "%N"
# |           315:  %min.iters.check = icmp ult i64 %N, 8 
# | next:760'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:760'2                 ?                           possible intended match
# |           316:  br i1 %min.iters.check, label %scalar.ph, label %vector.ph 
# | next:760'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           317:  
# | next:760'0     ~
# |           318: vector.ph: ; preds = %entry 
# | next:760'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           319:  %n.mod.vf = urem i64 %N, 8 
# | next:760'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           320:  %n.vec = sub i64 %N, %n.mod.vf 
# | next:760'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.Transforms/LoopVectorize/iv-select-cmp-non-const-iv-start.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=loop-vectorize -force-vector-interleave=1 -force-vector-width=4 -S < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/iv-select-cmp-non-const-iv-start.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/iv-select-cmp-non-const-iv-start.ll --check-prefix=CHECK-VF4IC1
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=loop-vectorize -force-vector-interleave=1 -force-vector-width=4 -S
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/iv-select-cmp-non-const-iv-start.ll --check-prefix=CHECK-VF4IC1
# note: command had no output on stdout or stderr
# RUN: at line 3
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=loop-vectorize -force-vector-interleave=4 -force-vector-width=4 -S < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/iv-select-cmp-non-const-iv-start.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/iv-select-cmp-non-const-iv-start.ll --check-prefix=CHECK-VF4IC4
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=loop-vectorize -force-vector-interleave=4 -force-vector-width=4 -S
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/iv-select-cmp-non-const-iv-start.ll --check-prefix=CHECK-VF4IC4
# note: command had no output on stdout or stderr
# RUN: at line 4
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=loop-vectorize -force-vector-interleave=4 -force-vector-width=1 -S < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/iv-select-cmp-non-const-iv-start.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/iv-select-cmp-non-const-iv-start.ll --check-prefix=CHECK-VF1IC4
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=loop-vectorize -force-vector-interleave=4 -force-vector-width=1 -S
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/iv-select-cmp-non-const-iv-start.ll --check-prefix=CHECK-VF1IC4
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/iv-select-cmp-non-const-iv-start.ll:432:22: error: CHECK-VF1IC4-NEXT: is not on the line after the previous match
# | ; CHECK-VF1IC4-NEXT: br label %[[FOR_BODY:.*]]
# |                      ^
# | <stdin>:111:2: note: 'next' match was here
# |  br label %vector.body
# |  ^
# | <stdin>:102:39: note: previous match ended here
# |  %wide.trip.count = sext i32 %n to i64
# |                                       ^
# | <stdin>:103:1: note: non-matching line after previous match is here
# |  %1 = sub i64 %wide.trip.count, %0
# | ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/iv-select-cmp-non-const-iv-start.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |           .
# |           .
# |           .
# |         106:  
# |         107: vector.ph: ; preds = %for.body.preheader 
# |         108:  %n.mod.vf = urem i64 %1, 4 
# |         109:  %n.vec = sub i64 %1, %n.mod.vf 
# |         110:  %2 = add i64 %0, %n.vec 
# |         111:  br label %vector.body 
# | next:432      !~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |         112:  
# |         113: vector.body: ; preds = %vector.body, %vector.ph 
# |         114:  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ] 
# |         115:  %vec.phi = phi i32 [ %rdx_start, %vector.ph ], [ %38, %vector.body ] 
# |         116:  %vec.phi1 = phi i32 [ %rdx_start, %vector.ph ], [ %39, %vector.body ] 
# |           .
# |           .
# |           .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.Transforms/LoopVectorize/iv-select-cmp-trunc.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=loop-vectorize -force-vector-interleave=1 -force-vector-width=4 -S < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/iv-select-cmp-trunc.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/iv-select-cmp-trunc.ll --check-prefix=CHECK-VF4IC1
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=loop-vectorize -force-vector-interleave=1 -force-vector-width=4 -S
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/iv-select-cmp-trunc.ll --check-prefix=CHECK-VF4IC1
# note: command had no output on stdout or stderr
# RUN: at line 3
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=loop-vectorize -force-vector-interleave=4 -force-vector-width=4 -S < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/iv-select-cmp-trunc.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/iv-select-cmp-trunc.ll --check-prefix=CHECK-VF4IC4
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=loop-vectorize -force-vector-interleave=4 -force-vector-width=4 -S
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/iv-select-cmp-trunc.ll --check-prefix=CHECK-VF4IC4
# note: command had no output on stdout or stderr
# RUN: at line 4
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=loop-vectorize -force-vector-interleave=4 -force-vector-width=1 -S < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/iv-select-cmp-trunc.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/iv-select-cmp-trunc.ll --check-prefix=CHECK-VF1IC4
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=loop-vectorize -force-vector-interleave=4 -force-vector-width=1 -S
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/iv-select-cmp-trunc.ll --check-prefix=CHECK-VF1IC4
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/iv-select-cmp-trunc.ll:834:22: error: CHECK-VF1IC4-NEXT: is not on the line after the previous match
# | ; CHECK-VF1IC4-NEXT: br label %[[FOR_BODY:.*]]
# |                      ^
# | <stdin>:257:2: note: 'next' match was here
# |  br label %vector.body
# |  ^
# | <stdin>:250:20: note: previous match ended here
# | for.body.preheader: ; preds = %entry
# |                    ^
# | <stdin>:251:1: note: non-matching line after previous match is here
# |  %min.iters.check = icmp ult i64 %n, 4
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/iv-select-cmp-trunc.ll:1034:22: error: CHECK-VF1IC4-NEXT: is not on the line after the previous match
# | ; CHECK-VF1IC4-NEXT: br label %[[FOR_BODY:.*]]
# |                      ^
# | <stdin>:355:2: note: 'next' match was here
# |  br label %vector.body
# |  ^
# | <stdin>:348:39: note: previous match ended here
# |  %wide.trip.count = zext i32 %n to i64
# |                                       ^
# | <stdin>:349:1: note: non-matching line after previous match is here
# |  %min.iters.check = icmp ult i64 %wide.trip.count, 4
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/iv-select-cmp-trunc.ll:1182:22: error: CHECK-VF1IC4-NEXT: expected string not found in input
# | ; CHECK-VF1IC4-NEXT: [[IV:%.*]] = phi i64 [ 4294967294, %[[ENTRY]] ], [ [[INC:%.*]], %[[FOR_BODY]] ]
# |                      ^
# | <stdin>:444:11: note: scanning from here
# | vector.ph: ; preds = %entry
# |           ^
# | <stdin>:444:11: note: with "ENTRY" equal to "entry"
# | vector.ph: ; preds = %entry
# |           ^
# | <stdin>:444:11: note: with "FOR_BODY" equal to "vector.ph"
# | vector.ph: ; preds = %entry
# |           ^
# | <stdin>:457:7: note: possible intended match here
# |  %offset.idx = add i64 4294967294, %index
# |       ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/iv-select-cmp-trunc.ll:1373:22: error: CHECK-VF1IC4-NEXT: is not on the line after the previous match
# | ; CHECK-VF1IC4-NEXT: br label %[[FOR_BODY:.*]]
# |                      ^
# | <stdin>:518:2: note: 'next' match was here
# |  br label %vector.body
# |  ^
# | <stdin>:511:39: note: previous match ended here
# |  %wide.trip.count = zext i32 %n to i64
# |                                       ^
# | <stdin>:512:1: note: non-matching line after previous match is here
# |  %min.iters.check = icmp ult i64 %wide.trip.count, 4
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/iv-select-cmp-trunc.ll:1540:22: error: CHECK-VF1IC4-NEXT: expected string not found in input
# | ; CHECK-VF1IC4-NEXT: [[IV:%.*]] = phi i64 [ 0, %[[ENTRY]] ], [ [[INC:%.*]], %[[FOR_BODY]] ]
# |                      ^
# | <stdin>:613:11: note: scanning from here
# | vector.ph: ; preds = %entry
# |           ^
# | <stdin>:613:11: note: with "ENTRY" equal to "entry"
# | vector.ph: ; preds = %entry
# |           ^
# | <stdin>:613:11: note: with "FOR_BODY" equal to "vector.ph"
# | vector.ph: ; preds = %entry
# |           ^
# | <stdin>:617:2: note: possible intended match here
# |  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/iv-select-cmp-trunc.ll:1747:22: error: CHECK-VF1IC4-NEXT: is not on the line after the previous match
# | ; CHECK-VF1IC4-NEXT: br label %[[FOR_BODY:.*]]
# |                      ^
# | <stdin>:705:2: note: 'next' match was here
# |  br label %vector.body
# |  ^
# | <stdin>:698:39: note: previous match ended here
# |  %wide.trip.count = zext i32 %n to i64
# |                                       ^
# | <stdin>:699:1: note: non-matching line after previous match is here
# |  %min.iters.check = icmp ult i64 %wide.trip.count, 4
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/iv-select-cmp-trunc.ll:1958:22: error: CHECK-VF1IC4-NEXT: is not on the line after the previous match
# | ; CHECK-VF1IC4-NEXT: br label %[[LOOP:.*]]
# |                      ^
# | <stdin>:810:2: note: 'next' match was here
# |  br label %vector.body
# |  ^
# | <stdin>:801:7: note: previous match ended here
# | entry:
# |       ^
# | <stdin>:802:1: note: non-matching line after previous match is here
# |  %0 = add i64 %n, 1
# | ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/iv-select-cmp-trunc.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |            252:  br i1 %min.iters.check, label %scalar.ph, label %vector.ph 
# |            253:  
# |            254: vector.ph: ; preds = %for.body.preheader 
# |            255:  %n.mod.vf = urem i64 %n, 4 
# |            256:  %n.vec = sub i64 %n, %n.mod.vf 
# |            257:  br label %vector.body 
# | next:834         !~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            258:  
# |            259: vector.body: ; preds = %vector.body, %vector.ph 
# |            260:  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ] 
# |            261:  %vec.phi = phi i32 [ 331, %vector.ph ], [ %35, %vector.body ] 
# |            262:  %vec.phi1 = phi i32 [ 331, %vector.ph ], [ %36, %vector.body ] 
# |              .
# |              .
# |              .
# |            350:  br i1 %min.iters.check, label %scalar.ph, label %vector.ph 
# |            351:  
# |            352: vector.ph: ; preds = %for.body.preheader 
# |            353:  %n.mod.vf = urem i64 %wide.trip.count, 4 
# |            354:  %n.vec = sub i64 %wide.trip.count, %n.mod.vf 
# |            355:  br label %vector.body 
# | next:1034        !~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            356:  
# |            357: vector.body: ; preds = %vector.body, %vector.ph 
# |            358:  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ] 
# |            359:  %vec.phi = phi i32 [ 331, %vector.ph ], [ %35, %vector.body ] 
# |            360:  %vec.phi1 = phi i32 [ 331, %vector.ph ], [ %36, %vector.body ] 
# |              .
# |              .
# |              .
# |            439:  
# |            440: define i32 @not_vectorized_select_icmp_truncated_iv_out_of_bound(ptr %a) { 
# |            441: entry: 
# |            442:  br label %vector.ph 
# |            443:  
# |            444: vector.ph: ; preds = %entry 
# | next:1182'0               X~~~~~~~~~~~~~~~~~ error: no match found
# | next:1182'1                                  with "ENTRY" equal to "entry"
# | next:1182'2                                  with "FOR_BODY" equal to "vector.ph"
# |            445:  br label %vector.body 
# | next:1182'0     ~~~~~~~~~~~~~~~~~~~~~~~
# |            446:  
# | next:1182'0     ~
# |            447: vector.body: ; preds = %vector.body, %vector.ph 
# | next:1182'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            448:  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ] 
# | next:1182'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            449:  %vec.phi = phi i32 [ 331, %vector.ph ], [ %35, %vector.body ] 
# | next:1182'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            452:  %vec.phi3 = phi i32 [ 331, %vector.ph ], [ %38, %vector.body ] 
# | next:1182'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            453:  %0 = phi i1 [ false, %vector.ph ], [ %31, %vector.body ] 
# | next:1182'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            454:  %1 = phi i1 [ false, %vector.ph ], [ %32, %vector.body ] 
# | next:1182'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            455:  %2 = phi i1 [ false, %vector.ph ], [ %33, %vector.body ] 
# | next:1182'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            456:  %3 = phi i1 [ false, %vector.ph ], [ %34, %vector.body ] 
# | next:1182'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            457:  %offset.idx = add i64 4294967294, %index 
# | next:1182'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1182'3           ?                                    possible intended match
# |            458:  %4 = add i64 %offset.idx, 1 
# | next:1182'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            459:  %5 = add i64 %offset.idx, 2 
# | next:1182'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            460:  %6 = add i64 %offset.idx, 3 
# | next:1182'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            461:  %offset.idx4 = add i64 4294967294, %index 
# | next:1182'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            462:  %7 = trunc i64 %offset.idx4 to i32 
# | next:1182'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            513:  br i1 %min.iters.check, label %scalar.ph, label %vector.ph 
# |            514:  
# |            515: vector.ph: ; preds = %entry 
# |            516:  %n.mod.vf = urem i64 %wide.trip.count, 4 
# |            517:  %n.vec = sub i64 %wide.trip.count, %n.mod.vf 
# |            518:  br label %vector.body 
# | next:1373        !~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            519:  
# |            520: vector.body: ; preds = %vector.body, %vector.ph 
# |            521:  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ] 
# |            522:  %vec.phi = phi i32 [ %start, %vector.ph ], [ %43, %vector.body ] 
# |            523:  %vec.phi1 = phi i32 [ %start, %vector.ph ], [ %44, %vector.body ] 
# |              .
# |              .
# |              .
# |            608:  
# |            609: define i32 @not_vectorized_select_fcmp_invalid_const_ub(ptr %a) { 
# |            610: entry: 
# |            611:  br label %vector.ph 
# |            612:  
# |            613: vector.ph: ; preds = %entry 
# | next:1540'0               X~~~~~~~~~~~~~~~~~ error: no match found
# | next:1540'1                                  with "ENTRY" equal to "entry"
# | next:1540'2                                  with "FOR_BODY" equal to "vector.ph"
# |            614:  br label %vector.body 
# | next:1540'0     ~~~~~~~~~~~~~~~~~~~~~~~
# |            615:  
# | next:1540'0     ~
# |            616: vector.body: ; preds = %vector.body, %vector.ph 
# | next:1540'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            617:  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ] 
# | next:1540'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:1540'3      ?                                                                  possible intended match
# |            618:  %vec.phi = phi i32 [ -1, %vector.ph ], [ %35, %vector.body ] 
# | next:1540'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            619:  %vec.phi1 = phi i32 [ -1, %vector.ph ], [ %36, %vector.body ] 
# | next:1540'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            620:  %vec.phi2 = phi i32 [ -1, %vector.ph ], [ %37, %vector.body ] 
# | next:1540'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            621:  %vec.phi3 = phi i32 [ -1, %vector.ph ], [ %38, %vector.body ] 
# | next:1540'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            622:  %0 = phi i1 [ false, %vector.ph ], [ %31, %vector.body ] 
# | next:1540'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |              .
# |              .
# |              .
# |            700:  br i1 %min.iters.check, label %scalar.ph, label %vector.ph 
# |            701:  
# |            702: vector.ph: ; preds = %for.body.preheader 
# |            703:  %n.mod.vf = urem i64 %wide.trip.count, 4 
# |            704:  %n.vec = sub i64 %wide.trip.count, %n.mod.vf 
# |            705:  br label %vector.body 
# | next:1747        !~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            706:  
# |            707: vector.body: ; preds = %vector.body, %vector.ph 
# |            708:  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ] 
# |            709:  %vec.phi = phi i16 [ %start, %vector.ph ], [ %43, %vector.body ] 
# |            710:  %vec.phi1 = phi i16 [ %start, %vector.ph ], [ %44, %vector.body ] 
# |              .
# |              .
# |              .
# |            805:  
# |            806: vector.ph: ; preds = %entry 
# |            807:  %n.mod.vf = urem i64 %0, 4 
# |            808:  %n.vec = sub i64 %0, %n.mod.vf 
# |            809:  %1 = add i64 %start, %n.vec 
# |            810:  br label %vector.body 
# | next:1958        !~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |            811:  
# |            812: vector.body: ; preds = %vector.body, %vector.ph 
# |            813:  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ] 
# |            814:  %vec.phi = phi i1 [ false, %vector.ph ], [ %29, %vector.body ] 
# |            815:  %vec.phi1 = phi i1 [ false, %vector.ph ], [ %30, %vector.body ] 
# |              .
# |              .
# |              .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.Transforms/LoopVectorize/select-cmp.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=loop-vectorize -force-vector-interleave=1 -force-vector-width=4 -S < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/select-cmp.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/select-cmp.ll --check-prefixes=CHECK,CHECK-VF4IC1
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=loop-vectorize -force-vector-interleave=1 -force-vector-width=4 -S
# .---command stderr------------
# | remark: <unknown>:0:0: loop not vectorized: value that could not be identified as reduction is used outside the loop
# | remark: <unknown>:0:0: loop not vectorized: value that could not be identified as reduction is used outside the loop
# `-----------------------------
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/select-cmp.ll --check-prefixes=CHECK,CHECK-VF4IC1
# note: command had no output on stdout or stderr
# RUN: at line 3
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=loop-vectorize -force-vector-interleave=4 -force-vector-width=4 -S < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/select-cmp.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/select-cmp.ll --check-prefixes=CHECK,CHECK-VF4IC4
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=loop-vectorize -force-vector-interleave=4 -force-vector-width=4 -S
# .---command stderr------------
# | remark: <unknown>:0:0: loop not vectorized: value that could not be identified as reduction is used outside the loop
# | remark: <unknown>:0:0: loop not vectorized: value that could not be identified as reduction is used outside the loop
# `-----------------------------
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/select-cmp.ll --check-prefixes=CHECK,CHECK-VF4IC4
# note: command had no output on stdout or stderr
# RUN: at line 4
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=loop-vectorize -force-vector-interleave=4 -force-vector-width=1 -S < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/select-cmp.ll | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/select-cmp.ll --check-prefixes=CHECK,CHECK-VF1IC4
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=loop-vectorize -force-vector-interleave=4 -force-vector-width=1 -S
# note: command had no output on stdout or stderr
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/select-cmp.ll --check-prefixes=CHECK,CHECK-VF1IC4
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/select-cmp.ll:1269:22: error: CHECK-VF1IC4-NEXT: is not on the line after the previous match
# | ; CHECK-VF1IC4-NEXT: br label %[[LOOP:.*]]
# |                      ^
# | <stdin>:430:2: note: 'next' match was here
# |  br label %vector.body
# |  ^
# | <stdin>:423:7: note: previous match ended here
# | entry:
# |       ^
# | <stdin>:424:1: note: non-matching line after previous match is here
# |  %min.iters.check = icmp ult i64 %n, 4
# | ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/select-cmp.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            .
# |            .
# |            .
# |          425:  br i1 %min.iters.check, label %scalar.ph, label %vector.ph 
# |          426:  
# |          427: vector.ph: ; preds = %entry 
# |          428:  %n.mod.vf = urem i64 %n, 4 
# |          429:  %n.vec = sub i64 %n, %n.mod.vf 
# |          430:  br label %vector.body 
# | next:1269      !~~~~~~~~~~~~~~~~~~~~  error: match on wrong line
# |          431:  
# |          432: vector.body: ; preds = %vector.body, %vector.ph 
# |          433:  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ] 
# |          434:  %vec.phi = phi i32 [ 3, %vector.ph ], [ %38, %vector.body ] 
# |          435:  %vec.phi1 = phi i32 [ 3, %vector.ph ], [ %39, %vector.body ] 
# |            .
# |            .
# |            .
# | >>>>>>
# `-----------------------------
# 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/184099


More information about the llvm-commits mailing list