[llvm] [SimplifyIndVar] ICMP predicate conversion to EQ/NE (PR #144945)

via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 4 01:55:16 PST 2025


github-actions[bot] wrote:

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

* 166743 tests passed
* 2909 tests skipped
* 2 tests failed

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

### LLVM
<details>
<summary>LLVM.Transforms/IndVarSimplify/X86/overflow-intrinsics.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=indvars < /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/IndVarSimplify/X86/overflow-intrinsics.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/IndVarSimplify/X86/overflow-intrinsics.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -S -passes=indvars
# 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/IndVarSimplify/X86/overflow-intrinsics.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/IndVarSimplify/X86/overflow-intrinsics.ll:24:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[CMP:%.*]] = icmp samesign ne i64 [[INDVARS_IV_NEXT]], 16
# |               ^
# | <stdin>:24:6: note: scanning from here
# | cont: ; preds = %for.body
# |      ^
# | <stdin>:24:6: note: with "INDVARS_IV_NEXT" equal to "%indvars.iv.next"
# | cont: ; preds = %for.body
# |      ^
# | <stdin>:25:6: note: possible intended match here
# |  %exitcond = icmp ne i64 %indvars.iv.next, 16
# |      ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/IndVarSimplify/X86/overflow-intrinsics.ll:113:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[CMP:%.*]] = icmp samesign ne i64 [[INDVARS_IV_NEXT]], 16
# |               ^
# | <stdin>:69:6: note: scanning from here
# | cont: ; preds = %for.body
# |      ^
# | <stdin>:69:6: note: with "INDVARS_IV_NEXT" equal to "%indvars.iv.next"
# | cont: ; preds = %for.body
# |      ^
# | <stdin>:70:6: note: possible intended match here
# |  %exitcond = icmp ne i64 %indvars.iv.next, 16
# |      ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/IndVarSimplify/X86/overflow-intrinsics.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            19:  
# |            20: trap: ; preds = %for.body 
# |            21:  tail call void @llvm.trap(), !nosanitize !0 
# |            22:  unreachable, !nosanitize !0 
# |            23:  
# |            24: cont: ; preds = %for.body 
# | next:24'0           X~~~~~~~~~~~~~~~~~~~~ error: no match found
# | next:24'1                                 with "INDVARS_IV_NEXT" equal to "%indvars.iv.next"
# |            25:  %exitcond = icmp ne i64 %indvars.iv.next, 16 
# | next:24'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:24'2           ?                                         possible intended match
# |            26:  br i1 %exitcond, label %for.body, label %for.cond.cleanup 
# | next:24'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            27: } 
# | next:24'0      ~~
# |            28:  
# | next:24'0      ~
# |            29: define void @f_sadd_overflow(ptr %a) { 
# | next:24'0      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            30: entry: 
# |             .
# |             .
# |             .
# |            64:  
# |            65: trap: ; preds = %for.body 
# |            66:  tail call void @llvm.trap(), !nosanitize !0 
# |            67:  unreachable, !nosanitize !0 
# |            68:  
# |            69: cont: ; preds = %for.body 
# | next:113'0          X~~~~~~~~~~~~~~~~~~~~ error: no match found
# | next:113'1                                with "INDVARS_IV_NEXT" equal to "%indvars.iv.next"
# |            70:  %exitcond = icmp ne i64 %indvars.iv.next, 16 
# | next:113'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:113'2          ?                                         possible intended match
# |            71:  br i1 %exitcond, label %for.body, label %for.cond.cleanup 
# | next:113'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            72: } 
# | next:113'0     ~~
# |            73:  
# | next:113'0     ~
# |            74: define void @f_uadd_overflow(ptr %a) { 
# | next:113'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            75: entry: 
# |             .
# |             .
# |             .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.Transforms/IndVarSimplify/ada-loops.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/IndVarSimplify/ada-loops.ll -passes=indvars -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/IndVarSimplify/ada-loops.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=indvars -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/IndVarSimplify/ada-loops.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/IndVarSimplify/ada-loops.ll:136:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[EXITCOND:%.*]] = icmp samesign eq i32 [[INDVARS_IV_NEXT]], 31
# |               ^
# | <stdin>:73:51: note: scanning from here
# |  %indvars.iv.next = add nuw nsw i32 %indvars.iv, 1
# |                                                   ^
# | <stdin>:73:51: note: with "INDVARS_IV_NEXT" equal to "%indvars.iv.next"
# |  %indvars.iv.next = add nuw nsw i32 %indvars.iv, 1
# |                                                   ^
# | <stdin>:74:20: note: possible intended match here
# |  %exitcond = icmp eq i32 %indvars.iv.next, 31
# |                    ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/IndVarSimplify/ada-loops.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |            68: bb: ; preds = %bb, %bb.thread 
# |            69:  %indvars.iv = phi i32 [ %indvars.iv.next, %bb ], [ 10, %bb.thread ] 
# |            70:  %tmp4 = add nsw i32 %indvars.iv, -10 
# |            71:  %tmp5 = getelementptr [21 x i32], ptr %a, i32 0, i32 %tmp4 
# |            72:  store i32 0, ptr %tmp5, align 4 
# |            73:  %indvars.iv.next = add nuw nsw i32 %indvars.iv, 1 
# | next:136'0                                                       X error: no match found
# | next:136'1                                                         with "INDVARS_IV_NEXT" equal to "%indvars.iv.next"
# |            74:  %exitcond = icmp eq i32 %indvars.iv.next, 31 
# | next:136'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:136'2                        ?                           possible intended match
# |            75:  br i1 %exitcond, label %return, label %bb 
# | next:136'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |            76:  
# | next:136'0     ~
# |            77: return: ; preds = %bb 
# | next:136'0     ~~~~~~~~~~~~~~~~~~~~~~
# |            78:  ret void 
# | next:136'0     ~~~~~~~~~~
# |            79: } 
# | next:136'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/144945


More information about the llvm-commits mailing list