[llvm] [SCEV] Urem identification from X - C*X/uC (PR #210778)

via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 30 00:00:04 PDT 2026


github-actions[bot] wrote:

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

* 154355 tests passed
* 3431 tests skipped
* 2 tests failed

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

### LLVM
<details>
<summary>LLVM.CodeGen/AMDGPU/memmove-var-size.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=amdgpu10.30-amd-amdhsa /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/memmove-var-size.ll -o - | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/memmove-var-size.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=amdgpu10.30-amd-amdhsa /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/memmove-var-size.ll -o -
# 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/CodeGen/AMDGPU/memmove-var-size.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/memmove-var-size.ll:65:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: v_add_co_ci_u32_e64 v3, null, v3, v5, s5
# |               ^
# | <stdin>:63:2: note: 'next' match was here
# |  v_add_co_ci_u32_e64 v3, null, v3, v5, s5
# |  ^
# | <stdin>:61:29: note: previous match ended here
# |  v_add_co_u32 v2, s5, v2, v4
# |                             ^
# | <stdin>:62:1: note: non-matching line after previous match is here
# |  v_mov_b32_e32 v8, 0
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/memmove-var-size.ll:214:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: v_add_co_ci_u32_e64 v3, null, v3, v5, s5
# |               ^
# | <stdin>:232:2: note: 'next' match was here
# |  v_add_co_ci_u32_e64 v3, null, v3, v5, s5
# |  ^
# | <stdin>:230:29: note: previous match ended here
# |  v_add_co_u32 v2, s5, v2, v4
# |                             ^
# | <stdin>:231:1: note: non-matching line after previous match is here
# |  v_mov_b32_e32 v8, 0
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/memmove-var-size.ll:362:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: v_add_co_ci_u32_e64 v1, null, v1, v4, s5
# |               ^
# | <stdin>:400:2: note: 'next' match was here
# |  v_add_co_ci_u32_e64 v1, null, v1, v4, s5
# |  ^
# | <stdin>:398:29: note: previous match ended here
# |  v_add_nc_u32_e32 v2, v2, v3
# |                             ^
# | <stdin>:399:1: note: non-matching line after previous match is here
# |  v_mov_b32_e32 v7, 0
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/memmove-var-size.ll:506:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: v_add_co_ci_u32_e64 v3, null, v3, v5, s5
# |               ^
# | <stdin>:564:2: note: 'next' match was here
# |  v_add_co_ci_u32_e64 v3, null, v3, v5, s5
# |  ^
# | <stdin>:562:29: note: previous match ended here
# |  v_add_co_u32 v2, s5, v2, v4
# |                             ^
# | <stdin>:563:1: note: non-matching line after previous match is here
# |  v_mov_b32_e32 v8, 0
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/memmove-var-size.ll:658:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: v_add_co_ci_u32_e64 v1, null, v1, v4, s5
# |               ^
# | <stdin>:736:2: note: 'next' match was here
# |  v_add_co_ci_u32_e64 v1, null, v1, v4, s5
# |  ^
# | <stdin>:734:29: note: previous match ended here
# |  v_add_nc_u32_e32 v2, v2, v3
# |                             ^
# | <stdin>:735:1: note: non-matching line after previous match is here
# |  v_mov_b32_e32 v7, 0
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/memmove-var-size.ll:806:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: v_add_co_ci_u32_e64 v3, null, v3, v5, s5
# |               ^
# | <stdin>:903:2: note: 'next' match was here
# |  v_add_co_ci_u32_e64 v3, null, v3, v5, s5
# |  ^
# | <stdin>:901:29: note: previous match ended here
# |  v_add_co_u32 v2, s5, v2, v4
# |                             ^
# | <stdin>:902:1: note: non-matching line after previous match is here
# |  v_mov_b32_e32 v8, 0
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/memmove-var-size.ll:953:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: v_add_co_ci_u32_e64 v3, null, v3, v5, s5
# |               ^
# | <stdin>:1070:2: note: 'next' match was here
# |  v_add_co_ci_u32_e64 v3, null, v3, v5, s5
# |  ^
# | <stdin>:1068:29: note: previous match ended here
# |  v_add_co_u32 v2, s5, v2, v4
# |                             ^
# | <stdin>:1069:1: note: non-matching line after previous match is here
# |  v_mov_b32_e32 v8, 0
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/memmove-var-size.ll:1162:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: v_add_co_ci_u32_e64 v3, null, v3, v5, s5
# |               ^
# | <stdin>:1317:2: note: 'next' match was here
# |  v_add_co_ci_u32_e64 v3, null, v3, v5, s5
# |  ^
# | <stdin>:1315:29: note: previous match ended here
# |  v_add_co_u32 v2, s5, v2, v4
# |                             ^
# | <stdin>:1316:1: note: non-matching line after previous match is here
# |  v_mov_b32_e32 v8, 0
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/memmove-var-size.ll:1379:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: v_add_co_ci_u32_e64 v1, null, v2, v4, s5
# |               ^
# | <stdin>:1571:2: note: 'next' match was here
# |  v_add_co_ci_u32_e64 v1, null, v2, v4, s5
# |  ^
# | <stdin>:1569:29: note: previous match ended here
# |  v_add_co_u32 v0, s5, v1, v3
# |                             ^
# | <stdin>:1570:1: note: non-matching line after previous match is here
# |  v_mov_b32_e32 v7, 0
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/memmove-var-size.ll:1555:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: v_mov_b32_e32 v7, v0
# |               ^
# | <stdin>:1783:22: note: scanning from here
# |  v_mov_b32_e32 v3, v2
# |                      ^
# | <stdin>:1784:2: note: possible intended match here
# |  v_mov_b32_e32 v6, v0
# |  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/memmove-var-size.ll:1845:15: error: CHECK-NEXT: is not on the line after the previous match
# | ; CHECK-NEXT: v_add_co_ci_u32_e64 v1, null, v2, v4, s5
# |               ^
# | <stdin>:2130:2: note: 'next' match was here
# |  v_add_co_ci_u32_e64 v1, null, v2, v4, s5
# |  ^
# | <stdin>:2128:29: note: previous match ended here
# |  v_add_co_u32 v0, s5, v1, v3
# |                             ^
# | <stdin>:2129:1: note: non-matching line after previous match is here
# |  v_mov_b32_e32 v7, 0
# | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/memmove-var-size.ll:2155:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: v_mov_b32_e32 v7, v0
# |               ^
# | <stdin>:2512:22: note: scanning from here
# |  v_mov_b32_e32 v3, v2
# |                      ^
# | <stdin>:2513:2: note: possible intended match here
# |  v_mov_b32_e32 v6, v0
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/AMDGPU/memmove-var-size.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |              .
# |              .
# |              .
# |             56:  s_and_saveexec_b32 s8, s4 
# |             57:  s_cbranch_execz .LBB0_9 
# |             58: ; %bb.7: ; %memmove_fwd_residual_loop.preheader 
# |             59:  v_add_co_u32 v0, s5, v0, v4 
# |             60:  v_add_co_ci_u32_e64 v1, null, v1, v5, s5 
# |             61:  v_add_co_u32 v2, s5, v2, v4 
# | next:65'0                                  {   search range start (exclusive)
# |             62:  v_mov_b32_e32 v8, 0 
# |             63:  v_add_co_ci_u32_e64 v3, null, v3, v5, s5 
# | next:65'1        !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   error: match on wrong line
# |             64:  s_mov_b32 s9, 0 
# |             65:  .p2align 6 
# |             66: .LBB0_8: ; %memmove_fwd_residual_loop 
# |             67:  ; =>This Inner Loop Header: Depth=1 
# |             68:  flat_load_ubyte v4, v[2:3] 
# |              .
# |              .
# |              .
# |            171: ; MemoryBound: 0 
# |            172:  .text 
# |            173:  .globl memmove_p0_p1 ; -- Begin function memmove_p0_p1 
# |            174:  .p2align 6 
# |            175:  .type memmove_p0_p1, at function 
# |            176: memmove_p0_p1: ; @memmove_p0_p1 
# | next:65'2                     }                   search range end (exclusive)
# |            177: ; %bb.0: ; %entry 
# |            178:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            179:  v_mov_b32_e32 v6, v4 
# |            180:  v_mov_b32_e32 v8, 0 
# |            181:  v_mov_b32_e32 v12, v3 
# |              .
# |              .
# |              .
# |            225:  s_and_saveexec_b32 s8, s4 
# |            226:  s_cbranch_execz .LBB1_9 
# |            227: ; %bb.7: ; %memmove_fwd_residual_loop.preheader 
# |            228:  v_add_co_u32 v0, s5, v0, v4 
# |            229:  v_add_co_ci_u32_e64 v1, null, v1, v5, s5 
# |            230:  v_add_co_u32 v2, s5, v2, v4 
# | next:214'0                                 {   search range start (exclusive)
# |            231:  v_mov_b32_e32 v8, 0 
# |            232:  v_add_co_ci_u32_e64 v3, null, v3, v5, s5 
# | next:214'1       !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   error: match on wrong line
# |            233:  s_mov_b32 s9, 0 
# |            234:  .p2align 6 
# |            235: .LBB1_8: ; %memmove_fwd_residual_loop 
# |            236:  ; =>This Inner Loop Header: Depth=1 
# |            237:  global_load_ubyte v4, v[2:3], off 
# |              .
# |              .
# |              .
# |            340: ; MemoryBound: 0 
# |            341:  .text 
# |            342:  .globl memmove_p0_p3 ; -- Begin function memmove_p0_p3 
# |            343:  .p2align 6 
# |            344:  .type memmove_p0_p3, at function 
# |            345: memmove_p0_p3: ; @memmove_p0_p3 
# | next:214'2                    }                   search range end (exclusive)
# |            346: ; %bb.0: ; %entry 
# |            347:  s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 
# |            348:  v_mov_b32_e32 v5, v3 
# |            349:  v_mov_b32_e32 v7, 0 
# |            350:  v_cmp_ne_u64_e32 vcc_lo, 0, v[0:1] 
# |              .
# |              .
# |              .
# |            393:  s_or_b32 exec_lo, exec_lo, s8 
# |            394:  s_and_saveexec_b32 s8, s4 
# |            395:  s_cbranch_execz .LBB2_9 
# |            396: ; %bb.7: ; %memmove_fwd_residual_loop.preheader 
# |            397:  v_add_co_u32 v0, s5, v0, v3 
# |            398:  v_add_nc_u32_e32 v2, v2, v3 
# | next:362'0                                 {   search range start (exclusive)
# |            399:  v_mov_b32_e32 v7, 0 
# |            400:  v_add_co_ci_u32_e64 v1, null, v1, v4, s5 
# | next:362'1       !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   error: match on wrong line
# |            401:  s_mov_b32 s9, 0 
# |            402:  .p2align 6 
# |            403: .LBB2_8: ; %memmove_fwd_residual_loop 
# |            404:  ; =>This Inner Loop Header: Depth=1 
# |            405:  ds_read_u8 v3, v2 
# |              .
# |              .
# |              .
# |            503: ; MemoryBound: 0 
# |            504:  .text 
# |            505:  .globl memmove_p0_p4 ; -- Begin function memmove_p0_p4 
# |            506:  .p2align 6 
# |            507:  .type memmove_p0_p4, at function 
# |            508: memmove_p0_p4: ; @memmove_p0_p4 
# | ne
# | ...
# `---data was truncated (10240/22909) (change limit with -D output_limit=N)
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>LLVM.CodeGen/Thumb/branch-to-return.ll</summary>

```
Exit Code: 1

Command Output (stdout):
--
# RUN: at line 2
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=thumbv7 /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb/branch-to-return.ll -o - | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/FileCheck /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb/branch-to-return.ll
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/bin/llc -mtriple=thumbv7 /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb/branch-to-return.ll -o -
# 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/CodeGen/Thumb/branch-to-return.ll
# .---command stderr------------
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb/branch-to-return.ll:12:15: error: CHECK-NEXT: expected string not found in input
# | ; CHECK-NEXT: bic r3, r1, #3
# |               ^
# | <stdin>:30:31: note: scanning from here
# | @ %bb.1: @ %for.body.preheader
# |                               ^
# | <stdin>:38:2: note: possible intended match here
# |  bic r0, r1, #3
# |  ^
# | 
# | Input file: <stdin>
# | Check file: /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/test/CodeGen/Thumb/branch-to-return.ll
# | 
# | -dump-input=help explains the following input dump.
# | 
# | Input was:
# | <<<<<<
# |            .
# |            .
# |            .
# |           25: foo: @ @foo 
# |           26:  .fnstart 
# |           27: @ %bb.0: @ %entry 
# |           28:  cmp r1, #1 
# |           29:  blt .LBB0_4 
# |           30: @ %bb.1: @ %for.body.preheader 
# | next:12'0                                  {   search range start (exclusive)
# | next:12'1                                      error: no match found in search range
# |           31:  mov r2, r0 
# |           32:  cmp r1, #4 
# |           33:  bhs .LBB0_3 
# |           34: @ %bb.2: 
# |           35:  movs r0, #0 
# |           36:  b .LBB0_6 
# |           37: .LBB0_3: @ %middle.block 
# |           38:  bic r0, r1, #3 
# | next:12'2      ?                possible intended match
# |           39:  cmp r0, r1 
# |           40:  bne .LBB0_5 
# |           41: .LBB0_4: 
# |           42:  movs r0, #0 
# |           43:  bx lr 
# |            .
# |            .
# |            .
# |           58:  bx lr 
# |           59: .Lfunc_end0: 
# |           60:  .size foo, .Lfunc_end0-foo 
# |           61:  .fnend 
# |           62:  @ -- End function 
# |           63:  .section ".note.GNU-stack","",%progbits 
# | next:12'3                                              } 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/210778


More information about the llvm-commits mailing list