Skip to content

Commit 1d0f096

Browse files
precommit test case
1 parent 33091e8 commit 1d0f096

File tree

1 file changed

+72
-0
lines changed

1 file changed

+72
-0
lines changed

llvm/test/CodeGen/RISCV/simplify-condbr.ll

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,13 @@
55
; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
66
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0
77

8+
; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write)
9+
declare void @llvm.assume(i1 noundef) #0
10+
811
declare fastcc i1 @S_reginclass()
912

13+
declare fastcc ptr @Perl_av_store(i64)
14+
1015
define fastcc i32 @S_regrepeat(ptr %startposp, i32 %max, i8 %0, i1 %cmp343) nounwind {
1116
; CHECK-LABEL: S_regrepeat:
1217
; CHECK: # %bb.0: # %entry
@@ -104,4 +109,71 @@ if.end1497: ; preds = %if.else1492, %sw.ep
104109
ret i32 %c.0
105110
}
106111

112+
define ptr @Perl_pp_refassign(ptr %PL_stack_sp, i1 %tobool.not, i1 %tobool3.not, i1 %cond1) nounwind {
113+
; CHECK-LABEL: Perl_pp_refassign:
114+
; CHECK: # %bb.0: # %entry
115+
; CHECK-NEXT: andi a1, a1, 1
116+
; CHECK-NEXT: beqz a1, .LBB1_3
117+
; CHECK-NEXT: # %bb.1:
118+
; CHECK-NEXT: li a1, 0
119+
; CHECK-NEXT: andi a2, a2, 1
120+
; CHECK-NEXT: bnez a2, .LBB1_4
121+
; CHECK-NEXT: .LBB1_2: # %cond.true4
122+
; CHECK-NEXT: ld a0, 0(a0)
123+
; CHECK-NEXT: snez a0, a0
124+
; CHECK-NEXT: bnez a0, .LBB1_5
125+
; CHECK-NEXT: j .LBB1_6
126+
; CHECK-NEXT: .LBB1_3: # %cond.true
127+
; CHECK-NEXT: ld a1, 0(a0)
128+
; CHECK-NEXT: andi a2, a2, 1
129+
; CHECK-NEXT: beqz a2, .LBB1_2
130+
; CHECK-NEXT: .LBB1_4:
131+
; CHECK-NEXT: beqz zero, .LBB1_6
132+
; CHECK-NEXT: .LBB1_5: # %sw.bb85
133+
; CHECK-NEXT: addi sp, sp, -16
134+
; CHECK-NEXT: sd ra, 8(sp) # 8-byte Folded Spill
135+
; CHECK-NEXT: ld a0, 0(a1)
136+
; CHECK-NEXT: call Perl_av_store
137+
; CHECK-NEXT: ld ra, 8(sp) # 8-byte Folded Reload
138+
; CHECK-NEXT: addi sp, sp, 16
139+
; CHECK-NEXT: .LBB1_6: # %common.ret
140+
; CHECK-NEXT: li a0, 0
141+
; CHECK-NEXT: ret
142+
entry:
143+
br i1 %tobool.not, label %cond.end, label %cond.true
144+
145+
cond.true: ; preds = %entry
146+
%0 = load ptr, ptr %PL_stack_sp, align 8
147+
br label %cond.end
148+
149+
cond.end: ; preds = %cond.true, %entry
150+
%cond = phi ptr [ %0, %cond.true ], [ null, %entry ]
151+
br i1 %tobool3.not, label %cond.end7, label %cond.true4
152+
153+
cond.true4: ; preds = %cond.end
154+
%1 = load ptr, ptr %PL_stack_sp, align 8
155+
%2 = icmp ne ptr %1, null
156+
br label %cond.end7
157+
158+
cond.end7: ; preds = %cond.true4, %cond.end
159+
%cond84 = phi i1 [ %2, %cond.true4 ], [ false, %cond.end ]
160+
br i1 %cond1, label %if.end48, label %sw.bb
161+
162+
sw.bb: ; preds = %cond.end7
163+
call void @llvm.assume(i1 %tobool.not)
164+
br label %if.end48
165+
166+
if.end48: ; preds = %sw.bb, %cond.end7
167+
br i1 %cond84, label %sw.bb85, label %common.ret
168+
169+
common.ret: ; preds = %sw.bb85, %if.end48
170+
ret ptr null
171+
172+
sw.bb85: ; preds = %if.end48
173+
%3 = load i64, ptr %cond, align 8
174+
%call125 = call fastcc ptr @Perl_av_store(i64 %3)
175+
br label %common.ret
176+
}
177+
107178
attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
179+
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) }

0 commit comments

Comments
 (0)