[llvm] [SCEVDivision] Prevent propagating nowrap flags when numerator is an addrec (PR #154745)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Feb 16 00:43:22 PST 2026
github-actions[bot] wrote:
<!--PREMERGE ADVISOR COMMENT: Windows-->
# :window: Windows x64 Test Results
* 130899 tests passed
* 2938 tests skipped
* 3 tests failed
## Failed Tests
(click on a test name to see its output)
### LLVM
<details>
<summary>LLVM.Analysis/Delinearization/a.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Analysis\Delinearization\a.ll -passes='print<delinearization>' -disable-output 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Analysis\Delinearization\a.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' '-passes=print<delinearization>' -disable-output
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Analysis\Delinearization\a.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Analysis\Delinearization\a.ll:17:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: ArrayRef[{3,+,2}<nuw><%for.i>][{-4,+,3}<nw><%for.j>][{7,+,5}<nw><%for.k>]
# | ^
# | <stdin>:5:57: note: scanning from here
# | ArrayDecl[UnknownSize][%m][%o] with elements of 4 bytes.
# | ^
# | <stdin>:6:1: note: possible intended match here
# | ArrayRef[{3,+,2}<nuw><%for.i>][{-4,+,3}<%for.j>][{7,+,5}<%for.k>]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Analysis\Delinearization\a.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | 1: Printing analysis 'Delinearization' for function 'foo':
# | 2: Inst: store i32 1, ptr %arrayidx11.us.us, align 4
# | 3: AccessFunction: {{{(28 + (4 * (-4 + (3 * %m)) * %o)),+,(8 * %m * %o)}<%for.i>,+,(12 * %o)}<%for.j>,+,20}<%for.k>
# | 4: Base offset: %A
# | 5: ArrayDecl[UnknownSize][%m][%o] with elements of 4 bytes.
# | next:17'0 X error: no match found
# | 6: ArrayRef[{3,+,2}<nuw><%for.i>][{-4,+,3}<%for.j>][{7,+,5}<%for.k>]
# | next:17'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:17'1 ? possible intended match
# | 7: Delinearization validation: Failed
# | next:17'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Analysis/Delinearization/divide_by_one.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Analysis\Delinearization\divide_by_one.ll -passes='print<delinearization>' -disable-output 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Analysis\Delinearization\divide_by_one.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' '-passes=print<delinearization>' -disable-output
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Analysis\Delinearization\divide_by_one.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Analysis\Delinearization\divide_by_one.ll:20:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: ArrayRef[{(1 + %bs),+,-1}<nw><%for.cond1.preheader>][{-1,+,1}<nw><%for.body3>]
# | ^
# | <stdin>:5:58: note: scanning from here
# | ArrayDecl[UnknownSize][%stride] with elements of 1 bytes.
# | ^
# | <stdin>:6:1: note: possible intended match here
# | ArrayRef[{(1 + %bs),+,-1}<nw><%for.cond1.preheader>][{-1,+,1}<%for.body3>]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Analysis\Delinearization\divide_by_one.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | 1: Printing analysis 'Delinearization' for function 'test':
# | 2: Inst: %0 = load i8, ptr %arrayidx, align 1
# | 3: AccessFunction: {{(-1 + ((1 + %bs) * %stride)),+,(-1 * %stride)}<%for.cond1.preheader>,+,1}<nw><%for.body3>
# | 4: Base offset: %dst
# | 5: ArrayDecl[UnknownSize][%stride] with elements of 1 bytes.
# | next:20'0 X error: no match found
# | 6: ArrayRef[{(1 + %bs),+,-1}<nw><%for.cond1.preheader>][{-1,+,1}<%for.body3>]
# | next:20'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:20'1 ? possible intended match
# | 7: Delinearization validation: Failed
# | next:20'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 8:
# | next:20'0 ~
# | 9: Inst: store i8 %0, ptr %arrayidx7, align 1
# | next:20'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 10: AccessFunction: {{(%stride * %bs),+,(-1 * %stride)}<%for.cond1.preheader>,+,1}<nsw><%for.body3>
# | next:20'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 11: Base offset: %dst
# | next:20'0 ~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
--
```
</details>
<details>
<summary>LLVM.Analysis/Delinearization/multidim_ivs_and_integer_offsets_nts_3d.ll</summary>
```
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 2
c:\_work\llvm-project\llvm-project\build\bin\opt.exe < C:\_work\llvm-project\llvm-project\llvm\test\Analysis\Delinearization\multidim_ivs_and_integer_offsets_nts_3d.ll -passes='print<delinearization>' -disable-output 2>&1 | c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe C:\_work\llvm-project\llvm-project\llvm\test\Analysis\Delinearization\multidim_ivs_and_integer_offsets_nts_3d.ll
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\opt.exe' '-passes=print<delinearization>' -disable-output
# note: command had no output on stdout or stderr
# executed command: 'c:\_work\llvm-project\llvm-project\build\bin\filecheck.exe' 'C:\_work\llvm-project\llvm-project\llvm\test\Analysis\Delinearization\multidim_ivs_and_integer_offsets_nts_3d.ll'
# .---command stderr------------
# | C:\_work\llvm-project\llvm-project\llvm\test\Analysis\Delinearization\multidim_ivs_and_integer_offsets_nts_3d.ll:18:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: ArrayRef[{3,+,1}<nuw><%for.cond4.preheader.lr.ph.us>][{-4,+,1}<nw><%for.body6.lr.ph.us.us>][{7,+,1}<nw><%for.body6.us.us>]
# | ^
# | <stdin>:5:64: note: scanning from here
# | ArrayDecl[UnknownSize][%m][(%o + %p)] with elements of 8 bytes.
# | ^
# | <stdin>:6:1: note: possible intended match here
# | ArrayRef[{3,+,1}<nuw><%for.cond4.preheader.lr.ph.us>][{-4,+,1}<%for.body6.lr.ph.us.us>][{7,+,1}<%for.body6.us.us>]
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\_work\llvm-project\llvm-project\llvm\test\Analysis\Delinearization\multidim_ivs_and_integer_offsets_nts_3d.ll
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | 1: Printing analysis 'Delinearization' for function 'foo':
# | 2: Inst: store double 1.000000e+00, ptr %arrayidx10.us.us, align 8
# | 3: AccessFunction: {{{(56 + (8 * (-4 + (3 * %m)) * (%o + %p))),+,(8 * (%o + %p) * %m)}<%for.cond4.preheader.lr.ph.us>,+,(8 * (%o + %p))}<%for.body6.lr.ph.us.us>,+,8}<%for.body6.us.us>
# | 4: Base offset: %A
# | 5: ArrayDecl[UnknownSize][%m][(%o + %p)] with elements of 8 bytes.
# | next:18'0 X error: no match found
# | 6: ArrayRef[{3,+,1}<nuw><%for.cond4.preheader.lr.ph.us>][{-4,+,1}<%for.body6.lr.ph.us.us>][{7,+,1}<%for.body6.us.us>]
# | next:18'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | next:18'1 ? possible intended match
# | 7: Delinearization validation: Failed
# | next:18'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/154745
More information about the llvm-commits
mailing list