github.com/decomp/exp@v0.0.0-20210624183419-6d058f5e1da6/lift/x86/testdata/x86_64/fpu/fld/fld.ll (about) 1 define void @fld_m32fp() !addr !{!"0x10000000"} { 2 ; <label>:0 3 %f0 = alloca x86_fp80 4 %f1 = alloca x86_fp80 5 %f2 = alloca x86_fp80 6 %f3 = alloca x86_fp80 7 %f4 = alloca x86_fp80 8 %f5 = alloca x86_fp80 9 %f6 = alloca x86_fp80 10 %f7 = alloca x86_fp80 11 %st = alloca i8 12 store i8 7, i8* %st 13 br label %block_10000000 14 15 block_10000000: 16 %1 = load float, float* @m32fp 17 %2 = fpext float %1 to x86_fp80 18 %3 = load i8, i8* %st 19 %4 = icmp eq i8 %3, 0 20 br i1 %4, label %5, label %6 21 22 ; <label>:5 23 store i8 7, i8* %st 24 br label %8 25 26 ; <label>:6 27 %7 = sub i8 %3, 1 28 store i8 %7, i8* %st 29 br label %8 30 31 ; <label>:8 32 %9 = load i8, i8* %st 33 switch i8 %9, label %18 [ 34 i8 0, label %10 35 i8 1, label %11 36 i8 2, label %12 37 i8 3, label %13 38 i8 4, label %14 39 i8 5, label %15 40 i8 6, label %16 41 i8 7, label %17 42 ] 43 44 ; <label>:10 45 store x86_fp80 %2, x86_fp80* %f0 46 br label %19 47 48 ; <label>:11 49 store x86_fp80 %2, x86_fp80* %f1 50 br label %19 51 52 ; <label>:12 53 store x86_fp80 %2, x86_fp80* %f2 54 br label %19 55 56 ; <label>:13 57 store x86_fp80 %2, x86_fp80* %f3 58 br label %19 59 60 ; <label>:14 61 store x86_fp80 %2, x86_fp80* %f4 62 br label %19 63 64 ; <label>:15 65 store x86_fp80 %2, x86_fp80* %f5 66 br label %19 67 68 ; <label>:16 69 store x86_fp80 %2, x86_fp80* %f6 70 br label %19 71 72 ; <label>:17 73 store x86_fp80 %2, x86_fp80* %f7 74 br label %19 75 76 ; <label>:18 77 unreachable 78 79 ; <label>:19 80 ret void 81 } 82 83 define void @fld_m64fp() !addr !{!"0x10000007"} { 84 ; <label>:0 85 %f0 = alloca x86_fp80 86 %f1 = alloca x86_fp80 87 %f2 = alloca x86_fp80 88 %f3 = alloca x86_fp80 89 %f4 = alloca x86_fp80 90 %f5 = alloca x86_fp80 91 %f6 = alloca x86_fp80 92 %f7 = alloca x86_fp80 93 %st = alloca i8 94 store i8 7, i8* %st 95 br label %block_10000007 96 97 block_10000007: 98 %1 = load double, double* @m64fp 99 %2 = fpext double %1 to x86_fp80 100 %3 = load i8, i8* %st 101 %4 = icmp eq i8 %3, 0 102 br i1 %4, label %5, label %6 103 104 ; <label>:5 105 store i8 7, i8* %st 106 br label %8 107 108 ; <label>:6 109 %7 = sub i8 %3, 1 110 store i8 %7, i8* %st 111 br label %8 112 113 ; <label>:8 114 %9 = load i8, i8* %st 115 switch i8 %9, label %18 [ 116 i8 0, label %10 117 i8 1, label %11 118 i8 2, label %12 119 i8 3, label %13 120 i8 4, label %14 121 i8 5, label %15 122 i8 6, label %16 123 i8 7, label %17 124 ] 125 126 ; <label>:10 127 store x86_fp80 %2, x86_fp80* %f0 128 br label %19 129 130 ; <label>:11 131 store x86_fp80 %2, x86_fp80* %f1 132 br label %19 133 134 ; <label>:12 135 store x86_fp80 %2, x86_fp80* %f2 136 br label %19 137 138 ; <label>:13 139 store x86_fp80 %2, x86_fp80* %f3 140 br label %19 141 142 ; <label>:14 143 store x86_fp80 %2, x86_fp80* %f4 144 br label %19 145 146 ; <label>:15 147 store x86_fp80 %2, x86_fp80* %f5 148 br label %19 149 150 ; <label>:16 151 store x86_fp80 %2, x86_fp80* %f6 152 br label %19 153 154 ; <label>:17 155 store x86_fp80 %2, x86_fp80* %f7 156 br label %19 157 158 ; <label>:18 159 unreachable 160 161 ; <label>:19 162 ret void 163 } 164 165 define void @fld_m80fp() !addr !{!"0x1000000E"} { 166 ; <label>:0 167 %f0 = alloca x86_fp80 168 %f1 = alloca x86_fp80 169 %f2 = alloca x86_fp80 170 %f3 = alloca x86_fp80 171 %f4 = alloca x86_fp80 172 %f5 = alloca x86_fp80 173 %f6 = alloca x86_fp80 174 %f7 = alloca x86_fp80 175 %st = alloca i8 176 store i8 7, i8* %st 177 br label %block_1000000E 178 179 block_1000000E: 180 %1 = load x86_fp80, x86_fp80* @m80fp 181 %2 = load i8, i8* %st 182 %3 = icmp eq i8 %2, 0 183 br i1 %3, label %4, label %5 184 185 ; <label>:4 186 store i8 7, i8* %st 187 br label %7 188 189 ; <label>:5 190 %6 = sub i8 %2, 1 191 store i8 %6, i8* %st 192 br label %7 193 194 ; <label>:7 195 %8 = load i8, i8* %st 196 switch i8 %8, label %17 [ 197 i8 0, label %9 198 i8 1, label %10 199 i8 2, label %11 200 i8 3, label %12 201 i8 4, label %13 202 i8 5, label %14 203 i8 6, label %15 204 i8 7, label %16 205 ] 206 207 ; <label>:9 208 store x86_fp80 %1, x86_fp80* %f0 209 br label %18 210 211 ; <label>:10 212 store x86_fp80 %1, x86_fp80* %f1 213 br label %18 214 215 ; <label>:11 216 store x86_fp80 %1, x86_fp80* %f2 217 br label %18 218 219 ; <label>:12 220 store x86_fp80 %1, x86_fp80* %f3 221 br label %18 222 223 ; <label>:13 224 store x86_fp80 %1, x86_fp80* %f4 225 br label %18 226 227 ; <label>:14 228 store x86_fp80 %1, x86_fp80* %f5 229 br label %18 230 231 ; <label>:15 232 store x86_fp80 %1, x86_fp80* %f6 233 br label %18 234 235 ; <label>:16 236 store x86_fp80 %1, x86_fp80* %f7 237 br label %18 238 239 ; <label>:17 240 unreachable 241 242 ; <label>:18 243 ret void 244 } 245 246 define void @fld_st0() !addr !{!"0x10000015"} { 247 ; <label>:0 248 %f0 = alloca x86_fp80 249 %f1 = alloca x86_fp80 250 %f2 = alloca x86_fp80 251 %f3 = alloca x86_fp80 252 %f4 = alloca x86_fp80 253 %f5 = alloca x86_fp80 254 %f6 = alloca x86_fp80 255 %f7 = alloca x86_fp80 256 %st = alloca i8 257 store i8 7, i8* %st 258 br label %block_10000015 259 260 block_10000015: 261 %1 = load x86_fp80, x86_fp80* %f0 262 %2 = load i8, i8* %st 263 %3 = icmp eq i8 %2, 0 264 br i1 %3, label %4, label %5 265 266 ; <label>:4 267 store i8 7, i8* %st 268 br label %7 269 270 ; <label>:5 271 %6 = sub i8 %2, 1 272 store i8 %6, i8* %st 273 br label %7 274 275 ; <label>:7 276 %8 = load i8, i8* %st 277 switch i8 %8, label %17 [ 278 i8 0, label %9 279 i8 1, label %10 280 i8 2, label %11 281 i8 3, label %12 282 i8 4, label %13 283 i8 5, label %14 284 i8 6, label %15 285 i8 7, label %16 286 ] 287 288 ; <label>:9 289 store x86_fp80 %1, x86_fp80* %f0 290 br label %18 291 292 ; <label>:10 293 store x86_fp80 %1, x86_fp80* %f1 294 br label %18 295 296 ; <label>:11 297 store x86_fp80 %1, x86_fp80* %f2 298 br label %18 299 300 ; <label>:12 301 store x86_fp80 %1, x86_fp80* %f3 302 br label %18 303 304 ; <label>:13 305 store x86_fp80 %1, x86_fp80* %f4 306 br label %18 307 308 ; <label>:14 309 store x86_fp80 %1, x86_fp80* %f5 310 br label %18 311 312 ; <label>:15 313 store x86_fp80 %1, x86_fp80* %f6 314 br label %18 315 316 ; <label>:16 317 store x86_fp80 %1, x86_fp80* %f7 318 br label %18 319 320 ; <label>:17 321 unreachable 322 323 ; <label>:18 324 ret void 325 } 326 327 define void @fld_st1() !addr !{!"0x10000018"} { 328 ; <label>:0 329 %f0 = alloca x86_fp80 330 %f1 = alloca x86_fp80 331 %f2 = alloca x86_fp80 332 %f3 = alloca x86_fp80 333 %f4 = alloca x86_fp80 334 %f5 = alloca x86_fp80 335 %f6 = alloca x86_fp80 336 %f7 = alloca x86_fp80 337 %st = alloca i8 338 store i8 7, i8* %st 339 br label %block_10000018 340 341 block_10000018: 342 %1 = load x86_fp80, x86_fp80* %f1 343 %2 = load i8, i8* %st 344 %3 = icmp eq i8 %2, 0 345 br i1 %3, label %4, label %5 346 347 ; <label>:4 348 store i8 7, i8* %st 349 br label %7 350 351 ; <label>:5 352 %6 = sub i8 %2, 1 353 store i8 %6, i8* %st 354 br label %7 355 356 ; <label>:7 357 %8 = load i8, i8* %st 358 switch i8 %8, label %17 [ 359 i8 0, label %9 360 i8 1, label %10 361 i8 2, label %11 362 i8 3, label %12 363 i8 4, label %13 364 i8 5, label %14 365 i8 6, label %15 366 i8 7, label %16 367 ] 368 369 ; <label>:9 370 store x86_fp80 %1, x86_fp80* %f0 371 br label %18 372 373 ; <label>:10 374 store x86_fp80 %1, x86_fp80* %f1 375 br label %18 376 377 ; <label>:11 378 store x86_fp80 %1, x86_fp80* %f2 379 br label %18 380 381 ; <label>:12 382 store x86_fp80 %1, x86_fp80* %f3 383 br label %18 384 385 ; <label>:13 386 store x86_fp80 %1, x86_fp80* %f4 387 br label %18 388 389 ; <label>:14 390 store x86_fp80 %1, x86_fp80* %f5 391 br label %18 392 393 ; <label>:15 394 store x86_fp80 %1, x86_fp80* %f6 395 br label %18 396 397 ; <label>:16 398 store x86_fp80 %1, x86_fp80* %f7 399 br label %18 400 401 ; <label>:17 402 unreachable 403 404 ; <label>:18 405 ret void 406 } 407 408 define void @fld_st2() !addr !{!"0x1000001B"} { 409 ; <label>:0 410 %f0 = alloca x86_fp80 411 %f1 = alloca x86_fp80 412 %f2 = alloca x86_fp80 413 %f3 = alloca x86_fp80 414 %f4 = alloca x86_fp80 415 %f5 = alloca x86_fp80 416 %f6 = alloca x86_fp80 417 %f7 = alloca x86_fp80 418 %st = alloca i8 419 store i8 7, i8* %st 420 br label %block_1000001B 421 422 block_1000001B: 423 %1 = load x86_fp80, x86_fp80* %f2 424 %2 = load i8, i8* %st 425 %3 = icmp eq i8 %2, 0 426 br i1 %3, label %4, label %5 427 428 ; <label>:4 429 store i8 7, i8* %st 430 br label %7 431 432 ; <label>:5 433 %6 = sub i8 %2, 1 434 store i8 %6, i8* %st 435 br label %7 436 437 ; <label>:7 438 %8 = load i8, i8* %st 439 switch i8 %8, label %17 [ 440 i8 0, label %9 441 i8 1, label %10 442 i8 2, label %11 443 i8 3, label %12 444 i8 4, label %13 445 i8 5, label %14 446 i8 6, label %15 447 i8 7, label %16 448 ] 449 450 ; <label>:9 451 store x86_fp80 %1, x86_fp80* %f0 452 br label %18 453 454 ; <label>:10 455 store x86_fp80 %1, x86_fp80* %f1 456 br label %18 457 458 ; <label>:11 459 store x86_fp80 %1, x86_fp80* %f2 460 br label %18 461 462 ; <label>:12 463 store x86_fp80 %1, x86_fp80* %f3 464 br label %18 465 466 ; <label>:13 467 store x86_fp80 %1, x86_fp80* %f4 468 br label %18 469 470 ; <label>:14 471 store x86_fp80 %1, x86_fp80* %f5 472 br label %18 473 474 ; <label>:15 475 store x86_fp80 %1, x86_fp80* %f6 476 br label %18 477 478 ; <label>:16 479 store x86_fp80 %1, x86_fp80* %f7 480 br label %18 481 482 ; <label>:17 483 unreachable 484 485 ; <label>:18 486 ret void 487 } 488 489 define void @fld_st3() !addr !{!"0x1000001E"} { 490 ; <label>:0 491 %f0 = alloca x86_fp80 492 %f1 = alloca x86_fp80 493 %f2 = alloca x86_fp80 494 %f3 = alloca x86_fp80 495 %f4 = alloca x86_fp80 496 %f5 = alloca x86_fp80 497 %f6 = alloca x86_fp80 498 %f7 = alloca x86_fp80 499 %st = alloca i8 500 store i8 7, i8* %st 501 br label %block_1000001E 502 503 block_1000001E: 504 %1 = load x86_fp80, x86_fp80* %f3 505 %2 = load i8, i8* %st 506 %3 = icmp eq i8 %2, 0 507 br i1 %3, label %4, label %5 508 509 ; <label>:4 510 store i8 7, i8* %st 511 br label %7 512 513 ; <label>:5 514 %6 = sub i8 %2, 1 515 store i8 %6, i8* %st 516 br label %7 517 518 ; <label>:7 519 %8 = load i8, i8* %st 520 switch i8 %8, label %17 [ 521 i8 0, label %9 522 i8 1, label %10 523 i8 2, label %11 524 i8 3, label %12 525 i8 4, label %13 526 i8 5, label %14 527 i8 6, label %15 528 i8 7, label %16 529 ] 530 531 ; <label>:9 532 store x86_fp80 %1, x86_fp80* %f0 533 br label %18 534 535 ; <label>:10 536 store x86_fp80 %1, x86_fp80* %f1 537 br label %18 538 539 ; <label>:11 540 store x86_fp80 %1, x86_fp80* %f2 541 br label %18 542 543 ; <label>:12 544 store x86_fp80 %1, x86_fp80* %f3 545 br label %18 546 547 ; <label>:13 548 store x86_fp80 %1, x86_fp80* %f4 549 br label %18 550 551 ; <label>:14 552 store x86_fp80 %1, x86_fp80* %f5 553 br label %18 554 555 ; <label>:15 556 store x86_fp80 %1, x86_fp80* %f6 557 br label %18 558 559 ; <label>:16 560 store x86_fp80 %1, x86_fp80* %f7 561 br label %18 562 563 ; <label>:17 564 unreachable 565 566 ; <label>:18 567 ret void 568 } 569 570 define void @fld_st4() !addr !{!"0x10000021"} { 571 ; <label>:0 572 %f0 = alloca x86_fp80 573 %f1 = alloca x86_fp80 574 %f2 = alloca x86_fp80 575 %f3 = alloca x86_fp80 576 %f4 = alloca x86_fp80 577 %f5 = alloca x86_fp80 578 %f6 = alloca x86_fp80 579 %f7 = alloca x86_fp80 580 %st = alloca i8 581 store i8 7, i8* %st 582 br label %block_10000021 583 584 block_10000021: 585 %1 = load x86_fp80, x86_fp80* %f4 586 %2 = load i8, i8* %st 587 %3 = icmp eq i8 %2, 0 588 br i1 %3, label %4, label %5 589 590 ; <label>:4 591 store i8 7, i8* %st 592 br label %7 593 594 ; <label>:5 595 %6 = sub i8 %2, 1 596 store i8 %6, i8* %st 597 br label %7 598 599 ; <label>:7 600 %8 = load i8, i8* %st 601 switch i8 %8, label %17 [ 602 i8 0, label %9 603 i8 1, label %10 604 i8 2, label %11 605 i8 3, label %12 606 i8 4, label %13 607 i8 5, label %14 608 i8 6, label %15 609 i8 7, label %16 610 ] 611 612 ; <label>:9 613 store x86_fp80 %1, x86_fp80* %f0 614 br label %18 615 616 ; <label>:10 617 store x86_fp80 %1, x86_fp80* %f1 618 br label %18 619 620 ; <label>:11 621 store x86_fp80 %1, x86_fp80* %f2 622 br label %18 623 624 ; <label>:12 625 store x86_fp80 %1, x86_fp80* %f3 626 br label %18 627 628 ; <label>:13 629 store x86_fp80 %1, x86_fp80* %f4 630 br label %18 631 632 ; <label>:14 633 store x86_fp80 %1, x86_fp80* %f5 634 br label %18 635 636 ; <label>:15 637 store x86_fp80 %1, x86_fp80* %f6 638 br label %18 639 640 ; <label>:16 641 store x86_fp80 %1, x86_fp80* %f7 642 br label %18 643 644 ; <label>:17 645 unreachable 646 647 ; <label>:18 648 ret void 649 } 650 651 define void @fld_st5() !addr !{!"0x10000024"} { 652 ; <label>:0 653 %f0 = alloca x86_fp80 654 %f1 = alloca x86_fp80 655 %f2 = alloca x86_fp80 656 %f3 = alloca x86_fp80 657 %f4 = alloca x86_fp80 658 %f5 = alloca x86_fp80 659 %f6 = alloca x86_fp80 660 %f7 = alloca x86_fp80 661 %st = alloca i8 662 store i8 7, i8* %st 663 br label %block_10000024 664 665 block_10000024: 666 %1 = load x86_fp80, x86_fp80* %f5 667 %2 = load i8, i8* %st 668 %3 = icmp eq i8 %2, 0 669 br i1 %3, label %4, label %5 670 671 ; <label>:4 672 store i8 7, i8* %st 673 br label %7 674 675 ; <label>:5 676 %6 = sub i8 %2, 1 677 store i8 %6, i8* %st 678 br label %7 679 680 ; <label>:7 681 %8 = load i8, i8* %st 682 switch i8 %8, label %17 [ 683 i8 0, label %9 684 i8 1, label %10 685 i8 2, label %11 686 i8 3, label %12 687 i8 4, label %13 688 i8 5, label %14 689 i8 6, label %15 690 i8 7, label %16 691 ] 692 693 ; <label>:9 694 store x86_fp80 %1, x86_fp80* %f0 695 br label %18 696 697 ; <label>:10 698 store x86_fp80 %1, x86_fp80* %f1 699 br label %18 700 701 ; <label>:11 702 store x86_fp80 %1, x86_fp80* %f2 703 br label %18 704 705 ; <label>:12 706 store x86_fp80 %1, x86_fp80* %f3 707 br label %18 708 709 ; <label>:13 710 store x86_fp80 %1, x86_fp80* %f4 711 br label %18 712 713 ; <label>:14 714 store x86_fp80 %1, x86_fp80* %f5 715 br label %18 716 717 ; <label>:15 718 store x86_fp80 %1, x86_fp80* %f6 719 br label %18 720 721 ; <label>:16 722 store x86_fp80 %1, x86_fp80* %f7 723 br label %18 724 725 ; <label>:17 726 unreachable 727 728 ; <label>:18 729 ret void 730 } 731 732 define void @fld_st6() !addr !{!"0x10000027"} { 733 ; <label>:0 734 %f0 = alloca x86_fp80 735 %f1 = alloca x86_fp80 736 %f2 = alloca x86_fp80 737 %f3 = alloca x86_fp80 738 %f4 = alloca x86_fp80 739 %f5 = alloca x86_fp80 740 %f6 = alloca x86_fp80 741 %f7 = alloca x86_fp80 742 %st = alloca i8 743 store i8 7, i8* %st 744 br label %block_10000027 745 746 block_10000027: 747 %1 = load x86_fp80, x86_fp80* %f6 748 %2 = load i8, i8* %st 749 %3 = icmp eq i8 %2, 0 750 br i1 %3, label %4, label %5 751 752 ; <label>:4 753 store i8 7, i8* %st 754 br label %7 755 756 ; <label>:5 757 %6 = sub i8 %2, 1 758 store i8 %6, i8* %st 759 br label %7 760 761 ; <label>:7 762 %8 = load i8, i8* %st 763 switch i8 %8, label %17 [ 764 i8 0, label %9 765 i8 1, label %10 766 i8 2, label %11 767 i8 3, label %12 768 i8 4, label %13 769 i8 5, label %14 770 i8 6, label %15 771 i8 7, label %16 772 ] 773 774 ; <label>:9 775 store x86_fp80 %1, x86_fp80* %f0 776 br label %18 777 778 ; <label>:10 779 store x86_fp80 %1, x86_fp80* %f1 780 br label %18 781 782 ; <label>:11 783 store x86_fp80 %1, x86_fp80* %f2 784 br label %18 785 786 ; <label>:12 787 store x86_fp80 %1, x86_fp80* %f3 788 br label %18 789 790 ; <label>:13 791 store x86_fp80 %1, x86_fp80* %f4 792 br label %18 793 794 ; <label>:14 795 store x86_fp80 %1, x86_fp80* %f5 796 br label %18 797 798 ; <label>:15 799 store x86_fp80 %1, x86_fp80* %f6 800 br label %18 801 802 ; <label>:16 803 store x86_fp80 %1, x86_fp80* %f7 804 br label %18 805 806 ; <label>:17 807 unreachable 808 809 ; <label>:18 810 ret void 811 } 812 813 define void @fld_st7() !addr !{!"0x1000002A"} { 814 ; <label>:0 815 %f0 = alloca x86_fp80 816 %f1 = alloca x86_fp80 817 %f2 = alloca x86_fp80 818 %f3 = alloca x86_fp80 819 %f4 = alloca x86_fp80 820 %f5 = alloca x86_fp80 821 %f6 = alloca x86_fp80 822 %f7 = alloca x86_fp80 823 %st = alloca i8 824 store i8 7, i8* %st 825 br label %block_1000002A 826 827 block_1000002A: 828 %1 = load x86_fp80, x86_fp80* %f7 829 %2 = load i8, i8* %st 830 %3 = icmp eq i8 %2, 0 831 br i1 %3, label %4, label %5 832 833 ; <label>:4 834 store i8 7, i8* %st 835 br label %7 836 837 ; <label>:5 838 %6 = sub i8 %2, 1 839 store i8 %6, i8* %st 840 br label %7 841 842 ; <label>:7 843 %8 = load i8, i8* %st 844 switch i8 %8, label %17 [ 845 i8 0, label %9 846 i8 1, label %10 847 i8 2, label %11 848 i8 3, label %12 849 i8 4, label %13 850 i8 5, label %14 851 i8 6, label %15 852 i8 7, label %16 853 ] 854 855 ; <label>:9 856 store x86_fp80 %1, x86_fp80* %f0 857 br label %18 858 859 ; <label>:10 860 store x86_fp80 %1, x86_fp80* %f1 861 br label %18 862 863 ; <label>:11 864 store x86_fp80 %1, x86_fp80* %f2 865 br label %18 866 867 ; <label>:12 868 store x86_fp80 %1, x86_fp80* %f3 869 br label %18 870 871 ; <label>:13 872 store x86_fp80 %1, x86_fp80* %f4 873 br label %18 874 875 ; <label>:14 876 store x86_fp80 %1, x86_fp80* %f5 877 br label %18 878 879 ; <label>:15 880 store x86_fp80 %1, x86_fp80* %f6 881 br label %18 882 883 ; <label>:16 884 store x86_fp80 %1, x86_fp80* %f7 885 br label %18 886 887 ; <label>:17 888 unreachable 889 890 ; <label>:18 891 ret void 892 }