[llvm] [ValueTracking] Infer min/max compares from bounded operand guards (PR #227205)

via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 29 01:13:22 PDT 2026


github-actions[bot] wrote:

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

* 154225 tests passed
* 3431 tests skipped
* 2 tests failed

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

### LLVM
<details>
<summary>LLVM.Transforms/InstCombine/implies.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/implies.ll -passes=instcombine -S | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/implies.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=instcombine -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/InstCombine/implies.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/implies.ll:296:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[R:%.*]] = icmp ugt i8 [[X]], [[Z]]
# |               ^
# | <stdin>:177:3: note: scanning from here
# | F: ; preds = %0
# |   ^
# | <stdin>:177:3: note: with "X" equal to "%x"
# | F: ; preds = %0
# |   ^
# | <stdin>:177:3: note: with "Z" equal to "%z"
# | F: ; preds = %0
# |   ^
# | <stdin>:177:3: note: pattern attempts to capture variables: "R"
# | F: ; preds = %0
# |   ^
# | <stdin>:177:4: note: possible intended match here
# | F: ; preds = %0
# |    ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/implies.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |           172:  br i1 %cond, label %T, label %F 
# |           173:  
# |           174: T: ; preds = %0 
# |           175:  ret i1 %other 
# |           176:  
# |           177: F: ; preds = %0 
# | next:296'0      {                search range start (exclusive)
# | next:296'1                       error: no match found in search range
# | next:296'2                       with "X" equal to "%x"
# | next:296'3                       with "Z" equal to "%z"
# | next:296'4                       pattern attempts to capture variables: "R"
# | next:296'5        ?              possible intended match
# |           178:  ret i1 false 
# |           179: } 
# |           180:  
# |           181: define i1 @src_udiv_implies_ult(i8 %x, i8 %z, i1 %other) { 
# | next:296'6                                     }                            search range end (exclusive)
# |           182:  %cond = icmp ugt i8 %z, %x 
# |           183:  br i1 %cond, label %T, label %F 
# |           184:  
# |           185: T: ; preds = %0 
# |           186:  ret i1 true 
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.Transforms/InstCombine/pr63791.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -S -passes=instcombine < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/pr63791.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/InstCombine/pr63791.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -S -passes=instcombine
# 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/InstCombine/pr63791.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/pr63791.ll:20:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: br i1 poison, label [[FOR_INC19_I]], label [[FOR_COND1_LOOPEXIT_I]]
# |               ^
# | <stdin>:20:13: note: scanning from here
# | for.inc19.i: ; preds = %for.inc19.i, %for.cond5.preheader.i
# |             ^
# | <stdin>:20:13: note: with "FOR_INC19_I" equal to "%for.inc19.i"
# | for.inc19.i: ; preds = %for.inc19.i, %for.cond5.preheader.i
# |             ^
# | <stdin>:20:13: note: with "FOR_COND1_LOOPEXIT_I" equal to "%for.cond1.loopexit.i"
# | for.inc19.i: ; preds = %for.inc19.i, %for.cond5.preheader.i
# |             ^
# | <stdin>:21:2: note: possible intended match here
# |  br i1 false, label %for.inc19.i, label %for.cond1.loopexit.i
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/InstCombine/pr63791.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            .
# |            .
# |            .
# |           15:  br i1 poison, label %for.cond.i, label %for.cond5.preheader.i 
# |           16:  
# |           17: for.cond5.preheader.i: ; preds = %for.cond1.loopexit.i, %for.cond.i 
# |           18:  br i1 true, label %for.cond1.loopexit.i, label %for.inc19.i 
# |           19:  
# |           20: for.inc19.i: ; preds = %for.inc19.i, %for.cond5.preheader.i 
# | next:20'0                {                                                  search range start (exclusive)
# | next:20'1                                                                   error: no match found in search range
# | next:20'2                                                                   with "FOR_INC19_I" equal to "%for.inc19.i"
# | next:20'3                                                                   with "FOR_COND1_LOOPEXIT_I" equal to "%for.cond1.loopexit.i"
# |           21:  br i1 false, label %for.inc19.i, label %for.cond1.loopexit.i 
# | next:20'4      ?                                                              possible intended match
# |           22: } 
# | next:20'5       } search range end (exclusive)
# | >>>>>>
# `-----------------------------
# 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/227205


More information about the llvm-commits mailing list