[llvm] [VPlan] Lower BranchOnTwoConds to chain of 2 simple branches. (PR #174016)

via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 30 13:11:53 PST 2025


github-actions[bot] wrote:

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

* 167528 tests passed
* 2971 tests skipped
* 1 test failed

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

### LLVM
<details>
<summary>LLVM.Transforms/PhaseOrdering/AArch64/std-find.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -O3 -S /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/PhaseOrdering/AArch64/std-find.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/PhaseOrdering/AArch64/std-find.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -O3 -S /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/PhaseOrdering/AArch64/std-find.ll
# 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/PhaseOrdering/AArch64/std-find.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/PhaseOrdering/AArch64/std-find.ll:14:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: br label %[[VECTOR_BODY:.*]]
# |               ^
# | <stdin>:162:2: note: 'next' match was here
# |  br label %return
# |  ^
# | <stdin>:12:112: note: previous match ended here
# |  %broadcast.splat = shufflevector <8 x i16> %broadcast.splatinsert, <8 x i16> poison, <8 x i32> zeroinitializer
# |                                                                                                                ^
# | <stdin>:13:1: note: non-matching line after previous match is here
# |  %wide.load = load <8 x i16>, ptr %first.coerce, align 2
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/PhaseOrdering/AArch64/std-find.ll:156:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, %[[VECTOR_PH]] ], [ [[PROL_ITER_NEXT:%.*]], %[[VECTOR_BODY]] ]
# |               ^
# | <stdin>:219:13: note: scanning from here
# | vector.body: ; preds = %cond.0, %vector.ph
# |             ^
# | <stdin>:219:13: note: with "VECTOR_PH" equal to "vector.ph"
# | vector.body: ; preds = %cond.0, %vector.ph
# |             ^
# | <stdin>:219:13: note: with "VECTOR_BODY" equal to "vector.body"
# | vector.body: ; preds = %cond.0, %vector.ph
# |             ^
# | <stdin>:220:2: note: possible intended match here
# |  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %cond.0 ]
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/PhaseOrdering/AArch64/std-find.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |           157:  %.lcssa = phi <8 x i1> [ %0, %entry ], [ %2, %cond.0 ], [ %4, %cond.0.1 ], [ %6, %cond.0.2 ], [ %8, %cond.0.3 ], [ %10, %cond.0.4 ], [ %12, %cond.0.5 ], [ %14, %cond.0.6 ], [ %16, %cond.0.7 ], [ %18, %cond.0.8 ], [ %20, %cond.0.9 ], [ %22, %cond.0.10 ], [ %24, %cond.0.11 ], [ %26, %cond.0.12 ], [ %28, %cond.0.13 ], [ %30, %cond.0.14 ] 
# |           158:  %32 = tail call i64 @llvm.experimental.cttz.elts.i64.v8i1(<8 x i1> %.lcssa, i1 false) 
# |           159:  %33 = add i64 %index.lcssa, %32 
# |           160:  %34 = shl i64 %33, 1 
# |           161:  %35 = getelementptr i8, ptr %first.coerce, i64 %34 
# |           162:  br label %return 
# | next:14         !~~~~~~~~~~~~~~~  error: match on wrong line
# |           163:  
# |           164: return: ; preds = %cond.0.14, %vector.early.exit 
# |           165:  %merge = phi ptr [ %35, %vector.early.exit ], [ %coerce.val.ip, %cond.0.14 ] 
# |           166:  %res = ptrtoint ptr %merge to i64 
# |           167:  ret i64 %res 
# |             .
# |             .
# |             .
# |           214:  %n.vec = and i64 %3, -8 
# |           215:  %4 = shl i64 %n.vec, 1 
# |           216:  %5 = getelementptr i8, ptr %first, i64 %4 
# |           217:  br label %vector.body 
# |           218:  
# |           219: vector.body: ; preds = %cond.0, %vector.ph 
# | next:156'0                 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
# | next:156'1                                                 with "VECTOR_PH" equal to "vector.ph"
# | next:156'2                                                 with "VECTOR_BODY" equal to "vector.body"
# |           220:  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %cond.0 ] 
# | next:156'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:156'3      ?                                                             possible intended match
# |           221:  %offset.idx = shl i64 %index, 1 
# | next:156'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           222:  %next.gep = getelementptr i8, ptr %first, i64 %offset.idx 
# | next:156'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           223:  %wide.load = load <8 x i16>, ptr %next.gep, align 2 
# | next:156'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           224:  %wide.load.fr = freeze <8 x i16> %wide.load 
# | next:156'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |           225:  %6 = icmp eq <8 x i16> %wide.load.fr, splat (i16 1) 
# | next:156'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/174016


More information about the llvm-commits mailing list