1 ; RUN: llc -march=mips -relocation-model=pic -mattr=+micromips \ 2 ; RUN: -filetype=obj -o - %s | llvm-objdump -d - | FileCheck %s 3 4 ; CHECK-LABEL: foo: 5 ; CHECK-NEXT: 0: 41 a2 00 00 lui $2, 0 6 ; CHECK-NEXT: 4: 30 42 00 00 addiu $2, $2, 0 7 ; CHECK-NEXT: 8: 03 22 11 50 addu $2, $2, $25 8 ; CHECK-NEXT: c: fc 42 00 00 lw $2, 0($2) 9 ; CHECK-NEXT: 10: 69 20 lw16 $2, 0($2) 10 ; CHECK-NEXT: 12: 40 c2 00 14 bgtz $2, 44 <foo+0x3e> 11 ; CHECK-NEXT: 16: 00 00 00 00 nop 12 ; CHECK-NEXT: 1a: 33 bd ff f8 addiu $sp, $sp, -8 13 ; CHECK-NEXT: 1e: fb fd 00 00 sw $ra, 0($sp) 14 ; CHECK-NEXT: 22: 41 a1 00 01 lui $1, 1 15 ; CHECK-NEXT: 26: 40 60 00 02 bal 8 <foo+0x2e> 16 ; CHECK-NEXT: 2a: 30 21 04 68 addiu $1, $1, 1128 17 ; CHECK-NEXT: 2e: 00 3f 09 50 addu $1, $ra, $1 18 ; CHECK-NEXT: 32: ff fd 00 00 lw $ra, 0($sp) 19 ; CHECK-NEXT: 36: 00 01 0f 3c jr $1 20 ; CHECK-NEXT: 3a: 33 bd 00 08 addiu $sp, $sp, 8 21 ; CHECK-NEXT: 3e: 94 00 00 02 b 8 <foo+0x46> 22 ; CHECK-NEXT: 42: 00 00 00 00 nop 23 ; CHECK-NEXT: 46: 30 20 4e 1f addiu $1, $zero, 19999 24 ; CHECK-NEXT: 4a: b4 22 00 14 bne $2, $1, 44 <foo+0x76> 25 ; CHECK-NEXT: 4e: 00 00 00 00 nop 26 ; CHECK-NEXT: 52: 33 bd ff f8 addiu $sp, $sp, -8 27 ; CHECK-NEXT: 56: fb fd 00 00 sw $ra, 0($sp) 28 ; CHECK-NEXT: 5a: 41 a1 00 01 lui $1, 1 29 ; CHECK-NEXT: 5e: 40 60 00 02 bal 8 <foo+0x66> 30 ; CHECK-NEXT: 62: 30 21 04 5c addiu $1, $1, 1116 31 ; CHECK-NEXT: 66: 00 3f 09 50 addu $1, $ra, $1 32 ; CHECK-NEXT: 6a: ff fd 00 00 lw $ra, 0($sp) 33 ; CHECK-NEXT: 6e: 00 01 0f 3c jr $1 34 ; CHECK-NEXT: 72: 33 bd 00 08 addiu $sp, $sp, 8 35 ; CHECK-NEXT: 76: 30 20 27 0f addiu $1, $zero, 9999 36 ; CHECK-NEXT: 7a: 94 22 00 14 beq $2, $1, 44 <foo+0xa6> 37 ; CHECK-NEXT: 7e: 00 00 00 00 nop 38 ; CHECK-NEXT: 82: 33 bd ff f8 addiu $sp, $sp, -8 39 ; CHECK-NEXT: 86: fb fd 00 00 sw $ra, 0($sp) 40 ; CHECK-NEXT: 8a: 41 a1 00 01 lui $1, 1 41 ; CHECK-NEXT: 8e: 40 60 00 02 bal 8 <foo+0x96> 42 ; CHECK-NEXT: 92: 30 21 04 2c addiu $1, $1, 1068 43 ; CHECK-NEXT: 96: 00 3f 09 50 addu $1, $ra, $1 44 ; CHECK-NEXT: 9a: ff fd 00 00 lw $ra, 0($sp) 45 ; CHECK-NEXT: 9e: 00 01 0f 3c jr $1 46 ; CHECK-NEXT: a2: 33 bd 00 08 addiu $sp, $sp, 8 47 48 ; CHECK: 10466: 00 00 00 00 nop 49 ; CHECK-NEXT: 1046a: 94 00 00 02 b 8 <foo+0x10472> 50 ; CHECK-NEXT: 1046e: 00 00 00 00 nop 51 ; CHECK-NEXT: 10472: 33 bd ff f8 addiu $sp, $sp, -8 52 ; CHECK-NEXT: 10476: fb fd 00 00 sw $ra, 0($sp) 53 ; CHECK-NEXT: 1047a: 41 a1 00 01 lui $1, 1 54 ; CHECK-NEXT: 1047e: 40 60 00 02 bal 8 <foo+0x10486> 55 ; CHECK-NEXT: 10482: 30 21 04 00 addiu $1, $1, 1024 56 ; CHECK-NEXT: 10486: 00 3f 09 50 addu $1, $ra, $1 57 ; CHECK-NEXT: 1048a: ff fd 00 00 lw $ra, 0($sp) 58 ; CHECK-NEXT: 1048e: 00 01 0f 3c jr $1 59 ; CHECK-NEXT: 10492: 33 bd 00 08 addiu $sp, $sp, 8 60 ; CHECK-NEXT: 10496: 94 00 00 02 b 8 <foo+0x1049e> 61 62 @x = external global i32, align 4 63 64 define void @foo() { 65 %1 = load i32, i32* @x, align 4 66 %2 = icmp sgt i32 %1, 0 67 br i1 %2, label %la, label %lf 68 69 la: 70 switch i32 %1, label %le [ 71 i32 9999, label %lb 72 i32 19999, label %lc 73 ] 74 75 lb: 76 tail call void asm sideeffect ".space 0", ""() 77 br label %le 78 79 lc: 80 tail call void asm sideeffect ".space 0", ""() 81 br label %le 82 83 le: 84 tail call void asm sideeffect ".space 66500", ""() 85 br label %lg 86 87 lf: 88 tail call void asm sideeffect ".space 0", ""() 89 br label %lg 90 91 lg: 92 tail call void asm sideeffect ".space 0", ""() 93 br label %li 94 95 li: 96 tail call void asm sideeffect ".space 0", ""() 97 ret void 98 } 99