Files
wasmtime/cranelift/filetests/filetests/domtree/loops.clif
2019-07-08 15:17:49 +02:00

119 lines
2.3 KiB
Plaintext

test domtree
function %test(i32) {
ebb0(v0: i32):
brz v0, ebb1 ; dominates: ebb1 ebb3 ebb4 ebb5
jump ebb2 ; dominates: ebb2
ebb1:
jump ebb3
ebb2:
brz v0, ebb4
jump ebb5
ebb3:
jump ebb4
ebb4:
brz v0, ebb3
jump ebb5
ebb5:
brz v0, ebb4
jump ebb6 ; dominates: ebb6
ebb6:
return
}
; Fall-through-first, prune-at-source DFT:
;
; ebb0 {
; ebb0:brz v0, ebb1 {
; ebb0:jump ebb2 {
; ebb2 {
; ebb2:brz v2, ebb2 -
; ebb2:brz v3, ebb1 -
; ebb2:brz v4, ebb4 {
; ebb2: jump ebb5 {
; ebb5: jump ebb6 {
; ebb6 {}
; }
; }
; ebb4 {}
; }
; } ebb2
; }
; ebb1 {
; ebb1:jump ebb3 {
; ebb3 {}
; }
; } ebb1
; }
; } ebb0
;
; check: cfg_postorder:
; sameln: ebb6
; sameln: ebb5
; sameln: ebb3
; sameln: ebb4
; sameln: ebb2
; sameln: ebb1
; sameln: ebb0
; check: domtree_preorder {
; nextln: ebb0: ebb1 ebb2 ebb4 ebb3 ebb5
; nextln: ebb1:
; nextln: ebb2:
; nextln: ebb4:
; nextln: ebb3:
; nextln: ebb5: ebb6
; nextln: ebb6:
; nextln: }
function %loop2(i32) system_v {
ebb0(v0: i32):
brz v0, ebb1 ; dominates: ebb1 ebb3 ebb4 ebb5
jump ebb2 ; dominates: ebb2
ebb1:
jump ebb3
ebb2:
brz v0, ebb4
jump ebb5
ebb3:
jump ebb4
ebb4:
brz v0, ebb3
jump ebb8 ; dominates: ebb8
ebb8:
brnz v0, ebb5
jump ebb6 ; dominates: ebb6
ebb5:
brz v0, ebb4
jump ebb9 ; dominates: ebb9
ebb9:
trap user0
ebb6:
jump ebb7 ; dominates: ebb7
ebb7:
return
}
; check: cfg_postorder:
; sameln: ebb9
; sameln: ebb5
; sameln: ebb7
; sameln: ebb6
; sameln: ebb8
; sameln: ebb3
; sameln: ebb4
; sameln: ebb2
; sameln: ebb1
; sameln: ebb0
; check: domtree_preorder {
; nextln: ebb0: ebb1 ebb2 ebb4 ebb3 ebb5
; nextln: ebb1:
; nextln: ebb2:
; nextln: ebb4: ebb8
; nextln: ebb8: ebb6
; nextln: ebb6: ebb7
; nextln: ebb7:
; nextln: ebb3:
; nextln: ebb5: ebb9
; nextln: ebb9:
; nextln: }