[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