%%{init: {"flowchart": {"htmlLabels": false}} }%%
graph TD
entry["op1=
op2="]
b1[" vc0.0: int = const 0;
v0.0: int = id op1;
v1.0: int = id op2;
v1.1 = v1.0
v0.1 = v0.0
jmp .cmp.val;"]
comp_val["comp_val:
v1.1 = v1.1
v0.1: = v0.1
v2.1: bool = lt v0.1 v1.1;
br v2.1 .if.1 .else.1;"]
if_1["if1: v3.2: int = sub v1.1 v0.1;
v3.3: = v3.2
jmp .loop.bound;"]
else_1[" v3.1: int = sub v0.1 v1.1;
v3.3 = v3.1
jmp .loop.bound;"]
loop_bound["loop_bound v3.3 = v3.3
v4.1: bool = eq v3.3 vc0.0;
br v4.1 .program.end .update.val;"]
update_val["br v2.1 .if.2 .else.2;"]
if_2[" v1.3: int = id v3.3;
v1.2 = v1.3
v0.2 = v0.1
jmp .back;"]
else_2[" v0.3: int = id v3.3;
v1.2 = v1.1 v1.3
v0.2 = v0.3 v0.1
jmp .back;"]
back[" v1.2= v1.2
v0.2: = v0.2
v3.0 = v3.3
v2.0 = v2.1
v1.1 = v1.2
v0.1 = v0.2
jmp .cmp.val;"]
pend["= v1.1"]
entry -- op1 op2 --> b1
b1 -- Xv1.1 Xv0.1 --> comp_val
comp_val -- v1_1 xv0_1 --> if_1
comp_val -- Xv_1 Xv0_1 --> else_1
if_1 -- Xv1_1 Xv3_3 --> loop_bound
else_1 -- Xv1_1 Xv3_3--> loop_bound
loop_bound -- Xv1_1 --> pend
loop_bound --> update_val
update_val -- v4_1 v3_3 v0_2 vc0_0 v0_1--> if_2
update_val -- v4_1 v3_3 v0_2 vc0_0 v0_1 --> else_2
if_2 -- v4_1 v3_3 vc0_0 v1_3 v0_1--> back
else_2 -- v4_1 v3_3 v9_2 vc0_0 v1_1 v0_3--> back
back-- xv1.1 Xv0.0--> comp_val
%%{init: {"flowchart": {"htmlLabels": false}} }%%
graph TD
entry["op1=
op2="]
b1[" vc0.0: int = const 0;
v0.0: int = id op1;
v1.0: int = id op2;
v1.1 = v1.0
v0.1 = v0.0
jmp .cmp.val;"]
comp_val["comp_val:
v1.1 = v1.1
v0.1: = v0.1
v2.1: bool = lt v0.1 v1.1;
br v2.1 .if.1 .else.1;"]
if_1["if1: v3.2: int = sub v1.1 v0.1;
v3.3: = v3.2
jmp .loop.bound;"]
else_1[" v3.1: int = sub v0.1 v1.1;
v3.3 = v3.1
jmp .loop.bound;"]
loop_bound["loop_bound v3.3 = v3.3
v4.1: bool = eq v3.3 vc0.0;
br v4.1 .program.end .update.val;"]
update_val["br v2.1 .if.2 .else.2;"]
if_2[" v1.3: int = id v3.3;
v1.2 = v1.3
v0.2 = v0.1
jmp .back;"]
else_2[" v0.3: int = id v3.3;
v1.2 = v1.1 v1.3
v0.2 = v0.3 v0.1
jmp .back;"]
back[" v1.2= v1.2
v0.2: = v0.2
v3.0 = v3.3
v2.0 = v2.1
v1.1 = v1.2
v0.1 = v0.2
jmp .cmp.val;"]
pend["= v1.1"]
entry -- op1 op2 --> b1
b1 -- Xv1.1 Xv0.1 --> comp_val
comp_val -- v1_1 xv0_1 --> if_1
comp_val -- Xv_1 Xv0_1 --> else_1
if_1 -- Xv1_1 Xv3_3 --> loop_bound
else_1 -- Xv1_1 Xv3_3--> loop_bound
loop_bound -- Xv1_1 --> pend
loop_bound --> update_val
update_val -- v4_1 v3_3 v0_2 vc0_0 v0_1--> if_2
update_val -- v4_1 v3_3 v0_2 vc0_0 v0_1 --> else_2
if_2 -- v4_1 v3_3 vc0_0 v1_3 v0_1--> back
else_2 -- v4_1 v3_3 v9_2 vc0_0 v1_1 v0_3--> back
back-- xv1.1 Xv0.0--> comp_val
other
entry – a b –> b1 b1 –v1_0 v0_0 v0_1 + c m–> comp_val comp_val – v1_1 v0_1 + c m –> if_1
comp_val – v0_1 v1_1 c m –> else_1 if_1 – v3_2 v1_1 c m –> loop_bound else_1 – v3_1 v1_1 c m –> loop_bound loop_bound – m –> pend loop_bound –c –> update_val update_val – v3_3 v0_2 c v0_1 g –> if_2 update_val – v3_3 v0_2 c v0_1 g –> else_2 if_2 – v4_1 v3_3 c v1_3 v0_1–> back else_2 – v3_3 v9_2 c v1_1 v0_3–> back back– v3_3 v1_2 c p1 –> comp_val
```
Back to top