[llvm] [SCEV] Use willNotOverflow for AR-check in udiv (PR #217133)

via llvm-commits llvm-commits at lists.llvm.org
Sun Aug 23 10:47:50 PDT 2026


github-actions[bot] wrote:

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

* 181152 tests passed
* 3712 tests skipped
* 1 test failed

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

### LLVM
<details>
<summary>LLVM.Transforms/LoopVectorize/uniform_across_vf_induction1_div_urem.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=8 /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/uniform_across_vf_induction1_div_urem.ll -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/LoopVectorize/uniform_across_vf_induction1_div_urem.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/opt -passes=loop-vectorize -force-vector-interleave=1 -force-vector-width=8 /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/uniform_across_vf_induction1_div_urem.ll -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/uniform_across_vf_induction1_div_urem.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/uniform_across_vf_induction1_div_urem.ll:242:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: [[TMP0:%.*]] = lshr i64 [[INDEX]], 3
# |               ^
# | <stdin>:189:67: note: scanning from here
# |  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
# |                                                                   ^
# | <stdin>:189:67: note: with "INDEX" equal to "%index"
# |  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
# |                                                                   ^
# | <stdin>:189:67: note: pattern attempts to capture variables: "TMP0"
# |  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
# |                                                                   ^
# | <stdin>:191:2: note: possible intended match here
# |  %0 = lshr <8 x i64> %vec.ind, splat (i64 3)
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/Transforms/LoopVectorize/uniform_across_vf_induction1_div_urem.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |             .
# |             .
# |             .
# |           184:  
# |           185: vector.ph: ; preds = %entry 
# |           186:  br label %vector.body 
# |           187:  
# |           188: vector.body: ; preds = %vector.body, %vector.ph 
# |           189:  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ] 
# | next:242'0                                                                      {   search range start (exclusive)
# | next:242'1                                                                          error: no match found in search range
# | next:242'2                                                                          with "INDEX" equal to "%index"
# | next:242'3                                                                          pattern attempts to capture variables: "TMP0"
# |           190:  %vec.ind = phi <8 x i64> [ <i64 0, i64 1, i64 2, i64 3, i64 4, i64 5, i64 6, i64 7>, %vector.ph ], [ %vec.ind.next, %vector.body ] 
# |           191:  %0 = lshr <8 x i64> %vec.ind, splat (i64 3) 
# | next:242'4      ?                                             possible intended match
# |           192:  %1 = urem <8 x i64> %0, splat (i64 3) 
# |           193:  %2 = extractelement <8 x i64> %1, i64 0 
# |           194:  %3 = getelementptr inbounds i64, ptr %A, i64 %2 
# |           195:  %4 = extractelement <8 x i64> %1, i64 1 
# |           196:  %5 = getelementptr inbounds i64, ptr %A, i64 %4 
# |             .
# |             .
# |             .
# |           235:  
# |           236: exit: ; preds = %middle.block 
# |           237:  ret void 
# |           238: } 
# |           239:  
# |           240: define void @ld_div2_ld_scevunknown_nonuniform(ptr %src.a, ptr noalias %src.b, ptr noalias %dst) { 
# | next:242'5                                                   }                                                      search range end (exclusive)
# |           241: entry: 
# |           242:  br label %vector.ph 
# |           243:  
# |           244: vector.ph: ; preds = %entry 
# |           245:  br label %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/217133


More information about the llvm-commits mailing list