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 --skip-unimplemented \ | 7 ; RUN: --allow-externally-defined-symbols --skip-unimplemented \ |
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 452 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
463 ; IASM-NEXT: .byte 0x20 | 463 ; IASM-NEXT: .byte 0x20 |
464 ; IASM-NEXT: .byte 0x46 | 464 ; IASM-NEXT: .byte 0x46 |
465 ; IASM-NEXT: .byte 0x8 | 465 ; IASM-NEXT: .byte 0x8 |
466 ; IASM-NEXT: .byte 0x0 | 466 ; IASM-NEXT: .byte 0x0 |
467 ; IASM-NEXT: .byte 0xe0 | 467 ; IASM-NEXT: .byte 0xe0 |
468 ; IASM-NEXT: .byte 0x3 | 468 ; IASM-NEXT: .byte 0x3 |
469 ; IASM-NEXT: .byte 0x0 | 469 ; IASM-NEXT: .byte 0x0 |
470 ; IASM-NEXT: .byte 0x0 | 470 ; IASM-NEXT: .byte 0x0 |
471 ; IASM-NEXT: .byte 0x0 | 471 ; IASM-NEXT: .byte 0x0 |
472 ; IASM-NEXT: .byte 0x0 | 472 ; IASM-NEXT: .byte 0x0 |
| 473 |
| 474 define internal i64 @cast_d2ll_const() { |
| 475 entry: |
| 476 %v0 = bitcast double 0x12345678901234 to i64 |
| 477 ret i64 %v0 |
| 478 } |
| 479 ; ASM-LABEL: cast_d2ll_const |
| 480 ; ASM-LABEL: .Lcast_d2ll_const$entry: |
| 481 ; ASM-NEXT: lui $[[REG:.*]], %hi({{.*}}) |
| 482 ; ASM-NEXT: ldc1 $[[FREG:.*]], %lo({{.*}})($[[REG]]) |
| 483 |
| 484 ; DIS-LABEL: 000000c0 <cast_d2ll_const>: |
| 485 ; DIS-NEXT: c0: 3c020000 lui v0,0x0 |
| 486 ; DIS-NEXT: c4: d4400000 ldc1 $f0,0(v0) |
| 487 |
| 488 ; IASM-LABEL: cast_d2ll_const: |
| 489 ; IASM-LABEL: .Lcast_d2ll_const$entry: |
| 490 ; IASM-NEXT: .word 0x3c020000 # R_MIPS_HI16 [[LAB:.*]] |
| 491 ; IASM-NEXT: .word 0xd4400000 # R_MIPS_LO16 [[LAB]] |
| 492 ; IASM-NEXT: .byte 0x0 |
| 493 ; IASM-NEXT: .byte 0x8 |
| 494 ; IASM-NEXT: .byte 0x3 |
| 495 ; IASM-NEXT: .byte 0x44 |
| 496 ; IASM-NEXT: .byte 0x0 |
| 497 ; IASM-NEXT: .byte 0x0 |
| 498 ; IASM-NEXT: .byte 0x2 |
| 499 ; IASM-NEXT: .byte 0x44 |
| 500 ; IASM-NEXT: .byte 0x8 |
| 501 ; IASM-NEXT: .byte 0x0 |
| 502 ; IASM-NEXT: .byte 0xe0 |
| 503 ; IASM-NEXT: .byte 0x3 |
| 504 ; IASM-NEXT: .byte 0x0 |
| 505 ; IASM-NEXT: .byte 0x0 |
| 506 ; IASM-NEXT: .byte 0x0 |
| 507 ; IASM-NEXT: .byte 0x0 |
| 508 |
| 509 |
| 510 declare void @bar(i32 %a1, i32 %a2) |
| 511 define internal void @Call() { |
| 512 call void @bar(i32 1, i32 2) |
| 513 ret void |
| 514 } |
| 515 ; ASM-LABEL: Call |
| 516 ; ASM: jal bar |
| 517 |
| 518 ; DIS-LABEL: 000000e0 <Call>: |
| 519 ; DIS: f0: 0c000000 jal 0 |
| 520 |
| 521 ; IASM-LABEL: Call: |
| 522 ; IASM: .word 0xc000000 # R_MIPS_26 bar |
OLD | NEW |