| OLD | NEW |
| 1 ; Test encoding of MIPS32 floating point arithmetic instructions | 1 ; Test encoding of MIPS32 floating point arithmetic instructions |
| 2 | 2 |
| 3 ; REQUIRES: allow_dump | 3 ; REQUIRES: allow_dump |
| 4 | 4 |
| 5 ; Compile using standalone assembler. | 5 ; Compile using standalone assembler. |
| 6 ; RUN: %p2i --filetype=asm -i %s --target=mips32 --args -O2 \ | 6 ; RUN: %p2i --filetype=asm -i %s --target=mips32 --args -O2 \ |
| 7 ; RUN: --allow-externally-defined-symbols \ | 7 ; RUN: --allow-externally-defined-symbols \ |
| 8 ; RUN: | FileCheck %s --check-prefix=ASM | 8 ; RUN: | FileCheck %s --check-prefix=ASM |
| 9 | 9 |
| 10 ; Show bytes in assembled standalone code. | 10 ; Show bytes in assembled standalone code. |
| (...skipping 460 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 471 ; IASM-NEXT: .byte 0x0 | 471 ; IASM-NEXT: .byte 0x0 |
| 472 ; IASM-NEXT: .byte 0x0 | 472 ; IASM-NEXT: .byte 0x0 |
| 473 | 473 |
| 474 define internal i64 @cast_d2ll_const() { | 474 define internal i64 @cast_d2ll_const() { |
| 475 entry: | 475 entry: |
| 476 %v0 = bitcast double 0x12345678901234 to i64 | 476 %v0 = bitcast double 0x12345678901234 to i64 |
| 477 ret i64 %v0 | 477 ret i64 %v0 |
| 478 } | 478 } |
| 479 ; ASM-LABEL: cast_d2ll_const | 479 ; ASM-LABEL: cast_d2ll_const |
| 480 ; ASM-LABEL: .Lcast_d2ll_const$entry: | 480 ; ASM-LABEL: .Lcast_d2ll_const$entry: |
| 481 ; ASM-NEXT:» lui $[[REG:.*]], %hi({{.*}}) | 481 ; ASM:» lui $[[REG:.*]], %hi({{.*}}) |
| 482 ; ASM-NEXT: ldc1 $[[FREG:.*]], %lo({{.*}})($[[REG]]) | 482 ; ASM-NEXT: ldc1 $[[FREG:.*]], %lo({{.*}})($[[REG]]) |
| 483 | 483 |
| 484 ; DIS-LABEL: 000000c0 <cast_d2ll_const>: | 484 ; DIS-LABEL: <cast_d2ll_const>: |
| 485 ; DIS-NEXT: c0: 3c020000 lui v0,0x0 | 485 ; DIS: 3c020000 lui v0,0x0 |
| 486 ; DIS-NEXT: c4: d4400000 ldc1 $f0,0(v0) | 486 ; DIS-NEXT: d4400000 ldc1 $f0,0(v0) |
| 487 | 487 |
| 488 ; IASM-LABEL: cast_d2ll_const: | 488 ; IASM-LABEL: cast_d2ll_const: |
| 489 ; IASM-LABEL: .Lcast_d2ll_const$entry: | 489 ; IASM-LABEL: .Lcast_d2ll_const$entry: |
| 490 ; IASM-NEXT: .byte 0xf0 |
| 491 ; IASM-NEXT: .byte 0xff |
| 492 ; IASM-NEXT: .byte 0xbd |
| 493 ; IASM-NEXT: .byte 0x27 |
| 490 ; IASM-NEXT: .word 0x3c020000 # R_MIPS_HI16 [[LAB:.*]] | 494 ; IASM-NEXT: .word 0x3c020000 # R_MIPS_HI16 [[LAB:.*]] |
| 491 ; IASM-NEXT: .word 0xd4400000 # R_MIPS_LO16 [[LAB]] | 495 ; IASM-NEXT: .word 0xd4400000 # R_MIPS_LO16 [[LAB]] |
| 492 ; IASM-NEXT: .byte 0x0 | 496 ; IASM-NEXT: .byte 0x0 |
| 493 ; IASM-NEXT:» .byte 0x8 | 497 ; IASM-NEXT:» .byte 0x0 |
| 494 ; IASM-NEXT:» .byte 0x3 | 498 ; IASM-NEXT:» .byte 0xa1 |
| 495 ; IASM-NEXT:» .byte 0x44 | 499 ; IASM-NEXT:» .byte 0xe7 |
| 500 ; IASM-NEXT:» .byte 0x4 |
| 501 ; IASM-NEXT:» .byte 0x0 |
| 502 ; IASM-NEXT:» .byte 0xa0 |
| 503 ; IASM-NEXT:» .byte 0xe7 |
| 504 ; IASM-NEXT:» .byte 0x4 |
| 505 ; IASM-NEXT:» .byte 0x0 |
| 506 ; IASM-NEXT:» .byte 0xa2 |
| 507 ; IASM-NEXT:» .byte 0x8f |
| 496 ; IASM-NEXT: .byte 0x0 | 508 ; IASM-NEXT: .byte 0x0 |
| 497 ; IASM-NEXT: .byte 0x0 | 509 ; IASM-NEXT: .byte 0x0 |
| 498 ; IASM-NEXT:» .byte 0x2 | 510 ; IASM-NEXT:» .byte 0xa3 |
| 499 ; IASM-NEXT:» .byte 0x44 | 511 ; IASM-NEXT:» .byte 0x8f |
| 512 ; IASM-NEXT:» .byte 0x10 |
| 513 ; IASM-NEXT:» .byte 0x0 |
| 514 ; IASM-NEXT:» .byte 0xbd |
| 515 ; IASM-NEXT:» .byte 0x27 |
| 500 ; IASM-NEXT: .byte 0x8 | 516 ; IASM-NEXT: .byte 0x8 |
| 501 ; IASM-NEXT: .byte 0x0 | 517 ; IASM-NEXT: .byte 0x0 |
| 502 ; IASM-NEXT: .byte 0xe0 | 518 ; IASM-NEXT: .byte 0xe0 |
| 503 ; IASM-NEXT: .byte 0x3 | 519 ; IASM-NEXT: .byte 0x3 |
| 504 ; IASM-NEXT: .byte 0x0 | 520 ; IASM-NEXT: .byte 0x0 |
| 505 ; IASM-NEXT: .byte 0x0 | 521 ; IASM-NEXT: .byte 0x0 |
| 506 ; IASM-NEXT: .byte 0x0 | 522 ; IASM-NEXT: .byte 0x0 |
| 507 ; IASM-NEXT: .byte 0x0 | 523 ; IASM-NEXT: .byte 0x0 |
| 524 ; IASM-NEXT: .byte 0x34 |
| 525 ; IASM-NEXT: .byte 0x0 |
| 526 ; IASM-NEXT: .byte 0x0 |
| 527 ; IASM-NEXT: .byte 0x0 |
| 528 ; IASM-NEXT: .byte 0x34 |
| 529 ; IASM-NEXT: .byte 0x0 |
| 530 ; IASM-NEXT: .byte 0x0 |
| 531 ; IASM-NEXT: .byte 0x0 |
| 508 | 532 |
| 509 | |
| 510 declare void @bar(i32 %a1, i32 %a2) | 533 declare void @bar(i32 %a1, i32 %a2) |
| 511 define internal void @Call() { | 534 define internal void @Call() { |
| 512 call void @bar(i32 1, i32 2) | 535 call void @bar(i32 1, i32 2) |
| 513 ret void | 536 ret void |
| 514 } | 537 } |
| 515 ; ASM-LABEL: Call | 538 ; ASM-LABEL: Call |
| 516 ; ASM: jal bar | 539 ; ASM: jal bar |
| 517 | 540 |
| 518 ; DIS-LABEL: 000000e0 <Call>: | 541 ; DIS-LABEL: 000000f0 <Call>: |
| 519 ; DIS: f0: 0c000000 jal 0 | 542 ; DIS: 100:» 0c000000 jal 0 |
| 520 | 543 |
| 521 ; IASM-LABEL: Call: | 544 ; IASM-LABEL: Call: |
| 522 ; IASM: .word 0xc000000 # R_MIPS_26 bar | 545 ; IASM: .word 0xc000000 # R_MIPS_26 bar |
| OLD | NEW |