Files
wasmtime/cranelift/filetests/filetests/licm/critical-edge.clif
2019-07-08 15:17:49 +02:00

55 lines
1.1 KiB
Plaintext

test licm
target riscv32
; The loop in this function is entered from a critical edge.
function %critical_edge(i32, i32) -> i32 {
ebb0(v0: i32, v7: i32):
[SBzero#38] brnz v7, ebb2(v0)
[UJ#1b] jump ebb1
ebb1:
[Iret#19] return v0
ebb2(v1: i32):
v2 = iconst.i32 1
v3 = iconst.i32 2
v4 = iadd v2, v3
[SBzero#18] brz v1, ebb4(v1)
[UJ#1b] jump ebb3
ebb3:
v5 = isub v1, v2
[UJ#1b] jump ebb2(v5)
ebb4(v6: i32):
[Iret#19] return v6
}
; sameln: function %critical_edge
; nextln: ebb0(v0: i32, v7: i32):
; nextln: brnz v7, ebb5(v0)
; nextln: jump ebb1
; nextln:
; nextln: ebb1:
; nextln: return v0
; nextln:
; nextln: ebb5(v8: i32):
; nextln: v2 = iconst.i32 1
; nextln: v3 = iconst.i32 2
; nextln: v4 = iadd v2, v3
; nextln: jump ebb2(v8)
; nextln:
; nextln: ebb2(v1: i32):
; nextln: brz v1, ebb4(v1)
; nextln: jump ebb3
; nextln:
; nextln: ebb3:
; nextln: v5 = isub.i32 v1, v2
; nextln: jump ebb2(v5)
; nextln:
; nextln: ebb4(v6: i32):
; nextln: return v6
; nextln: }