2 // This test excercises a few new optimizations that were entered in the context
3 // of Binary operators and EmitBranchable.
5 // There are a number of cases:
7 // EmitBranchable can be called with an `onTrue' (false for if, true for loops).
9 // The == and != operators handle the Null compares specially
18 static bool f = false;
20 static int fcalls = 0;
21 static int tcalls = 0;
38 // Ands in the if context
52 Console.WriteLine ("");
78 if (one < two && four > three){
79 if (one == one && two != three){
86 if (one == two || two != two)
91 if (o == null || false){
94 if (o != null || false)
99 if (true || o == null){
100 if (o != null || o == null){
101 if (o == null && o != null)
103 if (o == null && one == two)
105 if (one == one && o != null)
108 if (two == two && o == null)
120 // This tests emitbranchable with an `onTrue' set to tru
122 static int test_while ()
145 while (one < two && two > one){
152 while (one < one || two > one){
159 while (one < one || two > two){
166 while (one < two && t){
173 while (one < one || t){
180 while (one < one || f){
191 static int test_inline ()
206 if (o == null || false)
211 Console.WriteLine ("V: "+ o);
224 Console.WriteLine ("test ok");