diff options
Diffstat (limited to 'test/463-checker-boolean-simplifier/src')
-rw-r--r-- | test/463-checker-boolean-simplifier/src/Main.java | 214 |
1 files changed, 107 insertions, 107 deletions
diff --git a/test/463-checker-boolean-simplifier/src/Main.java b/test/463-checker-boolean-simplifier/src/Main.java index e2374480c6..0b75930146 100644 --- a/test/463-checker-boolean-simplifier/src/Main.java +++ b/test/463-checker-boolean-simplifier/src/Main.java @@ -37,33 +37,33 @@ public class Main { * empty branches removed. */ - // CHECK-START: boolean Main.BooleanNot(boolean) boolean_simplifier (before) - // CHECK-DAG: <<Param:z\d+>> ParameterValue - // CHECK-DAG: <<Const0:i\d+>> IntConstant 0 - // CHECK-DAG: <<Const1:i\d+>> IntConstant 1 - // CHECK-DAG: If [<<Param>>] - // CHECK-DAG: <<Phi:i\d+>> Phi [<<Const1>>,<<Const0>>] - // CHECK-DAG: Return [<<Phi>>] - - // CHECK-START: boolean Main.BooleanNot(boolean) boolean_simplifier (before) - // CHECK: Goto - // CHECK: Goto - // CHECK: Goto - // CHECK-NOT: Goto - - // CHECK-START: boolean Main.BooleanNot(boolean) boolean_simplifier (after) - // CHECK-DAG: <<Param:z\d+>> ParameterValue - // CHECK-DAG: <<Const0:i\d+>> IntConstant 0 - // CHECK-DAG: <<NotParam:z\d+>> BooleanNot [<<Param>>] - // CHECK-DAG: Return [<<NotParam>>] - - // CHECK-START: boolean Main.BooleanNot(boolean) boolean_simplifier (after) - // CHECK-NOT: If - // CHECK-NOT: Phi - - // CHECK-START: boolean Main.BooleanNot(boolean) boolean_simplifier (after) - // CHECK: Goto - // CHECK-NOT: Goto + /// CHECK-START: boolean Main.BooleanNot(boolean) boolean_simplifier (before) + /// CHECK-DAG: <<Param:z\d+>> ParameterValue + /// CHECK-DAG: <<Const0:i\d+>> IntConstant 0 + /// CHECK-DAG: <<Const1:i\d+>> IntConstant 1 + /// CHECK-DAG: If [<<Param>>] + /// CHECK-DAG: <<Phi:i\d+>> Phi [<<Const1>>,<<Const0>>] + /// CHECK-DAG: Return [<<Phi>>] + + /// CHECK-START: boolean Main.BooleanNot(boolean) boolean_simplifier (before) + /// CHECK: Goto + /// CHECK: Goto + /// CHECK: Goto + /// CHECK-NOT: Goto + + /// CHECK-START: boolean Main.BooleanNot(boolean) boolean_simplifier (after) + /// CHECK-DAG: <<Param:z\d+>> ParameterValue + /// CHECK-DAG: <<Const0:i\d+>> IntConstant 0 + /// CHECK-DAG: <<NotParam:z\d+>> BooleanNot [<<Param>>] + /// CHECK-DAG: Return [<<NotParam>>] + + /// CHECK-START: boolean Main.BooleanNot(boolean) boolean_simplifier (after) + /// CHECK-NOT: If + /// CHECK-NOT: Phi + + /// CHECK-START: boolean Main.BooleanNot(boolean) boolean_simplifier (after) + /// CHECK: Goto + /// CHECK-NOT: Goto public static boolean BooleanNot(boolean x) { return !x; @@ -74,23 +74,23 @@ public class Main { * and 0 when False. */ - // CHECK-START: boolean Main.GreaterThan(int, int) boolean_simplifier (before) - // CHECK-DAG: <<ParamX:i\d+>> ParameterValue - // CHECK-DAG: <<ParamY:i\d+>> ParameterValue - // CHECK-DAG: <<Const0:i\d+>> IntConstant 0 - // CHECK-DAG: <<Const1:i\d+>> IntConstant 1 - // CHECK-DAG: <<Cond:z\d+>> GreaterThan [<<ParamX>>,<<ParamY>>] - // CHECK-DAG: If [<<Cond>>] - // CHECK-DAG: <<Phi:i\d+>> Phi [<<Const0>>,<<Const1>>] - // CHECK-DAG: Return [<<Phi>>] - - // CHECK-START: boolean Main.GreaterThan(int, int) boolean_simplifier (after) - // CHECK-DAG: <<ParamX:i\d+>> ParameterValue - // CHECK-DAG: <<ParamY:i\d+>> ParameterValue - // CHECK-DAG: <<Const0:i\d+>> IntConstant 0 - // CHECK-DAG: <<Const1:i\d+>> IntConstant 1 - // CHECK-DAG: <<Cond:z\d+>> GreaterThan [<<ParamX>>,<<ParamY>>] - // CHECK-DAG: Return [<<Cond>>] + /// CHECK-START: boolean Main.GreaterThan(int, int) boolean_simplifier (before) + /// CHECK-DAG: <<ParamX:i\d+>> ParameterValue + /// CHECK-DAG: <<ParamY:i\d+>> ParameterValue + /// CHECK-DAG: <<Const0:i\d+>> IntConstant 0 + /// CHECK-DAG: <<Const1:i\d+>> IntConstant 1 + /// CHECK-DAG: <<Cond:z\d+>> GreaterThan [<<ParamX>>,<<ParamY>>] + /// CHECK-DAG: If [<<Cond>>] + /// CHECK-DAG: <<Phi:i\d+>> Phi [<<Const0>>,<<Const1>>] + /// CHECK-DAG: Return [<<Phi>>] + + /// CHECK-START: boolean Main.GreaterThan(int, int) boolean_simplifier (after) + /// CHECK-DAG: <<ParamX:i\d+>> ParameterValue + /// CHECK-DAG: <<ParamY:i\d+>> ParameterValue + /// CHECK-DAG: <<Const0:i\d+>> IntConstant 0 + /// CHECK-DAG: <<Const1:i\d+>> IntConstant 1 + /// CHECK-DAG: <<Cond:z\d+>> GreaterThan [<<ParamX>>,<<ParamY>>] + /// CHECK-DAG: Return [<<Cond>>] public static boolean GreaterThan(int x, int y) { return (x <= y) ? false : true; @@ -101,26 +101,26 @@ public class Main { * and 1 when False. */ - // CHECK-START: boolean Main.LessThan(int, int) boolean_simplifier (before) - // CHECK-DAG: <<ParamX:i\d+>> ParameterValue - // CHECK-DAG: <<ParamY:i\d+>> ParameterValue - // CHECK-DAG: <<Const0:i\d+>> IntConstant 0 - // CHECK-DAG: <<Const1:i\d+>> IntConstant 1 - // CHECK-DAG: <<Cond:z\d+>> GreaterThanOrEqual [<<ParamX>>,<<ParamY>>] - // CHECK-DAG: If [<<Cond>>] - // CHECK-DAG: <<Phi:i\d+>> Phi [<<Const1>>,<<Const0>>] - // CHECK-DAG: Return [<<Phi>>] - - // CHECK-START: boolean Main.LessThan(int, int) boolean_simplifier (after) - // CHECK-DAG: <<ParamX:i\d+>> ParameterValue - // CHECK-DAG: <<ParamY:i\d+>> ParameterValue - // CHECK-DAG: <<Const0:i\d+>> IntConstant 0 - // CHECK-DAG: <<Const1:i\d+>> IntConstant 1 - // CHECK-DAG: <<Cond:z\d+>> LessThan [<<ParamX>>,<<ParamY>>] - // CHECK-DAG: Return [<<Cond>>] - - // CHECK-START: boolean Main.LessThan(int, int) boolean_simplifier (after) - // CHECK-NOT: GreaterThanOrEqual + /// CHECK-START: boolean Main.LessThan(int, int) boolean_simplifier (before) + /// CHECK-DAG: <<ParamX:i\d+>> ParameterValue + /// CHECK-DAG: <<ParamY:i\d+>> ParameterValue + /// CHECK-DAG: <<Const0:i\d+>> IntConstant 0 + /// CHECK-DAG: <<Const1:i\d+>> IntConstant 1 + /// CHECK-DAG: <<Cond:z\d+>> GreaterThanOrEqual [<<ParamX>>,<<ParamY>>] + /// CHECK-DAG: If [<<Cond>>] + /// CHECK-DAG: <<Phi:i\d+>> Phi [<<Const1>>,<<Const0>>] + /// CHECK-DAG: Return [<<Phi>>] + + /// CHECK-START: boolean Main.LessThan(int, int) boolean_simplifier (after) + /// CHECK-DAG: <<ParamX:i\d+>> ParameterValue + /// CHECK-DAG: <<ParamY:i\d+>> ParameterValue + /// CHECK-DAG: <<Const0:i\d+>> IntConstant 0 + /// CHECK-DAG: <<Const1:i\d+>> IntConstant 1 + /// CHECK-DAG: <<Cond:z\d+>> LessThan [<<ParamX>>,<<ParamY>>] + /// CHECK-DAG: Return [<<Cond>>] + + /// CHECK-START: boolean Main.LessThan(int, int) boolean_simplifier (after) + /// CHECK-NOT: GreaterThanOrEqual public static boolean LessThan(int x, int y) { return (x < y) ? true : false; @@ -131,57 +131,57 @@ public class Main { * Note that Phis are discovered retrospectively. */ - // CHECK-START: boolean Main.ValuesOrdered(int, int, int) boolean_simplifier (before) - // CHECK-DAG: <<ParamX:i\d+>> ParameterValue - // CHECK-DAG: <<ParamY:i\d+>> ParameterValue - // CHECK-DAG: <<ParamZ:i\d+>> ParameterValue - // CHECK-DAG: <<Const0:i\d+>> IntConstant 0 - // CHECK-DAG: <<Const1:i\d+>> IntConstant 1 - // CHECK-DAG: <<CondXY:z\d+>> GreaterThan [<<ParamX>>,<<ParamY>>] - // CHECK-DAG: If [<<CondXY>>] - // CHECK-DAG: <<CondYZ:z\d+>> GreaterThan [<<ParamY>>,<<ParamZ>>] - // CHECK-DAG: If [<<CondYZ>>] - // CHECK-DAG: <<CondXYZ:z\d+>> NotEqual [<<PhiXY:i\d+>>,<<PhiYZ:i\d+>>] - // CHECK-DAG: If [<<CondXYZ>>] - // CHECK-DAG: Return [<<PhiXYZ:i\d+>>] - // CHECK-DAG: <<PhiXY>> Phi [<<Const1>>,<<Const0>>] - // CHECK-DAG: <<PhiYZ>> Phi [<<Const1>>,<<Const0>>] - // CHECK-DAG: <<PhiXYZ>> Phi [<<Const1>>,<<Const0>>] - - // CHECK-START: boolean Main.ValuesOrdered(int, int, int) boolean_simplifier (after) - // CHECK-DAG: <<ParamX:i\d+>> ParameterValue - // CHECK-DAG: <<ParamY:i\d+>> ParameterValue - // CHECK-DAG: <<ParamZ:i\d+>> ParameterValue - // CHECK-DAG: <<CmpXY:z\d+>> LessThanOrEqual [<<ParamX>>,<<ParamY>>] - // CHECK-DAG: <<CmpYZ:z\d+>> LessThanOrEqual [<<ParamY>>,<<ParamZ>>] - // CHECK-DAG: <<CmpXYZ:z\d+>> Equal [<<CmpXY>>,<<CmpYZ>>] - // CHECK-DAG: Return [<<CmpXYZ>>] + /// CHECK-START: boolean Main.ValuesOrdered(int, int, int) boolean_simplifier (before) + /// CHECK-DAG: <<ParamX:i\d+>> ParameterValue + /// CHECK-DAG: <<ParamY:i\d+>> ParameterValue + /// CHECK-DAG: <<ParamZ:i\d+>> ParameterValue + /// CHECK-DAG: <<Const0:i\d+>> IntConstant 0 + /// CHECK-DAG: <<Const1:i\d+>> IntConstant 1 + /// CHECK-DAG: <<CondXY:z\d+>> GreaterThan [<<ParamX>>,<<ParamY>>] + /// CHECK-DAG: If [<<CondXY>>] + /// CHECK-DAG: <<CondYZ:z\d+>> GreaterThan [<<ParamY>>,<<ParamZ>>] + /// CHECK-DAG: If [<<CondYZ>>] + /// CHECK-DAG: <<CondXYZ:z\d+>> NotEqual [<<PhiXY:i\d+>>,<<PhiYZ:i\d+>>] + /// CHECK-DAG: If [<<CondXYZ>>] + /// CHECK-DAG: Return [<<PhiXYZ:i\d+>>] + /// CHECK-DAG: <<PhiXY>> Phi [<<Const1>>,<<Const0>>] + /// CHECK-DAG: <<PhiYZ>> Phi [<<Const1>>,<<Const0>>] + /// CHECK-DAG: <<PhiXYZ>> Phi [<<Const1>>,<<Const0>>] + + /// CHECK-START: boolean Main.ValuesOrdered(int, int, int) boolean_simplifier (after) + /// CHECK-DAG: <<ParamX:i\d+>> ParameterValue + /// CHECK-DAG: <<ParamY:i\d+>> ParameterValue + /// CHECK-DAG: <<ParamZ:i\d+>> ParameterValue + /// CHECK-DAG: <<CmpXY:z\d+>> LessThanOrEqual [<<ParamX>>,<<ParamY>>] + /// CHECK-DAG: <<CmpYZ:z\d+>> LessThanOrEqual [<<ParamY>>,<<ParamZ>>] + /// CHECK-DAG: <<CmpXYZ:z\d+>> Equal [<<CmpXY>>,<<CmpYZ>>] + /// CHECK-DAG: Return [<<CmpXYZ>>] public static boolean ValuesOrdered(int x, int y, int z) { return (x <= y) == (y <= z); } - // CHECK-START: int Main.NegatedCondition(boolean) boolean_simplifier (before) - // CHECK-DAG: <<Param:z\d+>> ParameterValue - // CHECK-DAG: <<Const42:i\d+>> IntConstant 42 - // CHECK-DAG: <<Const43:i\d+>> IntConstant 43 - // CHECK-DAG: <<NotParam:z\d+>> BooleanNot [<<Param>>] - // CHECK-DAG: If [<<NotParam>>] - // CHECK-DAG: <<Phi:i\d+>> Phi [<<Const42>>,<<Const43>>] - // CHECK-DAG: Return [<<Phi>>] - - // CHECK-START: int Main.NegatedCondition(boolean) boolean_simplifier (after) - // CHECK-DAG: <<Param:z\d+>> ParameterValue - // CHECK-DAG: <<Const42:i\d+>> IntConstant 42 - // CHECK-DAG: <<Const43:i\d+>> IntConstant 43 - // CHECK-DAG: If [<<Param>>] - // CHECK-DAG: <<Phi:i\d+>> Phi [<<Const42>>,<<Const43>>] - // CHECK-DAG: Return [<<Phi>>] + /// CHECK-START: int Main.NegatedCondition(boolean) boolean_simplifier (before) + /// CHECK-DAG: <<Param:z\d+>> ParameterValue + /// CHECK-DAG: <<Const42:i\d+>> IntConstant 42 + /// CHECK-DAG: <<Const43:i\d+>> IntConstant 43 + /// CHECK-DAG: <<NotParam:z\d+>> BooleanNot [<<Param>>] + /// CHECK-DAG: If [<<NotParam>>] + /// CHECK-DAG: <<Phi:i\d+>> Phi [<<Const42>>,<<Const43>>] + /// CHECK-DAG: Return [<<Phi>>] + + /// CHECK-START: int Main.NegatedCondition(boolean) boolean_simplifier (after) + /// CHECK-DAG: <<Param:z\d+>> ParameterValue + /// CHECK-DAG: <<Const42:i\d+>> IntConstant 42 + /// CHECK-DAG: <<Const43:i\d+>> IntConstant 43 + /// CHECK-DAG: If [<<Param>>] + /// CHECK-DAG: <<Phi:i\d+>> Phi [<<Const42>>,<<Const43>>] + /// CHECK-DAG: Return [<<Phi>>] // Note: The fact that branches are swapped is verified by running the test. - // CHECK-START: int Main.NegatedCondition(boolean) boolean_simplifier (after) - // CHECK-NOT: BooleanNot + /// CHECK-START: int Main.NegatedCondition(boolean) boolean_simplifier (after) + /// CHECK-NOT: BooleanNot public static int NegatedCondition(boolean x) { if (x != false) { |