summaryrefslogtreecommitdiff
path: root/boil/tests/QuickSort.opt.vapor
diff options
context:
space:
mode:
Diffstat (limited to 'boil/tests/QuickSort.opt.vapor')
-rw-r--r--boil/tests/QuickSort.opt.vapor378
1 files changed, 378 insertions, 0 deletions
diff --git a/boil/tests/QuickSort.opt.vapor b/boil/tests/QuickSort.opt.vapor
new file mode 100644
index 0000000..6e14e5a
--- /dev/null
+++ b/boil/tests/QuickSort.opt.vapor
@@ -0,0 +1,378 @@
+
+const empty_QS
+
+
+func Main()
+ t.0 = HeapAllocZ(8)
+ if t.0 goto :null1
+ Error("null pointer")
+ null1:
+ t.1 = call :QS.Start(t.0 10)
+ PrintIntS(t.1)
+ ret
+
+func QS.Start(this sz)
+ aux01 = call :QS.Init(this sz)
+ aux01 = call :QS.Print(this)
+ PrintIntS(9999)
+ t.0 = [this+4]
+ aux01 = Sub(t.0 1)
+ aux01 = call :QS.Sort(this 0 aux01)
+ aux01 = call :QS.Print(this)
+ ret 0
+
+func QS.Sort(this left right)
+ t = 0
+ t.0 = LtS(left right)
+ if0 t.0 goto :if1_else
+ t.1 = [this+0]
+ if t.1 goto :null2
+ Error("null pointer")
+ null2:
+ t.2 = [t.1]
+ t.2 = Lt(right t.2)
+ if t.2 goto :bounds1
+ Error("array index out of bounds")
+ bounds1:
+ t.2 = MulS(right 4)
+ t.2 = Add(t.2 t.1)
+ v = [t.2+4]
+ i = Sub(left 1)
+ j = right
+ cont01 = 1
+ while1_top:
+ if0 cont01 goto :while1_end
+ cont02 = 1
+ while2_top:
+ if0 cont02 goto :while2_end
+ i = Add(i 1)
+ t.3 = [this+0]
+ if t.3 goto :null3
+ Error("null pointer")
+ null3:
+ t.4 = [t.3]
+ t.4 = Lt(i t.4)
+ if t.4 goto :bounds2
+ Error("array index out of bounds")
+ bounds2:
+ t.4 = MulS(i 4)
+ t.4 = Add(t.4 t.3)
+ aux03 = [t.4+4]
+ t.5 = LtS(aux03 v)
+ if t.5 goto :if2_else
+ cont02 = 0
+ goto :if2_end
+ if2_else:
+ cont02 = 1
+ if2_end:
+ goto :while2_top
+ while2_end:
+ cont02 = 1
+ while3_top:
+ if0 cont02 goto :while3_end
+ j = Sub(j 1)
+ t.6 = [this+0]
+ if t.6 goto :null4
+ Error("null pointer")
+ null4:
+ t.7 = [t.6]
+ t.7 = Lt(j t.7)
+ if t.7 goto :bounds3
+ Error("array index out of bounds")
+ bounds3:
+ t.7 = MulS(j 4)
+ t.7 = Add(t.7 t.6)
+ aux03 = [t.7+4]
+ t.8 = LtS(v aux03)
+ if t.8 goto :if3_else
+ cont02 = 0
+ goto :if3_end
+ if3_else:
+ cont02 = 1
+ if3_end:
+ goto :while3_top
+ while3_end:
+ t.9 = [this+0]
+ if t.9 goto :null5
+ Error("null pointer")
+ null5:
+ t.10 = [t.9]
+ t.10 = Lt(i t.10)
+ if t.10 goto :bounds4
+ Error("array index out of bounds")
+ bounds4:
+ t.10 = MulS(i 4)
+ t.10 = Add(t.10 t.9)
+ t = [t.10+4]
+ t.11 = [this+0]
+ if t.11 goto :null6
+ Error("null pointer")
+ null6:
+ t.12 = [t.11]
+ t.12 = Lt(i t.12)
+ if t.12 goto :bounds5
+ Error("array index out of bounds")
+ bounds5:
+ t.12 = MulS(i 4)
+ t.12 = Add(t.12 t.11)
+ t.13 = [this+0]
+ if t.13 goto :null7
+ Error("null pointer")
+ null7:
+ t.14 = [t.13]
+ t.14 = Lt(j t.14)
+ if t.14 goto :bounds6
+ Error("array index out of bounds")
+ bounds6:
+ t.14 = MulS(j 4)
+ t.14 = Add(t.14 t.13)
+ t.15 = [t.14+4]
+ [t.12+4] = t.15
+ t.16 = [this+0]
+ if t.16 goto :null8
+ Error("null pointer")
+ null8:
+ t.17 = [t.16]
+ t.17 = Lt(j t.17)
+ if t.17 goto :bounds7
+ Error("array index out of bounds")
+ bounds7:
+ t.17 = MulS(j 4)
+ t.17 = Add(t.17 t.16)
+ [t.17+4] = t
+ t.18 = Add(i 1)
+ t.19 = LtS(j t.18)
+ if0 t.19 goto :if4_else
+ cont01 = 0
+ goto :if4_end
+ if4_else:
+ cont01 = 1
+ if4_end:
+ goto :while1_top
+ while1_end:
+ t.20 = [this+0]
+ if t.20 goto :null9
+ Error("null pointer")
+ null9:
+ t.21 = [t.20]
+ t.21 = Lt(j t.21)
+ if t.21 goto :bounds8
+ Error("array index out of bounds")
+ bounds8:
+ t.21 = MulS(j 4)
+ t.21 = Add(t.21 t.20)
+ t.22 = [this+0]
+ if t.22 goto :null10
+ Error("null pointer")
+ null10:
+ t.23 = [t.22]
+ t.23 = Lt(i t.23)
+ if t.23 goto :bounds9
+ Error("array index out of bounds")
+ bounds9:
+ t.23 = MulS(i 4)
+ t.23 = Add(t.23 t.22)
+ t.24 = [t.23+4]
+ [t.21+4] = t.24
+ t.25 = [this+0]
+ if t.25 goto :null11
+ Error("null pointer")
+ null11:
+ t.26 = [t.25]
+ t.26 = Lt(i t.26)
+ if t.26 goto :bounds10
+ Error("array index out of bounds")
+ bounds10:
+ t.26 = MulS(i 4)
+ t.26 = Add(t.26 t.25)
+ t.27 = [this+0]
+ if t.27 goto :null12
+ Error("null pointer")
+ null12:
+ t.28 = [t.27]
+ t.28 = Lt(right t.28)
+ if t.28 goto :bounds11
+ Error("array index out of bounds")
+ bounds11:
+ t.28 = MulS(right 4)
+ t.28 = Add(t.28 t.27)
+ t.29 = [t.28+4]
+ [t.26+4] = t.29
+ t.30 = [this+0]
+ if t.30 goto :null13
+ Error("null pointer")
+ null13:
+ t.31 = [t.30]
+ t.31 = Lt(right t.31)
+ if t.31 goto :bounds12
+ Error("array index out of bounds")
+ bounds12:
+ t.31 = MulS(right 4)
+ t.31 = Add(t.31 t.30)
+ [t.31+4] = t
+ t.32 = Sub(i 1)
+ nt = call :QS.Sort(this left t.32)
+ t.33 = Add(i 1)
+ nt = call :QS.Sort(this t.33 right)
+ goto :if1_end
+ if1_else:
+ nt = 0
+ if1_end:
+ ret 0
+
+func QS.Print(this)
+ j = 0
+ while4_top:
+ t.0 = [this+4]
+ t.1 = LtS(j t.0)
+ if0 t.1 goto :while4_end
+ t.2 = [this+0]
+ if t.2 goto :null14
+ Error("null pointer")
+ null14:
+ t.3 = [t.2]
+ t.3 = Lt(j t.3)
+ if t.3 goto :bounds13
+ Error("array index out of bounds")
+ bounds13:
+ t.3 = MulS(j 4)
+ t.3 = Add(t.3 t.2)
+ t.4 = [t.3+4]
+ PrintIntS(t.4)
+ j = Add(j 1)
+ goto :while4_top
+ while4_end:
+ ret 0
+
+func QS.Init(this sz)
+ [this+4] = sz
+ t.0 = call :AllocArray(sz)
+ [this+0] = t.0
+ t.1 = [this+0]
+ if t.1 goto :null15
+ Error("null pointer")
+ null15:
+ t.2 = [t.1]
+ t.2 = Lt(0 t.2)
+ if t.2 goto :bounds14
+ Error("array index out of bounds")
+ bounds14:
+ t.2 = MulS(0 4)
+ t.2 = Add(t.2 t.1)
+ [t.2+4] = 20
+ t.3 = [this+0]
+ if t.3 goto :null16
+ Error("null pointer")
+ null16:
+ t.4 = [t.3]
+ t.4 = Lt(1 t.4)
+ if t.4 goto :bounds15
+ Error("array index out of bounds")
+ bounds15:
+ t.4 = MulS(1 4)
+ t.4 = Add(t.4 t.3)
+ [t.4+4] = 7
+ t.5 = [this+0]
+ if t.5 goto :null17
+ Error("null pointer")
+ null17:
+ t.6 = [t.5]
+ t.6 = Lt(2 t.6)
+ if t.6 goto :bounds16
+ Error("array index out of bounds")
+ bounds16:
+ t.6 = MulS(2 4)
+ t.6 = Add(t.6 t.5)
+ [t.6+4] = 12
+ t.7 = [this+0]
+ if t.7 goto :null18
+ Error("null pointer")
+ null18:
+ t.8 = [t.7]
+ t.8 = Lt(3 t.8)
+ if t.8 goto :bounds17
+ Error("array index out of bounds")
+ bounds17:
+ t.8 = MulS(3 4)
+ t.8 = Add(t.8 t.7)
+ [t.8+4] = 18
+ t.9 = [this+0]
+ if t.9 goto :null19
+ Error("null pointer")
+ null19:
+ t.10 = [t.9]
+ t.10 = Lt(4 t.10)
+ if t.10 goto :bounds18
+ Error("array index out of bounds")
+ bounds18:
+ t.10 = MulS(4 4)
+ t.10 = Add(t.10 t.9)
+ [t.10+4] = 2
+ t.11 = [this+0]
+ if t.11 goto :null20
+ Error("null pointer")
+ null20:
+ t.12 = [t.11]
+ t.12 = Lt(5 t.12)
+ if t.12 goto :bounds19
+ Error("array index out of bounds")
+ bounds19:
+ t.12 = MulS(5 4)
+ t.12 = Add(t.12 t.11)
+ [t.12+4] = 11
+ t.13 = [this+0]
+ if t.13 goto :null21
+ Error("null pointer")
+ null21:
+ t.14 = [t.13]
+ t.14 = Lt(6 t.14)
+ if t.14 goto :bounds20
+ Error("array index out of bounds")
+ bounds20:
+ t.14 = MulS(6 4)
+ t.14 = Add(t.14 t.13)
+ [t.14+4] = 6
+ t.15 = [this+0]
+ if t.15 goto :null22
+ Error("null pointer")
+ null22:
+ t.16 = [t.15]
+ t.16 = Lt(7 t.16)
+ if t.16 goto :bounds21
+ Error("array index out of bounds")
+ bounds21:
+ t.16 = MulS(7 4)
+ t.16 = Add(t.16 t.15)
+ [t.16+4] = 9
+ t.17 = [this+0]
+ if t.17 goto :null23
+ Error("null pointer")
+ null23:
+ t.18 = [t.17]
+ t.18 = Lt(8 t.18)
+ if t.18 goto :bounds22
+ Error("array index out of bounds")
+ bounds22:
+ t.18 = MulS(8 4)
+ t.18 = Add(t.18 t.17)
+ [t.18+4] = 19
+ t.19 = [this+0]
+ if t.19 goto :null24
+ Error("null pointer")
+ null24:
+ t.20 = [t.19]
+ t.20 = Lt(9 t.20)
+ if t.20 goto :bounds23
+ Error("array index out of bounds")
+ bounds23:
+ t.20 = MulS(9 4)
+ t.20 = Add(t.20 t.19)
+ [t.20+4] = 5
+ ret 0
+
+func AllocArray(size)
+ bytes = MulS(size 4)
+ bytes = Add(bytes 4)
+ v = HeapAllocZ(bytes)
+ [v] = size
+ ret v