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