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");