Test6726999.java revision 11707:ad7af1afda7a
1/*
2 * Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25/*
26 * @test
27 * @bug 6726999
28 * @summary nsk/stress/jck12a/jck12a010 assert(n != NULL,"Bad immediate dominator info.");
29 *
30 * @run main/othervm -Xbatch -XX:+AggressiveOpts
31 *      -XX:CompileCommand=exclude,compiler.escapeAnalysis.Test6726999::dummy
32 *      compiler.escapeAnalysis.Test6726999
33 */
34
35package compiler.escapeAnalysis;
36
37public class Test6726999 {
38    static class Point {
39        int x;
40        int y;
41    }
42
43    void dummy() {
44        // Empty method to verify correctness of DebugInfo.
45        // Use -XX:CompileCommand=exclude,Test.dummy
46    }
47
48    int test0_0_0(int y) {
49        int x = 3;
50        Point p = new Point();
51        dummy();
52        p.x = x;
53        p.y = 3 * x + y;
54        return p.x * p.y;
55    }
56
57    int test0_0_1(int y) {
58        int x = 3;
59        Point p = null;
60        dummy();
61        p = new Point();
62        dummy();
63        p.x = x;
64        p.y = 3 * x + y;
65        return p.x * p.y;
66    }
67
68    int test0_0_2(int y) {
69        int x = 3;
70        Point p = new Point();
71        dummy();
72        p = new Point();
73        dummy();
74        p.x = x;
75        p.y = 3 * x + y;
76        return p.x * p.y;
77    }
78
79    int test0_0_3(int y) {
80        int x = 3;
81        Point p[] = new Point[1];
82        p[0] = new Point();
83        dummy();
84        p[0].x = x;
85        p[0].y = 3 * x + y;
86        return p[0].x * p[0].y;
87    }
88
89    int test0_0_4(int y) {
90        int x = 3;
91        Point p[] = new Point[1];
92        dummy();
93        p[0] = new Point();
94        dummy();
95        p[0].x = x;
96        p[0].y = 3 * x + y;
97        return p[0].x * p[0].y;
98    }
99
100    int test0_0_5(int y) {
101        int x = 3;
102        Point p[] = new Point[1];
103        dummy();
104        p[0] = null;
105        dummy();
106        p[0] = new Point();
107        dummy();
108        p[0].x = x;
109        p[0].y = 3 * x + y;
110        return p[0].x * p[0].y;
111    }
112
113    int test0_0_6(int y) {
114        int x = 3;
115        Point p[] = new Point[1];
116        p[0] = new Point();
117        dummy();
118        p[0] = new Point();
119        dummy();
120        p[0].x = x;
121        p[0].y = 3 * x + y;
122        return p[0].x * p[0].y;
123    }
124
125    int test0_1_3(int y) {
126        int x = 3;
127        Point p1 = new Point();
128        dummy();
129        Point p[] = new Point[1];
130        p[0] = p1;
131        dummy();
132        p[0].x = x;
133        p[0].y = 3 * x + y;
134        return p[0].x * p[0].y;
135    }
136
137    int test0_1_4(int y) {
138        int x = 3;
139        Point p1 = new Point();
140        dummy();
141        Point p[] = new Point[1];
142        dummy();
143        p[0] = p1;
144        dummy();
145        p[0].x = x;
146        p[0].y = 3 * x + y;
147        return p[0].x * p[0].y;
148    }
149
150    int test0_1_5(int y) {
151        int x = 3;
152        Point p1 = new Point();
153        dummy();
154        Point p[] = new Point[1];
155        dummy();
156        p[0] = null;
157        dummy();
158        p[0] = p1;
159        dummy();
160        p[0].x = x;
161        p[0].y = 3 * x + y;
162        return p[0].x * p[0].y;
163    }
164
165    int test0_1_6(int y) {
166        int x = 3;
167        Point p1 = new Point();
168        dummy();
169        Point p2 = new Point();
170        dummy();
171        Point p[] = new Point[1];
172        p[0] = p1;
173        dummy();
174        p[0] = p2;
175        dummy();
176        p[0].x = x;
177        p[0].y = 3 * x + y;
178        return p[0].x * p[0].y;
179    }
180
181    int test1_0_0(int y) {
182        Point p = new Point();
183        if ((y & 1) == 1) {
184            p = new Point();
185        }
186        int x = 3;
187        p.x = x;
188        p.y = 3 * x + y;
189        dummy();
190        return p.x * p.y;
191    }
192
193    int test1_0_1(int y) {
194        Point p = null;
195        if ((y & 1) == 1) {
196            p = new Point();
197        }
198        int x = 3;
199        if (p == null)
200            return (3 * x + y) * x;
201        p.x = x;
202        p.y = 3 * x + y;
203        dummy();
204        return p.x * p.y;
205    }
206
207    int test1_0_2(int y) {
208        Point p[] = new Point[1];
209        if ((y & 1) == 1) {
210            p[0] = new Point();
211        }
212        int x = 3;
213        if (p[0] == null)
214            return (3 * x + y) * x;
215        p[0].x = x;
216        p[0].y = 3 * x + y;
217        dummy();
218        return p[0].x * p[0].y;
219    }
220
221    int test1_0_3(int y) {
222        Point p[] = new Point[1];
223        p[0] = null;
224        if ((y & 1) == 1) {
225            p[0] = new Point();
226        }
227        int x = 3;
228        if (p[0] == null)
229            return (3 * x + y) * x;
230        p[0].x = x;
231        p[0].y = 3 * x + y;
232        dummy();
233        return p[0].x * p[0].y;
234    }
235
236    int test1_0_4(int y) {
237        Point p[] = new Point[1];
238        p[0] = new Point();
239        if ((y & 1) == 1) {
240            p[0] = new Point();
241        }
242        int x = 3;
243        if (p[0] == null)
244            return (3 * x + y) * x;
245        p[0].x = x;
246        p[0].y = 3 * x + y;
247        dummy();
248        return p[0].x * p[0].y;
249    }
250
251    int test1_0_5(int y) {
252        Point p[] = new Point[1];
253        if ((y & 1) == 1) {
254            p[0] = new Point();
255        } else {
256            p[0] = null;
257        }
258        int x = 3;
259        if (p[0] == null)
260            return (3 * x + y) * x;
261        p[0].x = x;
262        p[0].y = 3 * x + y;
263        dummy();
264        return p[0].x * p[0].y;
265    }
266
267    int test1_0_6(int y) {
268        Point p[] = new Point[1];
269        if ((y & 1) == 1) {
270            p[0] = new Point();
271        } else {
272            p[0] = new Point();
273        }
274        int x = 3;
275        if (p[0] == null)
276            return (3 * x + y) * x;
277        p[0].x = x;
278        p[0].y = 3 * x + y;
279        dummy();
280        return p[0].x * p[0].y;
281    }
282
283    int test1_1_0(int y) {
284        Point p = new Point();
285        if ((y & 1) == 1) {
286            dummy();
287            p = new Point();
288            dummy();
289        }
290        int x = 3;
291        p.x = x;
292        p.y = 3 * x + y;
293        dummy();
294        return p.x * p.y;
295    }
296
297    int test1_1_1(int y) {
298        Point p = null;
299        if ((y & 1) == 1) {
300            dummy();
301            p = new Point();
302            dummy();
303        }
304        int x = 3;
305        if (p == null)
306            return (3 * x + y) * x;
307        p.x = x;
308        p.y = 3 * x + y;
309        dummy();
310        return p.x * p.y;
311    }
312
313    int test1_1_2(int y) {
314        Point p[] = new Point[1];
315        if ((y & 1) == 1) {
316            dummy();
317            p[0] = new Point();
318            dummy();
319        }
320        int x = 3;
321        if (p[0] == null)
322            return (3 * x + y) * x;
323        p[0].x = x;
324        p[0].y = 3 * x + y;
325        dummy();
326        return p[0].x * p[0].y;
327    }
328
329    int test1_1_3(int y) {
330        Point p[] = new Point[1];
331        dummy();
332        p[0] = null;
333        if ((y & 1) == 1) {
334            dummy();
335            p[0] = new Point();
336            dummy();
337        }
338        int x = 3;
339        if (p[0] == null)
340            return (3 * x + y) * x;
341        p[0].x = x;
342        p[0].y = 3 * x + y;
343        dummy();
344        return p[0].x * p[0].y;
345    }
346
347    int test1_1_4(int y) {
348        Point p[] = new Point[1];
349        dummy();
350        p[0] = new Point();
351        if ((y & 1) == 1) {
352            dummy();
353            p[0] = new Point();
354            dummy();
355        }
356        int x = 3;
357        if (p[0] == null)
358            return (3 * x + y) * x;
359        p[0].x = x;
360        p[0].y = 3 * x + y;
361        dummy();
362        return p[0].x * p[0].y;
363    }
364
365    int test1_1_5(int y) {
366        Point p[] = new Point[1];
367        if ((y & 1) == 1) {
368            dummy();
369            p[0] = new Point();
370            dummy();
371        } else {
372            dummy();
373            p[0] = null;
374            dummy();
375        }
376        int x = 3;
377        if (p[0] == null)
378            return (3 * x + y) * x;
379        p[0].x = x;
380        p[0].y = 3 * x + y;
381        dummy();
382        return p[0].x * p[0].y;
383    }
384
385    int test1_1_6(int y) {
386        Point p[] = new Point[1];
387        if ((y & 1) == 1) {
388            dummy();
389            p[0] = new Point();
390            dummy();
391        } else {
392            dummy();
393            p[0] = new Point();
394            dummy();
395        }
396        int x = 3;
397        if (p[0] == null)
398            return (3 * x + y) * x;
399        p[0].x = x;
400        p[0].y = 3 * x + y;
401        dummy();
402        return p[0].x * p[0].y;
403    }
404
405    int test1_2_0(int y) {
406        Point p1 = new Point();
407        dummy();
408        Point p = new Point();
409        if ((y & 1) == 1) {
410            dummy();
411            p = p1;
412            dummy();
413        }
414        int x = 3;
415        p.x = x;
416        p.y = 3 * x + y;
417        dummy();
418        return p.x * p.y;
419    }
420
421    int test1_2_1(int y) {
422        Point p1 = new Point();
423        dummy();
424        Point p = null;
425        if ((y & 1) == 1) {
426            dummy();
427            p = p1;
428            dummy();
429        }
430        int x = 3;
431        if (p == null)
432            return (3 * x + y) * x;
433        p.x = x;
434        p.y = 3 * x + y;
435        dummy();
436        return p.x * p.y;
437    }
438
439    int test1_2_2(int y) {
440        Point p1 = new Point();
441        dummy();
442        Point p[] = new Point[1];
443        if ((y & 1) == 1) {
444            dummy();
445            p[0] = p1;
446            dummy();
447        }
448        int x = 3;
449        if (p[0] == null)
450            return (3 * x + y) * x;
451        p[0].x = x;
452        p[0].y = 3 * x + y;
453        dummy();
454        return p[0].x * p[0].y;
455    }
456
457    int test1_2_3(int y) {
458        Point p1 = new Point();
459        dummy();
460        Point p[] = new Point[1];
461        dummy();
462        p[0] = null;
463        if ((y & 1) == 1) {
464            dummy();
465            p[0] = p1;
466            dummy();
467        }
468        int x = 3;
469        if (p[0] == null)
470            return (3 * x + y) * x;
471        p[0].x = x;
472        p[0].y = 3 * x + y;
473        dummy();
474        return p[0].x * p[0].y;
475    }
476
477    int test1_2_4(int y) {
478        Point p1 = new Point();
479        dummy();
480        Point p2 = new Point();
481        dummy();
482        Point p[] = new Point[1];
483        dummy();
484        p[0] = p1;
485        if ((y & 1) == 1) {
486            dummy();
487            p[0] = p2;
488            dummy();
489        }
490        int x = 3;
491        if (p[0] == null)
492            return (3 * x + y) * x;
493        p[0].x = x;
494        p[0].y = 3 * x + y;
495        dummy();
496        return p[0].x * p[0].y;
497    }
498
499    int test1_2_5(int y) {
500        Point p1 = new Point();
501        dummy();
502        Point p[] = new Point[1];
503        if ((y & 1) == 1) {
504            dummy();
505            p[0] = p1;
506            dummy();
507        } else {
508            dummy();
509            p[0] = null;
510            dummy();
511        }
512        int x = 3;
513        if (p[0] == null)
514            return (3 * x + y) * x;
515        p[0].x = x;
516        p[0].y = 3 * x + y;
517        dummy();
518        return p[0].x * p[0].y;
519    }
520
521    int test1_2_6(int y) {
522        Point p1 = new Point();
523        dummy();
524        Point p2 = new Point();
525        dummy();
526        Point p[] = new Point[1];
527        if ((y & 1) == 1) {
528            dummy();
529            p[0] = p1;
530            dummy();
531        } else {
532            dummy();
533            p[0] = p2;
534            dummy();
535        }
536        int x = 3;
537        if (p[0] == null)
538            return (3 * x + y) * x;
539        p[0].x = x;
540        p[0].y = 3 * x + y;
541        dummy();
542        return p[0].x * p[0].y;
543    }
544
545    int test2_0_0(int y) {
546        Point p = new Point();
547        int lim = (y & 3);
548        for (int i = 0; i < lim; i++) {
549            p = new Point();
550        }
551        int x = 3;
552        p.x = x;
553        p.y = 3 * x + y;
554        dummy();
555        return p.x * p.y;
556    }
557
558    int test2_0_1(int y) {
559        Point p = null;
560        int lim = (y & 3);
561        for (int i = 0; i < lim; i++) {
562            p = new Point();
563        }
564        int x = 3;
565        if (p == null)
566            return (3 * x + y) * x;
567        p.x = x;
568        p.y = 3 * x + y;
569        dummy();
570        return p.x * p.y;
571    }
572
573    int test2_0_2(int y) {
574        Point p[] = new Point[3];
575        int lim = (y & 3);
576        for (int i = 0; i < lim; i++) {
577            p[i] = new Point();
578        }
579        int x = 3;
580        int j = (y & 1);
581        if (p[j] == null)
582            return (3 * x + y) * x;
583        p[j].x = x;
584        p[j].y = 3 * x + y;
585        dummy();
586        return p[j].x * p[0].y;
587    }
588
589    int test2_0_3(int y) {
590        Point p[] = new Point[3];
591        int j = (y & 1);
592        p[j] = null;
593        int lim = (y & 3);
594        for (int i = 0; i < lim; i++) {
595            p[i] = new Point();
596        }
597        int x = 3;
598        if (p[j] == null)
599            return (3 * x + y) * x;
600        p[j].x = x;
601        p[j].y = 3 * x + y;
602        dummy();
603        return p[j].x * p[0].y;
604    }
605
606    int test2_0_4(int y) {
607        Point p[] = new Point[3];
608        int j = (y & 1);
609        p[j] = new Point();
610        int lim = (y & 3);
611        for (int i = 0; i < lim; i++) {
612            p[i] = new Point();
613        }
614        int x = 3;
615        if (p[j] == null)
616            return (3 * x + y) * x;
617        p[j].x = x;
618        p[j].y = 3 * x + y;
619        dummy();
620        return p[j].x * p[0].y;
621    }
622
623    int test2_0_5(int y) {
624        Point p[] = new Point[3];
625        int lim = (y & 3);
626        for (int i = 0; i < lim; i++) {
627            p[i] = new Point();
628        }
629        for (int i = 0; i < lim; i++) {
630            p[i] = null;
631        }
632        int x = 3;
633        int j = (y & 1);
634        if (p[j] == null)
635            return (3 * x + y) * x;
636        p[j].x = x;
637        p[j].y = 3 * x + y;
638        dummy();
639        return p[j].x * p[0].y;
640    }
641
642    int test2_0_6(int y) {
643        Point p[] = new Point[3];
644        int lim = (y & 3);
645        for (int i = 0; i < lim; i++) {
646            p[i] = new Point();
647        }
648        for (int i = 0; i < lim; i++) {
649            p[i] = new Point();
650        }
651        int x = 3;
652        int j = (y & 1);
653        if (p[j] == null)
654            return (3 * x + y) * x;
655        p[j].x = x;
656        p[j].y = 3 * x + y;
657        dummy();
658        return p[j].x * p[0].y;
659    }
660
661    int test2_1_0(int y) {
662        Point p = new Point();
663        int lim = (y & 3);
664        for (int i = 0; i < lim; i++) {
665            dummy();
666            p = new Point();
667            dummy();
668        }
669        int x = 3;
670        p.x = x;
671        p.y = 3 * x + y;
672        dummy();
673        return p.x * p.y;
674    }
675
676    int test2_1_1(int y) {
677        Point p = null;
678        int lim = (y & 3);
679        for (int i = 0; i < lim; i++) {
680            dummy();
681            p = new Point();
682            dummy();
683        }
684        int x = 3;
685        if (p == null)
686            return (3 * x + y) * x;
687        p.x = x;
688        p.y = 3 * x + y;
689        dummy();
690        return p.x * p.y;
691    }
692
693    int test2_1_2(int y) {
694        Point p[] = new Point[3];
695        int lim = (y & 3);
696        for (int i = 0; i < lim; i++) {
697            dummy();
698            p[i] = new Point();
699            dummy();
700        }
701        int x = 3;
702        int j = (y & 1);
703        if (p[j] == null)
704            return (3 * x + y) * x;
705        p[j].x = x;
706        p[j].y = 3 * x + y;
707        dummy();
708        return p[j].x * p[0].y;
709    }
710
711    int test2_1_3(int y) {
712        Point p[] = new Point[3];
713        dummy();
714        int j = (y & 1);
715        p[j] = null;
716        int lim = (y & 3);
717        for (int i = 0; i < lim; i++) {
718            dummy();
719            p[i] = new Point();
720            dummy();
721        }
722        int x = 3;
723        if (p[j] == null)
724            return (3 * x + y) * x;
725        p[j].x = x;
726        p[j].y = 3 * x + y;
727        dummy();
728        return p[j].x * p[0].y;
729    }
730
731    int test2_1_4(int y) {
732        Point p[] = new Point[3];
733        dummy();
734        int j = (y & 1);
735        p[j] = new Point();
736        int lim = (y & 3);
737        for (int i = 0; i < lim; i++) {
738            dummy();
739            p[i] = new Point();
740            dummy();
741        }
742        int x = 3;
743        if (p[j] == null)
744            return (3 * x + y) * x;
745        p[j].x = x;
746        p[j].y = 3 * x + y;
747        dummy();
748        return p[j].x * p[0].y;
749    }
750
751    int test2_1_5(int y) {
752        Point p[] = new Point[3];
753        int lim = (y & 3);
754        for (int i = 0; i < lim; i++) {
755            dummy();
756            p[i] = new Point();
757            dummy();
758        }
759        for (int i = 0; i < lim; i++) {
760            dummy();
761            p[i] = null;
762            dummy();
763        }
764        int x = 3;
765        int j = (y & 1);
766        if (p[j] == null)
767            return (3 * x + y) * x;
768        p[j].x = x;
769        p[j].y = 3 * x + y;
770        dummy();
771        return p[j].x * p[0].y;
772    }
773
774    int test2_1_6(int y) {
775        Point p[] = new Point[3];
776        int lim = (y & 3);
777        for (int i = 0; i < lim; i++) {
778            dummy();
779            p[i] = new Point();
780            dummy();
781        }
782        for (int i = 0; i < lim; i++) {
783            dummy();
784            p[i] = new Point();
785            dummy();
786        }
787        int x = 3;
788        int j = (y & 1);
789        if (p[j] == null)
790            return (3 * x + y) * x;
791        p[j].x = x;
792        p[j].y = 3 * x + y;
793        dummy();
794        return p[j].x * p[0].y;
795    }
796
797    int test2_2_0(int y) {
798        Point p1 = new Point();
799        dummy();
800        Point p = new Point();
801        int lim = (y & 3);
802        for (int i = 0; i < lim; i++) {
803            dummy();
804            p = p1;
805            dummy();
806        }
807        int x = 3;
808        p.x = x;
809        p.y = 3 * x + y;
810        dummy();
811        return p.x * p.y;
812    }
813
814    int test2_2_1(int y) {
815        Point p1 = new Point();
816        dummy();
817        Point p = null;
818        int lim = (y & 3);
819        for (int i = 0; i < lim; i++) {
820            dummy();
821            p = p1;
822            dummy();
823        }
824        int x = 3;
825        if (p == null)
826            return (3 * x + y) * x;
827        p.x = x;
828        p.y = 3 * x + y;
829        dummy();
830        return p.x * p.y;
831    }
832
833    int test2_2_2(int y) {
834        Point p1 = new Point();
835        dummy();
836        Point p[] = new Point[3];
837        int lim = (y & 3);
838        for (int i = 0; i < lim; i++) {
839            dummy();
840            p[i] = p1;
841            dummy();
842        }
843        int x = 3;
844        int j = (y & 1);
845        if (p[j] == null)
846            return (3 * x + y) * x;
847        p[j].x = x;
848        p[j].y = 3 * x + y;
849        dummy();
850        return p[j].x * p[0].y;
851    }
852
853    int test2_2_3(int y) {
854        Point p1 = new Point();
855        dummy();
856        Point p[] = new Point[3];
857        dummy();
858        int j = (y & 1);
859        p[j] = null;
860        int lim = (y & 3);
861        for (int i = 0; i < lim; i++) {
862            dummy();
863            p[i] = p1;
864            dummy();
865        }
866        int x = 3;
867        if (p[j] == null)
868            return (3 * x + y) * x;
869        p[j].x = x;
870        p[j].y = 3 * x + y;
871        dummy();
872        return p[j].x * p[0].y;
873    }
874
875    int test2_2_4(int y) {
876        Point p1 = new Point();
877        dummy();
878        Point p2 = new Point();
879        dummy();
880        Point p[] = new Point[3];
881        dummy();
882        int j = (y & 1);
883        p[j] = p1;
884        int lim = (y & 3);
885        for (int i = 0; i < lim; i++) {
886            dummy();
887            p[i] = p2;
888            dummy();
889        }
890        int x = 3;
891        if (p[j] == null)
892            return (3 * x + y) * x;
893        p[j].x = x;
894        p[j].y = 3 * x + y;
895        dummy();
896        return p[j].x * p[0].y;
897    }
898
899    int test2_2_5(int y) {
900        Point p1 = new Point();
901        dummy();
902        Point p[] = new Point[3];
903        int lim = (y & 3);
904        for (int i = 0; i < lim; i++) {
905            dummy();
906            p[i] = p1;
907            dummy();
908        }
909        for (int i = 0; i < lim; i++) {
910            dummy();
911            p[i] = null;
912            dummy();
913        }
914        int x = 3;
915        int j = (y & 1);
916        if (p[j] == null)
917            return (3 * x + y) * x;
918        p[j].x = x;
919        p[j].y = 3 * x + y;
920        dummy();
921        return p[j].x * p[0].y;
922    }
923
924    int test2_2_6(int y) {
925        Point p1 = new Point();
926        dummy();
927        Point p2 = new Point();
928        dummy();
929        Point p[] = new Point[3];
930        int lim = (y & 3);
931        for (int i = 0; i < lim; i++) {
932            dummy();
933            p[i] = p1;
934            dummy();
935        }
936        for (int i = 0; i < lim; i++) {
937            dummy();
938            p[i] = p2;
939            dummy();
940        }
941        int x = 3;
942        int j = (y & 1);
943        if (p[j] == null)
944            return (3 * x + y) * x;
945        p[j].x = x;
946        p[j].y = 3 * x + y;
947        dummy();
948        return p[j].x * p[0].y;
949    }
950
951    public static void main(String args[]) {
952        Test6726999 tsr = new Test6726999();
953        Point p = new Point();
954        Point ptmp = p;
955        Class cls = Point.class;
956        int y = 0;
957        for (int i = 0; i < 10000; i++) {
958            y = tsr.test0_0_0(y);
959            y = tsr.test0_0_0(y);
960            y = tsr.test0_0_1(y);
961            y = tsr.test0_0_1(y);
962            y = tsr.test0_0_2(y);
963            y = tsr.test0_0_2(y);
964            y = tsr.test0_0_3(y);
965            y = tsr.test0_0_3(y);
966            y = tsr.test0_0_4(y);
967            y = tsr.test0_0_4(y);
968            y = tsr.test0_0_5(y);
969            y = tsr.test0_0_5(y);
970            y = tsr.test0_0_6(y);
971            y = tsr.test0_0_6(y);
972
973            y = tsr.test0_1_3(y);
974            y = tsr.test0_1_3(y);
975            y = tsr.test0_1_4(y);
976            y = tsr.test0_1_4(y);
977            y = tsr.test0_1_5(y);
978            y = tsr.test0_1_5(y);
979            y = tsr.test0_1_6(y);
980            y = tsr.test0_1_6(y);
981
982            y = tsr.test1_0_0(y & ~1);
983            y = tsr.test1_0_1(y & ~1);
984            y = tsr.test1_0_2(y & ~1);
985            y = tsr.test1_0_3(y & ~1);
986            y = tsr.test1_0_4(y & ~1);
987            y = tsr.test1_0_5(y & ~1);
988            y = tsr.test1_0_6(y & ~1);
989            y = tsr.test1_0_0((y & ~1) + 1);
990            y = tsr.test1_0_1((y & ~1) + 1);
991            y = tsr.test1_0_2((y & ~1) + 1);
992            y = tsr.test1_0_3((y & ~1) + 1);
993            y = tsr.test1_0_4((y & ~1) + 1);
994            y = tsr.test1_0_5((y & ~1) + 1);
995            y = tsr.test1_0_6((y & ~1) + 1);
996
997            y = tsr.test1_1_0(y & ~1);
998            y = tsr.test1_1_1(y & ~1);
999            y = tsr.test1_1_2(y & ~1);
1000            y = tsr.test1_1_3(y & ~1);
1001            y = tsr.test1_1_4(y & ~1);
1002            y = tsr.test1_1_5(y & ~1);
1003            y = tsr.test1_1_6(y & ~1);
1004            y = tsr.test1_1_0((y & ~1) + 1);
1005            y = tsr.test1_1_1((y & ~1) + 1);
1006            y = tsr.test1_1_2((y & ~1) + 1);
1007            y = tsr.test1_1_3((y & ~1) + 1);
1008            y = tsr.test1_1_4((y & ~1) + 1);
1009            y = tsr.test1_1_5((y & ~1) + 1);
1010            y = tsr.test1_1_6((y & ~1) + 1);
1011
1012            y = tsr.test1_2_0(y & ~1);
1013            y = tsr.test1_2_1(y & ~1);
1014            y = tsr.test1_2_2(y & ~1);
1015            y = tsr.test1_2_3(y & ~1);
1016            y = tsr.test1_2_4(y & ~1);
1017            y = tsr.test1_2_5(y & ~1);
1018            y = tsr.test1_2_6(y & ~1);
1019            y = tsr.test1_2_0((y & ~1) + 1);
1020            y = tsr.test1_2_1((y & ~1) + 1);
1021            y = tsr.test1_2_2((y & ~1) + 1);
1022            y = tsr.test1_2_3((y & ~1) + 1);
1023            y = tsr.test1_2_4((y & ~1) + 1);
1024            y = tsr.test1_2_5((y & ~1) + 1);
1025            y = tsr.test1_2_6((y & ~1) + 1);
1026
1027            y = tsr.test2_0_0(y & ~3);
1028            y = tsr.test2_0_1(y & ~3);
1029            y = tsr.test2_0_2(y & ~3);
1030            y = tsr.test2_0_3(y & ~3);
1031            y = tsr.test2_0_4(y & ~3);
1032            y = tsr.test2_0_5(y & ~3);
1033            y = tsr.test2_0_6(y & ~3);
1034            y = tsr.test2_0_0((y & ~3) + 3);
1035            y = tsr.test2_0_1((y & ~3) + 3);
1036            y = tsr.test2_0_2((y & ~3) + 3);
1037            y = tsr.test2_0_3((y & ~3) + 3);
1038            y = tsr.test2_0_4((y & ~3) + 3);
1039            y = tsr.test2_0_5((y & ~3) + 3);
1040            y = tsr.test2_0_6((y & ~3) + 3);
1041
1042            y = tsr.test2_1_0(y & ~3);
1043            y = tsr.test2_1_1(y & ~3);
1044            y = tsr.test2_1_2(y & ~3);
1045            y = tsr.test2_1_3(y & ~3);
1046            y = tsr.test2_1_4(y & ~3);
1047            y = tsr.test2_1_5(y & ~3);
1048            y = tsr.test2_1_6(y & ~3);
1049            y = tsr.test2_1_0((y & ~3) + 3);
1050            y = tsr.test2_1_1((y & ~3) + 3);
1051            y = tsr.test2_1_2((y & ~3) + 3);
1052            y = tsr.test2_1_3((y & ~3) + 3);
1053            y = tsr.test2_1_4((y & ~3) + 3);
1054            y = tsr.test2_1_5((y & ~3) + 3);
1055            y = tsr.test2_1_6((y & ~3) + 3);
1056
1057            y = tsr.test2_2_0(y & ~3);
1058            y = tsr.test2_2_1(y & ~3);
1059            y = tsr.test2_2_2(y & ~3);
1060            y = tsr.test2_2_3(y & ~3);
1061            y = tsr.test2_2_4(y & ~3);
1062            y = tsr.test2_2_5(y & ~3);
1063            y = tsr.test2_2_6(y & ~3);
1064            y = tsr.test2_2_0((y & ~3) + 3);
1065            y = tsr.test2_2_1((y & ~3) + 3);
1066            y = tsr.test2_2_2((y & ~3) + 3);
1067            y = tsr.test2_2_3((y & ~3) + 3);
1068            y = tsr.test2_2_4((y & ~3) + 3);
1069            y = tsr.test2_2_5((y & ~3) + 3);
1070            y = tsr.test2_2_6((y & ~3) + 3);
1071
1072        }
1073        for (int i = 0; i < 10000; i++) {
1074            y = tsr.test0_0_0(y);
1075            y = tsr.test0_0_0(y);
1076            y = tsr.test0_0_1(y);
1077            y = tsr.test0_0_1(y);
1078            y = tsr.test0_0_2(y);
1079            y = tsr.test0_0_2(y);
1080            y = tsr.test0_0_3(y);
1081            y = tsr.test0_0_3(y);
1082            y = tsr.test0_0_4(y);
1083            y = tsr.test0_0_4(y);
1084            y = tsr.test0_0_5(y);
1085            y = tsr.test0_0_5(y);
1086            y = tsr.test0_0_6(y);
1087            y = tsr.test0_0_6(y);
1088
1089            y = tsr.test0_1_3(y);
1090            y = tsr.test0_1_3(y);
1091            y = tsr.test0_1_4(y);
1092            y = tsr.test0_1_4(y);
1093            y = tsr.test0_1_5(y);
1094            y = tsr.test0_1_5(y);
1095            y = tsr.test0_1_6(y);
1096            y = tsr.test0_1_6(y);
1097
1098            y = tsr.test1_0_0(y & ~1);
1099            y = tsr.test1_0_1(y & ~1);
1100            y = tsr.test1_0_2(y & ~1);
1101            y = tsr.test1_0_3(y & ~1);
1102            y = tsr.test1_0_4(y & ~1);
1103            y = tsr.test1_0_5(y & ~1);
1104            y = tsr.test1_0_6(y & ~1);
1105            y = tsr.test1_0_0((y & ~1) + 1);
1106            y = tsr.test1_0_1((y & ~1) + 1);
1107            y = tsr.test1_0_2((y & ~1) + 1);
1108            y = tsr.test1_0_3((y & ~1) + 1);
1109            y = tsr.test1_0_4((y & ~1) + 1);
1110            y = tsr.test1_0_5((y & ~1) + 1);
1111            y = tsr.test1_0_6((y & ~1) + 1);
1112
1113            y = tsr.test1_1_0(y & ~1);
1114            y = tsr.test1_1_1(y & ~1);
1115            y = tsr.test1_1_2(y & ~1);
1116            y = tsr.test1_1_3(y & ~1);
1117            y = tsr.test1_1_4(y & ~1);
1118            y = tsr.test1_1_5(y & ~1);
1119            y = tsr.test1_1_6(y & ~1);
1120            y = tsr.test1_1_0((y & ~1) + 1);
1121            y = tsr.test1_1_1((y & ~1) + 1);
1122            y = tsr.test1_1_2((y & ~1) + 1);
1123            y = tsr.test1_1_3((y & ~1) + 1);
1124            y = tsr.test1_1_4((y & ~1) + 1);
1125            y = tsr.test1_1_5((y & ~1) + 1);
1126            y = tsr.test1_1_6((y & ~1) + 1);
1127
1128            y = tsr.test1_2_0(y & ~1);
1129            y = tsr.test1_2_1(y & ~1);
1130            y = tsr.test1_2_2(y & ~1);
1131            y = tsr.test1_2_3(y & ~1);
1132            y = tsr.test1_2_4(y & ~1);
1133            y = tsr.test1_2_5(y & ~1);
1134            y = tsr.test1_2_6(y & ~1);
1135            y = tsr.test1_2_0((y & ~1) + 1);
1136            y = tsr.test1_2_1((y & ~1) + 1);
1137            y = tsr.test1_2_2((y & ~1) + 1);
1138            y = tsr.test1_2_3((y & ~1) + 1);
1139            y = tsr.test1_2_4((y & ~1) + 1);
1140            y = tsr.test1_2_5((y & ~1) + 1);
1141            y = tsr.test1_2_6((y & ~1) + 1);
1142
1143            y = tsr.test2_0_0(y & ~3);
1144            y = tsr.test2_0_1(y & ~3);
1145            y = tsr.test2_0_2(y & ~3);
1146            y = tsr.test2_0_3(y & ~3);
1147            y = tsr.test2_0_4(y & ~3);
1148            y = tsr.test2_0_5(y & ~3);
1149            y = tsr.test2_0_6(y & ~3);
1150            y = tsr.test2_0_0((y & ~3) + 3);
1151            y = tsr.test2_0_1((y & ~3) + 3);
1152            y = tsr.test2_0_2((y & ~3) + 3);
1153            y = tsr.test2_0_3((y & ~3) + 3);
1154            y = tsr.test2_0_4((y & ~3) + 3);
1155            y = tsr.test2_0_5((y & ~3) + 3);
1156            y = tsr.test2_0_6((y & ~3) + 3);
1157
1158            y = tsr.test2_1_0(y & ~3);
1159            y = tsr.test2_1_1(y & ~3);
1160            y = tsr.test2_1_2(y & ~3);
1161            y = tsr.test2_1_3(y & ~3);
1162            y = tsr.test2_1_4(y & ~3);
1163            y = tsr.test2_1_5(y & ~3);
1164            y = tsr.test2_1_6(y & ~3);
1165            y = tsr.test2_1_0((y & ~3) + 3);
1166            y = tsr.test2_1_1((y & ~3) + 3);
1167            y = tsr.test2_1_2((y & ~3) + 3);
1168            y = tsr.test2_1_3((y & ~3) + 3);
1169            y = tsr.test2_1_4((y & ~3) + 3);
1170            y = tsr.test2_1_5((y & ~3) + 3);
1171            y = tsr.test2_1_6((y & ~3) + 3);
1172
1173            y = tsr.test2_2_0(y & ~3);
1174            y = tsr.test2_2_1(y & ~3);
1175            y = tsr.test2_2_2(y & ~3);
1176            y = tsr.test2_2_3(y & ~3);
1177            y = tsr.test2_2_4(y & ~3);
1178            y = tsr.test2_2_5(y & ~3);
1179            y = tsr.test2_2_6(y & ~3);
1180            y = tsr.test2_2_0((y & ~3) + 3);
1181            y = tsr.test2_2_1((y & ~3) + 3);
1182            y = tsr.test2_2_2((y & ~3) + 3);
1183            y = tsr.test2_2_3((y & ~3) + 3);
1184            y = tsr.test2_2_4((y & ~3) + 3);
1185            y = tsr.test2_2_5((y & ~3) + 3);
1186            y = tsr.test2_2_6((y & ~3) + 3);
1187
1188        }
1189        for (int i = 0; i < 10000; i++) {
1190            y = tsr.test0_0_0(y);
1191            y = tsr.test0_0_0(y);
1192            y = tsr.test0_0_1(y);
1193            y = tsr.test0_0_1(y);
1194            y = tsr.test0_0_2(y);
1195            y = tsr.test0_0_2(y);
1196            y = tsr.test0_0_3(y);
1197            y = tsr.test0_0_3(y);
1198            y = tsr.test0_0_4(y);
1199            y = tsr.test0_0_4(y);
1200            y = tsr.test0_0_5(y);
1201            y = tsr.test0_0_5(y);
1202            y = tsr.test0_0_6(y);
1203            y = tsr.test0_0_6(y);
1204
1205            y = tsr.test0_1_3(y);
1206            y = tsr.test0_1_3(y);
1207            y = tsr.test0_1_4(y);
1208            y = tsr.test0_1_4(y);
1209            y = tsr.test0_1_5(y);
1210            y = tsr.test0_1_5(y);
1211            y = tsr.test0_1_6(y);
1212            y = tsr.test0_1_6(y);
1213
1214            y = tsr.test1_0_0(y & ~1);
1215            y = tsr.test1_0_1(y & ~1);
1216            y = tsr.test1_0_2(y & ~1);
1217            y = tsr.test1_0_3(y & ~1);
1218            y = tsr.test1_0_4(y & ~1);
1219            y = tsr.test1_0_5(y & ~1);
1220            y = tsr.test1_0_6(y & ~1);
1221            y = tsr.test1_0_0((y & ~1) + 1);
1222            y = tsr.test1_0_1((y & ~1) + 1);
1223            y = tsr.test1_0_2((y & ~1) + 1);
1224            y = tsr.test1_0_3((y & ~1) + 1);
1225            y = tsr.test1_0_4((y & ~1) + 1);
1226            y = tsr.test1_0_5((y & ~1) + 1);
1227            y = tsr.test1_0_6((y & ~1) + 1);
1228
1229            y = tsr.test1_1_0(y & ~1);
1230            y = tsr.test1_1_1(y & ~1);
1231            y = tsr.test1_1_2(y & ~1);
1232            y = tsr.test1_1_3(y & ~1);
1233            y = tsr.test1_1_4(y & ~1);
1234            y = tsr.test1_1_5(y & ~1);
1235            y = tsr.test1_1_6(y & ~1);
1236            y = tsr.test1_1_0((y & ~1) + 1);
1237            y = tsr.test1_1_1((y & ~1) + 1);
1238            y = tsr.test1_1_2((y & ~1) + 1);
1239            y = tsr.test1_1_3((y & ~1) + 1);
1240            y = tsr.test1_1_4((y & ~1) + 1);
1241            y = tsr.test1_1_5((y & ~1) + 1);
1242            y = tsr.test1_1_6((y & ~1) + 1);
1243
1244            y = tsr.test1_2_0(y & ~1);
1245            y = tsr.test1_2_1(y & ~1);
1246            y = tsr.test1_2_2(y & ~1);
1247            y = tsr.test1_2_3(y & ~1);
1248            y = tsr.test1_2_4(y & ~1);
1249            y = tsr.test1_2_5(y & ~1);
1250            y = tsr.test1_2_6(y & ~1);
1251            y = tsr.test1_2_0((y & ~1) + 1);
1252            y = tsr.test1_2_1((y & ~1) + 1);
1253            y = tsr.test1_2_2((y & ~1) + 1);
1254            y = tsr.test1_2_3((y & ~1) + 1);
1255            y = tsr.test1_2_4((y & ~1) + 1);
1256            y = tsr.test1_2_5((y & ~1) + 1);
1257            y = tsr.test1_2_6((y & ~1) + 1);
1258
1259            y = tsr.test2_0_0(y & ~3);
1260            y = tsr.test2_0_1(y & ~3);
1261            y = tsr.test2_0_2(y & ~3);
1262            y = tsr.test2_0_3(y & ~3);
1263            y = tsr.test2_0_4(y & ~3);
1264            y = tsr.test2_0_5(y & ~3);
1265            y = tsr.test2_0_6(y & ~3);
1266            y = tsr.test2_0_0((y & ~3) + 3);
1267            y = tsr.test2_0_1((y & ~3) + 3);
1268            y = tsr.test2_0_2((y & ~3) + 3);
1269            y = tsr.test2_0_3((y & ~3) + 3);
1270            y = tsr.test2_0_4((y & ~3) + 3);
1271            y = tsr.test2_0_5((y & ~3) + 3);
1272            y = tsr.test2_0_6((y & ~3) + 3);
1273
1274            y = tsr.test2_1_0(y & ~3);
1275            y = tsr.test2_1_1(y & ~3);
1276            y = tsr.test2_1_2(y & ~3);
1277            y = tsr.test2_1_3(y & ~3);
1278            y = tsr.test2_1_4(y & ~3);
1279            y = tsr.test2_1_5(y & ~3);
1280            y = tsr.test2_1_6(y & ~3);
1281            y = tsr.test2_1_0((y & ~3) + 3);
1282            y = tsr.test2_1_1((y & ~3) + 3);
1283            y = tsr.test2_1_2((y & ~3) + 3);
1284            y = tsr.test2_1_3((y & ~3) + 3);
1285            y = tsr.test2_1_4((y & ~3) + 3);
1286            y = tsr.test2_1_5((y & ~3) + 3);
1287            y = tsr.test2_1_6((y & ~3) + 3);
1288
1289            y = tsr.test2_2_0(y & ~3);
1290            y = tsr.test2_2_1(y & ~3);
1291            y = tsr.test2_2_2(y & ~3);
1292            y = tsr.test2_2_3(y & ~3);
1293            y = tsr.test2_2_4(y & ~3);
1294            y = tsr.test2_2_5(y & ~3);
1295            y = tsr.test2_2_6(y & ~3);
1296            y = tsr.test2_2_0((y & ~3) + 3);
1297            y = tsr.test2_2_1((y & ~3) + 3);
1298            y = tsr.test2_2_2((y & ~3) + 3);
1299            y = tsr.test2_2_3((y & ~3) + 3);
1300            y = tsr.test2_2_4((y & ~3) + 3);
1301            y = tsr.test2_2_5((y & ~3) + 3);
1302            y = tsr.test2_2_6((y & ~3) + 3);
1303
1304        }
1305
1306        int z = 0;
1307        y = tsr.test0_0_0(0);
1308        System.out.println("After 'test0_0_0' y=" + y);
1309        y = tsr.test0_0_1(0);
1310        System.out.println("After 'test0_0_1' y=" + y);
1311        y = tsr.test0_0_2(0);
1312        System.out.println("After 'test0_0_2' y=" + y);
1313        y = tsr.test0_0_3(0);
1314        System.out.println("After 'test0_0_3' y=" + y);
1315        y = tsr.test0_0_4(0);
1316        System.out.println("After 'test0_0_4' y=" + y);
1317        y = tsr.test0_0_5(0);
1318        System.out.println("After 'test0_0_5' y=" + y);
1319        y = tsr.test0_0_6(0);
1320        System.out.println("After 'test0_0_6' y=" + y);
1321        y = tsr.test0_1_3(0);
1322        System.out.println("After 'test0_1_3' y=" + y);
1323        y = tsr.test0_1_4(0);
1324        System.out.println("After 'test0_1_4' y=" + y);
1325        y = tsr.test0_1_5(0);
1326        System.out.println("After 'test0_1_5' y=" + y);
1327        y = tsr.test0_1_6(0);
1328        System.out.println("After 'test0_1_6' y=" + y);
1329
1330        y = tsr.test1_0_0(0);
1331        System.out.println("After 'test1_0_0' y=" + y);
1332        y = tsr.test1_0_1(0);
1333        System.out.println("After 'test1_0_1' y=" + y);
1334        y = tsr.test1_0_2(0);
1335        System.out.println("After 'test1_0_2' y=" + y);
1336        y = tsr.test1_0_3(0);
1337        System.out.println("After 'test1_0_3' y=" + y);
1338        y = tsr.test1_0_4(0);
1339        System.out.println("After 'test1_0_4' y=" + y);
1340        y = tsr.test1_0_5(0);
1341        System.out.println("After 'test1_0_5' y=" + y);
1342        y = tsr.test1_0_6(0);
1343        System.out.println("After 'test1_0_6' y=" + y);
1344
1345        y = tsr.test1_1_0(0);
1346        System.out.println("After 'test1_1_0' y=" + y);
1347        y = tsr.test1_1_1(0);
1348        System.out.println("After 'test1_1_1' y=" + y);
1349        y = tsr.test1_1_2(0);
1350        System.out.println("After 'test1_1_2' y=" + y);
1351        y = tsr.test1_1_3(0);
1352        System.out.println("After 'test1_1_3' y=" + y);
1353        y = tsr.test1_1_4(0);
1354        System.out.println("After 'test1_1_4' y=" + y);
1355        y = tsr.test1_1_5(0);
1356        System.out.println("After 'test1_1_5' y=" + y);
1357        y = tsr.test1_1_6(0);
1358        System.out.println("After 'test1_1_6' y=" + y);
1359
1360        y = tsr.test1_2_0(0);
1361        System.out.println("After 'test1_2_0' y=" + y);
1362        y = tsr.test1_2_1(0);
1363        System.out.println("After 'test1_2_1' y=" + y);
1364        y = tsr.test1_2_2(0);
1365        System.out.println("After 'test1_2_2' y=" + y);
1366        y = tsr.test1_2_3(0);
1367        System.out.println("After 'test1_2_3' y=" + y);
1368        y = tsr.test1_2_4(0);
1369        System.out.println("After 'test1_2_4' y=" + y);
1370        y = tsr.test1_2_5(0);
1371        System.out.println("After 'test1_2_5' y=" + y);
1372        y = tsr.test1_2_6(0);
1373        System.out.println("After 'test1_2_6' y=" + y);
1374
1375        y = tsr.test2_0_0(0);
1376        System.out.println("After 'test2_0_0' y=" + y);
1377        y = tsr.test2_0_1(0);
1378        System.out.println("After 'test2_0_1' y=" + y);
1379        y = tsr.test2_0_2(0);
1380        System.out.println("After 'test2_0_2' y=" + y);
1381        y = tsr.test2_0_3(0);
1382        System.out.println("After 'test2_0_3' y=" + y);
1383        y = tsr.test2_0_4(0);
1384        System.out.println("After 'test2_0_4' y=" + y);
1385        y = tsr.test2_0_5(0);
1386        System.out.println("After 'test2_0_5' y=" + y);
1387        y = tsr.test2_0_6(0);
1388        System.out.println("After 'test2_0_6' y=" + y);
1389
1390        y = tsr.test2_1_0(0);
1391        System.out.println("After 'test2_1_0' y=" + y);
1392        y = tsr.test2_1_1(0);
1393        System.out.println("After 'test2_1_1' y=" + y);
1394        y = tsr.test2_1_2(0);
1395        System.out.println("After 'test2_1_2' y=" + y);
1396        y = tsr.test2_1_3(0);
1397        System.out.println("After 'test2_1_3' y=" + y);
1398        y = tsr.test2_1_4(0);
1399        System.out.println("After 'test2_1_4' y=" + y);
1400        y = tsr.test2_1_5(0);
1401        System.out.println("After 'test2_1_5' y=" + y);
1402        y = tsr.test2_1_6(0);
1403        System.out.println("After 'test2_1_6' y=" + y);
1404
1405        y = tsr.test2_2_0(0);
1406        System.out.println("After 'test2_2_0' y=" + y);
1407        y = tsr.test2_2_1(0);
1408        System.out.println("After 'test2_2_1' y=" + y);
1409        y = tsr.test2_2_2(0);
1410        System.out.println("After 'test2_2_2' y=" + y);
1411        y = tsr.test2_2_3(0);
1412        System.out.println("After 'test2_2_3' y=" + y);
1413        y = tsr.test2_2_4(0);
1414        System.out.println("After 'test2_2_4' y=" + y);
1415        y = tsr.test2_2_5(0);
1416        System.out.println("After 'test2_2_5' y=" + y);
1417        y = tsr.test2_2_6(0);
1418        System.out.println("After 'test2_2_6' y=" + y);
1419
1420    }
1421}
1422