Home | History | Annotate | Download | only in indirect-jump-hazard
      1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
      2 ; RUN: llc  < %s -mtriple=mips-mti-linux-gnu -relocation-model=static \
      3 ; RUN:   -mips-tail-calls=1 -mcpu=mips32r2 -mattr=+use-indirect-jump-hazard \
      4 ; RUN:   -verify-machineinstrs | FileCheck %s --check-prefix=MIPS32R2
      5 ; RUN: llc  < %s -mtriple=mips-img-linux-gnu -relocation-model=static \
      6 ; RUN:   -mips-tail-calls=1 -mcpu=mips32r6 -mattr=+use-indirect-jump-hazard \
      7 ; RUN:   -verify-machineinstrs | FileCheck %s --check-prefix=MIPS32R6
      8 ; RUN: llc  < %s -mtriple=mips64-mti-linux-gnu -relocation-model=static \
      9 ; RUN:   -mips-tail-calls=1 -mcpu=mips64r2 -mattr=+use-indirect-jump-hazard \
     10 ; RUN:   -verify-machineinstrs | FileCheck %s --check-prefix=MIPS64R2
     11 ; RUN: llc  < %s -mtriple=mips64-img-linux-gnu -relocation-model=static \
     12 ; RUN:   -mips-tail-calls=1 -mcpu=mips64r6 -mattr=+use-indirect-jump-hazard \
     13 ; RUN:   -verify-machineinstrs | FileCheck %s --check-prefix=MIPS64R6
     14 
     15 ; RUN: llc  < %s -mtriple=mips-mti-linux-gnu -relocation-model=pic \
     16 ; RUN:   -mips-tail-calls=1 -mcpu=mips32r2 -mattr=+use-indirect-jump-hazard \
     17 ; RUN:   -verify-machineinstrs | FileCheck %s --check-prefix=PIC-MIPS32R2
     18 ; RUN: llc  < %s -mtriple=mips-img-linux-gnu -relocation-model=pic \
     19 ; RUN:   -mips-tail-calls=1 -mcpu=mips32r6 -mattr=+use-indirect-jump-hazard \
     20 ; RUN:   -verify-machineinstrs | FileCheck %s --check-prefix=PIC-MIPS32R6
     21 ; RUN: llc  < %s -mtriple=mips64-mti-linux-gnu -relocation-model=pic \
     22 ; RUN:   -mips-tail-calls=1 -mcpu=mips64r2 -mattr=+use-indirect-jump-hazard \
     23 ; RUN:   -verify-machineinstrs | FileCheck %s --check-prefix=PIC-MIPS64R2
     24 ; RUN: llc  < %s -mtriple=mips64-img-linux-gnu -relocation-model=pic \
     25 ; RUN:   -mips-tail-calls=1 -mcpu=mips64r6 -mattr=+use-indirect-jump-hazard \
     26 ; RUN:   -verify-machineinstrs | FileCheck %s --check-prefix=PIC-MIPS64R6
     27 
     28 @.str = private unnamed_addr constant [2 x i8] c"A\00", align 1
     29 @.str.1 = private unnamed_addr constant [2 x i8] c"B\00", align 1
     30 @.str.2 = private unnamed_addr constant [2 x i8] c"C\00", align 1
     31 @.str.3 = private unnamed_addr constant [2 x i8] c"D\00", align 1
     32 @.str.4 = private unnamed_addr constant [2 x i8] c"E\00", align 1
     33 @.str.5 = private unnamed_addr constant [2 x i8] c"F\00", align 1
     34 @.str.6 = private unnamed_addr constant [2 x i8] c"G\00", align 1
     35 @.str.7 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
     36 
     37 define i8* @_Z3fooi(i32 signext %Letter) {
     38 ; MIPS32R2-LABEL: _Z3fooi:
     39 ; MIPS32R2:       # %bb.0: # %entry
     40 ; MIPS32R2-NEXT:    addiu $sp, $sp, -16
     41 ; MIPS32R2-NEXT:    .cfi_def_cfa_offset 16
     42 ; MIPS32R2-NEXT:    sltiu $1, $4, 7
     43 ; MIPS32R2-NEXT:    beqz $1, $BB0_3
     44 ; MIPS32R2-NEXT:    sw $4, 4($sp)
     45 ; MIPS32R2-NEXT:  $BB0_1: # %entry
     46 ; MIPS32R2-NEXT:    sll $1, $4, 2
     47 ; MIPS32R2-NEXT:    lui $2, %hi($JTI0_0)
     48 ; MIPS32R2-NEXT:    addu $1, $1, $2
     49 ; MIPS32R2-NEXT:    lw $1, %lo($JTI0_0)($1)
     50 ; MIPS32R2-NEXT:    jr.hb $1
     51 ; MIPS32R2-NEXT:    nop
     52 ; MIPS32R2-NEXT:  $BB0_2: # %sw.bb
     53 ; MIPS32R2-NEXT:    lui $1, %hi($.str)
     54 ; MIPS32R2-NEXT:    addiu $1, $1, %lo($.str)
     55 ; MIPS32R2-NEXT:    j $BB0_10
     56 ; MIPS32R2-NEXT:    sw $1, 8($sp)
     57 ; MIPS32R2-NEXT:  $BB0_3: # %sw.epilog
     58 ; MIPS32R2-NEXT:    lui $1, %hi($.str.7)
     59 ; MIPS32R2-NEXT:    addiu $1, $1, %lo($.str.7)
     60 ; MIPS32R2-NEXT:    j $BB0_10
     61 ; MIPS32R2-NEXT:    sw $1, 8($sp)
     62 ; MIPS32R2-NEXT:  $BB0_4: # %sw.bb1
     63 ; MIPS32R2-NEXT:    lui $1, %hi($.str.1)
     64 ; MIPS32R2-NEXT:    addiu $1, $1, %lo($.str.1)
     65 ; MIPS32R2-NEXT:    j $BB0_10
     66 ; MIPS32R2-NEXT:    sw $1, 8($sp)
     67 ; MIPS32R2-NEXT:  $BB0_5: # %sw.bb2
     68 ; MIPS32R2-NEXT:    lui $1, %hi($.str.2)
     69 ; MIPS32R2-NEXT:    addiu $1, $1, %lo($.str.2)
     70 ; MIPS32R2-NEXT:    j $BB0_10
     71 ; MIPS32R2-NEXT:    sw $1, 8($sp)
     72 ; MIPS32R2-NEXT:  $BB0_6: # %sw.bb3
     73 ; MIPS32R2-NEXT:    lui $1, %hi($.str.3)
     74 ; MIPS32R2-NEXT:    addiu $1, $1, %lo($.str.3)
     75 ; MIPS32R2-NEXT:    j $BB0_10
     76 ; MIPS32R2-NEXT:    sw $1, 8($sp)
     77 ; MIPS32R2-NEXT:  $BB0_7: # %sw.bb4
     78 ; MIPS32R2-NEXT:    lui $1, %hi($.str.4)
     79 ; MIPS32R2-NEXT:    addiu $1, $1, %lo($.str.4)
     80 ; MIPS32R2-NEXT:    j $BB0_10
     81 ; MIPS32R2-NEXT:    sw $1, 8($sp)
     82 ; MIPS32R2-NEXT:  $BB0_8: # %sw.bb5
     83 ; MIPS32R2-NEXT:    lui $1, %hi($.str.5)
     84 ; MIPS32R2-NEXT:    addiu $1, $1, %lo($.str.5)
     85 ; MIPS32R2-NEXT:    j $BB0_10
     86 ; MIPS32R2-NEXT:    sw $1, 8($sp)
     87 ; MIPS32R2-NEXT:  $BB0_9: # %sw.bb6
     88 ; MIPS32R2-NEXT:    lui $1, %hi($.str.6)
     89 ; MIPS32R2-NEXT:    addiu $1, $1, %lo($.str.6)
     90 ; MIPS32R2-NEXT:    sw $1, 8($sp)
     91 ; MIPS32R2-NEXT:  $BB0_10: # %return
     92 ; MIPS32R2-NEXT:    lw $2, 8($sp)
     93 ; MIPS32R2-NEXT:    jr $ra
     94 ; MIPS32R2-NEXT:    addiu $sp, $sp, 16
     95 ;
     96 ; MIPS32R6-LABEL: _Z3fooi:
     97 ; MIPS32R6:       # %bb.0: # %entry
     98 ; MIPS32R6-NEXT:    addiu $sp, $sp, -16
     99 ; MIPS32R6-NEXT:    .cfi_def_cfa_offset 16
    100 ; MIPS32R6-NEXT:    sltiu $1, $4, 7
    101 ; MIPS32R6-NEXT:    beqz $1, $BB0_3
    102 ; MIPS32R6-NEXT:    sw $4, 4($sp)
    103 ; MIPS32R6-NEXT:  $BB0_1: # %entry
    104 ; MIPS32R6-NEXT:    sll $1, $4, 2
    105 ; MIPS32R6-NEXT:    lui $2, %hi($JTI0_0)
    106 ; MIPS32R6-NEXT:    addu $1, $1, $2
    107 ; MIPS32R6-NEXT:    lw $1, %lo($JTI0_0)($1)
    108 ; MIPS32R6-NEXT:    jr.hb $1
    109 ; MIPS32R6-NEXT:    nop
    110 ; MIPS32R6-NEXT:  $BB0_2: # %sw.bb
    111 ; MIPS32R6-NEXT:    lui $1, %hi($.str)
    112 ; MIPS32R6-NEXT:    addiu $1, $1, %lo($.str)
    113 ; MIPS32R6-NEXT:    j $BB0_10
    114 ; MIPS32R6-NEXT:    sw $1, 8($sp)
    115 ; MIPS32R6-NEXT:  $BB0_3: # %sw.epilog
    116 ; MIPS32R6-NEXT:    lui $1, %hi($.str.7)
    117 ; MIPS32R6-NEXT:    addiu $1, $1, %lo($.str.7)
    118 ; MIPS32R6-NEXT:    j $BB0_10
    119 ; MIPS32R6-NEXT:    sw $1, 8($sp)
    120 ; MIPS32R6-NEXT:  $BB0_4: # %sw.bb1
    121 ; MIPS32R6-NEXT:    lui $1, %hi($.str.1)
    122 ; MIPS32R6-NEXT:    addiu $1, $1, %lo($.str.1)
    123 ; MIPS32R6-NEXT:    j $BB0_10
    124 ; MIPS32R6-NEXT:    sw $1, 8($sp)
    125 ; MIPS32R6-NEXT:  $BB0_5: # %sw.bb2
    126 ; MIPS32R6-NEXT:    lui $1, %hi($.str.2)
    127 ; MIPS32R6-NEXT:    addiu $1, $1, %lo($.str.2)
    128 ; MIPS32R6-NEXT:    j $BB0_10
    129 ; MIPS32R6-NEXT:    sw $1, 8($sp)
    130 ; MIPS32R6-NEXT:  $BB0_6: # %sw.bb3
    131 ; MIPS32R6-NEXT:    lui $1, %hi($.str.3)
    132 ; MIPS32R6-NEXT:    addiu $1, $1, %lo($.str.3)
    133 ; MIPS32R6-NEXT:    j $BB0_10
    134 ; MIPS32R6-NEXT:    sw $1, 8($sp)
    135 ; MIPS32R6-NEXT:  $BB0_7: # %sw.bb4
    136 ; MIPS32R6-NEXT:    lui $1, %hi($.str.4)
    137 ; MIPS32R6-NEXT:    addiu $1, $1, %lo($.str.4)
    138 ; MIPS32R6-NEXT:    j $BB0_10
    139 ; MIPS32R6-NEXT:    sw $1, 8($sp)
    140 ; MIPS32R6-NEXT:  $BB0_8: # %sw.bb5
    141 ; MIPS32R6-NEXT:    lui $1, %hi($.str.5)
    142 ; MIPS32R6-NEXT:    addiu $1, $1, %lo($.str.5)
    143 ; MIPS32R6-NEXT:    j $BB0_10
    144 ; MIPS32R6-NEXT:    sw $1, 8($sp)
    145 ; MIPS32R6-NEXT:  $BB0_9: # %sw.bb6
    146 ; MIPS32R6-NEXT:    lui $1, %hi($.str.6)
    147 ; MIPS32R6-NEXT:    addiu $1, $1, %lo($.str.6)
    148 ; MIPS32R6-NEXT:    sw $1, 8($sp)
    149 ; MIPS32R6-NEXT:  $BB0_10: # %return
    150 ; MIPS32R6-NEXT:    lw $2, 8($sp)
    151 ; MIPS32R6-NEXT:    jr $ra
    152 ; MIPS32R6-NEXT:    addiu $sp, $sp, 16
    153 ;
    154 ; MIPS64R2-LABEL: _Z3fooi:
    155 ; MIPS64R2:       # %bb.0: # %entry
    156 ; MIPS64R2-NEXT:    daddiu $sp, $sp, -16
    157 ; MIPS64R2-NEXT:    .cfi_def_cfa_offset 16
    158 ; MIPS64R2-NEXT:    sw $4, 4($sp)
    159 ; MIPS64R2-NEXT:    lwu $2, 4($sp)
    160 ; MIPS64R2-NEXT:    sltiu $1, $2, 7
    161 ; MIPS64R2-NEXT:    beqz $1, .LBB0_3
    162 ; MIPS64R2-NEXT:    nop
    163 ; MIPS64R2-NEXT:  .LBB0_1: # %entry
    164 ; MIPS64R2-NEXT:    dsll $1, $2, 3
    165 ; MIPS64R2-NEXT:    lui $2, %highest(.LJTI0_0)
    166 ; MIPS64R2-NEXT:    daddiu $2, $2, %higher(.LJTI0_0)
    167 ; MIPS64R2-NEXT:    dsll $2, $2, 16
    168 ; MIPS64R2-NEXT:    daddiu $2, $2, %hi(.LJTI0_0)
    169 ; MIPS64R2-NEXT:    dsll $2, $2, 16
    170 ; MIPS64R2-NEXT:    daddu $1, $1, $2
    171 ; MIPS64R2-NEXT:    ld $1, %lo(.LJTI0_0)($1)
    172 ; MIPS64R2-NEXT:    jr.hb $1
    173 ; MIPS64R2-NEXT:    nop
    174 ; MIPS64R2-NEXT:  .LBB0_2: # %sw.bb
    175 ; MIPS64R2-NEXT:    lui $1, %highest(.L.str)
    176 ; MIPS64R2-NEXT:    daddiu $1, $1, %higher(.L.str)
    177 ; MIPS64R2-NEXT:    dsll $1, $1, 16
    178 ; MIPS64R2-NEXT:    daddiu $1, $1, %hi(.L.str)
    179 ; MIPS64R2-NEXT:    dsll $1, $1, 16
    180 ; MIPS64R2-NEXT:    daddiu $1, $1, %lo(.L.str)
    181 ; MIPS64R2-NEXT:    j .LBB0_10
    182 ; MIPS64R2-NEXT:    sd $1, 8($sp)
    183 ; MIPS64R2-NEXT:  .LBB0_3: # %sw.epilog
    184 ; MIPS64R2-NEXT:    lui $1, %highest(.L.str.7)
    185 ; MIPS64R2-NEXT:    daddiu $1, $1, %higher(.L.str.7)
    186 ; MIPS64R2-NEXT:    dsll $1, $1, 16
    187 ; MIPS64R2-NEXT:    daddiu $1, $1, %hi(.L.str.7)
    188 ; MIPS64R2-NEXT:    dsll $1, $1, 16
    189 ; MIPS64R2-NEXT:    daddiu $1, $1, %lo(.L.str.7)
    190 ; MIPS64R2-NEXT:    j .LBB0_10
    191 ; MIPS64R2-NEXT:    sd $1, 8($sp)
    192 ; MIPS64R2-NEXT:  .LBB0_4: # %sw.bb1
    193 ; MIPS64R2-NEXT:    lui $1, %highest(.L.str.1)
    194 ; MIPS64R2-NEXT:    daddiu $1, $1, %higher(.L.str.1)
    195 ; MIPS64R2-NEXT:    dsll $1, $1, 16
    196 ; MIPS64R2-NEXT:    daddiu $1, $1, %hi(.L.str.1)
    197 ; MIPS64R2-NEXT:    dsll $1, $1, 16
    198 ; MIPS64R2-NEXT:    daddiu $1, $1, %lo(.L.str.1)
    199 ; MIPS64R2-NEXT:    j .LBB0_10
    200 ; MIPS64R2-NEXT:    sd $1, 8($sp)
    201 ; MIPS64R2-NEXT:  .LBB0_5: # %sw.bb2
    202 ; MIPS64R2-NEXT:    lui $1, %highest(.L.str.2)
    203 ; MIPS64R2-NEXT:    daddiu $1, $1, %higher(.L.str.2)
    204 ; MIPS64R2-NEXT:    dsll $1, $1, 16
    205 ; MIPS64R2-NEXT:    daddiu $1, $1, %hi(.L.str.2)
    206 ; MIPS64R2-NEXT:    dsll $1, $1, 16
    207 ; MIPS64R2-NEXT:    daddiu $1, $1, %lo(.L.str.2)
    208 ; MIPS64R2-NEXT:    j .LBB0_10
    209 ; MIPS64R2-NEXT:    sd $1, 8($sp)
    210 ; MIPS64R2-NEXT:  .LBB0_6: # %sw.bb3
    211 ; MIPS64R2-NEXT:    lui $1, %highest(.L.str.3)
    212 ; MIPS64R2-NEXT:    daddiu $1, $1, %higher(.L.str.3)
    213 ; MIPS64R2-NEXT:    dsll $1, $1, 16
    214 ; MIPS64R2-NEXT:    daddiu $1, $1, %hi(.L.str.3)
    215 ; MIPS64R2-NEXT:    dsll $1, $1, 16
    216 ; MIPS64R2-NEXT:    daddiu $1, $1, %lo(.L.str.3)
    217 ; MIPS64R2-NEXT:    j .LBB0_10
    218 ; MIPS64R2-NEXT:    sd $1, 8($sp)
    219 ; MIPS64R2-NEXT:  .LBB0_7: # %sw.bb4
    220 ; MIPS64R2-NEXT:    lui $1, %highest(.L.str.4)
    221 ; MIPS64R2-NEXT:    daddiu $1, $1, %higher(.L.str.4)
    222 ; MIPS64R2-NEXT:    dsll $1, $1, 16
    223 ; MIPS64R2-NEXT:    daddiu $1, $1, %hi(.L.str.4)
    224 ; MIPS64R2-NEXT:    dsll $1, $1, 16
    225 ; MIPS64R2-NEXT:    daddiu $1, $1, %lo(.L.str.4)
    226 ; MIPS64R2-NEXT:    j .LBB0_10
    227 ; MIPS64R2-NEXT:    sd $1, 8($sp)
    228 ; MIPS64R2-NEXT:  .LBB0_8: # %sw.bb5
    229 ; MIPS64R2-NEXT:    lui $1, %highest(.L.str.5)
    230 ; MIPS64R2-NEXT:    daddiu $1, $1, %higher(.L.str.5)
    231 ; MIPS64R2-NEXT:    dsll $1, $1, 16
    232 ; MIPS64R2-NEXT:    daddiu $1, $1, %hi(.L.str.5)
    233 ; MIPS64R2-NEXT:    dsll $1, $1, 16
    234 ; MIPS64R2-NEXT:    daddiu $1, $1, %lo(.L.str.5)
    235 ; MIPS64R2-NEXT:    j .LBB0_10
    236 ; MIPS64R2-NEXT:    sd $1, 8($sp)
    237 ; MIPS64R2-NEXT:  .LBB0_9: # %sw.bb6
    238 ; MIPS64R2-NEXT:    lui $1, %highest(.L.str.6)
    239 ; MIPS64R2-NEXT:    daddiu $1, $1, %higher(.L.str.6)
    240 ; MIPS64R2-NEXT:    dsll $1, $1, 16
    241 ; MIPS64R2-NEXT:    daddiu $1, $1, %hi(.L.str.6)
    242 ; MIPS64R2-NEXT:    dsll $1, $1, 16
    243 ; MIPS64R2-NEXT:    daddiu $1, $1, %lo(.L.str.6)
    244 ; MIPS64R2-NEXT:    sd $1, 8($sp)
    245 ; MIPS64R2-NEXT:  .LBB0_10: # %return
    246 ; MIPS64R2-NEXT:    ld $2, 8($sp)
    247 ; MIPS64R2-NEXT:    jr $ra
    248 ; MIPS64R2-NEXT:    daddiu $sp, $sp, 16
    249 ;
    250 ; MIPS64R6-LABEL: _Z3fooi:
    251 ; MIPS64R6:       # %bb.0: # %entry
    252 ; MIPS64R6-NEXT:    daddiu $sp, $sp, -16
    253 ; MIPS64R6-NEXT:    .cfi_def_cfa_offset 16
    254 ; MIPS64R6-NEXT:    sw $4, 4($sp)
    255 ; MIPS64R6-NEXT:    lwu $2, 4($sp)
    256 ; MIPS64R6-NEXT:    sltiu $1, $2, 7
    257 ; MIPS64R6-NEXT:    beqzc $1, .LBB0_3
    258 ; MIPS64R6-NEXT:  .LBB0_1: # %entry
    259 ; MIPS64R6-NEXT:    dsll $1, $2, 3
    260 ; MIPS64R6-NEXT:    lui $2, %highest(.LJTI0_0)
    261 ; MIPS64R6-NEXT:    daddiu $2, $2, %higher(.LJTI0_0)
    262 ; MIPS64R6-NEXT:    dsll $2, $2, 16
    263 ; MIPS64R6-NEXT:    daddiu $2, $2, %hi(.LJTI0_0)
    264 ; MIPS64R6-NEXT:    dsll $2, $2, 16
    265 ; MIPS64R6-NEXT:    daddu $1, $1, $2
    266 ; MIPS64R6-NEXT:    ld $1, %lo(.LJTI0_0)($1)
    267 ; MIPS64R6-NEXT:    jr.hb $1
    268 ; MIPS64R6-NEXT:    nop
    269 ; MIPS64R6-NEXT:  .LBB0_2: # %sw.bb
    270 ; MIPS64R6-NEXT:    lui $1, %highest(.L.str)
    271 ; MIPS64R6-NEXT:    daddiu $1, $1, %higher(.L.str)
    272 ; MIPS64R6-NEXT:    dsll $1, $1, 16
    273 ; MIPS64R6-NEXT:    daddiu $1, $1, %hi(.L.str)
    274 ; MIPS64R6-NEXT:    dsll $1, $1, 16
    275 ; MIPS64R6-NEXT:    daddiu $1, $1, %lo(.L.str)
    276 ; MIPS64R6-NEXT:    j .LBB0_10
    277 ; MIPS64R6-NEXT:    sd $1, 8($sp)
    278 ; MIPS64R6-NEXT:  .LBB0_3: # %sw.epilog
    279 ; MIPS64R6-NEXT:    lui $1, %highest(.L.str.7)
    280 ; MIPS64R6-NEXT:    daddiu $1, $1, %higher(.L.str.7)
    281 ; MIPS64R6-NEXT:    dsll $1, $1, 16
    282 ; MIPS64R6-NEXT:    daddiu $1, $1, %hi(.L.str.7)
    283 ; MIPS64R6-NEXT:    dsll $1, $1, 16
    284 ; MIPS64R6-NEXT:    daddiu $1, $1, %lo(.L.str.7)
    285 ; MIPS64R6-NEXT:    j .LBB0_10
    286 ; MIPS64R6-NEXT:    sd $1, 8($sp)
    287 ; MIPS64R6-NEXT:  .LBB0_4: # %sw.bb1
    288 ; MIPS64R6-NEXT:    lui $1, %highest(.L.str.1)
    289 ; MIPS64R6-NEXT:    daddiu $1, $1, %higher(.L.str.1)
    290 ; MIPS64R6-NEXT:    dsll $1, $1, 16
    291 ; MIPS64R6-NEXT:    daddiu $1, $1, %hi(.L.str.1)
    292 ; MIPS64R6-NEXT:    dsll $1, $1, 16
    293 ; MIPS64R6-NEXT:    daddiu $1, $1, %lo(.L.str.1)
    294 ; MIPS64R6-NEXT:    j .LBB0_10
    295 ; MIPS64R6-NEXT:    sd $1, 8($sp)
    296 ; MIPS64R6-NEXT:  .LBB0_5: # %sw.bb2
    297 ; MIPS64R6-NEXT:    lui $1, %highest(.L.str.2)
    298 ; MIPS64R6-NEXT:    daddiu $1, $1, %higher(.L.str.2)
    299 ; MIPS64R6-NEXT:    dsll $1, $1, 16
    300 ; MIPS64R6-NEXT:    daddiu $1, $1, %hi(.L.str.2)
    301 ; MIPS64R6-NEXT:    dsll $1, $1, 16
    302 ; MIPS64R6-NEXT:    daddiu $1, $1, %lo(.L.str.2)
    303 ; MIPS64R6-NEXT:    j .LBB0_10
    304 ; MIPS64R6-NEXT:    sd $1, 8($sp)
    305 ; MIPS64R6-NEXT:  .LBB0_6: # %sw.bb3
    306 ; MIPS64R6-NEXT:    lui $1, %highest(.L.str.3)
    307 ; MIPS64R6-NEXT:    daddiu $1, $1, %higher(.L.str.3)
    308 ; MIPS64R6-NEXT:    dsll $1, $1, 16
    309 ; MIPS64R6-NEXT:    daddiu $1, $1, %hi(.L.str.3)
    310 ; MIPS64R6-NEXT:    dsll $1, $1, 16
    311 ; MIPS64R6-NEXT:    daddiu $1, $1, %lo(.L.str.3)
    312 ; MIPS64R6-NEXT:    j .LBB0_10
    313 ; MIPS64R6-NEXT:    sd $1, 8($sp)
    314 ; MIPS64R6-NEXT:  .LBB0_7: # %sw.bb4
    315 ; MIPS64R6-NEXT:    lui $1, %highest(.L.str.4)
    316 ; MIPS64R6-NEXT:    daddiu $1, $1, %higher(.L.str.4)
    317 ; MIPS64R6-NEXT:    dsll $1, $1, 16
    318 ; MIPS64R6-NEXT:    daddiu $1, $1, %hi(.L.str.4)
    319 ; MIPS64R6-NEXT:    dsll $1, $1, 16
    320 ; MIPS64R6-NEXT:    daddiu $1, $1, %lo(.L.str.4)
    321 ; MIPS64R6-NEXT:    j .LBB0_10
    322 ; MIPS64R6-NEXT:    sd $1, 8($sp)
    323 ; MIPS64R6-NEXT:  .LBB0_8: # %sw.bb5
    324 ; MIPS64R6-NEXT:    lui $1, %highest(.L.str.5)
    325 ; MIPS64R6-NEXT:    daddiu $1, $1, %higher(.L.str.5)
    326 ; MIPS64R6-NEXT:    dsll $1, $1, 16
    327 ; MIPS64R6-NEXT:    daddiu $1, $1, %hi(.L.str.5)
    328 ; MIPS64R6-NEXT:    dsll $1, $1, 16
    329 ; MIPS64R6-NEXT:    daddiu $1, $1, %lo(.L.str.5)
    330 ; MIPS64R6-NEXT:    j .LBB0_10
    331 ; MIPS64R6-NEXT:    sd $1, 8($sp)
    332 ; MIPS64R6-NEXT:  .LBB0_9: # %sw.bb6
    333 ; MIPS64R6-NEXT:    lui $1, %highest(.L.str.6)
    334 ; MIPS64R6-NEXT:    daddiu $1, $1, %higher(.L.str.6)
    335 ; MIPS64R6-NEXT:    dsll $1, $1, 16
    336 ; MIPS64R6-NEXT:    daddiu $1, $1, %hi(.L.str.6)
    337 ; MIPS64R6-NEXT:    dsll $1, $1, 16
    338 ; MIPS64R6-NEXT:    daddiu $1, $1, %lo(.L.str.6)
    339 ; MIPS64R6-NEXT:    sd $1, 8($sp)
    340 ; MIPS64R6-NEXT:  .LBB0_10: # %return
    341 ; MIPS64R6-NEXT:    ld $2, 8($sp)
    342 ; MIPS64R6-NEXT:    jr $ra
    343 ; MIPS64R6-NEXT:    daddiu $sp, $sp, 16
    344 ;
    345 ; PIC-MIPS32R2-LABEL: _Z3fooi:
    346 ; PIC-MIPS32R2:       # %bb.0: # %entry
    347 ; PIC-MIPS32R2-NEXT:    lui $2, %hi(_gp_disp)
    348 ; PIC-MIPS32R2-NEXT:    addiu $2, $2, %lo(_gp_disp)
    349 ; PIC-MIPS32R2-NEXT:    addiu $sp, $sp, -16
    350 ; PIC-MIPS32R2-NEXT:    .cfi_def_cfa_offset 16
    351 ; PIC-MIPS32R2-NEXT:    addu $2, $2, $25
    352 ; PIC-MIPS32R2-NEXT:    sltiu $1, $4, 7
    353 ; PIC-MIPS32R2-NEXT:    beqz $1, $BB0_3
    354 ; PIC-MIPS32R2-NEXT:    sw $4, 4($sp)
    355 ; PIC-MIPS32R2-NEXT:  $BB0_1: # %entry
    356 ; PIC-MIPS32R2-NEXT:    sll $1, $4, 2
    357 ; PIC-MIPS32R2-NEXT:    lw $3, %got($JTI0_0)($2)
    358 ; PIC-MIPS32R2-NEXT:    addu $1, $1, $3
    359 ; PIC-MIPS32R2-NEXT:    lw $1, %lo($JTI0_0)($1)
    360 ; PIC-MIPS32R2-NEXT:    addu $1, $1, $2
    361 ; PIC-MIPS32R2-NEXT:    jr.hb $1
    362 ; PIC-MIPS32R2-NEXT:    nop
    363 ; PIC-MIPS32R2-NEXT:  $BB0_2: # %sw.bb
    364 ; PIC-MIPS32R2-NEXT:    lw $1, %got($.str)($2)
    365 ; PIC-MIPS32R2-NEXT:    addiu $1, $1, %lo($.str)
    366 ; PIC-MIPS32R2-NEXT:    b $BB0_10
    367 ; PIC-MIPS32R2-NEXT:    sw $1, 8($sp)
    368 ; PIC-MIPS32R2-NEXT:  $BB0_3: # %sw.epilog
    369 ; PIC-MIPS32R2-NEXT:    lw $1, %got($.str.7)($2)
    370 ; PIC-MIPS32R2-NEXT:    addiu $1, $1, %lo($.str.7)
    371 ; PIC-MIPS32R2-NEXT:    b $BB0_10
    372 ; PIC-MIPS32R2-NEXT:    sw $1, 8($sp)
    373 ; PIC-MIPS32R2-NEXT:  $BB0_4: # %sw.bb1
    374 ; PIC-MIPS32R2-NEXT:    lw $1, %got($.str.1)($2)
    375 ; PIC-MIPS32R2-NEXT:    addiu $1, $1, %lo($.str.1)
    376 ; PIC-MIPS32R2-NEXT:    b $BB0_10
    377 ; PIC-MIPS32R2-NEXT:    sw $1, 8($sp)
    378 ; PIC-MIPS32R2-NEXT:  $BB0_5: # %sw.bb2
    379 ; PIC-MIPS32R2-NEXT:    lw $1, %got($.str.2)($2)
    380 ; PIC-MIPS32R2-NEXT:    addiu $1, $1, %lo($.str.2)
    381 ; PIC-MIPS32R2-NEXT:    b $BB0_10
    382 ; PIC-MIPS32R2-NEXT:    sw $1, 8($sp)
    383 ; PIC-MIPS32R2-NEXT:  $BB0_6: # %sw.bb3
    384 ; PIC-MIPS32R2-NEXT:    lw $1, %got($.str.3)($2)
    385 ; PIC-MIPS32R2-NEXT:    addiu $1, $1, %lo($.str.3)
    386 ; PIC-MIPS32R2-NEXT:    b $BB0_10
    387 ; PIC-MIPS32R2-NEXT:    sw $1, 8($sp)
    388 ; PIC-MIPS32R2-NEXT:  $BB0_7: # %sw.bb4
    389 ; PIC-MIPS32R2-NEXT:    lw $1, %got($.str.4)($2)
    390 ; PIC-MIPS32R2-NEXT:    addiu $1, $1, %lo($.str.4)
    391 ; PIC-MIPS32R2-NEXT:    b $BB0_10
    392 ; PIC-MIPS32R2-NEXT:    sw $1, 8($sp)
    393 ; PIC-MIPS32R2-NEXT:  $BB0_8: # %sw.bb5
    394 ; PIC-MIPS32R2-NEXT:    lw $1, %got($.str.5)($2)
    395 ; PIC-MIPS32R2-NEXT:    addiu $1, $1, %lo($.str.5)
    396 ; PIC-MIPS32R2-NEXT:    b $BB0_10
    397 ; PIC-MIPS32R2-NEXT:    sw $1, 8($sp)
    398 ; PIC-MIPS32R2-NEXT:  $BB0_9: # %sw.bb6
    399 ; PIC-MIPS32R2-NEXT:    lw $1, %got($.str.6)($2)
    400 ; PIC-MIPS32R2-NEXT:    addiu $1, $1, %lo($.str.6)
    401 ; PIC-MIPS32R2-NEXT:    sw $1, 8($sp)
    402 ; PIC-MIPS32R2-NEXT:  $BB0_10: # %return
    403 ; PIC-MIPS32R2-NEXT:    lw $2, 8($sp)
    404 ; PIC-MIPS32R2-NEXT:    jr $ra
    405 ; PIC-MIPS32R2-NEXT:    addiu $sp, $sp, 16
    406 ;
    407 ; PIC-MIPS32R6-LABEL: _Z3fooi:
    408 ; PIC-MIPS32R6:       # %bb.0: # %entry
    409 ; PIC-MIPS32R6-NEXT:    lui $2, %hi(_gp_disp)
    410 ; PIC-MIPS32R6-NEXT:    addiu $2, $2, %lo(_gp_disp)
    411 ; PIC-MIPS32R6-NEXT:    addiu $sp, $sp, -16
    412 ; PIC-MIPS32R6-NEXT:    .cfi_def_cfa_offset 16
    413 ; PIC-MIPS32R6-NEXT:    addu $2, $2, $25
    414 ; PIC-MIPS32R6-NEXT:    sltiu $1, $4, 7
    415 ; PIC-MIPS32R6-NEXT:    beqz $1, $BB0_3
    416 ; PIC-MIPS32R6-NEXT:    sw $4, 4($sp)
    417 ; PIC-MIPS32R6-NEXT:  $BB0_1: # %entry
    418 ; PIC-MIPS32R6-NEXT:    sll $1, $4, 2
    419 ; PIC-MIPS32R6-NEXT:    lw $3, %got($JTI0_0)($2)
    420 ; PIC-MIPS32R6-NEXT:    addu $1, $1, $3
    421 ; PIC-MIPS32R6-NEXT:    lw $1, %lo($JTI0_0)($1)
    422 ; PIC-MIPS32R6-NEXT:    addu $1, $1, $2
    423 ; PIC-MIPS32R6-NEXT:    jr.hb $1
    424 ; PIC-MIPS32R6-NEXT:    nop
    425 ; PIC-MIPS32R6-NEXT:  $BB0_2: # %sw.bb
    426 ; PIC-MIPS32R6-NEXT:    lw $1, %got($.str)($2)
    427 ; PIC-MIPS32R6-NEXT:    addiu $1, $1, %lo($.str)
    428 ; PIC-MIPS32R6-NEXT:    b $BB0_10
    429 ; PIC-MIPS32R6-NEXT:    sw $1, 8($sp)
    430 ; PIC-MIPS32R6-NEXT:  $BB0_3: # %sw.epilog
    431 ; PIC-MIPS32R6-NEXT:    lw $1, %got($.str.7)($2)
    432 ; PIC-MIPS32R6-NEXT:    addiu $1, $1, %lo($.str.7)
    433 ; PIC-MIPS32R6-NEXT:    b $BB0_10
    434 ; PIC-MIPS32R6-NEXT:    sw $1, 8($sp)
    435 ; PIC-MIPS32R6-NEXT:  $BB0_4: # %sw.bb1
    436 ; PIC-MIPS32R6-NEXT:    lw $1, %got($.str.1)($2)
    437 ; PIC-MIPS32R6-NEXT:    addiu $1, $1, %lo($.str.1)
    438 ; PIC-MIPS32R6-NEXT:    b $BB0_10
    439 ; PIC-MIPS32R6-NEXT:    sw $1, 8($sp)
    440 ; PIC-MIPS32R6-NEXT:  $BB0_5: # %sw.bb2
    441 ; PIC-MIPS32R6-NEXT:    lw $1, %got($.str.2)($2)
    442 ; PIC-MIPS32R6-NEXT:    addiu $1, $1, %lo($.str.2)
    443 ; PIC-MIPS32R6-NEXT:    b $BB0_10
    444 ; PIC-MIPS32R6-NEXT:    sw $1, 8($sp)
    445 ; PIC-MIPS32R6-NEXT:  $BB0_6: # %sw.bb3
    446 ; PIC-MIPS32R6-NEXT:    lw $1, %got($.str.3)($2)
    447 ; PIC-MIPS32R6-NEXT:    addiu $1, $1, %lo($.str.3)
    448 ; PIC-MIPS32R6-NEXT:    b $BB0_10
    449 ; PIC-MIPS32R6-NEXT:    sw $1, 8($sp)
    450 ; PIC-MIPS32R6-NEXT:  $BB0_7: # %sw.bb4
    451 ; PIC-MIPS32R6-NEXT:    lw $1, %got($.str.4)($2)
    452 ; PIC-MIPS32R6-NEXT:    addiu $1, $1, %lo($.str.4)
    453 ; PIC-MIPS32R6-NEXT:    b $BB0_10
    454 ; PIC-MIPS32R6-NEXT:    sw $1, 8($sp)
    455 ; PIC-MIPS32R6-NEXT:  $BB0_8: # %sw.bb5
    456 ; PIC-MIPS32R6-NEXT:    lw $1, %got($.str.5)($2)
    457 ; PIC-MIPS32R6-NEXT:    addiu $1, $1, %lo($.str.5)
    458 ; PIC-MIPS32R6-NEXT:    b $BB0_10
    459 ; PIC-MIPS32R6-NEXT:    sw $1, 8($sp)
    460 ; PIC-MIPS32R6-NEXT:  $BB0_9: # %sw.bb6
    461 ; PIC-MIPS32R6-NEXT:    lw $1, %got($.str.6)($2)
    462 ; PIC-MIPS32R6-NEXT:    addiu $1, $1, %lo($.str.6)
    463 ; PIC-MIPS32R6-NEXT:    sw $1, 8($sp)
    464 ; PIC-MIPS32R6-NEXT:  $BB0_10: # %return
    465 ; PIC-MIPS32R6-NEXT:    lw $2, 8($sp)
    466 ; PIC-MIPS32R6-NEXT:    jr $ra
    467 ; PIC-MIPS32R6-NEXT:    addiu $sp, $sp, 16
    468 ;
    469 ; PIC-MIPS64R2-LABEL: _Z3fooi:
    470 ; PIC-MIPS64R2:       # %bb.0: # %entry
    471 ; PIC-MIPS64R2-NEXT:    daddiu $sp, $sp, -16
    472 ; PIC-MIPS64R2-NEXT:    .cfi_def_cfa_offset 16
    473 ; PIC-MIPS64R2-NEXT:    lui $1, %hi(%neg(%gp_rel(_Z3fooi)))
    474 ; PIC-MIPS64R2-NEXT:    daddu $1, $1, $25
    475 ; PIC-MIPS64R2-NEXT:    daddiu $2, $1, %lo(%neg(%gp_rel(_Z3fooi)))
    476 ; PIC-MIPS64R2-NEXT:    sw $4, 4($sp)
    477 ; PIC-MIPS64R2-NEXT:    lwu $3, 4($sp)
    478 ; PIC-MIPS64R2-NEXT:    sltiu $1, $3, 7
    479 ; PIC-MIPS64R2-NEXT:    beqz $1, .LBB0_3
    480 ; PIC-MIPS64R2-NEXT:    nop
    481 ; PIC-MIPS64R2-NEXT:  .LBB0_1: # %entry
    482 ; PIC-MIPS64R2-NEXT:    dsll $1, $3, 3
    483 ; PIC-MIPS64R2-NEXT:    ld $3, %got_page(.LJTI0_0)($2)
    484 ; PIC-MIPS64R2-NEXT:    daddu $1, $1, $3
    485 ; PIC-MIPS64R2-NEXT:    ld $1, %got_ofst(.LJTI0_0)($1)
    486 ; PIC-MIPS64R2-NEXT:    daddu $1, $1, $2
    487 ; PIC-MIPS64R2-NEXT:    jr.hb $1
    488 ; PIC-MIPS64R2-NEXT:    nop
    489 ; PIC-MIPS64R2-NEXT:  .LBB0_2: # %sw.bb
    490 ; PIC-MIPS64R2-NEXT:    ld $1, %got_page(.L.str)($2)
    491 ; PIC-MIPS64R2-NEXT:    daddiu $1, $1, %got_ofst(.L.str)
    492 ; PIC-MIPS64R2-NEXT:    b .LBB0_10
    493 ; PIC-MIPS64R2-NEXT:    sd $1, 8($sp)
    494 ; PIC-MIPS64R2-NEXT:  .LBB0_3: # %sw.epilog
    495 ; PIC-MIPS64R2-NEXT:    ld $1, %got_page(.L.str.7)($2)
    496 ; PIC-MIPS64R2-NEXT:    daddiu $1, $1, %got_ofst(.L.str.7)
    497 ; PIC-MIPS64R2-NEXT:    b .LBB0_10
    498 ; PIC-MIPS64R2-NEXT:    sd $1, 8($sp)
    499 ; PIC-MIPS64R2-NEXT:  .LBB0_4: # %sw.bb1
    500 ; PIC-MIPS64R2-NEXT:    ld $1, %got_page(.L.str.1)($2)
    501 ; PIC-MIPS64R2-NEXT:    daddiu $1, $1, %got_ofst(.L.str.1)
    502 ; PIC-MIPS64R2-NEXT:    b .LBB0_10
    503 ; PIC-MIPS64R2-NEXT:    sd $1, 8($sp)
    504 ; PIC-MIPS64R2-NEXT:  .LBB0_5: # %sw.bb2
    505 ; PIC-MIPS64R2-NEXT:    ld $1, %got_page(.L.str.2)($2)
    506 ; PIC-MIPS64R2-NEXT:    daddiu $1, $1, %got_ofst(.L.str.2)
    507 ; PIC-MIPS64R2-NEXT:    b .LBB0_10
    508 ; PIC-MIPS64R2-NEXT:    sd $1, 8($sp)
    509 ; PIC-MIPS64R2-NEXT:  .LBB0_6: # %sw.bb3
    510 ; PIC-MIPS64R2-NEXT:    ld $1, %got_page(.L.str.3)($2)
    511 ; PIC-MIPS64R2-NEXT:    daddiu $1, $1, %got_ofst(.L.str.3)
    512 ; PIC-MIPS64R2-NEXT:    b .LBB0_10
    513 ; PIC-MIPS64R2-NEXT:    sd $1, 8($sp)
    514 ; PIC-MIPS64R2-NEXT:  .LBB0_7: # %sw.bb4
    515 ; PIC-MIPS64R2-NEXT:    ld $1, %got_page(.L.str.4)($2)
    516 ; PIC-MIPS64R2-NEXT:    daddiu $1, $1, %got_ofst(.L.str.4)
    517 ; PIC-MIPS64R2-NEXT:    b .LBB0_10
    518 ; PIC-MIPS64R2-NEXT:    sd $1, 8($sp)
    519 ; PIC-MIPS64R2-NEXT:  .LBB0_8: # %sw.bb5
    520 ; PIC-MIPS64R2-NEXT:    ld $1, %got_page(.L.str.5)($2)
    521 ; PIC-MIPS64R2-NEXT:    daddiu $1, $1, %got_ofst(.L.str.5)
    522 ; PIC-MIPS64R2-NEXT:    b .LBB0_10
    523 ; PIC-MIPS64R2-NEXT:    sd $1, 8($sp)
    524 ; PIC-MIPS64R2-NEXT:  .LBB0_9: # %sw.bb6
    525 ; PIC-MIPS64R2-NEXT:    ld $1, %got_page(.L.str.6)($2)
    526 ; PIC-MIPS64R2-NEXT:    daddiu $1, $1, %got_ofst(.L.str.6)
    527 ; PIC-MIPS64R2-NEXT:    sd $1, 8($sp)
    528 ; PIC-MIPS64R2-NEXT:  .LBB0_10: # %return
    529 ; PIC-MIPS64R2-NEXT:    ld $2, 8($sp)
    530 ; PIC-MIPS64R2-NEXT:    jr $ra
    531 ; PIC-MIPS64R2-NEXT:    daddiu $sp, $sp, 16
    532 ;
    533 ; PIC-MIPS64R6-LABEL: _Z3fooi:
    534 ; PIC-MIPS64R6:       # %bb.0: # %entry
    535 ; PIC-MIPS64R6-NEXT:    daddiu $sp, $sp, -16
    536 ; PIC-MIPS64R6-NEXT:    .cfi_def_cfa_offset 16
    537 ; PIC-MIPS64R6-NEXT:    lui $1, %hi(%neg(%gp_rel(_Z3fooi)))
    538 ; PIC-MIPS64R6-NEXT:    daddu $1, $1, $25
    539 ; PIC-MIPS64R6-NEXT:    daddiu $2, $1, %lo(%neg(%gp_rel(_Z3fooi)))
    540 ; PIC-MIPS64R6-NEXT:    sw $4, 4($sp)
    541 ; PIC-MIPS64R6-NEXT:    lwu $3, 4($sp)
    542 ; PIC-MIPS64R6-NEXT:    sltiu $1, $3, 7
    543 ; PIC-MIPS64R6-NEXT:    beqzc $1, .LBB0_3
    544 ; PIC-MIPS64R6-NEXT:  .LBB0_1: # %entry
    545 ; PIC-MIPS64R6-NEXT:    dsll $1, $3, 3
    546 ; PIC-MIPS64R6-NEXT:    ld $3, %got_page(.LJTI0_0)($2)
    547 ; PIC-MIPS64R6-NEXT:    daddu $1, $1, $3
    548 ; PIC-MIPS64R6-NEXT:    ld $1, %got_ofst(.LJTI0_0)($1)
    549 ; PIC-MIPS64R6-NEXT:    daddu $1, $1, $2
    550 ; PIC-MIPS64R6-NEXT:    jr.hb $1
    551 ; PIC-MIPS64R6-NEXT:    nop
    552 ; PIC-MIPS64R6-NEXT:  .LBB0_2: # %sw.bb
    553 ; PIC-MIPS64R6-NEXT:    ld $1, %got_page(.L.str)($2)
    554 ; PIC-MIPS64R6-NEXT:    daddiu $1, $1, %got_ofst(.L.str)
    555 ; PIC-MIPS64R6-NEXT:    b .LBB0_10
    556 ; PIC-MIPS64R6-NEXT:    sd $1, 8($sp)
    557 ; PIC-MIPS64R6-NEXT:  .LBB0_3: # %sw.epilog
    558 ; PIC-MIPS64R6-NEXT:    ld $1, %got_page(.L.str.7)($2)
    559 ; PIC-MIPS64R6-NEXT:    daddiu $1, $1, %got_ofst(.L.str.7)
    560 ; PIC-MIPS64R6-NEXT:    b .LBB0_10
    561 ; PIC-MIPS64R6-NEXT:    sd $1, 8($sp)
    562 ; PIC-MIPS64R6-NEXT:  .LBB0_4: # %sw.bb1
    563 ; PIC-MIPS64R6-NEXT:    ld $1, %got_page(.L.str.1)($2)
    564 ; PIC-MIPS64R6-NEXT:    daddiu $1, $1, %got_ofst(.L.str.1)
    565 ; PIC-MIPS64R6-NEXT:    b .LBB0_10
    566 ; PIC-MIPS64R6-NEXT:    sd $1, 8($sp)
    567 ; PIC-MIPS64R6-NEXT:  .LBB0_5: # %sw.bb2
    568 ; PIC-MIPS64R6-NEXT:    ld $1, %got_page(.L.str.2)($2)
    569 ; PIC-MIPS64R6-NEXT:    daddiu $1, $1, %got_ofst(.L.str.2)
    570 ; PIC-MIPS64R6-NEXT:    b .LBB0_10
    571 ; PIC-MIPS64R6-NEXT:    sd $1, 8($sp)
    572 ; PIC-MIPS64R6-NEXT:  .LBB0_6: # %sw.bb3
    573 ; PIC-MIPS64R6-NEXT:    ld $1, %got_page(.L.str.3)($2)
    574 ; PIC-MIPS64R6-NEXT:    daddiu $1, $1, %got_ofst(.L.str.3)
    575 ; PIC-MIPS64R6-NEXT:    b .LBB0_10
    576 ; PIC-MIPS64R6-NEXT:    sd $1, 8($sp)
    577 ; PIC-MIPS64R6-NEXT:  .LBB0_7: # %sw.bb4
    578 ; PIC-MIPS64R6-NEXT:    ld $1, %got_page(.L.str.4)($2)
    579 ; PIC-MIPS64R6-NEXT:    daddiu $1, $1, %got_ofst(.L.str.4)
    580 ; PIC-MIPS64R6-NEXT:    b .LBB0_10
    581 ; PIC-MIPS64R6-NEXT:    sd $1, 8($sp)
    582 ; PIC-MIPS64R6-NEXT:  .LBB0_8: # %sw.bb5
    583 ; PIC-MIPS64R6-NEXT:    ld $1, %got_page(.L.str.5)($2)
    584 ; PIC-MIPS64R6-NEXT:    daddiu $1, $1, %got_ofst(.L.str.5)
    585 ; PIC-MIPS64R6-NEXT:    b .LBB0_10
    586 ; PIC-MIPS64R6-NEXT:    sd $1, 8($sp)
    587 ; PIC-MIPS64R6-NEXT:  .LBB0_9: # %sw.bb6
    588 ; PIC-MIPS64R6-NEXT:    ld $1, %got_page(.L.str.6)($2)
    589 ; PIC-MIPS64R6-NEXT:    daddiu $1, $1, %got_ofst(.L.str.6)
    590 ; PIC-MIPS64R6-NEXT:    sd $1, 8($sp)
    591 ; PIC-MIPS64R6-NEXT:  .LBB0_10: # %return
    592 ; PIC-MIPS64R6-NEXT:    ld $2, 8($sp)
    593 ; PIC-MIPS64R6-NEXT:    jr $ra
    594 ; PIC-MIPS64R6-NEXT:    daddiu $sp, $sp, 16
    595 entry:
    596   %retval = alloca i8*, align 8
    597   %Letter.addr = alloca i32, align 4
    598   store i32 %Letter, i32* %Letter.addr, align 4
    599   %0 = load i32, i32* %Letter.addr, align 4
    600   switch i32 %0, label %sw.epilog [
    601     i32 0, label %sw.bb
    602     i32 1, label %sw.bb1
    603     i32 2, label %sw.bb2
    604     i32 3, label %sw.bb3
    605     i32 4, label %sw.bb4
    606     i32 5, label %sw.bb5
    607     i32 6, label %sw.bb6
    608   ]
    609 
    610 sw.bb:
    611   store i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8** %retval, align 8
    612   br label %return
    613 
    614 sw.bb1:
    615   store i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i32 0, i32 0), i8** %retval, align 8
    616   br label %return
    617 
    618 sw.bb2:
    619   store i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i32 0, i32 0), i8** %retval, align 8
    620   br label %return
    621 
    622 sw.bb3:
    623   store i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.3, i32 0, i32 0), i8** %retval, align 8
    624   br label %return
    625 
    626 sw.bb4:
    627   store i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.4, i32 0, i32 0), i8** %retval, align 8
    628   br label %return
    629 
    630 sw.bb5:
    631   store i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.5, i32 0, i32 0), i8** %retval, align 8
    632   br label %return
    633 
    634 sw.bb6:
    635   store i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.6, i32 0, i32 0), i8** %retval, align 8
    636   br label %return
    637 
    638 sw.epilog:
    639   store i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.7, i32 0, i32 0), i8** %retval, align 8
    640   br label %return
    641 
    642 return:
    643   %1 = load i8*, i8** %retval, align 8
    644   ret i8* %1
    645 }
    646