Files
wasmtime/cranelift/filetests/filetests/domtree/loops2.clif
Trevor Elliott a5698cedf8 cranelift: Remove brz and brnz (#5630)
Remove the brz and brnz instructions, as their behavior is now redundant with brif.
2023-01-30 20:34:56 +00:00

82 lines
1.8 KiB
Plaintext

test domtree
function %loop1(i32) {
block0(v0: i32):
brif v0, block10, block1 ; dominates: block10 block1 block6
block10:
brif v0, block2, block3 ; dominates: block2 block9 block3
block1:
jump block6
block2:
brif v0, block5, block4 ; dominates: block5 block4 block7 block8
block3:
jump block9
block4:
brif v0, block11, block4 ; dominates: block11
block11:
brif v0, block6, block7
block5:
brif v0, block12, block7 ; dominates: block12
block12:
brif v0, block8, block9
block6:
return
block7:
jump block8
block8:
return
block9:
return
}
; check: domtree_preorder {
; nextln: block0: block10 block1 block6
; nextln: block10: block2 block3 block9
; nextln: block2: block5 block4 block7 block8
; nextln: block5: block12
; nextln: block12:
; nextln: block4: block11
; nextln: block11:
; nextln: block7:
; nextln: block8:
; nextln: block3:
; nextln: block9:
; nextln: block1:
; nextln: block6:
; nextln: }
function %loop2(i32) system_v {
block0(v0: i32):
brif v0, block2, block1 ; dominates: block2 block1 block3 block4 block5
block1:
jump block3
block2:
brif v0, block5, block4
block3:
jump block4
block4:
brif v0, block5, block3
block5:
brif v0, block6, block4 ; dominates: block6
block6:
return
}
; check: cfg_postorder:
; sameln: block6
; sameln: block5
; sameln: block4
; sameln: block3
; sameln: block1
; sameln: block2
; sameln: block0
; check: domtree_preorder {
; nextln: block0: block2 block1 block3 block4 block5
; nextln: block2:
; nextln: block1:
; nextln: block3:
; nextln: block4:
; nextln: block5: block6
; nextln: block6:
; nextln: }