test

%%{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