Skip to content

Commit 269cae1

Browse files
committed
fixup! AMDGPU: Fix assert when multi operands to update after folding imm
1 parent 34c61fc commit 269cae1

File tree

1 file changed

+10
-45
lines changed

1 file changed

+10
-45
lines changed
Lines changed: 10 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,20 @@
11
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5
22
# RUN: llc -mtriple=amdgcn-amd-hsa -mcpu=gfx1031 -run-pass=si-fold-operands -o - %s | FileCheck %s
33
--- |
4-
@global = external addrspace(3) global i32
5-
64
define void @snork() {
7-
bb:
8-
br label %bb3
9-
10-
bb3:
11-
br label %bb5
12-
13-
bb5:
145
ret void
156
}
167
...
178
---
18-
name: snork
19-
body: |
20-
; CHECK-LABEL: name: snork
21-
; CHECK: bb.0.bb:
22-
; CHECK-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
23-
; CHECK-NEXT: {{ $}}
24-
; CHECK-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 0
25-
; CHECK-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE [[S_MOV_B32_]], %subreg.sub0, [[S_MOV_B32_]], %subreg.sub1, [[S_MOV_B32_]], %subreg.sub2, [[S_MOV_B32_]], %subreg.sub3
26-
; CHECK-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @global, implicit $exec
27-
; CHECK-NEXT: [[COPY:%[0-9]+]]:vreg_128 = COPY [[REG_SEQUENCE]]
28-
; CHECK-NEXT: DS_WRITE_B128_gfx9 killed [[V_MOV_B32_e32_]], [[COPY]], 32, 0, implicit $exec :: (store (s128) into `ptr addrspace(3) getelementptr inbounds nuw (i8, ptr addrspace(3) @global, i32 32)`, addrspace 3)
29-
; CHECK-NEXT: S_CMP_LG_U32 0, 0, implicit-def $scc
30-
; CHECK-NEXT: S_CBRANCH_SCC1 %bb.2, implicit $scc
31-
; CHECK-NEXT: S_BRANCH %bb.1
32-
; CHECK-NEXT: {{ $}}
33-
; CHECK-NEXT: bb.1.bb3:
34-
; CHECK-NEXT: successors: %bb.2(0x80000000)
35-
; CHECK-NEXT: {{ $}}
36-
; CHECK-NEXT: bb.2.bb5:
37-
; CHECK-NEXT: SI_RETURN
38-
bb.0.bb:
39-
successors: %bb.1, %bb.2
40-
41-
%9:sreg_32 = S_MOV_B32 0
42-
%10:sgpr_128 = REG_SEQUENCE %9, %subreg.sub0, %9, %subreg.sub1, %9, %subreg.sub2, %9, %subreg.sub3
43-
%11:vgpr_32 = V_MOV_B32_e32 target-flags(amdgpu-abs32-lo) @global, implicit $exec
44-
%12:vreg_128 = COPY %10
45-
DS_WRITE_B128_gfx9 killed %11, %12, 32, 0, implicit $exec :: (store (s128) into `ptr addrspace(3) getelementptr inbounds nuw (i8, ptr addrspace(3) @global, i32 32)`, addrspace 3)
46-
%15:sreg_32 = S_OR_B32 %10.sub0, %10.sub3, implicit-def dead $scc
47-
S_CMP_LG_U32 killed %15, 0, implicit-def $scc
48-
S_CBRANCH_SCC1 %bb.2, implicit $scc
49-
S_BRANCH %bb.1
50-
51-
bb.1.bb3:
52-
53-
bb.2.bb5:
9+
name: snork
10+
body: |
11+
bb.0:
12+
; CHECK-LABEL: name: snork
13+
; CHECK: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 0
14+
; CHECK-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sgpr_128 = REG_SEQUENCE undef [[S_MOV_B32_]], %subreg.sub0, undef [[S_MOV_B32_]], %subreg.sub1, undef [[S_MOV_B32_]], %subreg.sub2, undef [[S_MOV_B32_]], %subreg.sub3
15+
; CHECK-NEXT: SI_RETURN
16+
%0:sreg_32 = S_MOV_B32 0
17+
%1:sgpr_128 = REG_SEQUENCE undef %0, %subreg.sub0, undef %0, %subreg.sub1, undef %0, %subreg.sub2, undef %0, %subreg.sub3
18+
%2:sreg_32 = S_OR_B32 undef %1.sub0, undef %1.sub3, implicit-def dead $scc
5419
SI_RETURN
5520
...

0 commit comments

Comments
 (0)