val bench = List(
ArrayDef("mem", 30000),
Assign("ptr", Num(15000)),
Assign("ptr", Aop("+", Var("ptr"), Num(1))),
AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(2))),
While(
Bop("!=", Ref("mem", Var("ptr")), Num(0)),
List(
Assign("ptr", Aop("-", Var("ptr"), Num(1))),
AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(13))),
Assign("ptr", Aop("+", Var("ptr"), Num(1))),
AssignA("mem", Var("ptr"), Aop("-", Ref("mem", Var("ptr")), Num(1))),
Skip
)
),
Assign("ptr", Aop("-", Var("ptr"), Num(1))),
While(
Bop("!=", Ref("mem", Var("ptr")), Num(0)),
List(
While(
Bop("!=", Ref("mem", Var("ptr")), Num(0)),
List(
Assign("ptr", Aop("+", Var("ptr"), Num(1))),
AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(1))),
Assign("ptr", Aop("+", Var("ptr"), Num(1))),
AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(1))),
Assign("ptr", Aop("-", Var("ptr"), Num(2))),
AssignA("mem", Var("ptr"), Aop("-", Ref("mem", Var("ptr")), Num(1))),
Skip
)
),
Assign("ptr", Aop("+", Var("ptr"), Num(1))),
While(
Bop("!=", Ref("mem", Var("ptr")), Num(0)),
List(
Assign("ptr", Aop("-", Var("ptr"), Num(1))),
AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(1))),
Assign("ptr", Aop("+", Var("ptr"), Num(1))),
AssignA("mem", Var("ptr"), Aop("-", Ref("mem", Var("ptr")), Num(1))),
Skip
)
),
AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(8))),
While(
Bop("!=", Ref("mem", Var("ptr")), Num(0)),
List(
Assign("ptr", Aop("+", Var("ptr"), Num(1))),
AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(8))),
Assign("ptr", Aop("-", Var("ptr"), Num(1))),
AssignA("mem", Var("ptr"), Aop("-", Ref("mem", Var("ptr")), Num(1))),
Skip
)
),
Assign("ptr", Aop("+", Var("ptr"), Num(1))),
Assign("x", Ref("mem", Var("ptr"))),
Write("x"),
AssignA("mem", Var("ptr"), Num(0)),
Assign("ptr", Aop("-", Var("ptr"), Num(2))),
Assign("ptr", Aop("+", Var("ptr"), Num(1))),
AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(10))),
While(
Bop("!=", Ref("mem", Var("ptr")), Num(0)),
List(
Assign("ptr", Aop("+", Var("ptr"), Num(1))),
AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(10))),
While(
Bop("!=", Ref("mem", Var("ptr")), Num(0)),
List(
Assign("ptr", Aop("+", Var("ptr"), Num(1))),
AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(2))),
AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(8))),
While(
Bop("!=", Ref("mem", Var("ptr")), Num(0)),
List(
Assign("ptr", Aop("+", Var("ptr"), Num(1))),
AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(10))),
While(
Bop("!=", Ref("mem", Var("ptr")), Num(0)),
List(
Assign("ptr", Aop("+", Var("ptr"), Num(1))),
AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(10))),
While(
Bop("!=", Ref("mem", Var("ptr")), Num(0)),
List(
Assign("ptr", Aop("+", Var("ptr"), Num(1))),
AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(10))),
While(
Bop("!=", Ref("mem", Var("ptr")), Num(0)),
List(
Assign("ptr", Aop("+", Var("ptr"), Num(1))),
AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(1))),
AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(9))),
AssignA("mem", Var("ptr"), Num(0)),
Assign("ptr", Aop("-", Var("ptr"), Num(1))),
AssignA("mem", Var("ptr"), Aop("-", Ref("mem", Var("ptr")), Num(1))),
Skip
)
),
Assign("ptr", Aop("-", Var("ptr"), Num(1))),
AssignA("mem", Var("ptr"), Aop("-", Ref("mem", Var("ptr")), Num(1))),
Skip
)
),
Assign("ptr", Aop("-", Var("ptr"), Num(1))),
AssignA("mem", Var("ptr"), Aop("-", Ref("mem", Var("ptr")), Num(1))),
Skip
)
),
Assign("ptr", Aop("-", Var("ptr"), Num(1))),
AssignA("mem", Var("ptr"), Aop("-", Ref("mem", Var("ptr")), Num(1))),
Skip
)
),
Assign("ptr", Aop("-", Var("ptr"), Num(1))),
AssignA("mem", Var("ptr"), Aop("-", Ref("mem", Var("ptr")), Num(1))),
Skip
)
),
Assign("ptr", Aop("-", Var("ptr"), Num(1))),
AssignA("mem", Var("ptr"), Aop("-", Ref("mem", Var("ptr")), Num(1))),
Skip
)
),
Assign("ptr", Aop("-", Var("ptr"), Num(1))),
AssignA("mem", Var("ptr"), Aop("-", Ref("mem", Var("ptr")), Num(1))),
Skip
)
),
AssignA("mem", Var("ptr"), Aop("+", Ref("mem", Var("ptr")), Num(10))),
Assign("x", Ref("mem", Var("ptr"))),
Write("x"),
Skip
)