Home | History | Annotate | Download | only in Mips
      1 # RUN: llvm-mc %s -triple=mipsel-unknown-linux -show-encoding -mcpu=mips32r2 | \
      2 # RUN:   FileCheck %s --check-prefixes=CHECK,CHECK-LE
      3 # RUN: llvm-mc %s -triple=mips-unknown-linux -show-encoding -mcpu=mips32r2 | \
      4 # RUN:   FileCheck %s --check-prefixes=CHECK,CHECK-BE
      5 
      6 # Check that the IAS expands macro instructions in the same way as GAS.
      7 
      8 # Load address, done by MipsAsmParser::expandLoadAddressReg()
      9 # and MipsAsmParser::expandLoadAddressImm():
     10   la $8, 1f
     11 # CHECK-LE: lui     $8, %hi($tmp0)        # encoding: [A,A,0x08,0x3c]
     12 # CHECK-LE:                               #   fixup A - offset: 0, value: %hi($tmp0), kind: fixup_Mips_HI16
     13 # CHECK-LE: addiu   $8, $8, %lo($tmp0)    # encoding: [A,A,0x08,0x25]
     14 # CHECK-LE:                               #   fixup A - offset: 0, value: %lo($tmp0), kind: fixup_Mips_LO16
     15 
     16   lb $4, 0x8000
     17 # CHECK-LE: lui     $4, 1                   # encoding: [0x01,0x00,0x04,0x3c]
     18 # CHECK-LE: lb      $4, -32768($4)          # encoding: [0x00,0x80,0x84,0x80]
     19 
     20   lb  $4, 0x20004($3)
     21 # CHECK-LE: lui     $4, 2                   # encoding: [0x02,0x00,0x04,0x3c]
     22 # CHECK-LE: addu    $4, $4, $3              # encoding: [0x21,0x20,0x83,0x00]
     23 # CHECK-LE: lb      $4, 4($4)               # encoding: [0x04,0x00,0x84,0x80]
     24 
     25   lbu $4, 0x8000
     26 # CHECK-LE: lui     $4, 1                   # encoding: [0x01,0x00,0x04,0x3c]
     27 # CHECK-LE: lbu     $4, -32768($4)          # encoding: [0x00,0x80,0x84,0x90]
     28 
     29   lbu  $4, 0x20004($3)
     30 # CHECK-LE: lui     $4, 2                   # encoding: [0x02,0x00,0x04,0x3c]
     31 # CHECK-LE: addu    $4, $4, $3              # encoding: [0x21,0x20,0x83,0x00]
     32 # CHECK-LE: lbu     $4, 4($4)               # encoding: [0x04,0x00,0x84,0x90]
     33 
     34   lh   $4, 0x8000
     35 # CHECK-LE: lui     $4, 1
     36 # CHECK-LE: lh      $4, -32768($4)
     37 
     38   lh   $4, 0x20004($3)
     39 # CHECK-LE: lui     $4, 2
     40 # CHECK-LE: addu    $4, $4, $3
     41 # CHECK-LE: lh      $4, 4($4)
     42 
     43   lhu  $4, 0x8000
     44 # CHECK-LE: lui     $4, 1
     45 # CHECK-LE: lhu     $4, -32768($4)
     46 
     47   lhu  $4, 0x20004($3)
     48 # CHECK-LE: lui     $4, 2
     49 # CHECK-LE: addu    $4, $4, $3
     50 # CHECK-LE: lhu     $4, 4($4)
     51 
     52 # LW/SW and LDC1/SDC1 of symbol address, done by MipsAsmParser::expandMemInst():
     53   .set noat
     54   lw $10, symbol($4)
     55 # CHECK-LE: lui     $10, %hi(symbol)        # encoding: [A,A,0x0a,0x3c]
     56 # CHECK-LE:                                 #   fixup A - offset: 0, value: %hi(symbol), kind: fixup_Mips_HI16
     57 # CHECK-LE: addu    $10, $10, $4            # encoding: [0x21,0x50,0x44,0x01]
     58 # CHECK-LE: lw      $10, %lo(symbol)($10)   # encoding: [A,A,0x4a,0x8d]
     59 # CHECK-LE:                                 #   fixup A - offset: 0, value: %lo(symbol), kind: fixup_Mips_LO16
     60   .set at
     61   sw $10, symbol($9)
     62 # CHECK-LE: lui     $1, %hi(symbol)         # encoding: [A,A,0x01,0x3c]
     63 # CHECK-LE:                                 #   fixup A - offset: 0, value: %hi(symbol), kind: fixup_Mips_HI16
     64 # CHECK-LE: addu    $1, $1, $9              # encoding: [0x21,0x08,0x29,0x00]
     65 # CHECK-LE: sw      $10, %lo(symbol)($1)    # encoding: [A,A,0x2a,0xac]
     66 # CHECK-LE:                                 #   fixup A - offset: 0, value: %lo(symbol), kind: fixup_Mips_LO16
     67 
     68   lw $8, 1f
     69 # CHECK-LE: lui $8, %hi($tmp0)              # encoding: [A,A,0x08,0x3c]
     70 # CHECK-LE:                                 #   fixup A - offset: 0, value: %hi($tmp0), kind: fixup_Mips_HI16
     71 # CHECK-LE: lw  $8, %lo($tmp0)($8)          # encoding: [A,A,0x08,0x8d]
     72 # CHECK-LE:                                 #   fixup A - offset: 0, value: %lo($tmp0), kind: fixup_Mips_LO16
     73   sw $8, 1f
     74 # CHECK-LE: lui $1, %hi($tmp0)              # encoding: [A,A,0x01,0x3c]
     75 # CHECK-LE:                                 #   fixup A - offset: 0, value: %hi($tmp0), kind: fixup_Mips_HI16
     76 # CHECK-LE: sw  $8, %lo($tmp0)($1)          # encoding: [A,A,0x28,0xac]
     77 # CHECK-LE:                                 #   fixup A - offset: 0, value: %lo($tmp0), kind: fixup_Mips_LO16
     78 
     79   lw $10, 655483($4)
     80 # CHECK-LE: lui     $10, 10                 # encoding: [0x0a,0x00,0x0a,0x3c]
     81 # CHECK-LE: addu    $10, $10, $4            # encoding: [0x21,0x50,0x44,0x01]
     82 # CHECK-LE: lw      $10, 123($10)           # encoding: [0x7b,0x00,0x4a,0x8d]
     83   sw $10, 123456($9)
     84 # CHECK-LE: lui     $1, 2                   # encoding: [0x02,0x00,0x01,0x3c]
     85 # CHECK-LE: addu    $1, $1, $9              # encoding: [0x21,0x08,0x29,0x00]
     86 # CHECK-LE: sw      $10, -7616($1)          # encoding: [0x40,0xe2,0x2a,0xac]
     87 
     88   lw $8, symbol
     89 # CHECK-LE:     lui     $8, %hi(symbol)     # encoding: [A,A,0x08,0x3c]
     90 # CHECK-LE:                                 #   fixup A - offset: 0, value: %hi(symbol), kind: fixup_Mips_HI16
     91 # CHECK-LE-NOT: move    $8, $8              # encoding: [0x21,0x40,0x00,0x01]
     92 # CHECK-LE:     lw      $8, %lo(symbol)($8) # encoding: [A,A,0x08,0x8d]
     93 # CHECK-LE:                                 #   fixup A - offset: 0, value: %lo(symbol), kind: fixup_Mips_LO16
     94   sw $8, symbol
     95 # CHECK-LE:     lui     $1, %hi(symbol)     # encoding: [A,A,0x01,0x3c]
     96 # CHECK-LE:                                 #   fixup A - offset: 0, value: %hi(symbol), kind: fixup_Mips_HI16
     97 # CHECK-LE-NOT: move    $1, $1              # encoding: [0x21,0x08,0x20,0x00]
     98 # CHECK-LE:     sw      $8, %lo(symbol)($1) # encoding: [A,A,0x28,0xac]
     99 # CHECK-LE:                                 #   fixup A - offset: 0, value: %lo(symbol), kind: fixup_Mips_LO16
    100 
    101   ldc1 $f0, symbol
    102 # CHECK-LE: lui     $1, %hi(symbol)
    103 # CHECK-LE: ldc1    $f0, %lo(symbol)($1)
    104   sdc1 $f0, symbol
    105 # CHECK-LE: lui     $1, %hi(symbol)
    106 # CHECK-LE: sdc1    $f0, %lo(symbol)($1)
    107 
    108 # Test BNE with an immediate as the 2nd operand.
    109   bne $2, 0, 1332
    110 # CHECK-LE: bnez  $2, 1332          # encoding: [0x4d,0x01,0x40,0x14]
    111 # CHECK-LE: nop                     # encoding: [0x00,0x00,0x00,0x00]
    112 
    113   bne $2, 123, 1332
    114 # CHECK-LE: addiu $1, $zero, 123    # encoding: [0x7b,0x00,0x01,0x24]
    115 # CHECK-LE: bne   $2, $1, 1332      # encoding: [0x4d,0x01,0x41,0x14]
    116 # CHECK-LE: nop                     # encoding: [0x00,0x00,0x00,0x00]
    117 
    118   bne $2, -2345, 1332
    119 # CHECK-LE: addiu $1, $zero, -2345  # encoding: [0xd7,0xf6,0x01,0x24]
    120 # CHECK-LE: bne   $2, $1, 1332      # encoding: [0x4d,0x01,0x41,0x14]
    121 # CHECK-LE: nop                     # encoding: [0x00,0x00,0x00,0x00]
    122 
    123   bne $2, 65538, 1332
    124 # CHECK-LE: lui   $1, 1             # encoding: [0x01,0x00,0x01,0x3c]
    125 # CHECK-LE: ori   $1, $1, 2         # encoding: [0x02,0x00,0x21,0x34]
    126 # CHECK-LE: bne   $2, $1, 1332      # encoding: [0x4d,0x01,0x41,0x14]
    127 # CHECK-LE: nop                     # encoding: [0x00,0x00,0x00,0x00]
    128 
    129   bne $2, ~7, 1332
    130 # CHECK-LE: addiu $1, $zero, -8     # encoding: [0xf8,0xff,0x01,0x24]
    131 # CHECK-LE: bne   $2, $1, 1332      # encoding: [0x4d,0x01,0x41,0x14]
    132 # CHECK-LE: nop                     # encoding: [0x00,0x00,0x00,0x00]
    133 
    134   bne $2, 0x10000, 1332
    135 # CHECK-LE: lui   $1, 1             # encoding: [0x01,0x00,0x01,0x3c]
    136 # CHECK-LE: bne   $2, $1, 1332      # encoding: [0x4d,0x01,0x41,0x14]
    137 # CHECK-LE: nop                     # encoding: [0x00,0x00,0x00,0x00]
    138 
    139 # Test BEQ with an immediate as the 2nd operand.
    140   beq $2, 0, 1332
    141 # CHECK-LE: beqz  $2, 1332          # encoding: [0x4d,0x01,0x40,0x10]
    142 # CHECK-LE: nop                     # encoding: [0x00,0x00,0x00,0x00]
    143 
    144   beq $2, 123, 1332
    145 # CHECK-LE: addiu $1, $zero, 123    # encoding: [0x7b,0x00,0x01,0x24]
    146 # CHECK-LE: beq   $2, $1, 1332      # encoding: [0x4d,0x01,0x41,0x10]
    147 # CHECK-LE: nop                     # encoding: [0x00,0x00,0x00,0x00]
    148 
    149   beq $2, -2345, 1332
    150 # CHECK-LE: addiu $1, $zero, -2345  # encoding: [0xd7,0xf6,0x01,0x24]
    151 # CHECK-LE: beq   $2, $1, 1332      # encoding: [0x4d,0x01,0x41,0x10]
    152 # CHECK-LE: nop                     # encoding: [0x00,0x00,0x00,0x00]
    153 
    154   beq $2, 65538, 1332
    155 # CHECK-LE: lui   $1, 1             # encoding: [0x01,0x00,0x01,0x3c]
    156 # CHECK-LE: ori   $1, $1, 2         # encoding: [0x02,0x00,0x21,0x34]
    157 # CHECK-LE: beq   $2, $1, 1332      # encoding: [0x4d,0x01,0x41,0x10]
    158 # CHECK-LE: nop                     # encoding: [0x00,0x00,0x00,0x00]
    159 
    160   beq $2, ~7, 1332
    161 # CHECK-LE: addiu $1, $zero, -8     # encoding: [0xf8,0xff,0x01,0x24]
    162 # CHECK-LE: beq   $2, $1, 1332      # encoding: [0x4d,0x01,0x41,0x10]
    163 # CHECK-LE: nop                     # encoding: [0x00,0x00,0x00,0x00]
    164 
    165   beq $2, 0x10000, 1332
    166 # CHECK-LE: lui   $1, 1             # encoding: [0x01,0x00,0x01,0x3c]
    167 # CHECK-LE: beq   $2, $1, 1332      # encoding: [0x4d,0x01,0x41,0x10]
    168 # CHECK-LE: nop                     # encoding: [0x00,0x00,0x00,0x00]
    169 
    170   beq $2, 65538, foo
    171 # CHECK-LE: lui   $1, 1             # encoding: [0x01,0x00,0x01,0x3c]
    172 # CHECK-LE: ori   $1, $1, 2         # encoding: [0x02,0x00,0x21,0x34]
    173 # CHECK-LE: beq   $2, $1, foo       # encoding: [A,A,0x41,0x10]
    174 # CHECK-LE: nop                     # encoding: [0x00,0x00,0x00,0x00]
    175 
    176 # Test ULH with immediate operand.
    177 ulh_imm: # CHECK-LABEL: ulh_imm:
    178   ulh $8, 0
    179 # CHECK-BE: lb   $1, 0($zero)      # encoding: [0x80,0x01,0x00,0x00]
    180 # CHECK-BE: lbu  $8, 1($zero)      # encoding: [0x90,0x08,0x00,0x01]
    181 # CHECK-BE: sll  $1, $1, 8         # encoding: [0x00,0x01,0x0a,0x00]
    182 # CHECK-BE: or   $8, $8, $1        # encoding: [0x01,0x01,0x40,0x25]
    183 # CHECK-LE: lb   $1, 1($zero)      # encoding: [0x01,0x00,0x01,0x80]
    184 # CHECK-LE: lbu  $8, 0($zero)      # encoding: [0x00,0x00,0x08,0x90]
    185 # CHECK-LE: sll  $1, $1, 8         # encoding: [0x00,0x0a,0x01,0x00]
    186 # CHECK-LE: or   $8, $8, $1        # encoding: [0x25,0x40,0x01,0x01]
    187 
    188   ulh $8, 2
    189 # CHECK-BE: lb   $1, 2($zero)      # encoding: [0x80,0x01,0x00,0x02]
    190 # CHECK-BE: lbu  $8, 3($zero)      # encoding: [0x90,0x08,0x00,0x03]
    191 # CHECK-BE: sll  $1, $1, 8         # encoding: [0x00,0x01,0x0a,0x00]
    192 # CHECK-BE: or   $8, $8, $1        # encoding: [0x01,0x01,0x40,0x25]
    193 # CHECK-LE: lb   $1, 3($zero)      # encoding: [0x03,0x00,0x01,0x80]
    194 # CHECK-LE: lbu  $8, 2($zero)      # encoding: [0x02,0x00,0x08,0x90]
    195 # CHECK-LE: sll  $1, $1, 8         # encoding: [0x00,0x0a,0x01,0x00]
    196 # CHECK-LE: or   $8, $8, $1        # encoding: [0x25,0x40,0x01,0x01]
    197 
    198   ulh $8, 0x8000
    199 # CHECK-BE: ori  $1, $zero, 32768  # encoding: [0x34,0x01,0x80,0x00]
    200 # CHECK-BE: lb   $8, 0($1)         # encoding: [0x80,0x28,0x00,0x00]
    201 # CHECK-BE: lbu  $1, 1($1)         # encoding: [0x90,0x21,0x00,0x01]
    202 # CHECK-BE: sll  $8, $8, 8         # encoding: [0x00,0x08,0x42,0x00]
    203 # CHECK-BE: or   $8, $8, $1        # encoding: [0x01,0x01,0x40,0x25]
    204 # CHECK-LE: ori  $1, $zero, 32768  # encoding: [0x00,0x80,0x01,0x34]
    205 # CHECK-LE: lb   $8, 1($1)         # encoding: [0x01,0x00,0x28,0x80]
    206 # CHECK-LE: lbu  $1, 0($1)         # encoding: [0x00,0x00,0x21,0x90]
    207 # CHECK-LE: sll  $8, $8, 8         # encoding: [0x00,0x42,0x08,0x00]
    208 # CHECK-LE: or   $8, $8, $1        # encoding: [0x25,0x40,0x01,0x01]
    209 
    210   ulh $8, -0x8000
    211 # CHECK-BE: lb   $1, -32768($zero) # encoding: [0x80,0x01,0x80,0x00]
    212 # CHECK-BE: lbu  $8, -32767($zero) # encoding: [0x90,0x08,0x80,0x01]
    213 # CHECK-BE: sll  $1, $1, 8         # encoding: [0x00,0x01,0x0a,0x00]
    214 # CHECK-BE: or   $8, $8, $1        # encoding: [0x01,0x01,0x40,0x25]
    215 # CHECK-LE: lb   $1, -32767($zero) # encoding: [0x01,0x80,0x01,0x80]
    216 # CHECK-LE: lbu  $8, -32768($zero) # encoding: [0x00,0x80,0x08,0x90]
    217 # CHECK-LE: sll  $1, $1, 8         # encoding: [0x00,0x0a,0x01,0x00]
    218 # CHECK-LE: or   $8, $8, $1        # encoding: [0x25,0x40,0x01,0x01]
    219 
    220   ulh $8, 0x10000
    221 # CHECK-BE: lui  $1, 1             # encoding: [0x3c,0x01,0x00,0x01]
    222 # CHECK-BE: lb   $8, 0($1)         # encoding: [0x80,0x28,0x00,0x00]
    223 # CHECK-BE: lbu  $1, 1($1)         # encoding: [0x90,0x21,0x00,0x01]
    224 # CHECK-BE: sll  $8, $8, 8         # encoding: [0x00,0x08,0x42,0x00]
    225 # CHECK-BE: or   $8, $8, $1        # encoding: [0x01,0x01,0x40,0x25]
    226 # CHECK-LE: lui  $1, 1             # encoding: [0x01,0x00,0x01,0x3c]
    227 # CHECK-LE: lb   $8, 1($1)         # encoding: [0x01,0x00,0x28,0x80]
    228 # CHECK-LE: lbu  $1, 0($1)         # encoding: [0x00,0x00,0x21,0x90]
    229 # CHECK-LE: sll  $8, $8, 8         # encoding: [0x00,0x42,0x08,0x00]
    230 # CHECK-LE: or   $8, $8, $1        # encoding: [0x25,0x40,0x01,0x01]
    231 
    232   ulh $8, 0x18888
    233 # CHECK-BE: lui  $1, 1             # encoding: [0x3c,0x01,0x00,0x01]
    234 # CHECK-BE: ori  $1, $1, 34952     # encoding: [0x34,0x21,0x88,0x88]
    235 # CHECK-BE: lb   $8, 0($1)         # encoding: [0x80,0x28,0x00,0x00]
    236 # CHECK-BE: lbu  $1, 1($1)         # encoding: [0x90,0x21,0x00,0x01]
    237 # CHECK-BE: sll  $8, $8, 8         # encoding: [0x00,0x08,0x42,0x00]
    238 # CHECK-BE: or   $8, $8, $1        # encoding: [0x01,0x01,0x40,0x25]
    239 # CHECK-LE: lui  $1, 1             # encoding: [0x01,0x00,0x01,0x3c]
    240 # CHECK-LE: ori  $1, $1, 34952     # encoding: [0x88,0x88,0x21,0x34]
    241 # CHECK-LE: lb   $8, 1($1)         # encoding: [0x01,0x00,0x28,0x80]
    242 # CHECK-LE: lbu  $1, 0($1)         # encoding: [0x00,0x00,0x21,0x90]
    243 # CHECK-LE: sll  $8, $8, 8         # encoding: [0x00,0x42,0x08,0x00]
    244 # CHECK-LE: or   $8, $8, $1        # encoding: [0x25,0x40,0x01,0x01]
    245 
    246   ulh $8, -32769
    247 # CHECK-BE: lui  $1, 65535         # encoding: [0x3c,0x01,0xff,0xff]
    248 # CHECK-BE: ori  $1, $1, 32767     # encoding: [0x34,0x21,0x7f,0xff]
    249 # CHECK-BE: lb   $8, 0($1)         # encoding: [0x80,0x28,0x00,0x00]
    250 # CHECK-BE: lbu  $1, 1($1)         # encoding: [0x90,0x21,0x00,0x01]
    251 # CHECK-BE: sll  $8, $8, 8         # encoding: [0x00,0x08,0x42,0x00]
    252 # CHECK-BE: or   $8, $8, $1        # encoding: [0x01,0x01,0x40,0x25]
    253 # CHECK-LE: lui  $1, 65535         # encoding: [0xff,0xff,0x01,0x3c]
    254 # CHECK-LE: ori  $1, $1, 32767     # encoding: [0xff,0x7f,0x21,0x34]
    255 # CHECK-LE: lb   $8, 1($1)         # encoding: [0x01,0x00,0x28,0x80]
    256 # CHECK-LE: lbu  $1, 0($1)         # encoding: [0x00,0x00,0x21,0x90]
    257 # CHECK-LE: sll  $8, $8, 8         # encoding: [0x00,0x42,0x08,0x00]
    258 # CHECK-LE: or   $8, $8, $1        # encoding: [0x25,0x40,0x01,0x01]
    259 
    260   ulh $8, 32767
    261 # CHECK-BE: addiu $1, $zero, 32767  # encoding: [0x24,0x01,0x7f,0xff]
    262 # CHECK-BE: lb   $8, 0($1)          # encoding: [0x80,0x28,0x00,0x00]
    263 # CHECK-BE: lbu  $1, 1($1)          # encoding: [0x90,0x21,0x00,0x01]
    264 # CHECK-BE: sll  $8, $8, 8          # encoding: [0x00,0x08,0x42,0x00]
    265 # CHECK-BE: or   $8, $8, $1         # encoding: [0x01,0x01,0x40,0x25]
    266 # CHECK-LE: addiu $1, $zero, 32767  # encoding: [0xff,0x7f,0x01,0x24]
    267 # CHECK-LE: lb   $8, 1($1)          # encoding: [0x01,0x00,0x28,0x80]
    268 # CHECK-LE: lbu  $1, 0($1)          # encoding: [0x00,0x00,0x21,0x90]
    269 # CHECK-LE: sll  $8, $8, 8          # encoding: [0x00,0x42,0x08,0x00]
    270 # CHECK-LE: or   $8, $8, $1         # encoding: [0x25,0x40,0x01,0x01]
    271 
    272 # Test ULH with immediate offset and a source register operand.
    273 ulh_reg: # CHECK-LABEL: ulh_reg:
    274   ulh $8, 0($9)
    275 # CHECK-BE: lb   $1, 0($9)         # encoding: [0x81,0x21,0x00,0x00]
    276 # CHECK-BE: lbu  $8, 1($9)         # encoding: [0x91,0x28,0x00,0x01]
    277 # CHECK-BE: sll  $1, $1, 8         # encoding: [0x00,0x01,0x0a,0x00]
    278 # CHECK-BE: or   $8, $8, $1        # encoding: [0x01,0x01,0x40,0x25]
    279 # CHECK-LE: lb   $1, 1($9)         # encoding: [0x01,0x00,0x21,0x81]
    280 # CHECK-LE: lbu  $8, 0($9)         # encoding: [0x00,0x00,0x28,0x91]
    281 # CHECK-LE: sll  $1, $1, 8         # encoding: [0x00,0x0a,0x01,0x00]
    282 # CHECK-LE: or   $8, $8, $1        # encoding: [0x25,0x40,0x01,0x01]
    283 
    284   ulh $8, 2($9)
    285 # CHECK-BE: lb   $1, 2($9)         # encoding: [0x81,0x21,0x00,0x02]
    286 # CHECK-BE: lbu  $8, 3($9)         # encoding: [0x91,0x28,0x00,0x03]
    287 # CHECK-BE: sll  $1, $1, 8         # encoding: [0x00,0x01,0x0a,0x00]
    288 # CHECK-BE: or   $8, $8, $1        # encoding: [0x01,0x01,0x40,0x25]
    289 # CHECK-LE: lb   $1, 3($9)         # encoding: [0x03,0x00,0x21,0x81]
    290 # CHECK-LE: lbu  $8, 2($9)         # encoding: [0x02,0x00,0x28,0x91]
    291 # CHECK-LE: sll  $1, $1, 8         # encoding: [0x00,0x0a,0x01,0x00]
    292 # CHECK-LE: or   $8, $8, $1        # encoding: [0x25,0x40,0x01,0x01]
    293 
    294   ulh $8, 0x8000($9)
    295 # CHECK-BE: ori  $1, $zero, 32768  # encoding: [0x34,0x01,0x80,0x00]
    296 # CHECK-BE: addu $1, $1, $9        # encoding: [0x00,0x29,0x08,0x21]
    297 # CHECK-BE: lb   $8, 0($1)         # encoding: [0x80,0x28,0x00,0x00]
    298 # CHECK-BE: lbu  $1, 1($1)         # encoding: [0x90,0x21,0x00,0x01]
    299 # CHECK-BE: sll  $8, $8, 8         # encoding: [0x00,0x08,0x42,0x00]
    300 # CHECK-BE: or   $8, $8, $1        # encoding: [0x01,0x01,0x40,0x25]
    301 # CHECK-LE: ori  $1, $zero, 32768  # encoding: [0x00,0x80,0x01,0x34]
    302 # CHECK-LE: addu $1, $1, $9        # encoding: [0x21,0x08,0x29,0x00]
    303 # CHECK-LE: lb   $8, 1($1)         # encoding: [0x01,0x00,0x28,0x80]
    304 # CHECK-LE: lbu  $1, 0($1)         # encoding: [0x00,0x00,0x21,0x90]
    305 # CHECK-LE: sll  $8, $8, 8         # encoding: [0x00,0x42,0x08,0x00]
    306 # CHECK-LE: or   $8, $8, $1        # encoding: [0x25,0x40,0x01,0x01]
    307 
    308   ulh $8, -0x8000($9)
    309 # CHECK-BE: lb   $1, -32768($9)    # encoding: [0x81,0x21,0x80,0x00]
    310 # CHECK-BE: lbu  $8, -32767($9)    # encoding: [0x91,0x28,0x80,0x01]
    311 # CHECK-BE: sll  $1, $1, 8         # encoding: [0x00,0x01,0x0a,0x00]
    312 # CHECK-BE: or   $8, $8, $1        # encoding: [0x01,0x01,0x40,0x25]
    313 # CHECK-LE: lb   $1, -32767($9)    # encoding: [0x01,0x80,0x21,0x81]
    314 # CHECK-LE: lbu  $8, -32768($9)    # encoding: [0x00,0x80,0x28,0x91]
    315 # CHECK-LE: sll  $1, $1, 8         # encoding: [0x00,0x0a,0x01,0x00]
    316 # CHECK-LE: or   $8, $8, $1        # encoding: [0x25,0x40,0x01,0x01]
    317 
    318   ulh $8, 0x10000($9)
    319 # CHECK-BE: lui  $1, 1             # encoding: [0x3c,0x01,0x00,0x01]
    320 # CHECK-BE: addu $1, $1, $9        # encoding: [0x00,0x29,0x08,0x21]
    321 # CHECK-BE: lb   $8, 0($1)         # encoding: [0x80,0x28,0x00,0x00]
    322 # CHECK-BE: lbu  $1, 1($1)         # encoding: [0x90,0x21,0x00,0x01]
    323 # CHECK-BE: sll  $8, $8, 8         # encoding: [0x00,0x08,0x42,0x00]
    324 # CHECK-BE: or   $8, $8, $1        # encoding: [0x01,0x01,0x40,0x25]
    325 # CHECK-LE: lui  $1, 1             # encoding: [0x01,0x00,0x01,0x3c]
    326 # CHECK-LE: addu $1, $1, $9        # encoding: [0x21,0x08,0x29,0x00]
    327 # CHECK-LE: lb   $8, 1($1)         # encoding: [0x01,0x00,0x28,0x80]
    328 # CHECK-LE: lbu  $1, 0($1)         # encoding: [0x00,0x00,0x21,0x90]
    329 # CHECK-LE: sll  $8, $8, 8         # encoding: [0x00,0x42,0x08,0x00]
    330 # CHECK-LE: or   $8, $8, $1        # encoding: [0x25,0x40,0x01,0x01]
    331 
    332   ulh $8, 0x18888($9)
    333 # CHECK-BE: lui  $1, 1             # encoding: [0x3c,0x01,0x00,0x01]
    334 # CHECK-BE: ori  $1, $1, 34952     # encoding: [0x34,0x21,0x88,0x88]
    335 # CHECK-BE: addu $1, $1, $9        # encoding: [0x00,0x29,0x08,0x21]
    336 # CHECK-BE: lb   $8, 0($1)         # encoding: [0x80,0x28,0x00,0x00]
    337 # CHECK-BE: lbu  $1, 1($1)         # encoding: [0x90,0x21,0x00,0x01]
    338 # CHECK-BE: sll  $8, $8, 8         # encoding: [0x00,0x08,0x42,0x00]
    339 # CHECK-BE: or   $8, $8, $1        # encoding: [0x01,0x01,0x40,0x25]
    340 # CHECK-LE: lui  $1, 1             # encoding: [0x01,0x00,0x01,0x3c]
    341 # CHECK-LE: ori  $1, $1, 34952     # encoding: [0x88,0x88,0x21,0x34]
    342 # CHECK-LE: addu $1, $1, $9        # encoding: [0x21,0x08,0x29,0x00]
    343 # CHECK-LE: lb   $8, 1($1)         # encoding: [0x01,0x00,0x28,0x80]
    344 # CHECK-LE: lbu  $1, 0($1)         # encoding: [0x00,0x00,0x21,0x90]
    345 # CHECK-LE: sll  $8, $8, 8         # encoding: [0x00,0x42,0x08,0x00]
    346 # CHECK-LE: or   $8, $8, $1        # encoding: [0x25,0x40,0x01,0x01]
    347 
    348   ulh $8, -32769($9)
    349 # CHECK-BE: lui  $1, 65535         # encoding: [0x3c,0x01,0xff,0xff]
    350 # CHECK-BE: ori  $1, $1, 32767     # encoding: [0x34,0x21,0x7f,0xff]
    351 # CHECK-BE: addu $1, $1, $9        # encoding: [0x00,0x29,0x08,0x21]
    352 # CHECK-BE: lb   $8, 0($1)         # encoding: [0x80,0x28,0x00,0x00]
    353 # CHECK-BE: lbu  $1, 1($1)         # encoding: [0x90,0x21,0x00,0x01]
    354 # CHECK-BE: sll  $8, $8, 8         # encoding: [0x00,0x08,0x42,0x00]
    355 # CHECK-BE: or   $8, $8, $1        # encoding: [0x01,0x01,0x40,0x25]
    356 # CHECK-LE: lui  $1, 65535         # encoding: [0xff,0xff,0x01,0x3c]
    357 # CHECK-LE: ori  $1, $1, 32767     # encoding: [0xff,0x7f,0x21,0x34]
    358 # CHECK-LE: addu $1, $1, $9        # encoding: [0x21,0x08,0x29,0x00]
    359 # CHECK-LE: lb   $8, 1($1)         # encoding: [0x01,0x00,0x28,0x80]
    360 # CHECK-LE: lbu  $1, 0($1)         # encoding: [0x00,0x00,0x21,0x90]
    361 # CHECK-LE: sll  $8, $8, 8         # encoding: [0x00,0x42,0x08,0x00]
    362 # CHECK-LE: or   $8, $8, $1        # encoding: [0x25,0x40,0x01,0x01]
    363 
    364   ulh $8, 32767($9)
    365 # CHECK-BE: addiu $1, $9, 32767    # encoding: [0x25,0x21,0x7f,0xff]
    366 # CHECK-BE: lb   $8, 0($1)         # encoding: [0x80,0x28,0x00,0x00]
    367 # CHECK-BE: lbu  $1, 1($1)         # encoding: [0x90,0x21,0x00,0x01]
    368 # CHECK-BE: sll  $8, $8, 8         # encoding: [0x00,0x08,0x42,0x00]
    369 # CHECK-BE: or   $8, $8, $1        # encoding: [0x01,0x01,0x40,0x25]
    370 # CHECK-LE: addiu $1, $9, 32767    # encoding: [0xff,0x7f,0x21,0x25]
    371 # CHECK-LE: lb   $8, 1($1)         # encoding: [0x01,0x00,0x28,0x80]
    372 # CHECK-LE: lbu  $1, 0($1)         # encoding: [0x00,0x00,0x21,0x90]
    373 # CHECK-LE: sll  $8, $8, 8         # encoding: [0x00,0x42,0x08,0x00]
    374 # CHECK-LE: or   $8, $8, $1        # encoding: [0x25,0x40,0x01,0x01]
    375 
    376 # Test ULHU with immediate operand.
    377 ulhu_imm: # CHECK-LABEL: ulhu_imm:
    378   ulhu $8, 0
    379 # CHECK-BE: lbu  $1, 0($zero)      # encoding: [0x90,0x01,0x00,0x00]
    380 # CHECK-BE: lbu  $8, 1($zero)      # encoding: [0x90,0x08,0x00,0x01]
    381 # CHECK-BE: sll  $1, $1, 8         # encoding: [0x00,0x01,0x0a,0x00]
    382 # CHECK-BE: or   $8, $8, $1        # encoding: [0x01,0x01,0x40,0x25]
    383 # CHECK-LE: lbu  $1, 1($zero)      # encoding: [0x01,0x00,0x01,0x90]
    384 # CHECK-LE: lbu  $8, 0($zero)      # encoding: [0x00,0x00,0x08,0x90]
    385 # CHECK-LE: sll  $1, $1, 8         # encoding: [0x00,0x0a,0x01,0x00]
    386 # CHECK-LE: or   $8, $8, $1        # encoding: [0x25,0x40,0x01,0x01]
    387 
    388   ulhu $8, 2
    389 # CHECK-BE: lbu  $1, 2($zero)      # encoding: [0x90,0x01,0x00,0x02]
    390 # CHECK-BE: lbu  $8, 3($zero)      # encoding: [0x90,0x08,0x00,0x03]
    391 # CHECK-BE: sll  $1, $1, 8         # encoding: [0x00,0x01,0x0a,0x00]
    392 # CHECK-BE: or   $8, $8, $1        # encoding: [0x01,0x01,0x40,0x25]
    393 # CHECK-LE: lbu  $1, 3($zero)      # encoding: [0x03,0x00,0x01,0x90]
    394 # CHECK-LE: lbu  $8, 2($zero)      # encoding: [0x02,0x00,0x08,0x90]
    395 # CHECK-LE: sll  $1, $1, 8         # encoding: [0x00,0x0a,0x01,0x00]
    396 # CHECK-LE: or   $8, $8, $1        # encoding: [0x25,0x40,0x01,0x01]
    397 
    398   ulhu $8, 0x8000
    399 # CHECK-BE: ori  $1, $zero, 32768  # encoding: [0x34,0x01,0x80,0x00]
    400 # CHECK-BE: lbu  $8, 0($1)         # encoding: [0x90,0x28,0x00,0x00]
    401 # CHECK-BE: lbu  $1, 1($1)         # encoding: [0x90,0x21,0x00,0x01]
    402 # CHECK-BE: sll  $8, $8, 8         # encoding: [0x00,0x08,0x42,0x00]
    403 # CHECK-BE: or   $8, $8, $1        # encoding: [0x01,0x01,0x40,0x25]
    404 # CHECK-LE: ori  $1, $zero, 32768  # encoding: [0x00,0x80,0x01,0x34]
    405 # CHECK-LE: lbu  $8, 1($1)         # encoding: [0x01,0x00,0x28,0x90]
    406 # CHECK-LE: lbu  $1, 0($1)         # encoding: [0x00,0x00,0x21,0x90]
    407 # CHECK-LE: sll  $8, $8, 8         # encoding: [0x00,0x42,0x08,0x00]
    408 # CHECK-LE: or   $8, $8, $1        # encoding: [0x25,0x40,0x01,0x01]
    409 
    410   ulhu $8, -0x8000
    411 # CHECK-BE: lbu  $1, -32768($zero) # encoding: [0x90,0x01,0x80,0x00]
    412 # CHECK-BE: lbu  $8, -32767($zero) # encoding: [0x90,0x08,0x80,0x01]
    413 # CHECK-BE: sll  $1, $1, 8         # encoding: [0x00,0x01,0x0a,0x00]
    414 # CHECK-BE: or   $8, $8, $1        # encoding: [0x01,0x01,0x40,0x25]
    415 # CHECK-LE: lbu  $1, -32767($zero) # encoding: [0x01,0x80,0x01,0x90]
    416 # CHECK-LE: lbu  $8, -32768($zero) # encoding: [0x00,0x80,0x08,0x90]
    417 # CHECK-LE: sll  $1, $1, 8         # encoding: [0x00,0x0a,0x01,0x00]
    418 # CHECK-LE: or   $8, $8, $1        # encoding: [0x25,0x40,0x01,0x01]
    419 
    420   ulhu $8, 0x10000
    421 # CHECK-BE: lui  $1, 1             # encoding: [0x3c,0x01,0x00,0x01]
    422 # CHECK-BE: lbu  $8, 0($1)         # encoding: [0x90,0x28,0x00,0x00]
    423 # CHECK-BE: lbu  $1, 1($1)         # encoding: [0x90,0x21,0x00,0x01]
    424 # CHECK-BE: sll  $8, $8, 8         # encoding: [0x00,0x08,0x42,0x00]
    425 # CHECK-BE: or   $8, $8, $1        # encoding: [0x01,0x01,0x40,0x25]
    426 # CHECK-LE: lui  $1, 1             # encoding: [0x01,0x00,0x01,0x3c]
    427 # CHECK-LE: lbu  $8, 1($1)         # encoding: [0x01,0x00,0x28,0x90]
    428 # CHECK-LE: lbu  $1, 0($1)         # encoding: [0x00,0x00,0x21,0x90]
    429 # CHECK-LE: sll  $8, $8, 8         # encoding: [0x00,0x42,0x08,0x00]
    430 # CHECK-LE: or   $8, $8, $1        # encoding: [0x25,0x40,0x01,0x01]
    431 
    432   ulhu $8, 0x18888
    433 # CHECK-BE: lui  $1, 1             # encoding: [0x3c,0x01,0x00,0x01]
    434 # CHECK-BE: ori  $1, $1, 34952     # encoding: [0x34,0x21,0x88,0x88]
    435 # CHECK-BE: lbu  $8, 0($1)         # encoding: [0x90,0x28,0x00,0x00]
    436 # CHECK-BE: lbu  $1, 1($1)         # encoding: [0x90,0x21,0x00,0x01]
    437 # CHECK-BE: sll  $8, $8, 8         # encoding: [0x00,0x08,0x42,0x00]
    438 # CHECK-BE: or   $8, $8, $1        # encoding: [0x01,0x01,0x40,0x25]
    439 # CHECK-LE: lui  $1, 1             # encoding: [0x01,0x00,0x01,0x3c]
    440 # CHECK-LE: ori  $1, $1, 34952     # encoding: [0x88,0x88,0x21,0x34]
    441 # CHECK-LE: lbu  $8, 1($1)         # encoding: [0x01,0x00,0x28,0x90]
    442 # CHECK-LE: lbu  $1, 0($1)         # encoding: [0x00,0x00,0x21,0x90]
    443 # CHECK-LE: sll  $8, $8, 8         # encoding: [0x00,0x42,0x08,0x00]
    444 # CHECK-LE: or   $8, $8, $1        # encoding: [0x25,0x40,0x01,0x01]
    445 
    446   ulhu $8, -32769
    447 # CHECK-BE: lui  $1, 65535         # encoding: [0x3c,0x01,0xff,0xff]
    448 # CHECK-BE: ori  $1, $1, 32767     # encoding: [0x34,0x21,0x7f,0xff]
    449 # CHECK-BE: lbu  $8, 0($1)         # encoding: [0x90,0x28,0x00,0x00]
    450 # CHECK-BE: lbu  $1, 1($1)         # encoding: [0x90,0x21,0x00,0x01]
    451 # CHECK-BE: sll  $8, $8, 8         # encoding: [0x00,0x08,0x42,0x00]
    452 # CHECK-BE: or   $8, $8, $1        # encoding: [0x01,0x01,0x40,0x25]
    453 # CHECK-LE: lui  $1, 65535         # encoding: [0xff,0xff,0x01,0x3c]
    454 # CHECK-LE: ori  $1, $1, 32767     # encoding: [0xff,0x7f,0x21,0x34]
    455 # CHECK-LE: lbu  $8, 1($1)         # encoding: [0x01,0x00,0x28,0x90]
    456 # CHECK-LE: lbu  $1, 0($1)         # encoding: [0x00,0x00,0x21,0x90]
    457 # CHECK-LE: sll  $8, $8, 8         # encoding: [0x00,0x42,0x08,0x00]
    458 # CHECK-LE: or   $8, $8, $1        # encoding: [0x25,0x40,0x01,0x01]
    459 
    460   ulhu $8, 32767
    461 # CHECK-BE: addiu $1, $zero, 32767  # encoding: [0x24,0x01,0x7f,0xff]
    462 # CHECK-BE: lbu  $8, 0($1)          # encoding: [0x90,0x28,0x00,0x00]
    463 # CHECK-BE: lbu  $1, 1($1)          # encoding: [0x90,0x21,0x00,0x01]
    464 # CHECK-BE: sll  $8, $8, 8          # encoding: [0x00,0x08,0x42,0x00]
    465 # CHECK-BE: or   $8, $8, $1         # encoding: [0x01,0x01,0x40,0x25]
    466 # CHECK-LE: addiu $1, $zero, 32767  # encoding: [0xff,0x7f,0x01,0x24]
    467 # CHECK-LE: lbu  $8, 1($1)          # encoding: [0x01,0x00,0x28,0x90]
    468 # CHECK-LE: lbu  $1, 0($1)          # encoding: [0x00,0x00,0x21,0x90]
    469 # CHECK-LE: sll  $8, $8, 8          # encoding: [0x00,0x42,0x08,0x00]
    470 # CHECK-LE: or   $8, $8, $1         # encoding: [0x25,0x40,0x01,0x01]
    471 
    472 # Test ULHU with immediate offset and a source register operand.
    473   ulhu $8, 0($9)
    474 # CHECK-BE: lbu  $1, 0($9)         # encoding: [0x91,0x21,0x00,0x00]
    475 # CHECK-BE: lbu  $8, 1($9)         # encoding: [0x91,0x28,0x00,0x01]
    476 # CHECK-BE: sll  $1, $1, 8         # encoding: [0x00,0x01,0x0a,0x00]
    477 # CHECK-BE: or   $8, $8, $1        # encoding: [0x01,0x01,0x40,0x25]
    478 # CHECK-LE: lbu  $1, 1($9)         # encoding: [0x01,0x00,0x21,0x91]
    479 # CHECK-LE: lbu  $8, 0($9)         # encoding: [0x00,0x00,0x28,0x91]
    480 # CHECK-LE: sll  $1, $1, 8         # encoding: [0x00,0x0a,0x01,0x00]
    481 # CHECK-LE: or   $8, $8, $1        # encoding: [0x25,0x40,0x01,0x01]
    482 
    483   ulhu $8, 2($9)
    484 # CHECK-BE: lbu  $1, 2($9)         # encoding: [0x91,0x21,0x00,0x02]
    485 # CHECK-BE: lbu  $8, 3($9)         # encoding: [0x91,0x28,0x00,0x03]
    486 # CHECK-BE: sll  $1, $1, 8         # encoding: [0x00,0x01,0x0a,0x00]
    487 # CHECK-BE: or   $8, $8, $1        # encoding: [0x01,0x01,0x40,0x25]
    488 # CHECK-LE: lbu  $1, 3($9)         # encoding: [0x03,0x00,0x21,0x91]
    489 # CHECK-LE: lbu  $8, 2($9)         # encoding: [0x02,0x00,0x28,0x91]
    490 # CHECK-LE: sll  $1, $1, 8         # encoding: [0x00,0x0a,0x01,0x00]
    491 # CHECK-LE: or   $8, $8, $1        # encoding: [0x25,0x40,0x01,0x01]
    492 
    493   ulhu $8, 0x8000($9)
    494 # CHECK-BE: ori  $1, $zero, 32768  # encoding: [0x34,0x01,0x80,0x00]
    495 # CHECK-BE: addu $1, $1, $9        # encoding: [0x00,0x29,0x08,0x21]
    496 # CHECK-BE: lbu  $8, 0($1)         # encoding: [0x90,0x28,0x00,0x00]
    497 # CHECK-BE: lbu  $1, 1($1)         # encoding: [0x90,0x21,0x00,0x01]
    498 # CHECK-BE: sll  $8, $8, 8         # encoding: [0x00,0x08,0x42,0x00]
    499 # CHECK-BE: or   $8, $8, $1        # encoding: [0x01,0x01,0x40,0x25]
    500 # CHECK-LE: ori  $1, $zero, 32768  # encoding: [0x00,0x80,0x01,0x34]
    501 # CHECK-LE: addu $1, $1, $9        # encoding: [0x21,0x08,0x29,0x00]
    502 # CHECK-LE: lbu  $8, 1($1)         # encoding: [0x01,0x00,0x28,0x90]
    503 # CHECK-LE: lbu  $1, 0($1)         # encoding: [0x00,0x00,0x21,0x90]
    504 # CHECK-LE: sll  $8, $8, 8         # encoding: [0x00,0x42,0x08,0x00]
    505 # CHECK-LE: or   $8, $8, $1        # encoding: [0x25,0x40,0x01,0x01]
    506 
    507   ulhu $8, -0x8000($9)
    508 # CHECK-BE: lbu  $1, -32768($9)    # encoding: [0x91,0x21,0x80,0x00]
    509 # CHECK-BE: lbu  $8, -32767($9)    # encoding: [0x91,0x28,0x80,0x01]
    510 # CHECK-BE: sll  $1, $1, 8         # encoding: [0x00,0x01,0x0a,0x00]
    511 # CHECK-BE: or   $8, $8, $1        # encoding: [0x01,0x01,0x40,0x25]
    512 # CHECK-LE: lbu  $1, -32767($9)    # encoding: [0x01,0x80,0x21,0x91]
    513 # CHECK-LE: lbu  $8, -32768($9)    # encoding: [0x00,0x80,0x28,0x91]
    514 # CHECK-LE: sll  $1, $1, 8         # encoding: [0x00,0x0a,0x01,0x00]
    515 # CHECK-LE: or   $8, $8, $1        # encoding: [0x25,0x40,0x01,0x01]
    516 
    517   ulhu $8, 0x10000($9)
    518 # CHECK-BE: lui  $1, 1             # encoding: [0x3c,0x01,0x00,0x01]
    519 # CHECK-BE: addu $1, $1, $9        # encoding: [0x00,0x29,0x08,0x21]
    520 # CHECK-BE: lbu  $8, 0($1)         # encoding: [0x90,0x28,0x00,0x00]
    521 # CHECK-BE: lbu  $1, 1($1)         # encoding: [0x90,0x21,0x00,0x01]
    522 # CHECK-BE: sll  $8, $8, 8         # encoding: [0x00,0x08,0x42,0x00]
    523 # CHECK-BE: or   $8, $8, $1        # encoding: [0x01,0x01,0x40,0x25]
    524 # CHECK-LE: lui  $1, 1             # encoding: [0x01,0x00,0x01,0x3c]
    525 # CHECK-LE: addu $1, $1, $9        # encoding: [0x21,0x08,0x29,0x00]
    526 # CHECK-LE: lbu  $8, 1($1)         # encoding: [0x01,0x00,0x28,0x90]
    527 # CHECK-LE: lbu  $1, 0($1)         # encoding: [0x00,0x00,0x21,0x90]
    528 # CHECK-LE: sll  $8, $8, 8         # encoding: [0x00,0x42,0x08,0x00]
    529 # CHECK-LE: or   $8, $8, $1        # encoding: [0x25,0x40,0x01,0x01]
    530 
    531   ulhu $8, 0x18888($9)
    532 # CHECK-BE: lui  $1, 1             # encoding: [0x3c,0x01,0x00,0x01]
    533 # CHECK-BE: ori  $1, $1, 34952     # encoding: [0x34,0x21,0x88,0x88]
    534 # CHECK-BE: addu $1, $1, $9        # encoding: [0x00,0x29,0x08,0x21]
    535 # CHECK-BE: lbu  $8, 0($1)         # encoding: [0x90,0x28,0x00,0x00]
    536 # CHECK-BE: lbu  $1, 1($1)         # encoding: [0x90,0x21,0x00,0x01]
    537 # CHECK-BE: sll  $8, $8, 8         # encoding: [0x00,0x08,0x42,0x00]
    538 # CHECK-BE: or   $8, $8, $1        # encoding: [0x01,0x01,0x40,0x25]
    539 # CHECK-LE: lui  $1, 1             # encoding: [0x01,0x00,0x01,0x3c]
    540 # CHECK-LE: ori  $1, $1, 34952     # encoding: [0x88,0x88,0x21,0x34]
    541 # CHECK-LE: addu $1, $1, $9        # encoding: [0x21,0x08,0x29,0x00]
    542 # CHECK-LE: lbu  $8, 1($1)         # encoding: [0x01,0x00,0x28,0x90]
    543 # CHECK-LE: lbu  $1, 0($1)         # encoding: [0x00,0x00,0x21,0x90]
    544 # CHECK-LE: sll  $8, $8, 8         # encoding: [0x00,0x42,0x08,0x00]
    545 # CHECK-LE: or   $8, $8, $1        # encoding: [0x25,0x40,0x01,0x01]
    546 
    547   ulhu $8, -32769($9)
    548 # CHECK-BE: lui  $1, 65535         # encoding: [0x3c,0x01,0xff,0xff]
    549 # CHECK-BE: ori  $1, $1, 32767     # encoding: [0x34,0x21,0x7f,0xff]
    550 # CHECK-BE: addu $1, $1, $9        # encoding: [0x00,0x29,0x08,0x21]
    551 # CHECK-BE: lbu  $8, 0($1)         # encoding: [0x90,0x28,0x00,0x00]
    552 # CHECK-BE: lbu  $1, 1($1)         # encoding: [0x90,0x21,0x00,0x01]
    553 # CHECK-BE: sll  $8, $8, 8         # encoding: [0x00,0x08,0x42,0x00]
    554 # CHECK-BE: or   $8, $8, $1        # encoding: [0x01,0x01,0x40,0x25]
    555 # CHECK-LE: lui  $1, 65535         # encoding: [0xff,0xff,0x01,0x3c]
    556 # CHECK-LE: ori  $1, $1, 32767     # encoding: [0xff,0x7f,0x21,0x34]
    557 # CHECK-LE: addu $1, $1, $9        # encoding: [0x21,0x08,0x29,0x00]
    558 # CHECK-LE: lbu  $8, 1($1)         # encoding: [0x01,0x00,0x28,0x90]
    559 # CHECK-LE: lbu  $1, 0($1)         # encoding: [0x00,0x00,0x21,0x90]
    560 # CHECK-LE: sll  $8, $8, 8         # encoding: [0x00,0x42,0x08,0x00]
    561 # CHECK-LE: or   $8, $8, $1        # encoding: [0x25,0x40,0x01,0x01]
    562 
    563   ulhu $8, 32767($9)
    564 # CHECK-BE: addiu   $1, $9, 32767  # encoding: [0x25,0x21,0x7f,0xff]
    565 # CHECK-BE: lbu  $8, 0($1)         # encoding: [0x90,0x28,0x00,0x00]
    566 # CHECK-BE: lbu  $1, 1($1)         # encoding: [0x90,0x21,0x00,0x01]
    567 # CHECK-BE: sll  $8, $8, 8         # encoding: [0x00,0x08,0x42,0x00]
    568 # CHECK-BE: or   $8, $8, $1        # encoding: [0x01,0x01,0x40,0x25]
    569 # CHECK-LE: addiu $1, $9, 32767    # encoding: [0xff,0x7f,0x21,0x25]
    570 # CHECK-LE: lbu  $8, 1($1)         # encoding: [0x01,0x00,0x28,0x90]
    571 # CHECK-LE: lbu  $1, 0($1)         # encoding: [0x00,0x00,0x21,0x90]
    572 # CHECK-LE: sll  $8, $8, 8         # encoding: [0x00,0x42,0x08,0x00]
    573 # CHECK-LE: or   $8, $8, $1        # encoding: [0x25,0x40,0x01,0x01]
    574 
    575 # Test ULW with immediate operand.
    576   ulw $8, 0
    577 # CHECK-BE: lwl  $8, 0($zero)      # encoding: [0x88,0x08,0x00,0x00]
    578 # CHECK-BE: lwr  $8, 3($zero)      # encoding: [0x98,0x08,0x00,0x03]
    579 # CHECK-LE: lwl $8, 3($zero)       # encoding: [0x03,0x00,0x08,0x88]
    580 # CHECK-LE: lwr $8, 0($zero)       # encoding: [0x00,0x00,0x08,0x98]
    581 
    582   ulw $8, 2
    583 # CHECK-BE: lwl  $8, 2($zero)      # encoding: [0x88,0x08,0x00,0x02]
    584 # CHECK-BE: lwr  $8, 5($zero)      # encoding: [0x98,0x08,0x00,0x05]
    585 # CHECK-LE: lwl $8, 5($zero)       # encoding: [0x05,0x00,0x08,0x88]
    586 # CHECK-LE: lwr $8, 2($zero)       # encoding: [0x02,0x00,0x08,0x98]
    587 
    588   ulw $8, 0x8000
    589 # CHECK-BE: ori  $1, $zero, 32768  # encoding: [0x34,0x01,0x80,0x00]
    590 # CHECK-BE: lwl  $8, 0($1)         # encoding: [0x88,0x28,0x00,0x00]
    591 # CHECK-BE: lwr  $8, 3($1)         # encoding: [0x98,0x28,0x00,0x03]
    592 # CHECK-LE: ori $1, $zero, 32768   # encoding: [0x00,0x80,0x01,0x34]
    593 # CHECK-LE: lwl $8, 3($1)          # encoding: [0x03,0x00,0x28,0x88]
    594 # CHECK-LE: lwr $8, 0($1)          # encoding: [0x00,0x00,0x28,0x98]
    595 
    596   ulw $8, -0x8000
    597 # CHECK-BE: lwl  $8, -32768($zero) # encoding: [0x88,0x08,0x80,0x00]
    598 # CHECK-BE: lwr  $8, -32765($zero) # encoding: [0x98,0x08,0x80,0x03]
    599 # CHECK-LE: lwl $8, -32765($zero)  # encoding: [0x03,0x80,0x08,0x88]
    600 # CHECK-LE: lwr $8, -32768($zero)  # encoding: [0x00,0x80,0x08,0x98]
    601 
    602   ulw $8, 0x10000
    603 # CHECK-BE: lui  $1, 1             # encoding: [0x3c,0x01,0x00,0x01]
    604 # CHECK-BE: lwl  $8, 0($1)         # encoding: [0x88,0x28,0x00,0x00]
    605 # CHECK-BE: lwr  $8, 3($1)         # encoding: [0x98,0x28,0x00,0x03]
    606 # CHECK-LE: lui $1, 1              # encoding: [0x01,0x00,0x01,0x3c]
    607 # CHECK-LE: lwl $8, 3($1)          # encoding: [0x03,0x00,0x28,0x88]
    608 # CHECK-LE: lwr $8, 0($1)          # encoding: [0x00,0x00,0x28,0x98]
    609 
    610   ulw $8, 0x18888
    611 # CHECK-BE: lui  $1, 1             # encoding: [0x3c,0x01,0x00,0x01]
    612 # CHECK-BE: ori  $1, $1, 34952     # encoding: [0x34,0x21,0x88,0x88]
    613 # CHECK-BE: lwl  $8, 0($1)         # encoding: [0x88,0x28,0x00,0x00]
    614 # CHECK-BE: lwr  $8, 3($1)         # encoding: [0x98,0x28,0x00,0x03]
    615 # CHECK-LE: lui $1, 1              # encoding: [0x01,0x00,0x01,0x3c]
    616 # CHECK-LE: ori $1, $1, 34952      # encoding: [0x88,0x88,0x21,0x34]
    617 # CHECK-LE: lwl $8, 3($1)          # encoding: [0x03,0x00,0x28,0x88]
    618 # CHECK-LE: lwr $8, 0($1)          # encoding: [0x00,0x00,0x28,0x98]
    619 
    620   ulw $8, -32771
    621 # CHECK-BE: lui  $1, 65535         # encoding: [0x3c,0x01,0xff,0xff]
    622 # CHECK-BE: ori  $1, $1, 32765     # encoding: [0x34,0x21,0x7f,0xfd]
    623 # CHECK-BE: lwl  $8, 0($1)         # encoding: [0x88,0x28,0x00,0x00]
    624 # CHECK-BE: lwr  $8, 3($1)         # encoding: [0x98,0x28,0x00,0x03]
    625 # CHECK-LE: lui $1, 65535          # encoding: [0xff,0xff,0x01,0x3c]
    626 # CHECK-LE: ori $1, $1, 32765      # encoding: [0xfd,0x7f,0x21,0x34]
    627 # CHECK-LE: lwl $8, 3($1)          # encoding: [0x03,0x00,0x28,0x88]
    628 # CHECK-LE: lwr $8, 0($1)          # encoding: [0x00,0x00,0x28,0x98]
    629 
    630   ulw $8, 32765
    631 # CHECK-BE: addiu $1, $zero, 32765 # encoding: [0x24,0x01,0x7f,0xfd]
    632 # CHECK-BE: lwl  $8, 0($1)         # encoding: [0x88,0x28,0x00,0x00]
    633 # CHECK-BE: lwr  $8, 3($1)         # encoding: [0x98,0x28,0x00,0x03]
    634 # CHECK-LE: addiu $1, $zero, 32765 # encoding: [0xfd,0x7f,0x01,0x24]
    635 # CHECK-LE: lwl $8, 3($1)          # encoding: [0x03,0x00,0x28,0x88]
    636 # CHECK-LE: lwr $8, 0($1)          # encoding: [0x00,0x00,0x28,0x98]
    637 
    638 # Test ULW with immediate offset and a source register operand.
    639   ulw $8, 0($9)
    640 # CHECK-BE: lwl  $8, 0($9)         # encoding: [0x89,0x28,0x00,0x00]
    641 # CHECK-BE: lwr  $8, 3($9)         # encoding: [0x99,0x28,0x00,0x03]
    642 # CHECK-LE: lwl  $8, 3($9)         # encoding: [0x03,0x00,0x28,0x89]
    643 # CHECK-LE: lwr  $8, 0($9)         # encoding: [0x00,0x00,0x28,0x99]
    644 
    645   ulw $8, 2($9)
    646 # CHECK-BE: lwl  $8, 2($9)         # encoding: [0x89,0x28,0x00,0x02]
    647 # CHECK-BE: lwr  $8, 5($9)         # encoding: [0x99,0x28,0x00,0x05]
    648 # CHECK-LE: lwl  $8, 5($9)         # encoding: [0x05,0x00,0x28,0x89]
    649 # CHECK-LE: lwr  $8, 2($9)         # encoding: [0x02,0x00,0x28,0x99]
    650 
    651   ulw $8, 0x8000($9)
    652 # CHECK-BE: ori  $1, $zero, 32768  # encoding: [0x34,0x01,0x80,0x00]
    653 # CHECK-BE: addu $1, $1, $9        # encoding: [0x00,0x29,0x08,0x21]
    654 # CHECK-BE: lwl  $8, 0($1)         # encoding: [0x88,0x28,0x00,0x00]
    655 # CHECK-BE: lwr  $8, 3($1)         # encoding: [0x98,0x28,0x00,0x03]
    656 # CHECK-LE: ori  $1, $zero, 32768  # encoding: [0x00,0x80,0x01,0x34]
    657 # CHECK-LE: addu $1, $1, $9        # encoding: [0x21,0x08,0x29,0x00]
    658 # CHECK-LE: lwl  $8, 3($1)         # encoding: [0x03,0x00,0x28,0x88]
    659 # CHECK-LE: lwr  $8, 0($1)         # encoding: [0x00,0x00,0x28,0x98]
    660 
    661   ulw $8, -0x8000($9)
    662 # CHECK-BE: lwl  $8, -32768($9)    # encoding: [0x89,0x28,0x80,0x00]
    663 # CHECK-BE: lwr  $8, -32765($9)    # encoding: [0x99,0x28,0x80,0x03]
    664 # CHECK-LE: lwl  $8, -32765($9)    # encoding: [0x03,0x80,0x28,0x89]
    665 # CHECK-LE: lwr  $8, -32768($9)    # encoding: [0x00,0x80,0x28,0x99]
    666 
    667   ulw $8, 0x10000($9)
    668 # CHECK-BE: lui  $1, 1             # encoding: [0x3c,0x01,0x00,0x01]
    669 # CHECK-BE: addu $1, $1, $9        # encoding: [0x00,0x29,0x08,0x21]
    670 # CHECK-BE: lwl  $8, 0($1)         # encoding: [0x88,0x28,0x00,0x00]
    671 # CHECK-BE: lwr  $8, 3($1)         # encoding: [0x98,0x28,0x00,0x03]
    672 # CHECK-LE: lui  $1, 1             # encoding: [0x01,0x00,0x01,0x3c]
    673 # CHECK-LE: addu $1, $1, $9        # encoding: [0x21,0x08,0x29,0x00]
    674 # CHECK-LE: lwl  $8, 3($1)         # encoding: [0x03,0x00,0x28,0x88]
    675 # CHECK-LE: lwr  $8, 0($1)         # encoding: [0x00,0x00,0x28,0x98]
    676 
    677   ulw $8, 0x18888($9)
    678 # CHECK-BE: lui  $1, 1             # encoding: [0x3c,0x01,0x00,0x01]
    679 # CHECK-BE: ori  $1, $1, 34952     # encoding: [0x34,0x21,0x88,0x88]
    680 # CHECK-BE: addu $1, $1, $9        # encoding: [0x00,0x29,0x08,0x21]
    681 # CHECK-BE: lwl  $8, 0($1)         # encoding: [0x88,0x28,0x00,0x00]
    682 # CHECK-BE: lwr  $8, 3($1)         # encoding: [0x98,0x28,0x00,0x03]
    683 # CHECK-LE: lui  $1, 1             # encoding: [0x01,0x00,0x01,0x3c]
    684 # CHECK-LE: ori  $1, $1, 34952     # encoding: [0x88,0x88,0x21,0x34]
    685 # CHECK-LE: addu $1, $1, $9        # encoding: [0x21,0x08,0x29,0x00]
    686 # CHECK-LE: lwl  $8, 3($1)         # encoding: [0x03,0x00,0x28,0x88]
    687 # CHECK-LE: lwr  $8, 0($1)         # encoding: [0x00,0x00,0x28,0x98]
    688 
    689   ulw $8, -32771($9)
    690 # CHECK-BE: lui  $1, 65535         # encoding: [0x3c,0x01,0xff,0xff]
    691 # CHECK-BE: ori  $1, $1, 32765     # encoding: [0x34,0x21,0x7f,0xfd]
    692 # CHECK-BE: addu $1, $1, $9        # encoding: [0x00,0x29,0x08,0x21]
    693 # CHECK-BE: lwl  $8, 0($1)         # encoding: [0x88,0x28,0x00,0x00]
    694 # CHECK-BE: lwr  $8, 3($1)         # encoding: [0x98,0x28,0x00,0x03]
    695 # CHECK-LE: lui  $1, 65535         # encoding: [0xff,0xff,0x01,0x3c]
    696 # CHECK-LE: ori  $1, $1, 32765     # encoding: [0xfd,0x7f,0x21,0x34]
    697 # CHECK-LE: addu $1, $1, $9        # encoding: [0x21,0x08,0x29,0x00]
    698 # CHECK-LE: lwl  $8, 3($1)         # encoding: [0x03,0x00,0x28,0x88]
    699 # CHECK-LE: lwr  $8, 0($1)         # encoding: [0x00,0x00,0x28,0x98]
    700 
    701   ulw $8, 32765($9)
    702 # CHECK-BE: addiu $1, $9, 32765    # encoding: [0x25,0x21,0x7f,0xfd]
    703 # CHECK-BE: lwl  $8, 0($1)         # encoding: [0x88,0x28,0x00,0x00]
    704 # CHECK-BE: lwr  $8, 3($1)         # encoding: [0x98,0x28,0x00,0x03]
    705 # CHECK-LE: addiu $1, $9, 32765    # encoding: [0xfd,0x7f,0x21,0x25]
    706 # CHECK-LE: lwl  $8, 3($1)         # encoding: [0x03,0x00,0x28,0x88]
    707 # CHECK-LE: lwr  $8, 0($1)         # encoding: [0x00,0x00,0x28,0x98]
    708 
    709   ulw $8, 0($8)
    710 # CHECK-BE: lwl $1, 0($8)          # encoding: [0x89,0x01,0x00,0x00]
    711 # CHECK-BE: lwr $1, 3($8)          # encoding: [0x99,0x01,0x00,0x03]
    712 # CHECK-BE: move $8, $1            # encoding: [0x00,0x20,0x40,0x25]
    713 # CHECK-LE: lwl $1, 3($8)          # encoding: [0x03,0x00,0x01,0x89]
    714 # CHECK-LE: lwr $1, 0($8)          # encoding: [0x00,0x00,0x01,0x99]
    715 # CHECK-LE: move $8, $1            # encoding: [0x25,0x40,0x20,0x00]
    716 
    717   ulw $8, 2($8)
    718 # CHECK-BE: lwl $1, 2($8)          # encoding: [0x89,0x01,0x00,0x02]
    719 # CHECK-BE: lwr $1, 5($8)          # encoding: [0x99,0x01,0x00,0x05]
    720 # CHECK-BE: move $8, $1            # encoding: [0x00,0x20,0x40,0x25]
    721 # CHECK-LE: lwl $1, 5($8)          # encoding: [0x05,0x00,0x01,0x89]
    722 # CHECK-LE: lwr $1, 2($8)          # encoding: [0x02,0x00,0x01,0x99]
    723 # CHECK-LE: move $8, $1            # encoding: [0x25,0x40,0x20,0x00]
    724 
    725   ulw $8, 0x8000($8)
    726 # CHECK-BE: ori $1, $zero, 32768   # encoding: [0x34,0x01,0x80,0x00]
    727 # CHECK-BE: addu $1, $1, $8        # encoding: [0x00,0x28,0x08,0x21]
    728 # CHECK-BE: lwl $8, 0($1)          # encoding: [0x88,0x28,0x00,0x00]
    729 # CHECK-BE: lwr $8, 3($1)          # encoding: [0x98,0x28,0x00,0x03]
    730 # CHECK-LE: ori $1, $zero, 32768   # encoding: [0x00,0x80,0x01,0x34]
    731 # CHECK-LE: addu $1, $1, $8        # encoding: [0x21,0x08,0x28,0x00]
    732 # CHECK-LE: lwl $8, 3($1)          # encoding: [0x03,0x00,0x28,0x88]
    733 # CHECK-LE: lwr $8, 0($1)          # encoding: [0x00,0x00,0x28,0x98]
    734 
    735   ulw $8, -0x8000($8)
    736 # CHECK-BE: lwl $1, -32768($8)     # encoding: [0x89,0x01,0x80,0x00]
    737 # CHECK-BE: lwr $1, -32765($8)     # encoding: [0x99,0x01,0x80,0x03]
    738 # CHECK-BE: move $8, $1            # encoding: [0x00,0x20,0x40,0x25]
    739 # CHECK-LE: lwl $1, -32765($8)     # encoding: [0x03,0x80,0x01,0x89]
    740 # CHECK-LE: lwr $1, -32768($8)     # encoding: [0x00,0x80,0x01,0x99]
    741 # CHECK-LE: move $8, $1            # encoding: [0x25,0x40,0x20,0x00]
    742 
    743   ulw $8, 0x10000($8)
    744 # CHECK-BE: lui $1, 1              # encoding: [0x3c,0x01,0x00,0x01]
    745 # CHECK-BE: addu $1, $1, $8        # encoding: [0x00,0x28,0x08,0x21]
    746 # CHECK-BE: lwl $8, 0($1)          # encoding: [0x88,0x28,0x00,0x00]
    747 # CHECK-BE: lwr $8, 3($1)          # encoding: [0x98,0x28,0x00,0x03]
    748 # CHECK-LE: lui $1, 1              # encoding: [0x01,0x00,0x01,0x3c]
    749 # CHECK-LE: addu $1, $1, $8        # encoding: [0x21,0x08,0x28,0x00]
    750 # CHECK-LE: lwl $8, 3($1)          # encoding: [0x03,0x00,0x28,0x88]
    751 # CHECK-LE: lwr $8, 0($1)          # encoding: [0x00,0x00,0x28,0x98]
    752 
    753   ulw $8, 0x18888($8)
    754 # CHECK-BE: lui $1, 1              # encoding: [0x3c,0x01,0x00,0x01]
    755 # CHECK-BE: ori $1, $1, 34952      # encoding: [0x34,0x21,0x88,0x88]
    756 # CHECK-BE: addu $1, $1, $8        # encoding: [0x00,0x28,0x08,0x21]
    757 # CHECK-BE: lwl $8, 0($1)          # encoding: [0x88,0x28,0x00,0x00]
    758 # CHECK-BE: lwr $8, 3($1)          # encoding: [0x98,0x28,0x00,0x03]
    759 # CHECK-LE: lui $1, 1              # encoding: [0x01,0x00,0x01,0x3c]
    760 # CHECK-LE: ori $1, $1, 34952      # encoding: [0x88,0x88,0x21,0x34]
    761 # CHECK-LE: addu $1, $1, $8        # encoding: [0x21,0x08,0x28,0x00]
    762 # CHECK-LE: lwl $8, 3($1)          # encoding: [0x03,0x00,0x28,0x88]
    763 # CHECK-LE: lwr $8, 0($1)          # encoding: [0x00,0x00,0x28,0x98]
    764 
    765   ulw $8, -32771($8)
    766 # CHECK-BE: lui $1, 65535          # encoding: [0x3c,0x01,0xff,0xff]
    767 # CHECK-BE: ori $1, $1, 32765      # encoding: [0x34,0x21,0x7f,0xfd]
    768 # CHECK-BE: addu $1, $1, $8        # encoding: [0x00,0x28,0x08,0x21]
    769 # CHECK-BE: lwl $8, 0($1)          # encoding: [0x88,0x28,0x00,0x00]
    770 # CHECK-BE: lwr $8, 3($1)          # encoding: [0x98,0x28,0x00,0x03]
    771 # CHECK-LE: lui $1, 65535          # encoding: [0xff,0xff,0x01,0x3c]
    772 # CHECK-LE: ori $1, $1, 32765      # encoding: [0xfd,0x7f,0x21,0x34]
    773 # CHECK-LE: addu $1, $1, $8        # encoding: [0x21,0x08,0x28,0x00]
    774 # CHECK-LE: lwl $8, 3($1)          # encoding: [0x03,0x00,0x28,0x88]
    775 # CHECK-LE: lwr $8, 0($1)          # encoding: [0x00,0x00,0x28,0x98]
    776 
    777   ulw $8, 32765($8)
    778 # CHECK-BE: addiu $1, $8, 32765    # encoding: [0x25,0x01,0x7f,0xfd]
    779 # CHECK-BE: lwl $8, 0($1)          # encoding: [0x88,0x28,0x00,0x00]
    780 # CHECK-BE: lwr $8, 3($1)          # encoding: [0x98,0x28,0x00,0x03]
    781 # CHECK-LE: addiu $1, $8, 32765    # encoding: [0xfd,0x7f,0x01,0x25]
    782 # CHECK-LE: lwl $8, 3($1)          # encoding: [0x03,0x00,0x28,0x88]
    783 # CHECK-LE: lwr $8, 0($1)          # encoding: [0x00,0x00,0x28,0x98]
    784 
    785 ush_imm: # CHECK-LABEL: ush_imm
    786   ush $8, 0
    787   # CHECK-BE: sb        $8, 1($zero)            # encoding: [0xa0,0x08,0x00,0x01]
    788   # CHECK-BE: srl       $1, $8, 8               # encoding: [0x00,0x08,0x0a,0x02]
    789   # CHECK-BE: sb        $1, 0($zero)            # encoding: [0xa0,0x01,0x00,0x00]
    790   # CHECK-LE: sb        $8, 0($zero)            # encoding: [0x00,0x00,0x08,0xa0]
    791   # CHECK-LE: srl       $1, $8, 8               # encoding: [0x02,0x0a,0x08,0x00]
    792   # CHECK-LE: sb        $1, 1($zero)            # encoding: [0x01,0x00,0x01,0xa0]
    793 
    794   ush $8, 2
    795   # CHECK-BE: sb        $8, 3($zero)            # encoding: [0xa0,0x08,0x00,0x03]
    796   # CHECK-BE: srl       $1, $8, 8               # encoding: [0x00,0x08,0x0a,0x02]
    797   # CHECK-BE: sb        $1, 2($zero)            # encoding: [0xa0,0x01,0x00,0x02]
    798   # CHECK-LE: sb        $8, 2($zero)            # encoding: [0x02,0x00,0x08,0xa0]
    799   # CHECK-LE: srl       $1, $8, 8               # encoding: [0x02,0x0a,0x08,0x00]
    800   # CHECK-LE: sb        $1, 3($zero)            # encoding: [0x03,0x00,0x01,0xa0]
    801 
    802   # FIXME: Remove the identity moves (move $1, $1) coming from loadImmediate
    803   ush $8, 0x8000
    804   # CHECK-BE: ori       $1, $zero, 32768        # encoding: [0x34,0x01,0x80,0x00]
    805   # CHECK-BE: move      $1, $1                  # encoding: [0x00,0x20,0x08,0x21]
    806   # CHECK-BE: sb        $8, 1($1)               # encoding: [0xa0,0x28,0x00,0x01]
    807   # CHECK-BE: srl       $8, $8, 8               # encoding: [0x00,0x08,0x42,0x02]
    808   # CHECK-BE: sb        $8, 0($1)               # encoding: [0xa0,0x28,0x00,0x00]
    809   # CHECK-BE: lbu       $1, 0($1)               # encoding: [0x90,0x21,0x00,0x00]
    810   # CHECK-BE: sll       $8, $8, 8               # encoding: [0x00,0x08,0x42,0x00]
    811   # CHECK-BE: or        $8, $8, $1              # encoding: [0x01,0x01,0x40,0x25]
    812   # CHECK-LE: ori       $1, $zero, 32768        # encoding: [0x00,0x80,0x01,0x34]
    813   # CHECK-LE: move      $1, $1                  # encoding: [0x21,0x08,0x20,0x00]
    814   # CHECK-LE: sb        $8, 0($1)               # encoding: [0x00,0x00,0x28,0xa0]
    815   # CHECK-LE: srl       $8, $8, 8               # encoding: [0x02,0x42,0x08,0x00]
    816   # CHECK-LE: sb        $8, 1($1)               # encoding: [0x01,0x00,0x28,0xa0]
    817   # CHECK-LE: lbu       $1, 0($1)               # encoding: [0x00,0x00,0x21,0x90]
    818   # CHECK-LE: sll       $8, $8, 8               # encoding: [0x00,0x42,0x08,0x00]
    819   # CHECK-LE: or        $8, $8, $1              # encoding: [0x25,0x40,0x01,0x01]
    820 
    821   ush $8, -0x8000
    822   # CHECK-BE: sb        $8, -32767($zero)       # encoding: [0xa0,0x08,0x80,0x01]
    823   # CHECK-BE: srl       $1, $8, 8               # encoding: [0x00,0x08,0x0a,0x02]
    824   # CHECK-BE: sb        $1, -32768($zero)       # encoding: [0xa0,0x01,0x80,0x00]
    825   # CHECK-LE: sb        $8, -32768($zero)       # encoding: [0x00,0x80,0x08,0xa0]
    826   # CHECK-LE: srl       $1, $8, 8               # encoding: [0x02,0x0a,0x08,0x00]
    827   # CHECK-LE: sb        $1, -32767($zero)       # encoding: [0x01,0x80,0x01,0xa0]
    828 
    829   # FIXME: Remove the identity moves (move $1, $1) coming from loadImmediate
    830   ush $8, 0x10000
    831   # CHECK-BE: lui       $1, 1                   # encoding: [0x3c,0x01,0x00,0x01]
    832   # CHECK-BE: move      $1, $1                  # encoding: [0x00,0x20,0x08,0x21]
    833   # CHECK-BE: sb        $8, 1($1)               # encoding: [0xa0,0x28,0x00,0x01]
    834   # CHECK-BE: srl       $8, $8, 8               # encoding: [0x00,0x08,0x42,0x02]
    835   # CHECK-BE: sb        $8, 0($1)               # encoding: [0xa0,0x28,0x00,0x00]
    836   # CHECK-BE: lbu       $1, 0($1)               # encoding: [0x90,0x21,0x00,0x00]
    837   # CHECK-BE: sll       $8, $8, 8               # encoding: [0x00,0x08,0x42,0x00]
    838   # CHECK-BE: or        $8, $8, $1              # encoding: [0x01,0x01,0x40,0x25]
    839   # CHECK-LE: lui       $1, 1                   # encoding: [0x01,0x00,0x01,0x3c]
    840   # CHECK-LE: move      $1, $1                  # encoding: [0x21,0x08,0x20,0x00]
    841   # CHECK-LE: sb        $8, 0($1)               # encoding: [0x00,0x00,0x28,0xa0]
    842   # CHECK-LE: srl       $8, $8, 8               # encoding: [0x02,0x42,0x08,0x00]
    843   # CHECK-LE: sb        $8, 1($1)               # encoding: [0x01,0x00,0x28,0xa0]
    844   # CHECK-LE: lbu       $1, 0($1)               # encoding: [0x00,0x00,0x21,0x90]
    845   # CHECK-LE: sll       $8, $8, 8               # encoding: [0x00,0x42,0x08,0x00]
    846   # CHECK-LE: or        $8, $8, $1              # encoding: [0x25,0x40,0x01,0x01]
    847 
    848   # FIXME: Remove the identity moves (move $1, $1) coming from loadImmediate
    849   ush $8, 0x18888
    850   # CHECK-BE: lui       $1, 1                   # encoding: [0x3c,0x01,0x00,0x01]
    851   # CHECK-BE: ori       $1, $1, 34952           # encoding: [0x34,0x21,0x88,0x88]
    852   # CHECK-BE: move      $1, $1                  # encoding: [0x00,0x20,0x08,0x21]
    853   # CHECK-BE: sb        $8, 1($1)               # encoding: [0xa0,0x28,0x00,0x01]
    854   # CHECK-BE: srl       $8, $8, 8               # encoding: [0x00,0x08,0x42,0x02]
    855   # CHECK-BE: sb        $8, 0($1)               # encoding: [0xa0,0x28,0x00,0x00]
    856   # CHECK-BE: lbu       $1, 0($1)               # encoding: [0x90,0x21,0x00,0x00]
    857   # CHECK-BE: sll       $8, $8, 8               # encoding: [0x00,0x08,0x42,0x00]
    858   # CHECK-BE: or        $8, $8, $1              # encoding: [0x01,0x01,0x40,0x25]
    859   # CHECK-LE: lui       $1, 1                   # encoding: [0x01,0x00,0x01,0x3c]
    860   # CHECK-LE: ori       $1, $1, 34952           # encoding: [0x88,0x88,0x21,0x34]
    861   # CHECK-LE: move      $1, $1                  # encoding: [0x21,0x08,0x20,0x00]
    862   # CHECK-LE: sb        $8, 0($1)               # encoding: [0x00,0x00,0x28,0xa0]
    863   # CHECK-LE: srl       $8, $8, 8               # encoding: [0x02,0x42,0x08,0x00]
    864   # CHECK-LE: sb        $8, 1($1)               # encoding: [0x01,0x00,0x28,0xa0]
    865   # CHECK-LE: lbu       $1, 0($1)               # encoding: [0x00,0x00,0x21,0x90]
    866   # CHECK-LE: sll       $8, $8, 8               # encoding: [0x00,0x42,0x08,0x00]
    867   # CHECK-LE: or        $8, $8, $1              # encoding: [0x25,0x40,0x01,0x01]
    868 
    869   # FIXME: Remove the identity moves (move $1, $1) coming from loadImmediate
    870   ush $8, -32769
    871   # CHECK-BE: lui       $1, 65535               # encoding: [0x3c,0x01,0xff,0xff]
    872   # CHECK-BE: ori       $1, $1, 32767           # encoding: [0x34,0x21,0x7f,0xff]
    873   # CHECK-BE: move      $1, $1                  # encoding: [0x00,0x20,0x08,0x21]
    874   # CHECK-BE: sb        $8, 1($1)               # encoding: [0xa0,0x28,0x00,0x01]
    875   # CHECK-BE: srl       $8, $8, 8               # encoding: [0x00,0x08,0x42,0x02]
    876   # CHECK-BE: sb        $8, 0($1)               # encoding: [0xa0,0x28,0x00,0x00]
    877   # CHECK-BE: lbu       $1, 0($1)               # encoding: [0x90,0x21,0x00,0x00]
    878   # CHECK-BE: sll       $8, $8, 8               # encoding: [0x00,0x08,0x42,0x00]
    879   # CHECK-BE: or        $8, $8, $1              # encoding: [0x01,0x01,0x40,0x25]
    880   # CHECK-LE: lui       $1, 65535               # encoding: [0xff,0xff,0x01,0x3c]
    881   # CHECK-LE: ori       $1, $1, 32767           # encoding: [0xff,0x7f,0x21,0x34]
    882   # CHECK-LE: move      $1, $1                  # encoding: [0x21,0x08,0x20,0x00]
    883   # CHECK-LE: sb        $8, 0($1)               # encoding: [0x00,0x00,0x28,0xa0]
    884   # CHECK-LE: srl       $8, $8, 8               # encoding: [0x02,0x42,0x08,0x00]
    885   # CHECK-LE: sb        $8, 1($1)               # encoding: [0x01,0x00,0x28,0xa0]
    886   # CHECK-LE: lbu       $1, 0($1)               # encoding: [0x00,0x00,0x21,0x90]
    887   # CHECK-LE: sll       $8, $8, 8               # encoding: [0x00,0x42,0x08,0x00]
    888   # CHECK-LE: or        $8, $8, $1              # encoding: [0x25,0x40,0x01,0x01]
    889 
    890   ush $8, 32767
    891   # CHECK-BE: addiu     $1, $zero, 32767        # encoding: [0x24,0x01,0x7f,0xff]
    892   # CHECK-BE: sb        $8, 1($1)               # encoding: [0xa0,0x28,0x00,0x01]
    893   # CHECK-BE: srl       $8, $8, 8               # encoding: [0x00,0x08,0x42,0x02]
    894   # CHECK-BE: sb        $8, 0($1)               # encoding: [0xa0,0x28,0x00,0x00]
    895   # CHECK-BE: lbu       $1, 0($1)               # encoding: [0x90,0x21,0x00,0x00]
    896   # CHECK-BE: sll       $8, $8, 8               # encoding: [0x00,0x08,0x42,0x00]
    897   # CHECK-BE: or        $8, $8, $1              # encoding: [0x01,0x01,0x40,0x25]
    898   # CHECK-LE: addiu     $1, $zero, 32767        # encoding: [0xff,0x7f,0x01,0x24]
    899   # CHECK-LE: sb        $8, 0($1)               # encoding: [0x00,0x00,0x28,0xa0]
    900   # CHECK-LE: srl       $8, $8, 8               # encoding: [0x02,0x42,0x08,0x00]
    901   # CHECK-LE: sb        $8, 1($1)               # encoding: [0x01,0x00,0x28,0xa0]
    902   # CHECK-LE: lbu       $1, 0($1)               # encoding: [0x00,0x00,0x21,0x90]
    903   # CHECK-LE: sll       $8, $8, 8               # encoding: [0x00,0x42,0x08,0x00]
    904   # CHECK-LE: or        $8, $8, $1              # encoding: [0x25,0x40,0x01,0x01]
    905 
    906 ush_reg: # CHECK-LABEL: ush_reg
    907   ush $8, 0($9)
    908   # CHECK-BE: sb        $8, 1($9)               # encoding: [0xa1,0x28,0x00,0x01]
    909   # CHECK-BE: srl       $1, $8, 8               # encoding: [0x00,0x08,0x0a,0x02]
    910   # CHECK-BE: sb        $1, 0($9)               # encoding: [0xa1,0x21,0x00,0x00]
    911   # CHECK-LE: sb        $8, 0($9)               # encoding: [0x00,0x00,0x28,0xa1]
    912   # CHECK-LE: srl       $1, $8, 8               # encoding: [0x02,0x0a,0x08,0x00]
    913   # CHECK-LE: sb        $1, 1($9)               # encoding: [0x01,0x00,0x21,0xa1]
    914 
    915   ush $8, 2($9)
    916   # CHECK-BE: sb        $8, 3($9)               # encoding: [0xa1,0x28,0x00,0x03]
    917   # CHECK-BE: srl       $1, $8, 8               # encoding: [0x00,0x08,0x0a,0x02]
    918   # CHECK-BE: sb        $1, 2($9)               # encoding: [0xa1,0x21,0x00,0x02]
    919   # CHECK-LE: sb        $8, 2($9)               # encoding: [0x02,0x00,0x28,0xa1]
    920   # CHECK-LE: srl       $1, $8, 8               # encoding: [0x02,0x0a,0x08,0x00]
    921   # CHECK-LE: sb        $1, 3($9)               # encoding: [0x03,0x00,0x21,0xa1]
    922 
    923   ush $8, 0x8000($9)
    924   # CHECK-BE: ori       $1, $zero, 32768        # encoding: [0x34,0x01,0x80,0x00]
    925   # CHECK-BE: addu      $1, $1, $9              # encoding: [0x00,0x29,0x08,0x21]
    926   # CHECK-BE: sb        $8, 1($1)               # encoding: [0xa0,0x28,0x00,0x01]
    927   # CHECK-BE: srl       $8, $8, 8               # encoding: [0x00,0x08,0x42,0x02]
    928   # CHECK-BE: sb        $8, 0($1)               # encoding: [0xa0,0x28,0x00,0x00]
    929   # CHECK-BE: lbu       $1, 0($1)               # encoding: [0x90,0x21,0x00,0x00]
    930   # CHECK-BE: sll       $8, $8, 8               # encoding: [0x00,0x08,0x42,0x00]
    931   # CHECK-BE: or        $8, $8, $1              # encoding: [0x01,0x01,0x40,0x25]
    932   # CHECK-LE: ori       $1, $zero, 32768        # encoding: [0x00,0x80,0x01,0x34]
    933   # CHECK-LE: addu      $1, $1, $9              # encoding: [0x21,0x08,0x29,0x00]
    934   # CHECK-LE: sb        $8, 0($1)               # encoding: [0x00,0x00,0x28,0xa0]
    935   # CHECK-LE: srl       $8, $8, 8               # encoding: [0x02,0x42,0x08,0x00]
    936   # CHECK-LE: sb        $8, 1($1)               # encoding: [0x01,0x00,0x28,0xa0]
    937   # CHECK-LE: lbu       $1, 0($1)               # encoding: [0x00,0x00,0x21,0x90]
    938   # CHECK-LE: sll       $8, $8, 8               # encoding: [0x00,0x42,0x08,0x00]
    939   # CHECK-LE: or        $8, $8, $1              # encoding: [0x25,0x40,0x01,0x01]
    940 
    941   ush $8, -0x8000($9)
    942   # CHECK-BE: sb        $8, -32767($9)          # encoding: [0xa1,0x28,0x80,0x01]
    943   # CHECK-BE: srl       $1, $8, 8               # encoding: [0x00,0x08,0x0a,0x02]
    944   # CHECK-BE: sb        $1, -32768($9)          # encoding: [0xa1,0x21,0x80,0x00]
    945   # CHECK-LE: sb        $8, -32768($9)          # encoding: [0x00,0x80,0x28,0xa1]
    946   # CHECK-LE: srl       $1, $8, 8               # encoding: [0x02,0x0a,0x08,0x00]
    947   # CHECK-LE: sb        $1, -32767($9)          # encoding: [0x01,0x80,0x21,0xa1]
    948 
    949   ush $8, 0x10000($9)
    950   # CHECK-BE: lui       $1, 1                   # encoding: [0x3c,0x01,0x00,0x01]
    951   # CHECK-BE: addu      $1, $1, $9              # encoding: [0x00,0x29,0x08,0x21]
    952   # CHECK-BE: sb        $8, 1($1)               # encoding: [0xa0,0x28,0x00,0x01]
    953   # CHECK-BE: srl       $8, $8, 8               # encoding: [0x00,0x08,0x42,0x02]
    954   # CHECK-BE: sb        $8, 0($1)               # encoding: [0xa0,0x28,0x00,0x00]
    955   # CHECK-BE: lbu       $1, 0($1)               # encoding: [0x90,0x21,0x00,0x00]
    956   # CHECK-BE: sll       $8, $8, 8               # encoding: [0x00,0x08,0x42,0x00]
    957   # CHECK-BE: or        $8, $8, $1              # encoding: [0x01,0x01,0x40,0x25]
    958   # CHECK-LE: lui       $1, 1                   # encoding: [0x01,0x00,0x01,0x3c]
    959   # CHECK-LE: addu      $1, $1, $9              # encoding: [0x21,0x08,0x29,0x00]
    960   # CHECK-LE: sb        $8, 0($1)               # encoding: [0x00,0x00,0x28,0xa0]
    961   # CHECK-LE: srl       $8, $8, 8               # encoding: [0x02,0x42,0x08,0x00]
    962   # CHECK-LE: sb        $8, 1($1)               # encoding: [0x01,0x00,0x28,0xa0]
    963   # CHECK-LE: lbu       $1, 0($1)               # encoding: [0x00,0x00,0x21,0x90]
    964   # CHECK-LE: sll       $8, $8, 8               # encoding: [0x00,0x42,0x08,0x00]
    965   # CHECK-LE: or        $8, $8, $1              # encoding: [0x25,0x40,0x01,0x01]
    966 
    967   ush $8, 0x18888($9)
    968   # CHECK-BE: lui       $1, 1                   # encoding: [0x3c,0x01,0x00,0x01]
    969   # CHECK-BE: ori       $1, $1, 34952           # encoding: [0x34,0x21,0x88,0x88]
    970   # CHECK-BE: addu      $1, $1, $9              # encoding: [0x00,0x29,0x08,0x21]
    971   # CHECK-BE: sb        $8, 1($1)               # encoding: [0xa0,0x28,0x00,0x01]
    972   # CHECK-BE: srl       $8, $8, 8               # encoding: [0x00,0x08,0x42,0x02]
    973   # CHECK-BE: sb        $8, 0($1)               # encoding: [0xa0,0x28,0x00,0x00]
    974   # CHECK-BE: lbu       $1, 0($1)               # encoding: [0x90,0x21,0x00,0x00]
    975   # CHECK-BE: sll       $8, $8, 8               # encoding: [0x00,0x08,0x42,0x00]
    976   # CHECK-BE: or        $8, $8, $1              # encoding: [0x01,0x01,0x40,0x25]
    977   # CHECK-LE: lui       $1, 1                   # encoding: [0x01,0x00,0x01,0x3c]
    978   # CHECK-LE: ori       $1, $1, 34952           # encoding: [0x88,0x88,0x21,0x34]
    979   # CHECK-LE: addu      $1, $1, $9              # encoding: [0x21,0x08,0x29,0x00]
    980   # CHECK-LE: sb        $8, 0($1)               # encoding: [0x00,0x00,0x28,0xa0]
    981   # CHECK-LE: srl       $8, $8, 8               # encoding: [0x02,0x42,0x08,0x00]
    982   # CHECK-LE: sb        $8, 1($1)               # encoding: [0x01,0x00,0x28,0xa0]
    983   # CHECK-LE: lbu       $1, 0($1)               # encoding: [0x00,0x00,0x21,0x90]
    984   # CHECK-LE: sll       $8, $8, 8               # encoding: [0x00,0x42,0x08,0x00]
    985   # CHECK-LE: or        $8, $8, $1              # encoding: [0x25,0x40,0x01,0x01]
    986 
    987   ush $8, -32769($9)
    988   # CHECK-BE: lui       $1, 65535               # encoding: [0x3c,0x01,0xff,0xff]
    989   # CHECK-BE: ori       $1, $1, 32767           # encoding: [0x34,0x21,0x7f,0xff]
    990   # CHECK-BE: addu      $1, $1, $9              # encoding: [0x00,0x29,0x08,0x21]
    991   # CHECK-BE: sb        $8, 1($1)               # encoding: [0xa0,0x28,0x00,0x01]
    992   # CHECK-BE: srl       $8, $8, 8               # encoding: [0x00,0x08,0x42,0x02]
    993   # CHECK-BE: sb        $8, 0($1)               # encoding: [0xa0,0x28,0x00,0x00]
    994   # CHECK-BE: lbu       $1, 0($1)               # encoding: [0x90,0x21,0x00,0x00]
    995   # CHECK-BE: sll       $8, $8, 8               # encoding: [0x00,0x08,0x42,0x00]
    996   # CHECK-BE: or        $8, $8, $1              # encoding: [0x01,0x01,0x40,0x25]
    997   # CHECK-LE: lui       $1, 65535               # encoding: [0xff,0xff,0x01,0x3c]
    998   # CHECK-LE: ori       $1, $1, 32767           # encoding: [0xff,0x7f,0x21,0x34]
    999   # CHECK-LE: addu      $1, $1, $9              # encoding: [0x21,0x08,0x29,0x00]
   1000   # CHECK-LE: sb        $8, 0($1)               # encoding: [0x00,0x00,0x28,0xa0]
   1001   # CHECK-LE: srl       $8, $8, 8               # encoding: [0x02,0x42,0x08,0x00]
   1002   # CHECK-LE: sb        $8, 1($1)               # encoding: [0x01,0x00,0x28,0xa0]
   1003   # CHECK-LE: lbu       $1, 0($1)               # encoding: [0x00,0x00,0x21,0x90]
   1004   # CHECK-LE: sll       $8, $8, 8               # encoding: [0x00,0x42,0x08,0x00]
   1005   # CHECK-LE: or        $8, $8, $1              # encoding: [0x25,0x40,0x01,0x01]
   1006 
   1007   ush $8, 32767($9)
   1008   # CHECK-BE: addiu     $1, $9, 32767           # encoding: [0x25,0x21,0x7f,0xff]
   1009   # CHECK-BE: sb        $8, 1($1)               # encoding: [0xa0,0x28,0x00,0x01]
   1010   # CHECK-BE: srl       $8, $8, 8               # encoding: [0x00,0x08,0x42,0x02]
   1011   # CHECK-BE: sb        $8, 0($1)               # encoding: [0xa0,0x28,0x00,0x00]
   1012   # CHECK-BE: lbu       $1, 0($1)               # encoding: [0x90,0x21,0x00,0x00]
   1013   # CHECK-BE: sll       $8, $8, 8               # encoding: [0x00,0x08,0x42,0x00]
   1014   # CHECK-BE: or        $8, $8, $1              # encoding: [0x01,0x01,0x40,0x25]
   1015   # CHECK-LE: addiu     $1, $9, 32767           # encoding: [0xff,0x7f,0x21,0x25]
   1016   # CHECK-LE: sb        $8, 0($1)               # encoding: [0x00,0x00,0x28,0xa0]
   1017   # CHECK-LE: srl       $8, $8, 8               # encoding: [0x02,0x42,0x08,0x00]
   1018   # CHECK-LE: sb        $8, 1($1)               # encoding: [0x01,0x00,0x28,0xa0]
   1019   # CHECK-LE: lbu       $1, 0($1)               # encoding: [0x00,0x00,0x21,0x90]
   1020   # CHECK-LE: sll       $8, $8, 8               # encoding: [0x00,0x42,0x08,0x00]
   1021   # CHECK-LE: or        $8, $8, $1              # encoding: [0x25,0x40,0x01,0x01]
   1022 
   1023   ush $8, 0($8)
   1024   # CHECK-BE: sb        $8, 1($8)               # encoding: [0xa1,0x08,0x00,0x01]
   1025   # CHECK-BE: srl       $1, $8, 8               # encoding: [0x00,0x08,0x0a,0x02]
   1026   # CHECK-BE: sb        $1, 0($8)               # encoding: [0xa1,0x01,0x00,0x00]
   1027   # CHECK-LE: sb        $8, 0($8)               # encoding: [0x00,0x00,0x08,0xa1]
   1028   # CHECK-LE: srl       $1, $8, 8               # encoding: [0x02,0x0a,0x08,0x00]
   1029   # CHECK-LE: sb        $1, 1($8)               # encoding: [0x01,0x00,0x01,0xa1]
   1030 
   1031   ush $8, 2($8)
   1032   # CHECK-BE: sb        $8, 3($8)               # encoding: [0xa1,0x08,0x00,0x03]
   1033   # CHECK-BE: srl       $1, $8, 8               # encoding: [0x00,0x08,0x0a,0x02]
   1034   # CHECK-BE: sb        $1, 2($8)               # encoding: [0xa1,0x01,0x00,0x02]
   1035   # CHECK-LE: sb        $8, 2($8)               # encoding: [0x02,0x00,0x08,0xa1]
   1036   # CHECK-LE: srl       $1, $8, 8               # encoding: [0x02,0x0a,0x08,0x00]
   1037   # CHECK-LE: sb        $1, 3($8)               # encoding: [0x03,0x00,0x01,0xa1]
   1038 
   1039   ush $8, 0x8000($8)
   1040   # CHECK-BE: ori       $1, $zero, 32768        # encoding: [0x34,0x01,0x80,0x00]
   1041   # CHECK-BE: addu      $1, $1, $8              # encoding: [0x00,0x28,0x08,0x21]
   1042   # CHECK-BE: sb        $8, 1($1)               # encoding: [0xa0,0x28,0x00,0x01]
   1043   # CHECK-BE: srl       $8, $8, 8               # encoding: [0x00,0x08,0x42,0x02]
   1044   # CHECK-BE: sb        $8, 0($1)               # encoding: [0xa0,0x28,0x00,0x00]
   1045   # CHECK-BE: lbu       $1, 0($1)               # encoding: [0x90,0x21,0x00,0x00]
   1046   # CHECK-BE: sll       $8, $8, 8               # encoding: [0x00,0x08,0x42,0x00]
   1047   # CHECK-BE: or        $8, $8, $1              # encoding: [0x01,0x01,0x40,0x25]
   1048   # CHECK-LE: ori       $1, $zero, 32768        # encoding: [0x00,0x80,0x01,0x34]
   1049   # CHECK-LE: addu      $1, $1, $8              # encoding: [0x21,0x08,0x28,0x00]
   1050   # CHECK-LE: sb        $8, 0($1)               # encoding: [0x00,0x00,0x28,0xa0]
   1051   # CHECK-LE: srl       $8, $8, 8               # encoding: [0x02,0x42,0x08,0x00]
   1052   # CHECK-LE: sb        $8, 1($1)               # encoding: [0x01,0x00,0x28,0xa0]
   1053   # CHECK-LE: lbu       $1, 0($1)               # encoding: [0x00,0x00,0x21,0x90]
   1054   # CHECK-LE: sll       $8, $8, 8               # encoding: [0x00,0x42,0x08,0x00]
   1055   # CHECK-LE: or        $8, $8, $1              # encoding: [0x25,0x40,0x01,0x01]
   1056 
   1057   ush $8, -0x8000($8)
   1058   # CHECK-BE: sb        $8, -32767($8)          # encoding: [0xa1,0x08,0x80,0x01]
   1059   # CHECK-BE: srl       $1, $8, 8               # encoding: [0x00,0x08,0x0a,0x02]
   1060   # CHECK-BE: sb        $1, -32768($8)          # encoding: [0xa1,0x01,0x80,0x00]
   1061   # CHECK-LE: sb        $8, -32768($8)          # encoding: [0x00,0x80,0x08,0xa1]
   1062   # CHECK-LE: srl       $1, $8, 8               # encoding: [0x02,0x0a,0x08,0x00]
   1063   # CHECK-LE: sb        $1, -32767($8)          # encoding: [0x01,0x80,0x01,0xa1]
   1064 
   1065   ush $8, 0x10000($8)
   1066   # CHECK-BE: lui       $1, 1                   # encoding: [0x3c,0x01,0x00,0x01]
   1067   # CHECK-BE: addu      $1, $1, $8              # encoding: [0x00,0x28,0x08,0x21]
   1068   # CHECK-BE: sb        $8, 1($1)               # encoding: [0xa0,0x28,0x00,0x01]
   1069   # CHECK-BE: srl       $8, $8, 8               # encoding: [0x00,0x08,0x42,0x02]
   1070   # CHECK-BE: sb        $8, 0($1)               # encoding: [0xa0,0x28,0x00,0x00]
   1071   # CHECK-BE: lbu       $1, 0($1)               # encoding: [0x90,0x21,0x00,0x00]
   1072   # CHECK-BE: sll       $8, $8, 8               # encoding: [0x00,0x08,0x42,0x00]
   1073   # CHECK-BE: or        $8, $8, $1              # encoding: [0x01,0x01,0x40,0x25]
   1074   # CHECK-LE: lui       $1, 1                   # encoding: [0x01,0x00,0x01,0x3c]
   1075   # CHECK-LE: addu      $1, $1, $8              # encoding: [0x21,0x08,0x28,0x00]
   1076   # CHECK-LE: sb        $8, 0($1)               # encoding: [0x00,0x00,0x28,0xa0]
   1077   # CHECK-LE: srl       $8, $8, 8               # encoding: [0x02,0x42,0x08,0x00]
   1078   # CHECK-LE: sb        $8, 1($1)               # encoding: [0x01,0x00,0x28,0xa0]
   1079   # CHECK-LE: lbu       $1, 0($1)               # encoding: [0x00,0x00,0x21,0x90]
   1080   # CHECK-LE: sll       $8, $8, 8               # encoding: [0x00,0x42,0x08,0x00]
   1081   # CHECK-LE: or        $8, $8, $1              # encoding: [0x25,0x40,0x01,0x01]
   1082 
   1083   ush $8, 0x18888($8)
   1084   # CHECK-BE: lui       $1, 1                   # encoding: [0x3c,0x01,0x00,0x01]
   1085   # CHECK-BE: ori       $1, $1, 34952           # encoding: [0x34,0x21,0x88,0x88]
   1086   # CHECK-BE: addu      $1, $1, $8              # encoding: [0x00,0x28,0x08,0x21]
   1087   # CHECK-BE: sb        $8, 1($1)               # encoding: [0xa0,0x28,0x00,0x01]
   1088   # CHECK-BE: srl       $8, $8, 8               # encoding: [0x00,0x08,0x42,0x02]
   1089   # CHECK-BE: sb        $8, 0($1)               # encoding: [0xa0,0x28,0x00,0x00]
   1090   # CHECK-BE: lbu       $1, 0($1)               # encoding: [0x90,0x21,0x00,0x00]
   1091   # CHECK-BE: sll       $8, $8, 8               # encoding: [0x00,0x08,0x42,0x00]
   1092   # CHECK-BE: or        $8, $8, $1              # encoding: [0x01,0x01,0x40,0x25]
   1093   # CHECK-LE: lui       $1, 1                   # encoding: [0x01,0x00,0x01,0x3c]
   1094   # CHECK-LE: ori       $1, $1, 34952           # encoding: [0x88,0x88,0x21,0x34]
   1095   # CHECK-LE: addu      $1, $1, $8              # encoding: [0x21,0x08,0x28,0x00]
   1096   # CHECK-LE: sb        $8, 0($1)               # encoding: [0x00,0x00,0x28,0xa0]
   1097   # CHECK-LE: srl       $8, $8, 8               # encoding: [0x02,0x42,0x08,0x00]
   1098   # CHECK-LE: sb        $8, 1($1)               # encoding: [0x01,0x00,0x28,0xa0]
   1099   # CHECK-LE: lbu       $1, 0($1)               # encoding: [0x00,0x00,0x21,0x90]
   1100   # CHECK-LE: sll       $8, $8, 8               # encoding: [0x00,0x42,0x08,0x00]
   1101   # CHECK-LE: or        $8, $8, $1              # encoding: [0x25,0x40,0x01,0x01]
   1102 
   1103   ush $8, -32769($8)
   1104   # CHECK-BE: lui       $1, 65535               # encoding: [0x3c,0x01,0xff,0xff]
   1105   # CHECK-BE: ori       $1, $1, 32767           # encoding: [0x34,0x21,0x7f,0xff]
   1106   # CHECK-BE: addu      $1, $1, $8              # encoding: [0x00,0x28,0x08,0x21]
   1107   # CHECK-BE: sb        $8, 1($1)               # encoding: [0xa0,0x28,0x00,0x01]
   1108   # CHECK-BE: srl       $8, $8, 8               # encoding: [0x00,0x08,0x42,0x02]
   1109   # CHECK-BE: sb        $8, 0($1)               # encoding: [0xa0,0x28,0x00,0x00]
   1110   # CHECK-BE: lbu       $1, 0($1)               # encoding: [0x90,0x21,0x00,0x00]
   1111   # CHECK-BE: sll       $8, $8, 8               # encoding: [0x00,0x08,0x42,0x00]
   1112   # CHECK-BE: or        $8, $8, $1              # encoding: [0x01,0x01,0x40,0x25]
   1113   # CHECK-LE: lui       $1, 65535               # encoding: [0xff,0xff,0x01,0x3c]
   1114   # CHECK-LE: ori       $1, $1, 32767           # encoding: [0xff,0x7f,0x21,0x34]
   1115   # CHECK-LE: addu      $1, $1, $8              # encoding: [0x21,0x08,0x28,0x00]
   1116   # CHECK-LE: sb        $8, 0($1)               # encoding: [0x00,0x00,0x28,0xa0]
   1117   # CHECK-LE: srl       $8, $8, 8               # encoding: [0x02,0x42,0x08,0x00]
   1118   # CHECK-LE: sb        $8, 1($1)               # encoding: [0x01,0x00,0x28,0xa0]
   1119   # CHECK-LE: lbu       $1, 0($1)               # encoding: [0x00,0x00,0x21,0x90]
   1120   # CHECK-LE: sll       $8, $8, 8               # encoding: [0x00,0x42,0x08,0x00]
   1121   # CHECK-LE: or        $8, $8, $1              # encoding: [0x25,0x40,0x01,0x01]
   1122 
   1123   ush $8, 32767($8)
   1124   # CHECK-BE: addiu     $1, $8, 32767           # encoding: [0x25,0x01,0x7f,0xff]
   1125   # CHECK-BE: sb        $8, 1($1)               # encoding: [0xa0,0x28,0x00,0x01]
   1126   # CHECK-BE: srl       $8, $8, 8               # encoding: [0x00,0x08,0x42,0x02]
   1127   # CHECK-BE: sb        $8, 0($1)               # encoding: [0xa0,0x28,0x00,0x00]
   1128   # CHECK-BE: lbu       $1, 0($1)               # encoding: [0x90,0x21,0x00,0x00]
   1129   # CHECK-BE: sll       $8, $8, 8               # encoding: [0x00,0x08,0x42,0x00]
   1130   # CHECK-BE: or        $8, $8, $1              # encoding: [0x01,0x01,0x40,0x25]
   1131   # CHECK-LE: addiu     $1, $8, 32767           # encoding: [0xff,0x7f,0x01,0x25]
   1132   # CHECK-LE: sb        $8, 0($1)               # encoding: [0x00,0x00,0x28,0xa0]
   1133   # CHECK-LE: srl       $8, $8, 8               # encoding: [0x02,0x42,0x08,0x00]
   1134   # CHECK-LE: sb        $8, 1($1)               # encoding: [0x01,0x00,0x28,0xa0]
   1135   # CHECK-LE: lbu       $1, 0($1)               # encoding: [0x00,0x00,0x21,0x90]
   1136   # CHECK-LE: sll       $8, $8, 8               # encoding: [0x00,0x42,0x08,0x00]
   1137   # CHECK-LE: or        $8, $8, $1              # encoding: [0x25,0x40,0x01,0x01]
   1138 
   1139 usw_imm: # CHECK-LABEL: usw_imm:
   1140   usw $8, 0
   1141   # CHECK-BE:   swl     $8, 0($zero)            # encoding: [0xa8,0x08,0x00,0x00]
   1142   # CHECK-BE:   swr     $8, 3($zero)            # encoding: [0xb8,0x08,0x00,0x03]
   1143   # CHECK-LE:   swl     $8, 3($zero)            # encoding: [0x03,0x00,0x08,0xa8]
   1144   # CHECK-LE:   swr     $8, 0($zero)            # encoding: [0x00,0x00,0x08,0xb8]
   1145 
   1146   usw $8, 2
   1147   # CHECK-BE:   swl     $8, 2($zero)            # encoding: [0xa8,0x08,0x00,0x02]
   1148   # CHECK-BE:   swr     $8, 5($zero)            # encoding: [0xb8,0x08,0x00,0x05]
   1149   # CHECK-LE:   swl     $8, 5($zero)            # encoding: [0x05,0x00,0x08,0xa8]
   1150   # CHECK-LE:   swr     $8, 2($zero)            # encoding: [0x02,0x00,0x08,0xb8]
   1151 
   1152   # FIXME: Remove the identity moves (move $1, $1) coming from loadImmediate
   1153   usw $8, 0x8000
   1154   # CHECK-BE:   ori     $1, $zero, 32768        # encoding: [0x34,0x01,0x80,0x00]
   1155   # CHECK-BE:   move     $1, $1                 # encoding: [0x00,0x20,0x08,0x21]
   1156   # CHECK-BE:   swl     $8, 0($1)               # encoding: [0xa8,0x28,0x00,0x00]
   1157   # CHECK-BE:   swr     $8, 3($1)               # encoding: [0xb8,0x28,0x00,0x03]
   1158   # CHECK-LE:   ori     $1, $zero, 32768        # encoding: [0x00,0x80,0x01,0x34]
   1159   # CHECK-LE:   move     $1, $1                 # encoding: [0x21,0x08,0x20,0x00]
   1160   # CHECK-LE:   swl     $8, 3($1)               # encoding: [0x03,0x00,0x28,0xa8]
   1161   # CHECK-LE:   swr     $8, 0($1)               # encoding: [0x00,0x00,0x28,0xb8]
   1162 
   1163   usw $8, -0x8000
   1164   # CHECK-BE:   swl     $8, -32768($zero)       # encoding: [0xa8,0x08,0x80,0x00]
   1165   # CHECK-BE:   swr     $8, -32765($zero)       # encoding: [0xb8,0x08,0x80,0x03]
   1166   # CHECK-LE:   swl     $8, -32765($zero)       # encoding: [0x03,0x80,0x08,0xa8]
   1167   # CHECK-LE:   swr     $8, -32768($zero)       # encoding: [0x00,0x80,0x08,0xb8]
   1168 
   1169   # FIXME: Remove the identity moves (move $1, $1) coming from loadImmediate
   1170   usw $8, 0x10000
   1171   # CHECK-BE:   lui     $1, 1                   # encoding: [0x3c,0x01,0x00,0x01]
   1172   # CHECK-BE:   move    $1, $1                  # encoding: [0x00,0x20,0x08,0x21]
   1173   # CHECK-BE:   swl     $8, 0($1)               # encoding: [0xa8,0x28,0x00,0x00]
   1174   # CHECK-BE:   swr     $8, 3($1)               # encoding: [0xb8,0x28,0x00,0x03]
   1175   # CHECK-LE:   lui     $1, 1                   # encoding: [0x01,0x00,0x01,0x3c]
   1176   # CHECK-LE:   move    $1, $1                  # encoding: [0x21,0x08,0x20,0x00]
   1177   # CHECK-LE:   swl     $8, 3($1)               # encoding: [0x03,0x00,0x28,0xa8]
   1178   # CHECK-LE:   swr     $8, 0($1)               # encoding: [0x00,0x00,0x28,0xb8]
   1179 
   1180   # FIXME: Remove the identity moves (move $1, $1) coming from loadImmediate
   1181   usw $8, 0x18888
   1182   # CHECK-BE:   lui     $1, 1                   # encoding: [0x3c,0x01,0x00,0x01]
   1183   # CHECK-BE:   ori     $1, $1, 34952           # encoding: [0x34,0x21,0x88,0x88]
   1184   # CHECK-BE:   move    $1, $1                  # encoding: [0x00,0x20,0x08,0x21]
   1185   # CHECK-BE:   swl     $8, 0($1)               # encoding: [0xa8,0x28,0x00,0x00]
   1186   # CHECK-BE:   swr     $8, 3($1)               # encoding: [0xb8,0x28,0x00,0x03]
   1187   # CHECK-LE:   lui     $1, 1                   # encoding: [0x01,0x00,0x01,0x3c]
   1188   # CHECK-LE:   ori     $1, $1, 34952           # encoding: [0x88,0x88,0x21,0x34]
   1189   # CHECK-LE:   move    $1, $1                  # encoding: [0x21,0x08,0x20,0x00]
   1190   # CHECK-LE:   swl     $8, 3($1)               # encoding: [0x03,0x00,0x28,0xa8]
   1191   # CHECK-LE:   swr     $8, 0($1)               # encoding: [0x00,0x00,0x28,0xb8]
   1192 
   1193   # FIXME: Remove the identity moves (move $1, $1) coming from loadImmediate
   1194   usw $8, -32769
   1195   # CHECK-BE:   lui     $1, 65535               # encoding: [0x3c,0x01,0xff,0xff]
   1196   # CHECK-BE:   ori     $1, $1, 32767           # encoding: [0x34,0x21,0x7f,0xff]
   1197   # CHECK-BE:   move    $1, $1                  # encoding: [0x00,0x20,0x08,0x21]
   1198   # CHECK-BE:   swl     $8, 0($1)               # encoding: [0xa8,0x28,0x00,0x00]
   1199   # CHECK-BE:   swr     $8, 3($1)               # encoding: [0xb8,0x28,0x00,0x03]
   1200   # CHECK-LE:   lui     $1, 65535               # encoding: [0xff,0xff,0x01,0x3c]
   1201   # CHECK-LE:   ori     $1, $1, 32767           # encoding: [0xff,0x7f,0x21,0x34]
   1202   # CHECK-LE:   move    $1, $1                  # encoding: [0x21,0x08,0x20,0x00]
   1203   # CHECK-LE:   swl     $8, 3($1)               # encoding: [0x03,0x00,0x28,0xa8]
   1204   # CHECK-LE:   swr     $8, 0($1)               # encoding: [0x00,0x00,0x28,0xb8]
   1205 
   1206   usw $8, 32767
   1207   # CHECK-BE:   addiu   $1, $zero, 32767        # encoding: [0x24,0x01,0x7f,0xff]
   1208   # CHECK-BE:   swl     $8, 0($1)               # encoding: [0xa8,0x28,0x00,0x00]
   1209   # CHECK-BE:   swr     $8, 3($1)               # encoding: [0xb8,0x28,0x00,0x03]
   1210   # CHECK-LE:   addiu   $1, $zero, 32767        # encoding: [0xff,0x7f,0x01,0x24]
   1211   # CHECK-LE:   swl     $8, 3($1)               # encoding: [0x03,0x00,0x28,0xa8]
   1212   # CHECK-LE:   swr     $8, 0($1)               # encoding: [0x00,0x00,0x28,0xb8]
   1213 
   1214 usw_reg: # CHECK-LABEL: usw_reg:
   1215   usw $8, 0($9)
   1216   # CHECK-BE:   swl     $8, 0($9)               # encoding: [0xa9,0x28,0x00,0x00]
   1217   # CHECK-BE:   swr     $8, 3($9)               # encoding: [0xb9,0x28,0x00,0x03]
   1218   # CHECK-LE:   swl     $8, 3($9)               # encoding: [0x03,0x00,0x28,0xa9]
   1219   # CHECK-LE:   swr     $8, 0($9)               # encoding: [0x00,0x00,0x28,0xb9]
   1220 
   1221   usw $8, 2($9)
   1222   # CHECK-BE:   swl     $8, 2($9)               # encoding: [0xa9,0x28,0x00,0x02]
   1223   # CHECK-BE:   swr     $8, 5($9)               # encoding: [0xb9,0x28,0x00,0x05]
   1224   # CHECK-LE:   swl     $8, 5($9)               # encoding: [0x05,0x00,0x28,0xa9]
   1225   # CHECK-LE:   swr     $8, 2($9)               # encoding: [0x02,0x00,0x28,0xb9]
   1226 
   1227   usw $8, 0x8000($9)
   1228   # CHECK-BE:   ori     $1, $zero, 32768        # encoding: [0x34,0x01,0x80,0x00]
   1229   # CHECK-BE:   addu    $1, $1, $9              # encoding: [0x00,0x29,0x08,0x21]
   1230   # CHECK-BE:   swl     $8, 0($1)               # encoding: [0xa8,0x28,0x00,0x00]
   1231   # CHECK-BE:   swr     $8, 3($1)               # encoding: [0xb8,0x28,0x00,0x03]
   1232   # CHECK-LE:   ori     $1, $zero, 32768        # encoding: [0x00,0x80,0x01,0x34]
   1233   # CHECK-LE:   addu    $1, $1, $9              # encoding: [0x21,0x08,0x29,0x00]
   1234   # CHECK-LE:   swl     $8, 3($1)               # encoding: [0x03,0x00,0x28,0xa8]
   1235   # CHECK-LE:   swr     $8, 0($1)               # encoding: [0x00,0x00,0x28,0xb8]
   1236 
   1237   usw $8, -0x8000($9)
   1238   # CHECK-BE:   swl     $8, -32768($9)          # encoding: [0xa9,0x28,0x80,0x00]
   1239   # CHECK-BE:   swr     $8, -32765($9)          # encoding: [0xb9,0x28,0x80,0x03]
   1240   # CHECK-LE:   swl     $8, -32765($9)          # encoding: [0x03,0x80,0x28,0xa9]
   1241   # CHECK-LE:   swr     $8, -32768($9)          # encoding: [0x00,0x80,0x28,0xb9]
   1242 
   1243   usw $8, 0x10000($9)
   1244   # CHECK-BE:   lui     $1, 1                   # encoding: [0x3c,0x01,0x00,0x01]
   1245   # CHECK-BE:   addu    $1, $1, $9              # encoding: [0x00,0x29,0x08,0x21]
   1246   # CHECK-BE:   swl     $8, 0($1)               # encoding: [0xa8,0x28,0x00,0x00]
   1247   # CHECK-BE:   swr     $8, 3($1)               # encoding: [0xb8,0x28,0x00,0x03]
   1248   # CHECK-LE:   lui     $1, 1                   # encoding: [0x01,0x00,0x01,0x3c]
   1249   # CHECK-LE:   addu    $1, $1, $9              # encoding: [0x21,0x08,0x29,0x00]
   1250   # CHECK-LE:   swl     $8, 3($1)               # encoding: [0x03,0x00,0x28,0xa8]
   1251   # CHECK-LE:   swr     $8, 0($1)               # encoding: [0x00,0x00,0x28,0xb8]
   1252 
   1253   usw $8, 0x18888($9)
   1254   # CHECK-BE:   lui     $1, 1                   # encoding: [0x3c,0x01,0x00,0x01]
   1255   # CHECK-BE:   ori     $1, $1, 34952           # encoding: [0x34,0x21,0x88,0x88]
   1256   # CHECK-BE:   addu    $1, $1, $9              # encoding: [0x00,0x29,0x08,0x21]
   1257   # CHECK-BE:   swl     $8, 0($1)               # encoding: [0xa8,0x28,0x00,0x00]
   1258   # CHECK-BE:   swr     $8, 3($1)               # encoding: [0xb8,0x28,0x00,0x03]
   1259   # CHECK-LE:   lui     $1, 1                   # encoding: [0x01,0x00,0x01,0x3c]
   1260   # CHECK-LE:   ori     $1, $1, 34952           # encoding: [0x88,0x88,0x21,0x34]
   1261   # CHECK-LE:   addu    $1, $1, $9              # encoding: [0x21,0x08,0x29,0x00]
   1262   # CHECK-LE:   swl     $8, 3($1)               # encoding: [0x03,0x00,0x28,0xa8]
   1263   # CHECK-LE:   swr     $8, 0($1)               # encoding: [0x00,0x00,0x28,0xb8]
   1264 
   1265   usw $8, -32769($9)
   1266   # CHECK-BE:   lui     $1, 65535               # encoding: [0x3c,0x01,0xff,0xff]
   1267   # CHECK-BE:   ori     $1, $1, 32767           # encoding: [0x34,0x21,0x7f,0xff]
   1268   # CHECK-BE:   addu    $1, $1, $9              # encoding: [0x00,0x29,0x08,0x21]
   1269   # CHECK-BE:   swl     $8, 0($1)               # encoding: [0xa8,0x28,0x00,0x00]
   1270   # CHECK-BE:   swr     $8, 3($1)               # encoding: [0xb8,0x28,0x00,0x03]
   1271   # CHECK-LE:   lui     $1, 65535               # encoding: [0xff,0xff,0x01,0x3c]
   1272   # CHECK-LE:   ori     $1, $1, 32767           # encoding: [0xff,0x7f,0x21,0x34]
   1273   # CHECK-LE:   addu    $1, $1, $9              # encoding: [0x21,0x08,0x29,0x00]
   1274   # CHECK-LE:   swl     $8, 3($1)               # encoding: [0x03,0x00,0x28,0xa8]
   1275   # CHECK-LE:   swr     $8, 0($1)               # encoding: [0x00,0x00,0x28,0xb8]
   1276 
   1277   usw $8, 32767($9)
   1278   # CHECK-BE:   addiu   $1, $9, 32767           # encoding: [0x25,0x21,0x7f,0xff]
   1279   # CHECK-BE:   swl     $8, 0($1)               # encoding: [0xa8,0x28,0x00,0x00]
   1280   # CHECK-BE:   swr     $8, 3($1)               # encoding: [0xb8,0x28,0x00,0x03]
   1281   # CHECK-LE:   addiu   $1, $9, 32767           # encoding: [0xff,0x7f,0x21,0x25]
   1282   # CHECK-LE:   swl     $8, 3($1)               # encoding: [0x03,0x00,0x28,0xa8]
   1283   # CHECK-LE:   swr     $8, 0($1)               # encoding: [0x00,0x00,0x28,0xb8]
   1284 
   1285   usw $8, 0($8)
   1286   # CHECK-BE:   swl     $8, 0($8)               # encoding: [0xa9,0x08,0x00,0x00]
   1287   # CHECK-BE:   swr     $8, 3($8)               # encoding: [0xb9,0x08,0x00,0x03]
   1288   # CHECK-LE:   swl     $8, 3($8)               # encoding: [0x03,0x00,0x08,0xa9]
   1289   # CHECK-LE:   swr     $8, 0($8)               # encoding: [0x00,0x00,0x08,0xb9]
   1290 
   1291   usw $8, 2($8)
   1292   # CHECK-BE:   swl     $8, 2($8)               # encoding: [0xa9,0x08,0x00,0x02]
   1293   # CHECK-BE:   swr     $8, 5($8)               # encoding: [0xb9,0x08,0x00,0x05]
   1294   # CHECK-LE:   swl     $8, 5($8)               # encoding: [0x05,0x00,0x08,0xa9]
   1295   # CHECK-LE:   swr     $8, 2($8)               # encoding: [0x02,0x00,0x08,0xb9]
   1296 
   1297   usw $8, 0x8000($8)
   1298   # CHECK-BE:   ori     $1, $zero, 32768        # encoding: [0x34,0x01,0x80,0x00]
   1299   # CHECK-BE:   addu    $1, $1, $8              # encoding: [0x00,0x28,0x08,0x21]
   1300   # CHECK-BE:   swl     $8, 0($1)               # encoding: [0xa8,0x28,0x00,0x00]
   1301   # CHECK-BE:   swr     $8, 3($1)               # encoding: [0xb8,0x28,0x00,0x03]
   1302   # CHECK-LE:   ori     $1, $zero, 32768        # encoding: [0x00,0x80,0x01,0x34]
   1303   # CHECK-LE:   addu    $1, $1, $8              # encoding: [0x21,0x08,0x28,0x00]
   1304   # CHECK-LE:   swl     $8, 3($1)               # encoding: [0x03,0x00,0x28,0xa8]
   1305   # CHECK-LE:   swr     $8, 0($1)               # encoding: [0x00,0x00,0x28,0xb8]
   1306 
   1307   usw $8, -0x8000($8)
   1308   # CHECK-BE:   swl     $8, -32768($8)          # encoding: [0xa9,0x08,0x80,0x00]
   1309   # CHECK-BE:   swr     $8, -32765($8)          # encoding: [0xb9,0x08,0x80,0x03]
   1310   # CHECK-LE:   swl     $8, -32765($8)          # encoding: [0x03,0x80,0x08,0xa9]
   1311   # CHECK-LE:   swr     $8, -32768($8)          # encoding: [0x00,0x80,0x08,0xb9]
   1312 
   1313   usw $8, 0x10000($8)
   1314   # CHECK-BE:   lui     $1, 1                   # encoding: [0x3c,0x01,0x00,0x01]
   1315   # CHECK-BE:   addu    $1, $1, $8              # encoding: [0x00,0x28,0x08,0x21]
   1316   # CHECK-BE:   swl     $8, 0($1)               # encoding: [0xa8,0x28,0x00,0x00]
   1317   # CHECK-BE:   swr     $8, 3($1)               # encoding: [0xb8,0x28,0x00,0x03]
   1318   # CHECK-LE:   lui     $1, 1                   # encoding: [0x01,0x00,0x01,0x3c]
   1319   # CHECK-LE:   addu    $1, $1, $8              # encoding: [0x21,0x08,0x28,0x00]
   1320   # CHECK-LE:   swl     $8, 3($1)               # encoding: [0x03,0x00,0x28,0xa8]
   1321   # CHECK-LE:   swr     $8, 0($1)               # encoding: [0x00,0x00,0x28,0xb8]
   1322 
   1323   usw $8, 0x18888($8)
   1324   # CHECK-BE:   lui     $1, 1                   # encoding: [0x3c,0x01,0x00,0x01]
   1325   # CHECK-BE:   ori     $1, $1, 34952           # encoding: [0x34,0x21,0x88,0x88]
   1326   # CHECK-BE:   addu    $1, $1, $8              # encoding: [0x00,0x28,0x08,0x21]
   1327   # CHECK-BE:   swl     $8, 0($1)               # encoding: [0xa8,0x28,0x00,0x00]
   1328   # CHECK-BE:   swr     $8, 3($1)               # encoding: [0xb8,0x28,0x00,0x03]
   1329   # CHECK-LE:   lui     $1, 1                   # encoding: [0x01,0x00,0x01,0x3c]
   1330   # CHECK-LE:   ori     $1, $1, 34952           # encoding: [0x88,0x88,0x21,0x34]
   1331   # CHECK-LE:   addu    $1, $1, $8              # encoding: [0x21,0x08,0x28,0x00]
   1332   # CHECK-LE:   swl     $8, 3($1)               # encoding: [0x03,0x00,0x28,0xa8]
   1333   # CHECK-LE:   swr     $8, 0($1)               # encoding: [0x00,0x00,0x28,0xb8]
   1334 
   1335   usw $8, -32769($8)
   1336   # CHECK-BE:   lui     $1, 65535               # encoding: [0x3c,0x01,0xff,0xff]
   1337   # CHECK-BE:   ori     $1, $1, 32767           # encoding: [0x34,0x21,0x7f,0xff]
   1338   # CHECK-BE:   addu    $1, $1, $8              # encoding: [0x00,0x28,0x08,0x21]
   1339   # CHECK-BE:   swl     $8, 0($1)               # encoding: [0xa8,0x28,0x00,0x00]
   1340   # CHECK-BE:   swr     $8, 3($1)               # encoding: [0xb8,0x28,0x00,0x03]
   1341   # CHECK-LE:   lui     $1, 65535               # encoding: [0xff,0xff,0x01,0x3c]
   1342   # CHECK-LE:   ori     $1, $1, 32767           # encoding: [0xff,0x7f,0x21,0x34]
   1343   # CHECK-LE:   addu    $1, $1, $8              # encoding: [0x21,0x08,0x28,0x00]
   1344   # CHECK-LE:   swl     $8, 3($1)               # encoding: [0x03,0x00,0x28,0xa8]
   1345   # CHECK-LE:   swr     $8, 0($1)               # encoding: [0x00,0x00,0x28,0xb8]
   1346 
   1347   usw $8, 32767($8)
   1348   # CHECK-BE:   addiu   $1, $8, 32767           # encoding: [0x25,0x01,0x7f,0xff]
   1349   # CHECK-BE:   swl     $8, 0($1)               # encoding: [0xa8,0x28,0x00,0x00]
   1350   # CHECK-BE:   swr     $8, 3($1)               # encoding: [0xb8,0x28,0x00,0x03]
   1351   # CHECK-LE:   addiu   $1, $8, 32767           # encoding: [0xff,0x7f,0x01,0x25]
   1352   # CHECK-LE:   swl     $8, 3($1)               # encoding: [0x03,0x00,0x28,0xa8]
   1353   # CHECK-LE:   swr     $8, 0($1)               # encoding: [0x00,0x00,0x28,0xb8]
   1354 
   1355 1:
   1356   add $4, $4, $4
   1357