Home | History | Annotate | Download | only in llvm2ice_tests
      1 ; This file checks support for comparing vector values with the icmp
      2 ; instruction.
      3 
      4 ; RUN: %p2i -i %s --filetype=obj --disassemble --args -O2 | FileCheck %s
      5 ; RUN: %p2i -i %s --filetype=obj --disassemble --args -Om1 | FileCheck %s
      6 
      7 ; RUN: %if --need=target_MIPS32 --need=allow_dump \
      8 ; RUN:   --command %p2i --filetype=asm --assemble --disassemble --target mips32\
      9 ; RUN:   -i %s --args -O2 \
     10 ; RUN:   | %if --need=target_MIPS32 --need=allow_dump \
     11 ; RUN:   --command FileCheck --check-prefix MIPS32 %s
     12 
     13 ; Check that sext elimination occurs when the result of the comparison
     14 ; instruction is already sign extended.  Sign extension to 4 x i32 uses
     15 ; the pslld instruction on x86.
     16 define internal <4 x i32> @test_sext_elimination(<4 x i32> %a, <4 x i32> %b) {
     17 entry:
     18   %res.trunc = icmp eq <4 x i32> %a, %b
     19   %res = sext <4 x i1> %res.trunc to <4 x i32>
     20   ret <4 x i32> %res
     21 ; CHECK-LABEL: test_sext_elimination
     22 ; CHECK: pcmpeqd
     23 ; CHECK-NOT: pslld
     24 
     25 ; MIPS32-LABEL: test_sext_elimination
     26 ; MIPS32: lw [[T0:.*]],
     27 ; MIPS32: lw [[T1:.*]],
     28 ; MIPS32: lw [[T2:.*]],
     29 ; MIPS32: lw [[T3:.*]],
     30 ; MIPS32: xor [[T4:.*]],a0,[[T0]]
     31 ; MIPS32: sltiu [[T4]],[[T4]],1
     32 ; MIPS32: xor [[T5:.*]],a1,[[T1]]
     33 ; MIPS32: sltiu [[T5]],[[T5]],1
     34 ; MIPS32: xor [[T6:.*]],a2,[[T2]]
     35 ; MIPS32: sltiu [[T6]],[[T6]],1
     36 ; MIPS32: xor [[T7:.*]],a3,[[T3]]
     37 ; MIPS32: sltiu [[T7]],[[T7]],1
     38 ; MIPS32: andi [[T4]],[[T4]],0x1
     39 ; MIPS32: sll [[T4]],[[T4]],0x1f
     40 ; MIPS32: sra [[T4]],[[T4]],0x1f
     41 ; MIPS32: andi [[T5]],[[T5]],0x1
     42 ; MIPS32: sll [[T5]],[[T5]],0x1f
     43 ; MIPS32: sra [[T5]],[[T5]],0x1f
     44 ; MIPS32: andi [[T6]],[[T6]],0x1
     45 ; MIPS32: sll [[T6]],[[T6]],0x1f
     46 ; MIPS32: sra [[T6]],[[T6]],0x1f
     47 ; MIPS32: andi [[T7]],[[T7]],0x1
     48 ; MIPS32: sll [[T7]],[[T7]],0x1f
     49 ; MIPS32: sra [[T7]],[[T7]],0x1f
     50 ; MIPS32: move v0,[[T4]]
     51 ; MIPS32: move v1,[[T5]]
     52 ; MIPS32: move a0,[[T6]]
     53 ; MIPS32: move a1,[[T7]]
     54 }
     55 
     56 define internal <4 x i1> @test_icmp_v4i32_eq(<4 x i32> %a, <4 x i32> %b) {
     57 entry:
     58   %res = icmp eq <4 x i32> %a, %b
     59   ret <4 x i1> %res
     60 ; CHECK-LABEL: test_icmp_v4i32_eq
     61 ; CHECK: pcmpeqd
     62 
     63 ; MIPS32-LABEL: test_icmp_v4i32_eq
     64 ; MIPS32: lw [[T0:.*]],
     65 ; MIPS32: lw [[T1:.*]],
     66 ; MIPS32: lw [[T2:.*]],
     67 ; MIPS32: lw [[T3:.*]],
     68 ; MIPS32: xor [[T4:.*]],a0,[[T0]]
     69 ; MIPS32: sltiu [[T4]],[[T4]],1
     70 ; MIPS32: xor [[T5:.*]],a1,[[T1]]
     71 ; MIPS32: sltiu [[T5]],[[T5]],1
     72 ; MIPS32: xor [[T6:.*]],a2,[[T2]]
     73 ; MIPS32: sltiu [[T6]],[[T6]],1
     74 ; MIPS32: xor [[T7:.*]],a3,[[T3]]
     75 ; MIPS32: sltiu [[T7]],[[T7]],1
     76 ; MIPS32: move v0,[[T4]]
     77 ; MIPS32: move v1,[[T5]]
     78 ; MIPS32: move a0,[[T6]]
     79 ; MIPS32: move a1,[[T7]]
     80 }
     81 
     82 define internal <4 x i1> @test_icmp_v4i32_ne(<4 x i32> %a, <4 x i32> %b) {
     83 entry:
     84   %res = icmp ne <4 x i32> %a, %b
     85   ret <4 x i1> %res
     86 ; CHECK-LABEL: test_icmp_v4i32_ne
     87 ; CHECK: pcmpeqd
     88 ; CHECK: pxor
     89 
     90 ; MIPS32-LABEL: test_icmp_v4i32_ne
     91 ; MIPS32: lw [[T0:.*]],
     92 ; MIPS32: lw [[T1:.*]],
     93 ; MIPS32: lw [[T2:.*]],
     94 ; MIPS32: lw [[T3:.*]],
     95 ; MIPS32: xor [[T4:.*]],a0,[[T0]]
     96 ; MIPS32: sltu [[T4]],zero,[[T4]]
     97 ; MIPS32: xor [[T5:.*]],a1,[[T1]]
     98 ; MIPS32: sltu [[T5]],zero,[[T5]]
     99 ; MIPS32: xor [[T6:.*]],a2,[[T2]]
    100 ; MIPS32: sltu [[T6]],zero,[[T6]]
    101 ; MIPS32: xor [[T7:.*]],a3,[[T3]]
    102 ; MIPS32: sltu [[T7]],zero,[[T7]]
    103 ; MIPS32: move v0,[[T4]]
    104 ; MIPS32: move v1,[[T5]]
    105 ; MIPS32: move a0,[[T6]]
    106 ; MIPS32: move a1,[[T7]]
    107 }
    108 
    109 define internal <4 x i1> @test_icmp_v4i32_sgt(<4 x i32> %a, <4 x i32> %b) {
    110 entry:
    111   %res = icmp sgt <4 x i32> %a, %b
    112   ret <4 x i1> %res
    113 ; CHECK: pcmpgtd
    114 
    115 ; MIPS32-LABEL: test_icmp_v4i32_sgt
    116 ; MIPS32: lw [[T0:.*]],
    117 ; MIPS32: lw [[T1:.*]],
    118 ; MIPS32: lw [[T2:.*]],
    119 ; MIPS32: lw [[T3:.*]],
    120 ; MIPS32: slt v0,[[T0]],[[T4:.*]]
    121 ; MIPS32: slt v1,[[T1]],[[T5:.*]]
    122 ; MIPS32: slt [[T2]],[[T2]],[[T6:.*]]
    123 ; MIPS32: slt [[T3]],[[T3]],[[T7:.*]]
    124 ; MIPS32: move a0,[[T2]]
    125 ; MIPS32: move a1,[[T3]]
    126 }
    127 
    128 define internal <4 x i1> @test_icmp_v4i32_sle(<4 x i32> %a, <4 x i32> %b) {
    129 entry:
    130   %res = icmp sle <4 x i32> %a, %b
    131   ret <4 x i1> %res
    132 ; CHECK-LABEL: test_icmp_v4i32_sle
    133 ; CHECK: pcmpgtd
    134 ; CHECK: pxor
    135 
    136 ; MIPS32-LABEL: test_icmp_v4i32_sle
    137 ; MIPS32: lw [[T0:.*]],
    138 ; MIPS32: lw [[T1:.*]],
    139 ; MIPS32: lw [[T2:.*]],
    140 ; MIPS32: lw [[T3:.*]],
    141 ; MIPS32: slt [[T0]],[[T0]],[[T4:.*]]
    142 ; MIPS32: xori v0,[[T0]],0x1
    143 ; MIPS32: slt [[T1]],[[T1]],[[T5:.*]]
    144 ; MIPS32: xori v1,[[T1]],0x1
    145 ; MIPS32: slt [[T2]],[[T2]],[[T6:.*]]
    146 ; MIPS32: xori [[T2]],[[T2]],0x1
    147 ; MIPS32: slt [[T3]],[[T3]],[[T7:.*]]
    148 ; MIPS32: xori [[T3]],[[T3]],0x1
    149 ; MIPS32: move a0,[[T2]]
    150 ; MIPS32: move a1,[[T3]]
    151 }
    152 
    153 define internal <4 x i1> @test_icmp_v4i32_slt(<4 x i32> %a, <4 x i32> %b) {
    154 entry:
    155   %res = icmp slt <4 x i32> %a, %b
    156   ret <4 x i1> %res
    157 ; CHECK-LABEL: test_icmp_v4i32_slt
    158 ; CHECK: pcmpgtd
    159 
    160 ; MIPS32-LABEL: test_icmp_v4i32_slt
    161 ; MIPS32: lw [[T0:.*]],
    162 ; MIPS32: lw [[T1:.*]],
    163 ; MIPS32: lw [[T2:.*]],
    164 ; MIPS32: lw [[T3:.*]],
    165 ; MIPS32: slt [[T4:.*]],a0,[[T0]]
    166 ; MIPS32: slt [[T5:.*]],a1,[[T1]]
    167 ; MIPS32: slt [[T6:.*]],a2,[[T2]]
    168 ; MIPS32: slt [[T7:.*]],a3,[[T3]]
    169 ; MIPS32: move v0,[[T4]]
    170 ; MIPS32: move v1,[[T5]]
    171 ; MIPS32: move a0,[[T6]]
    172 ; MIPS32: move a1,[[T7]]
    173 }
    174 
    175 define internal <4 x i1> @test_icmp_v4i32_uge(<4 x i32> %a, <4 x i32> %b) {
    176 entry:
    177   %res = icmp uge <4 x i32> %a, %b
    178   ret <4 x i1> %res
    179 ; CHECK-LABEL: test_icmp_v4i32_uge
    180 ; CHECK: pxor
    181 ; CHECK: pcmpgtd
    182 ; CHECK: pxor
    183 
    184 ; MIPS32-LABEL: test_icmp_v4i32_uge
    185 ; MIPS32: lw [[T0:.*]],
    186 ; MIPS32: lw [[T1:.*]],
    187 ; MIPS32: lw [[T2:.*]],
    188 ; MIPS32: lw [[T3:.*]],
    189 ; MIPS32: sltu [[T4:.*]],a0,[[T0]]
    190 ; MIPS32: xori [[T4]],[[T4]],0x1
    191 ; MIPS32: sltu [[T5:.*]],a1,[[T1]]
    192 ; MIPS32: xori [[T5]],[[T5]],0x1
    193 ; MIPS32: sltu [[T6:.*]],a2,[[T2]]
    194 ; MIPS32: xori [[T6]],[[T6]],0x1
    195 ; MIPS32: sltu [[T7:.*]],a3,[[T3]]
    196 ; MIPS32: xori [[T7]],[[T7]],0x1
    197 ; MIPS32: move v0,[[T4]]
    198 ; MIPS32: move v1,[[T5]]
    199 ; MIPS32: move a0,[[T6]]
    200 ; MIPS32: move a1,[[T7]]
    201 }
    202 
    203 define internal <4 x i1> @test_icmp_v4i32_ugt(<4 x i32> %a, <4 x i32> %b) {
    204 entry:
    205   %res = icmp ugt <4 x i32> %a, %b
    206   ret <4 x i1> %res
    207 ; CHECK-LABEL: test_icmp_v4i32_ugt
    208 ; CHECK: pxor
    209 ; CHECK: pcmpgtd
    210 
    211 ; MIPS32-LABEL: test_icmp_v4i32_ugt
    212 ; MIPS32: lw [[T0:.*]],
    213 ; MIPS32: lw [[T1:.*]],
    214 ; MIPS32: lw [[T2:.*]],
    215 ; MIPS32: lw [[T3:.*]],
    216 ; MIPS32: sltu v0,[[T0]],[[T4:.*]]
    217 ; MIPS32: sltu v1,[[T1]],[[T5:.*]]
    218 ; MIPS32: sltu [[T2]],[[T2]],[[T6:.*]]
    219 ; MIPS32: sltu [[T3]],[[T3]],[[T7:.*]]
    220 ; MIPS32: move a0,[[T2]]
    221 ; MIPS32: move a1,[[T3]]
    222 }
    223 
    224 define internal <4 x i1> @test_icmp_v4i32_ule(<4 x i32> %a, <4 x i32> %b) {
    225 entry:
    226   %res = icmp ule <4 x i32> %a, %b
    227   ret <4 x i1> %res
    228 ; CHECK-LABEL: test_icmp_v4i32_ule
    229 ; CHECK: pxor
    230 ; CHECK: pcmpgtd
    231 ; CHECK: pxor
    232 
    233 ; MIPS32-LABEL: test_icmp_v4i32_ule
    234 ; MIPS32: lw [[T0:.*]],
    235 ; MIPS32: lw [[T1:.*]],
    236 ; MIPS32: lw [[T2:.*]],
    237 ; MIPS32: lw [[T3:.*]],
    238 ; MIPS32: sltu [[T0]],[[T0]],[[T4:.*]]
    239 ; MIPS32: xori v0,[[T0]],0x1
    240 ; MIPS32: sltu [[T1]],[[T1]],[[T5:.*]]
    241 ; MIPS32: xori v1,[[T1]],0x1
    242 ; MIPS32: sltu [[T2]],[[T2]],[[T6:.*]]
    243 ; MIPS32: xori [[T2]],[[T2]],0x1
    244 ; MIPS32: sltu [[T3]],[[T3]],[[T7:.*]]
    245 ; MIPS32: xori [[T3]],[[T3]],0x1
    246 ; MIPS32: move a0,[[T2]]
    247 ; MIPS32: move a1,[[T3]]
    248 }
    249 
    250 define internal <4 x i1> @test_icmp_v4i32_ult(<4 x i32> %a, <4 x i32> %b) {
    251 entry:
    252   %res = icmp ult <4 x i32> %a, %b
    253   ret <4 x i1> %res
    254 ; CHECK-LABEL: test_icmp_v4i32_ult
    255 ; CHECK: pxor
    256 ; CHECK: pcmpgtd
    257 
    258 ; MIPS32-LABEL: test_icmp_v4i32_ult
    259 ; MIPS32: lw [[T0:.*]],
    260 ; MIPS32: lw [[T1:.*]],
    261 ; MIPS32: lw [[T2:.*]],
    262 ; MIPS32: lw [[T3:.*]],
    263 ; MIPS32: sltu [[T4:.*]],a0,[[T0]]
    264 ; MIPS32: sltu [[T5:.*]],a1,[[T1]]
    265 ; MIPS32: sltu [[T6:.*]],a2,[[T2]]
    266 ; MIPS32: sltu [[T7:.*]],a3,[[T3]]
    267 ; MIPS32: move v0,[[T4]]
    268 ; MIPS32: move v1,[[T5]]
    269 ; MIPS32: move a0,[[T6]]
    270 ; MIPS32: move a1,[[T7]]
    271 }
    272 
    273 define internal <4 x i1> @test_icmp_v4i1_eq(<4 x i1> %a, <4 x i1> %b) {
    274 entry:
    275   %res = icmp eq <4 x i1> %a, %b
    276   ret <4 x i1> %res
    277 ; CHECK-LABEL: test_icmp_v4i1_eq
    278 ; CHECK: pcmpeqd
    279 
    280 ; MIPS32-LABEL: test_icmp_v4i1_eq
    281 ; MIPS32: lw [[T0:.*]],
    282 ; MIPS32: lw [[T1:.*]],
    283 ; MIPS32: lw [[T2:.*]],
    284 ; MIPS32: lw [[T3:.*]],
    285 ; MIPS32: andi [[T4:.*]],a0,0x1
    286 ; MIPS32: andi [[T0]],[[T0]],0x1
    287 ; MIPS32: sll [[T4]],[[T4]],0x1f
    288 ; MIPS32: sll [[T0]],[[T0]],0x1f
    289 ; MIPS32: xor [[T4]],[[T4]],[[T0]]
    290 ; MIPS32: sltiu [[T4]],[[T4]],1
    291 ; MIPS32: andi [[T5:.*]],a1,0x1
    292 ; MIPS32: andi [[T1]],[[T1]],0x1
    293 ; MIPS32: sll [[T5]],[[T5]],0x1f
    294 ; MIPS32: sll [[T1]],[[T1]],0x1f
    295 ; MIPS32: xor [[T5]],[[T5]],[[T1]]
    296 ; MIPS32: sltiu [[T5]],[[T5]],1
    297 ; MIPS32: andi [[T6:.*]],a2,0x1
    298 ; MIPS32: andi [[T2]],[[T2]],0x1
    299 ; MIPS32: sll [[T6]],[[T6]],0x1f
    300 ; MIPS32: sll [[T2]],[[T2]],0x1f
    301 ; MIPS32: xor [[T6]],[[T6]],[[T2]]
    302 ; MIPS32: sltiu [[T6]],[[T6]],1
    303 ; MIPS32: andi [[T7:.*]],a3,0x1
    304 ; MIPS32: andi [[T3]],[[T3]],0x1
    305 ; MIPS32: sll [[T7]],[[T7]],0x1f
    306 ; MIPS32: sll [[T3]],[[T3]],0x1f
    307 ; MIPS32: xor [[T7]],[[T7]],[[T3]]
    308 ; MIPS32: sltiu [[T7]],[[T7]],1
    309 ; MIPS32: move v0,[[T4]]
    310 ; MIPS32: move v1,[[T5]]
    311 ; MIPS32: move a0,[[T6]]
    312 ; MIPS32: move a1,[[T7]]
    313 }
    314 
    315 define internal <4 x i1> @test_icmp_v4i1_ne(<4 x i1> %a, <4 x i1> %b) {
    316 entry:
    317   %res = icmp ne <4 x i1> %a, %b
    318   ret <4 x i1> %res
    319 ; CHECK-LABEL: test_icmp_v4i1_ne
    320 ; CHECK: pcmpeqd
    321 ; CHECK: pxor
    322 
    323 ; MIPS32-LABEL: test_icmp_v4i1_ne
    324 ; MIPS32: lw [[T0:.*]],
    325 ; MIPS32: lw [[T1:.*]],
    326 ; MIPS32: lw [[T2:.*]],
    327 ; MIPS32: lw [[T3:.*]],
    328 ; MIPS32: andi [[T4:.*]],a0,0x1
    329 ; MIPS32: andi [[T0]],[[T0]],0x1
    330 ; MIPS32: sll [[T4]],[[T4]],0x1f
    331 ; MIPS32: sll [[T0]],[[T0]],0x1f
    332 ; MIPS32: xor [[T4]],[[T4]],[[T0]]
    333 ; MIPS32: sltu [[T4]],zero,[[T4]]
    334 ; MIPS32: andi [[T5:.*]],a1,0x1
    335 ; MIPS32: andi [[T1]],[[T1]],0x1
    336 ; MIPS32: sll [[T5]],[[T5]],0x1f
    337 ; MIPS32: sll [[T1]],[[T1]],0x1f
    338 ; MIPS32: xor [[T5]],[[T5]],[[T1]]
    339 ; MIPS32: sltu [[T5]],zero,[[T5]]
    340 ; MIPS32: andi [[T6:.*]],a2,0x1
    341 ; MIPS32: andi [[T2]],[[T2]],0x1
    342 ; MIPS32: sll [[T6]],[[T6]],0x1f
    343 ; MIPS32: sll [[T2]],[[T2]],0x1f
    344 ; MIPS32: xor [[T6]],[[T6]],[[T2]]
    345 ; MIPS32: sltu [[T6]],zero,[[T6]]
    346 ; MIPS32: andi [[T7:.*]],a3,0x1
    347 ; MIPS32: andi [[T3]],[[T3]],0x1
    348 ; MIPS32: sll [[T7]],[[T7]],0x1f
    349 ; MIPS32: sll [[T3]],[[T3]],0x1f
    350 ; MIPS32: xor [[T7]],[[T7]],[[T3]]
    351 ; MIPS32: sltu [[T7]],zero,[[T7]]
    352 ; MIPS32: move v0,[[T4]]
    353 ; MIPS32: move v1,[[T5]]
    354 ; MIPS32: move a0,[[T6]]
    355 ; MIPS32: move a1,[[T7]]
    356 }
    357 
    358 define internal <4 x i1> @test_icmp_v4i1_sgt(<4 x i1> %a, <4 x i1> %b) {
    359 entry:
    360   %res = icmp sgt <4 x i1> %a, %b
    361   ret <4 x i1> %res
    362 ; CHECK-LABEL: test_icmp_v4i1_sgt
    363 ; CHECK: pcmpgtd
    364 
    365 ; MIPS32-LABEL: test_icmp_v4i1_sgt
    366 ; MIPS32: lw [[T0:.*]],
    367 ; MIPS32: lw [[T1:.*]],
    368 ; MIPS32: lw [[T2:.*]],
    369 ; MIPS32: lw [[T3:.*]],
    370 ; MIPS32: andi [[T4:.*]],a0,0x1
    371 ; MIPS32: andi [[T0]],[[T0]],0x1
    372 ; MIPS32: sll [[T4]],[[T4]],0x1f
    373 ; MIPS32: sll [[T0]],[[T0]],0x1f
    374 ; MIPS32: slt v0,[[T0]],[[T4]]
    375 ; MIPS32: andi [[T5:.*]],a1,0x1
    376 ; MIPS32: andi [[T1]],[[T1]],0x1
    377 ; MIPS32: sll [[T5]],[[T5]],0x1f
    378 ; MIPS32: sll [[T1]],[[T1]],0x1f
    379 ; MIPS32: slt v1,[[T1]],[[T5]]
    380 ; MIPS32: andi [[T6:.*]],a2,0x1
    381 ; MIPS32: andi [[T2]],[[T2]],0x1
    382 ; MIPS32: sll [[T6]],[[T6]],0x1f
    383 ; MIPS32: sll [[T2]],[[T2]],0x1f
    384 ; MIPS32: slt [[T2]],[[T2]],[[T6]]
    385 ; MIPS32: andi [[T7:.*]],a3,0x1
    386 ; MIPS32: andi [[T3]],[[T3]],0x1
    387 ; MIPS32: sll [[T7]],[[T7]],0x1f
    388 ; MIPS32: sll [[T3]],[[T3]],0x1f
    389 ; MIPS32: slt [[T3]],[[T3]],[[T7]]
    390 ; MIPS32: move a0,[[T2]]
    391 ; MIPS32: move a1,[[T3]]
    392 }
    393 
    394 define internal <4 x i1> @test_icmp_v4i1_sle(<4 x i1> %a, <4 x i1> %b) {
    395 entry:
    396   %res = icmp sle <4 x i1> %a, %b
    397   ret <4 x i1> %res
    398 ; CHECK-LABEL: test_icmp_v4i1_sle
    399 ; CHECK: pcmpgtd
    400 ; CHECK: pxor
    401 
    402 ; MIPS32-LABEL: test_icmp_v4i1_sle
    403 ; MIPS32: lw [[T0:.*]],
    404 ; MIPS32: lw [[T1:.*]],
    405 ; MIPS32: lw [[T2:.*]],
    406 ; MIPS32: lw [[T3:.*]],
    407 ; MIPS32: andi [[T4:.*]],a0,0x1
    408 ; MIPS32: andi [[T0]],[[T0]],0x1
    409 ; MIPS32: sll [[T4]],[[T4]],0x1f
    410 ; MIPS32: sll [[T0]],[[T0]],0x1f
    411 ; MIPS32: slt [[T0]],[[T0]],[[T4]]
    412 ; MIPS32: xori v0,[[T0]],0x1
    413 ; MIPS32: andi [[T5:.*]],a1,0x1
    414 ; MIPS32: andi [[T1]],[[T1]],0x1
    415 ; MIPS32: sll [[T5]],[[T5]],0x1f
    416 ; MIPS32: sll [[T1]],[[T1]],0x1f
    417 ; MIPS32: slt [[T1]],[[T1]],[[T5]]
    418 ; MIPS32: xori v1,[[T1]],0x1
    419 ; MIPS32: andi [[T6:.*]],a2,0x1
    420 ; MIPS32: andi [[T2]],[[T2]],0x1
    421 ; MIPS32: sll [[T6]],[[T6]],0x1f
    422 ; MIPS32: sll [[T2]],[[T2]],0x1f
    423 ; MIPS32: slt [[T2]],[[T2]],[[T6]]
    424 ; MIPS32: xori [[T2]],[[T2]],0x1
    425 ; MIPS32: andi [[T7:.*]],a3,0x1
    426 ; MIPS32: andi [[T3]],[[T3]],0x1
    427 ; MIPS32: sll [[T7]],[[T7]],0x1f
    428 ; MIPS32: sll [[T3]],[[T3]],0x1f
    429 ; MIPS32: slt [[T3]],[[T3]],[[T7]]
    430 ; MIPS32: xori [[T3]],[[T3]],0x1
    431 ; MIPS32: move a0,[[T2]]
    432 ; MIPS32: move a1,[[T3]]
    433 }
    434 
    435 define internal <4 x i1> @test_icmp_v4i1_slt(<4 x i1> %a, <4 x i1> %b) {
    436 entry:
    437   %res = icmp slt <4 x i1> %a, %b
    438   ret <4 x i1> %res
    439 ; CHECK-LABEL: test_icmp_v4i1_slt
    440 ; CHECK: pcmpgtd
    441 
    442 ; MIPS32-LABEL: test_icmp_v4i1_slt
    443 ; MIPS32: lw [[T0:.*]],
    444 ; MIPS32: lw [[T1:.*]],
    445 ; MIPS32: lw [[T2:.*]],
    446 ; MIPS32: lw [[T3:.*]],
    447 ; MIPS32: andi [[T4:.*]],a0,0x1
    448 ; MIPS32: andi [[T0]],[[T0]],0x1
    449 ; MIPS32: sll [[T4]],[[T4]],0x1f
    450 ; MIPS32: sll [[T0]],[[T0]],0x1f
    451 ; MIPS32: slt [[T4]],[[T4]],[[T0]]
    452 ; MIPS32: andi [[T5:.*]],a1,0x1
    453 ; MIPS32: andi [[T1]],[[T1]],0x1
    454 ; MIPS32: sll [[T5]],[[T5]],0x1f
    455 ; MIPS32: sll [[T1]],[[T1]],0x1f
    456 ; MIPS32: slt [[T5]],[[T5]],[[T1]]
    457 ; MIPS32: andi [[T6:.*]],a2,0x1
    458 ; MIPS32: andi [[T2]],[[T2]],0x1
    459 ; MIPS32: sll [[T6]],[[T6]],0x1f
    460 ; MIPS32: sll [[T2]],[[T2]],0x1f
    461 ; MIPS32: slt [[T6]],[[T6]],[[T2]]
    462 ; MIPS32: andi [[T7:.*]],a3,0x1
    463 ; MIPS32: andi [[T3]],[[T3]],0x1
    464 ; MIPS32: sll [[T7]],[[T7]],0x1f
    465 ; MIPS32: sll [[T3]],[[T3]],0x1f
    466 ; MIPS32: slt [[T7]],[[T7]],[[T3]]
    467 ; MIPS32: move v0,[[T4]]
    468 ; MIPS32: move v1,[[T5]]
    469 ; MIPS32: move a0,[[T6]]
    470 ; MIPS32: move a1,[[T7]]
    471 }
    472 
    473 define internal <4 x i1> @test_icmp_v4i1_uge(<4 x i1> %a, <4 x i1> %b) {
    474 entry:
    475   %res = icmp uge <4 x i1> %a, %b
    476   ret <4 x i1> %res
    477 ; CHECK-LABEL: test_icmp_v4i1_uge
    478 ; CHECK: pxor
    479 ; CHECK: pcmpgtd
    480 ; CHECK: pxor
    481 
    482 ; MIPS32-LABEL: test_icmp_v4i1_uge
    483 ; MIPS32: lw [[T0:.*]],
    484 ; MIPS32: lw [[T1:.*]],
    485 ; MIPS32: lw [[T2:.*]],
    486 ; MIPS32: lw [[T3:.*]],
    487 ; MIPS32: andi [[T4:.*]],a0,0x1
    488 ; MIPS32: andi [[T0]],[[T0]],0x1
    489 ; MIPS32: sll [[T4]],[[T4]],0x1f
    490 ; MIPS32: sll [[T0]],[[T0]],0x1f
    491 ; MIPS32: sltu [[T4]],[[T4]],[[T0]]
    492 ; MIPS32: xori [[T4]],[[T4]],0x1
    493 ; MIPS32: andi [[T5:.*]],a1,0x1
    494 ; MIPS32: andi [[T1]],[[T1]],0x1
    495 ; MIPS32: sll [[T5]],[[T5]],0x1f
    496 ; MIPS32: sll [[T1]],[[T1]],0x1f
    497 ; MIPS32: sltu [[T5]],[[T5]],[[T1]]
    498 ; MIPS32: xori [[T5]],[[T5]],0x1
    499 ; MIPS32: andi [[T6:.*]],a2,0x1
    500 ; MIPS32: andi [[T2]],[[T2]],0x1
    501 ; MIPS32: sll [[T6]],[[T6]],0x1f
    502 ; MIPS32: sll [[T2]],[[T2]],0x1f
    503 ; MIPS32: sltu [[T6]],[[T6]],[[T2]]
    504 ; MIPS32: xori [[T6]],[[T6]],0x1
    505 ; MIPS32: andi [[T7:.*]],a3,0x1
    506 ; MIPS32: andi [[T3]],[[T3]],0x1
    507 ; MIPS32: sll [[T7]],[[T7]],0x1f
    508 ; MIPS32: sll [[T3]],[[T3]],0x1f
    509 ; MIPS32: sltu [[T7]],[[T7]],[[T3]]
    510 ; MIPS32: xori [[T7]],[[T7]],0x1
    511 ; MIPS32: move v0,[[T4]]
    512 ; MIPS32: move v1,[[T5]]
    513 ; MIPS32: move a0,[[T6]]
    514 ; MIPS32: move a1,[[T7]]
    515 }
    516 
    517 define internal <4 x i1> @test_icmp_v4i1_ugt(<4 x i1> %a, <4 x i1> %b) {
    518 entry:
    519   %res = icmp ugt <4 x i1> %a, %b
    520   ret <4 x i1> %res
    521 ; CHECK-LABEL: test_icmp_v4i1_ugt
    522 ; CHECK: pxor
    523 ; CHECK: pcmpgtd
    524 
    525 ; MIPS32-LABEL: test_icmp_v4i1_ugt
    526 ; MIPS32: lw [[T0:.*]],
    527 ; MIPS32: lw [[T1:.*]],
    528 ; MIPS32: lw [[T2:.*]],
    529 ; MIPS32: lw [[T3:.*]],
    530 ; MIPS32: andi [[T4:.*]],a0,0x1
    531 ; MIPS32: andi [[T0]],[[T0]],0x1
    532 ; MIPS32: sll [[T4]],[[T4]],0x1f
    533 ; MIPS32: sll [[T0]],[[T0]],0x1f
    534 ; MIPS32: sltu v0,[[T0]],[[T4]]
    535 ; MIPS32: andi [[T5:.*]],a1,0x1
    536 ; MIPS32: andi [[T1]],[[T1]],0x1
    537 ; MIPS32: sll [[T5]],[[T5]],0x1f
    538 ; MIPS32: sll [[T1]],[[T1]],0x1f
    539 ; MIPS32: sltu v1,[[T1]],[[T5]]
    540 ; MIPS32: andi [[T6:.*]],a2,0x1
    541 ; MIPS32: andi [[T2]],[[T2]],0x1
    542 ; MIPS32: sll [[T6]],[[T6]],0x1f
    543 ; MIPS32: sll [[T2]],[[T2]],0x1f
    544 ; MIPS32: sltu [[T2]],[[T2]],[[T6]]
    545 ; MIPS32: andi [[T7:.*]],a3,0x1
    546 ; MIPS32: andi [[T3]],[[T3]],0x1
    547 ; MIPS32: sll [[T7]],[[T7]],0x1f
    548 ; MIPS32: sll [[T3]],[[T3]],0x1f
    549 ; MIPS32: sltu [[T3]],[[T3]],[[T7]]
    550 ; MIPS32: move a0,[[T2]]
    551 ; MIPS32: move a1,[[T3]]
    552 }
    553 
    554 define internal <4 x i1> @test_icmp_v4i1_ule(<4 x i1> %a, <4 x i1> %b) {
    555 entry:
    556   %res = icmp ule <4 x i1> %a, %b
    557   ret <4 x i1> %res
    558 ; CHECK-LABEL: test_icmp_v4i1_ule
    559 ; CHECK: pxor
    560 ; CHECK: pcmpgtd
    561 ; CHECK: pxor
    562 
    563 ; MIPS32-LABEL: test_icmp_v4i1_ule
    564 ; MIPS32: lw [[T0:.*]],
    565 ; MIPS32: lw [[T1:.*]],
    566 ; MIPS32: lw [[T2:.*]],
    567 ; MIPS32: lw [[T3:.*]],
    568 ; MIPS32: andi [[T4:.*]],a0,0x1
    569 ; MIPS32: andi [[T0]],[[T0]],0x1
    570 ; MIPS32: sll [[T4]],[[T4]],0x1f
    571 ; MIPS32: sll [[T0]],[[T0]],0x1f
    572 ; MIPS32: sltu [[T0]],[[T0]],[[T4]]
    573 ; MIPS32: xori v0,[[T0]],0x1
    574 ; MIPS32: andi [[T5:.*]],a1,0x1
    575 ; MIPS32: andi [[T1]],[[T1]],0x1
    576 ; MIPS32: sll [[T5]],[[T5]],0x1f
    577 ; MIPS32: sll [[T1]],[[T1]],0x1f
    578 ; MIPS32: sltu [[T1]],[[T1]],[[T5]]
    579 ; MIPS32: xori v1,[[T1]],0x1
    580 ; MIPS32: andi [[T6:.*]],a2,0x1
    581 ; MIPS32: andi [[T2]],[[T2]],0x1
    582 ; MIPS32: sll [[T6]],[[T6]],0x1f
    583 ; MIPS32: sll [[T2]],[[T2]],0x1f
    584 ; MIPS32: sltu [[T2]],[[T2]],[[T6]]
    585 ; MIPS32: xori [[T2]],[[T2]],0x1
    586 ; MIPS32: andi [[T7:.*]],a3,0x1
    587 ; MIPS32: andi [[T3]],[[T3]],0x1
    588 ; MIPS32: sll [[T7]],[[T7]],0x1f
    589 ; MIPS32: sll [[T3]],[[T3]],0x1f
    590 ; MIPS32: sltu [[T3]],[[T3]],[[T7]]
    591 ; MIPS32: xori [[T3]],[[T3]],0x1
    592 ; MIPS32: move a0,[[T2]]
    593 ; MIPS32: move a1,[[T3]]
    594 }
    595 
    596 define internal <4 x i1> @test_icmp_v4i1_ult(<4 x i1> %a, <4 x i1> %b) {
    597 entry:
    598   %res = icmp ult <4 x i1> %a, %b
    599   ret <4 x i1> %res
    600 ; CHECK-LABEL: test_icmp_v4i1_ult
    601 ; CHECK: pxor
    602 ; CHECK: pcmpgtd
    603 
    604 ; MIPS32-LABEL: test_icmp_v4i1_ult
    605 ; MIPS32: lw [[T0:.*]],
    606 ; MIPS32: lw [[T1:.*]],
    607 ; MIPS32: lw [[T2:.*]],
    608 ; MIPS32: lw [[T3:.*]],
    609 ; MIPS32: andi [[T4:.*]],a0,0x1
    610 ; MIPS32: andi [[T0]],[[T0]],0x1
    611 ; MIPS32: sll [[T4]],[[T4]],0x1f
    612 ; MIPS32: sll [[T0]],[[T0]],0x1f
    613 ; MIPS32: sltu [[T4]],[[T4]],[[T0]]
    614 ; MIPS32: andi [[T5:.*]],a1,0x1
    615 ; MIPS32: andi [[T1]],[[T1]],0x1
    616 ; MIPS32: sll [[T5]],[[T5]],0x1f
    617 ; MIPS32: sll [[T1]],[[T1]],0x1f
    618 ; MIPS32: sltu [[T5]],[[T5]],[[T1]]
    619 ; MIPS32: andi [[T6:.*]],a2,0x1
    620 ; MIPS32: andi [[T2]],[[T2]],0x1
    621 ; MIPS32: sll [[T6]],[[T6]],0x1f
    622 ; MIPS32: sll [[T2]],[[T2]],0x1f
    623 ; MIPS32: sltu [[T6]],[[T6]],[[T2]]
    624 ; MIPS32: andi [[T7:.*]],a3,0x1
    625 ; MIPS32: andi [[T3]],[[T3]],0x1
    626 ; MIPS32: sll [[T7]],[[T7]],0x1f
    627 ; MIPS32: sll [[T3]],[[T3]],0x1f
    628 ; MIPS32: sltu [[T7]],[[T7]],[[T3]]
    629 ; MIPS32: move v0,[[T4]]
    630 ; MIPS32: move v1,[[T5]]
    631 ; MIPS32: move a0,[[T6]]
    632 ; MIPS32: move a1,[[T7]]
    633 }
    634 
    635 define internal <8 x i1> @test_icmp_v8i16_eq(<8 x i16> %a, <8 x i16> %b) {
    636 entry:
    637   %res = icmp eq <8 x i16> %a, %b
    638   ret <8 x i1> %res
    639 ; CHECK-LABEL: test_icmp_v8i16_eq
    640 ; CHECK: pcmpeqw
    641 
    642 ; MIPS32-LABEL: test_icmp_v8i16_eq
    643 ; MIPS32: lw [[T0:.*]],
    644 ; MIPS32: lw [[T1:.*]],
    645 ; MIPS32: lw [[T2:.*]],
    646 ; MIPS32: lw [[T3:.*]],
    647 ; MIPS32: move [[T4:.*]],zero
    648 ; MIPS32: move [[T5:.*]],zero
    649 ; MIPS32: move [[T6:.*]],zero
    650 ; MIPS32: move [[T7:.*]],zero
    651 ; MIPS32: move [[T8:.*]],a0
    652 ; MIPS32: andi [[T8]],[[T8]],0xffff
    653 ; MIPS32: move [[T9:.*]],[[T0]]
    654 ; MIPS32: andi [[T9]],[[T9]],0xffff
    655 ; MIPS32: sll [[T8]],[[T8]],0x10
    656 ; MIPS32: sll [[T9]],[[T9]],0x10
    657 ; MIPS32: xor [[T8]],[[T8]],[[T9]]
    658 ; MIPS32: sltiu [[T8]],[[T8]],1
    659 ; MIPS32: andi [[T8]],[[T8]],0xffff
    660 ; MIPS32: srl [[T4]],[[T4]],0x10
    661 ; MIPS32: sll [[T4]],[[T4]],0x10
    662 ; MIPS32: or [[T8]],[[T8]],[[T4]]
    663 ; MIPS32: srl [[T10:.*]],a0,0x10
    664 ; MIPS32: srl [[T0]],[[T0]],0x10
    665 ; MIPS32: sll [[T10]],[[T10]],0x10
    666 ; MIPS32: sll [[T0]],[[T0]],0x10
    667 ; MIPS32: xor [[T10]],[[T10]],[[T0]]
    668 ; MIPS32: sltiu [[T10]],[[T10]],1
    669 ; MIPS32: sll [[T10]],[[T10]],0x10
    670 ; MIPS32: sll [[T8]],[[T8]],0x10
    671 ; MIPS32: srl [[T8]],[[T8]],0x10
    672 ; MIPS32: or [[T10]],[[T10]],[[T8]]
    673 ; MIPS32: move [[T0]],a1
    674 ; MIPS32: andi [[T0]],[[T0]],0xffff
    675 ; MIPS32: move [[T4]],[[T1]]
    676 ; MIPS32: andi [[T4]],[[T4]],0xffff
    677 ; MIPS32: sll [[T0]],[[T0]],0x10
    678 ; MIPS32: sll [[T4]],[[T4]],0x10
    679 ; MIPS32: xor [[T0]],[[T0]],[[T4]]
    680 ; MIPS32: sltiu [[T0]],[[T0]],1
    681 ; MIPS32: andi [[T0]],[[T0]],0xffff
    682 ; MIPS32: srl [[T5]],[[T5]],0x10
    683 ; MIPS32: sll [[T5]],[[T5]],0x10
    684 ; MIPS32: or [[T0]],[[T0]],[[T5]]
    685 ; MIPS32: srl [[T11:.*]],a1,0x10
    686 ; MIPS32: srl [[T1]],[[T1]],0x10
    687 ; MIPS32: sll [[T11]],[[T11]],0x10
    688 ; MIPS32: sll [[T1]],[[T1]],0x10
    689 ; MIPS32: xor [[T11]],[[T11]],[[T1]]
    690 ; MIPS32: sltiu [[T11]],[[T11]],1
    691 ; MIPS32: sll [[T11]],[[T11]],0x10
    692 ; MIPS32: sll [[T0]],[[T0]],0x10
    693 ; MIPS32: srl [[T0]],[[T0]],0x10
    694 ; MIPS32: or [[T11]],[[T11]],[[T0]]
    695 ; MIPS32: move [[T0]],a2
    696 ; MIPS32: andi [[T0]],[[T0]],0xffff
    697 ; MIPS32: move [[T1]],[[T2]]
    698 ; MIPS32: andi [[T1]],[[T1]],0xffff
    699 ; MIPS32: sll [[T0]],[[T0]],0x10
    700 ; MIPS32: sll [[T1]],[[T1]],0x10
    701 ; MIPS32: xor [[T0]],[[T0]],[[T1]]
    702 ; MIPS32: sltiu [[T0]],[[T0]],1
    703 ; MIPS32: andi [[T0]],[[T0]],0xffff
    704 ; MIPS32: srl [[T6]],[[T6]],0x10
    705 ; MIPS32: sll [[T6]],[[T6]],0x10
    706 ; MIPS32: or [[T0]],[[T0]],[[T6]]
    707 ; MIPS32: srl [[T12:.*]],a2,0x10
    708 ; MIPS32: srl [[T2]],[[T2]],0x10
    709 ; MIPS32: sll [[T12]],[[T12]],0x10
    710 ; MIPS32: sll [[T2]],[[T2]],0x10
    711 ; MIPS32: xor [[T12]],[[T12]],[[T2]]
    712 ; MIPS32: sltiu [[T12]],[[T12]],1
    713 ; MIPS32: sll [[T12]],[[T12]],0x10
    714 ; MIPS32: sll [[T0]],[[T0]],0x10
    715 ; MIPS32: srl [[T0]],[[T0]],0x10
    716 ; MIPS32: or [[T12]],[[T12]],[[T0]]
    717 ; MIPS32: move [[T0]],a3
    718 ; MIPS32: andi [[T0]],[[T0]],0xffff
    719 ; MIPS32: move [[T1]],[[T3]]
    720 ; MIPS32: andi [[T1]],[[T1]],0xffff
    721 ; MIPS32: sll [[T0]],[[T0]],0x10
    722 ; MIPS32: sll [[T1]],[[T1]],0x10
    723 ; MIPS32: xor [[T0]],[[T0]],[[T1]]
    724 ; MIPS32: sltiu [[T0]],[[T0]],1
    725 ; MIPS32: andi [[T0]],[[T0]],0xffff
    726 ; MIPS32: srl [[T7]],[[T7]],0x10
    727 ; MIPS32: sll [[T7]],[[T7]],0x10
    728 ; MIPS32: or [[T0]],[[T0]],[[T7]]
    729 ; MIPS32: srl [[T13:.*]],a3,0x10
    730 ; MIPS32: srl [[T3]],[[T3]],0x10
    731 ; MIPS32: sll [[T13]],[[T13]],0x10
    732 ; MIPS32: sll [[T3]],[[T3]],0x10
    733 ; MIPS32: xor [[T13]],[[T13]],[[T3]]
    734 ; MIPS32: sltiu [[T13]],[[T13]],1
    735 ; MIPS32: sll [[T13]],[[T13]],0x10
    736 ; MIPS32: sll [[T0]],[[T0]],0x10
    737 ; MIPS32: srl [[T0]],[[T0]],0x10
    738 ; MIPS32: or [[T13]],[[T13]],[[T0]]
    739 ; MIPS32: move v0,[[T10]]
    740 ; MIPS32: move v1,[[T11]]
    741 ; MIPS32: move a0,[[T12]]
    742 ; MIPS32: move a1,[[T13]]
    743 }
    744 
    745 define internal <8 x i1> @test_icmp_v8i16_ne(<8 x i16> %a, <8 x i16> %b) {
    746 entry:
    747   %res = icmp ne <8 x i16> %a, %b
    748   ret <8 x i1> %res
    749 ; CHECK-LABEL: test_icmp_v8i16_ne
    750 ; CHECK: pcmpeqw
    751 ; CHECK: pxor
    752 
    753 ; MIPS32-LABEL: test_icmp_v8i16_ne
    754 ; MIPS32: lw [[T0:.*]],
    755 ; MIPS32: lw [[T1:.*]],
    756 ; MIPS32: lw [[T2:.*]],
    757 ; MIPS32: lw [[T3:.*]],
    758 ; MIPS32: move [[T4:.*]],zero
    759 ; MIPS32: move [[T5:.*]],zero
    760 ; MIPS32: move [[T6:.*]],zero
    761 ; MIPS32: move [[T7:.*]],zero
    762 ; MIPS32: move [[T8:.*]],a0
    763 ; MIPS32: andi [[T8]],[[T8]],0xffff
    764 ; MIPS32: move [[T9:.*]],[[T0]]
    765 ; MIPS32: andi [[T9]],[[T9]],0xffff
    766 ; MIPS32: sll [[T8]],[[T8]],0x10
    767 ; MIPS32: sll [[T9]],[[T9]],0x10
    768 ; MIPS32: xor [[T8]],[[T8]],[[T9]]
    769 ; MIPS32: sltu [[T8]],zero,[[T8]]
    770 ; MIPS32: andi [[T8]],[[T8]],0xffff
    771 ; MIPS32: srl [[T4]],[[T4]],0x10
    772 ; MIPS32: sll [[T4]],[[T4]],0x10
    773 ; MIPS32: or [[T8]],[[T8]],[[T4]]
    774 ; MIPS32: srl [[T10:.*]],a0,0x10
    775 ; MIPS32: srl [[T0]],[[T0]],0x10
    776 ; MIPS32: sll [[T10]],[[T10]],0x10
    777 ; MIPS32: sll [[T0]],[[T0]],0x10
    778 ; MIPS32: xor [[T10]],[[T10]],[[T0]]
    779 ; MIPS32: sltu [[T10]],zero,[[T10]]
    780 ; MIPS32: sll [[T10]],[[T10]],0x10
    781 ; MIPS32: sll [[T8]],[[T8]],0x10
    782 ; MIPS32: srl [[T8]],[[T8]],0x10
    783 ; MIPS32: or [[T10]],[[T10]],[[T8]]
    784 ; MIPS32: move [[T0]],a1
    785 ; MIPS32: andi [[T0]],[[T0]],0xffff
    786 ; MIPS32: move [[T4]],[[T1]]
    787 ; MIPS32: andi [[T4]],[[T4]],0xffff
    788 ; MIPS32: sll [[T0]],[[T0]],0x10
    789 ; MIPS32: sll [[T4]],[[T4]],0x10
    790 ; MIPS32: xor [[T0]],[[T0]],[[T4]]
    791 ; MIPS32: sltu [[T0]],zero,[[T0]]
    792 ; MIPS32: andi [[T0]],[[T0]],0xffff
    793 ; MIPS32: srl [[T5]],[[T5]],0x10
    794 ; MIPS32: sll [[T5]],[[T5]],0x10
    795 ; MIPS32: or [[T0]],[[T0]],[[T5]]
    796 ; MIPS32: srl [[T11:.*]],a1,0x10
    797 ; MIPS32: srl [[T1]],[[T1]],0x10
    798 ; MIPS32: sll [[T11]],[[T11]],0x10
    799 ; MIPS32: sll [[T1]],[[T1]],0x10
    800 ; MIPS32: xor [[T11]],[[T11]],[[T1]]
    801 ; MIPS32: sltu [[T11]],zero,[[T11]]
    802 ; MIPS32: sll [[T11]],[[T11]],0x10
    803 ; MIPS32: sll [[T0]],[[T0]],0x10
    804 ; MIPS32: srl [[T0]],[[T0]],0x10
    805 ; MIPS32: or [[T11]],[[T11]],[[T0]]
    806 ; MIPS32: move [[T0]],a2
    807 ; MIPS32: andi [[T0]],[[T0]],0xffff
    808 ; MIPS32: move [[T1]],[[T2]]
    809 ; MIPS32: andi [[T1]],[[T1]],0xffff
    810 ; MIPS32: sll [[T0]],[[T0]],0x10
    811 ; MIPS32: sll [[T1]],[[T1]],0x10
    812 ; MIPS32: xor [[T0]],[[T0]],[[T1]]
    813 ; MIPS32: sltu [[T0]],zero,[[T0]]
    814 ; MIPS32: andi [[T0]],[[T0]],0xffff
    815 ; MIPS32: srl [[T6]],[[T6]],0x10
    816 ; MIPS32: sll [[T6]],[[T6]],0x10
    817 ; MIPS32: or [[T0]],[[T0]],[[T6]]
    818 ; MIPS32: srl [[T12:.*]],a2,0x10
    819 ; MIPS32: srl [[T2]],[[T2]],0x10
    820 ; MIPS32: sll [[T12]],[[T12]],0x10
    821 ; MIPS32: sll [[T2]],[[T2]],0x10
    822 ; MIPS32: xor [[T12]],[[T12]],[[T2]]
    823 ; MIPS32: sltu [[T12]],zero,[[T12]]
    824 ; MIPS32: sll [[T12]],[[T12]],0x10
    825 ; MIPS32: sll [[T0]],[[T0]],0x10
    826 ; MIPS32: srl [[T0]],[[T0]],0x10
    827 ; MIPS32: or [[T12]],[[T12]],[[T0]]
    828 ; MIPS32: move [[T0]],a3
    829 ; MIPS32: andi [[T0]],[[T0]],0xffff
    830 ; MIPS32: move [[T1]],[[T3]]
    831 ; MIPS32: andi [[T1]],[[T1]],0xffff
    832 ; MIPS32: sll [[T0]],[[T0]],0x10
    833 ; MIPS32: sll [[T1]],[[T1]],0x10
    834 ; MIPS32: xor [[T0]],[[T0]],[[T1]]
    835 ; MIPS32: sltu [[T0]],zero,[[T0]]
    836 ; MIPS32: andi [[T0]],[[T0]],0xffff
    837 ; MIPS32: srl [[T7]],[[T7]],0x10
    838 ; MIPS32: sll [[T7]],[[T7]],0x10
    839 ; MIPS32: or [[T0]],[[T0]],[[T7]]
    840 ; MIPS32: srl [[T13:.*]],a3,0x10
    841 ; MIPS32: srl [[T3]],[[T3]],0x10
    842 ; MIPS32: sll [[T13]],[[T13]],0x10
    843 ; MIPS32: sll [[T3]],[[T3]],0x10
    844 ; MIPS32: xor [[T13]],[[T13]],[[T3]]
    845 ; MIPS32: sltu [[T13]],zero,[[T13]]
    846 ; MIPS32: sll [[T13]],[[T13]],0x10
    847 ; MIPS32: sll [[T0]],[[T0]],0x10
    848 ; MIPS32: srl [[T0]],[[T0]],0x10
    849 ; MIPS32: or [[T13]],[[T13]],[[T0]]
    850 ; MIPS32: move v0,[[T10]]
    851 ; MIPS32: move v1,[[T11]]
    852 ; MIPS32: move a0,[[T12]]
    853 ; MIPS32: move a1,[[T13]]
    854 }
    855 
    856 define internal <8 x i1> @test_icmp_v8i16_sgt(<8 x i16> %a, <8 x i16> %b) {
    857 entry:
    858   %res = icmp sgt <8 x i16> %a, %b
    859   ret <8 x i1> %res
    860 ; CHECK-LABEL: test_icmp_v8i16_sgt
    861 ; CHECK: pcmpgtw
    862 
    863 ; MIPS32-LABEL: test_icmp_v8i16_sgt
    864 ; MIPS32: lw [[T0:.*]],
    865 ; MIPS32: lw [[T1:.*]],
    866 ; MIPS32: lw [[T2:.*]],
    867 ; MIPS32: lw [[T3:.*]],
    868 ; MIPS32: move [[T4:.*]],zero
    869 ; MIPS32: move [[T5:.*]],zero
    870 ; MIPS32: move [[T6:.*]],zero
    871 ; MIPS32: move [[T7:.*]],zero
    872 ; MIPS32: move [[T8:.*]],a0
    873 ; MIPS32: andi [[T8]],[[T8]],0xffff
    874 ; MIPS32: move [[T9:.*]],[[T0]]
    875 ; MIPS32: andi [[T9]],[[T9]],0xffff
    876 ; MIPS32: sll [[T8]],[[T8]],0x10
    877 ; MIPS32: sll [[T9]],[[T9]],0x10
    878 ; MIPS32: slt [[T9]],[[T9]],[[T8]]
    879 ; MIPS32: andi [[T9]],[[T9]],0xffff
    880 ; MIPS32: srl [[T4]],[[T4]],0x10
    881 ; MIPS32: sll [[T4]],[[T4]],0x10
    882 ; MIPS32: or [[T9]],[[T9]],[[T4]]
    883 ; MIPS32: srl [[T10:.*]],a0,0x10
    884 ; MIPS32: srl [[T0]],[[T0]],0x10
    885 ; MIPS32: sll [[T10]],[[T10]],0x10
    886 ; MIPS32: sll [[T0]],[[T0]],0x10
    887 ; MIPS32: slt [[T0]],[[T0]],[[T10]]
    888 ; MIPS32: sll [[T0]],[[T0]],0x10
    889 ; MIPS32: sll [[T9]],[[T9]],0x10
    890 ; MIPS32: srl [[T9]],[[T9]],0x10
    891 ; MIPS32: or v0,[[T0]],[[T9]]
    892 ; MIPS32: move [[T10]],a1
    893 ; MIPS32: andi [[T10]],[[T10]],0xffff
    894 ; MIPS32: move [[T4]],[[T1]]
    895 ; MIPS32: andi [[T4]],[[T4]],0xffff
    896 ; MIPS32: sll [[T10]],[[T10]],0x10
    897 ; MIPS32: sll [[T4]],[[T4]],0x10
    898 ; MIPS32: slt [[T4]],[[T4]],[[T10]]
    899 ; MIPS32: andi [[T4]],[[T4]],0xffff
    900 ; MIPS32: srl [[T5]],[[T5]],0x10
    901 ; MIPS32: sll [[T5]],[[T5]],0x10
    902 ; MIPS32: or [[T4]],[[T4]],[[T5]]
    903 ; MIPS32: srl [[T11:.*]],a1,0x10
    904 ; MIPS32: srl [[T1]],[[T1]],0x10
    905 ; MIPS32: sll [[T11]],[[T11]],0x10
    906 ; MIPS32: sll [[T1]],[[T1]],0x10
    907 ; MIPS32: slt [[T1]],[[T1]],[[T11]]
    908 ; MIPS32: sll [[T1]],[[T1]],0x10
    909 ; MIPS32: sll [[T4]],[[T4]],0x10
    910 ; MIPS32: srl [[T4]],[[T4]],0x10
    911 ; MIPS32: or v1,[[T1]],[[T4]]
    912 ; MIPS32: move [[T10]],a2
    913 ; MIPS32: andi [[T10]],[[T10]],0xffff
    914 ; MIPS32: move [[T11]],[[T2]]
    915 ; MIPS32: andi [[T11]],[[T11]],0xffff
    916 ; MIPS32: sll [[T10]],[[T10]],0x10
    917 ; MIPS32: sll [[T11]],[[T11]],0x10
    918 ; MIPS32: slt [[T11]],[[T11]],[[T10]]
    919 ; MIPS32: andi [[T11]],[[T11]],0xffff
    920 ; MIPS32: srl [[T6]],[[T6]],0x10
    921 ; MIPS32: sll [[T6]],[[T6]],0x10
    922 ; MIPS32: or [[T11]],[[T11]],[[T6]]
    923 ; MIPS32: srl [[T12:.*]],a2,0x10
    924 ; MIPS32: srl [[T2]],[[T2]],0x10
    925 ; MIPS32: sll [[T12]],[[T12]],0x10
    926 ; MIPS32: sll [[T2]],[[T2]],0x10
    927 ; MIPS32: slt [[T2]],[[T2]],[[T12]]
    928 ; MIPS32: sll [[T2]],[[T2]],0x10
    929 ; MIPS32: sll [[T11]],[[T11]],0x10
    930 ; MIPS32: srl [[T11]],[[T11]],0x10
    931 ; MIPS32: or [[T2]],[[T2]],[[T11]]
    932 ; MIPS32: move [[T10]],a3
    933 ; MIPS32: andi [[T10]],[[T10]],0xffff
    934 ; MIPS32: move [[T11]],[[T3]]
    935 ; MIPS32: andi [[T11]],[[T11]],0xffff
    936 ; MIPS32: sll [[T10]],[[T10]],0x10
    937 ; MIPS32: sll [[T11]],[[T11]],0x10
    938 ; MIPS32: slt [[T11]],[[T11]],[[T10]]
    939 ; MIPS32: andi [[T11]],[[T11]],0xffff
    940 ; MIPS32: srl [[T7]],[[T7]],0x10
    941 ; MIPS32: sll [[T7]],[[T7]],0x10
    942 ; MIPS32: or [[T11]],[[T11]],[[T7]]
    943 ; MIPS32: srl [[T13:.*]],a3,0x10
    944 ; MIPS32: srl [[T3]],[[T3]],0x10
    945 ; MIPS32: sll [[T13]],[[T13]],0x10
    946 ; MIPS32: sll [[T3]],[[T3]],0x10
    947 ; MIPS32: slt [[T3]],[[T3]],[[T13]]
    948 ; MIPS32: sll [[T3]],[[T3]],0x10
    949 ; MIPS32: sll [[T11]],[[T11]],0x10
    950 ; MIPS32: srl [[T11]],[[T11]],0x10
    951 ; MIPS32: or [[T3]],[[T3]],[[T11]]
    952 ; MIPS32: move a0,[[T2]]
    953 ; MIPS32: move a1,[[T3]]
    954 }
    955 
    956 define internal <8 x i1> @test_icmp_v8i16_sle(<8 x i16> %a, <8 x i16> %b) {
    957 entry:
    958   %res = icmp sle <8 x i16> %a, %b
    959   ret <8 x i1> %res
    960 ; CHECK-LABEL: test_icmp_v8i16_sle
    961 ; CHECK: pcmpgtw
    962 ; CHECK: pxor
    963 
    964 ; MIPS32-LABEL: test_icmp_v8i16_sle
    965 ; MIPS32: lw [[T0:.*]],
    966 ; MIPS32: lw [[T1:.*]],
    967 ; MIPS32: lw [[T2:.*]],
    968 ; MIPS32: lw [[T3:.*]],
    969 ; MIPS32: move [[T4:.*]],zero
    970 ; MIPS32: move [[T5:.*]],zero
    971 ; MIPS32: move [[T6:.*]],zero
    972 ; MIPS32: move [[T7:.*]],zero
    973 ; MIPS32: move [[T8:.*]],a0
    974 ; MIPS32: andi [[T8]],[[T8]],0xffff
    975 ; MIPS32: move [[T9:.*]],[[T0]]
    976 ; MIPS32: andi [[T9]],[[T9]],0xffff
    977 ; MIPS32: sll [[T8]],[[T8]],0x10
    978 ; MIPS32: sll [[T9]],[[T9]],0x10
    979 ; MIPS32: slt [[T9]],[[T9]],[[T8]]
    980 ; MIPS32: xori [[T9]],[[T9]],0x1
    981 ; MIPS32: andi [[T9]],[[T9]],0xffff
    982 ; MIPS32: srl [[T4]],[[T4]],0x10
    983 ; MIPS32: sll [[T4]],[[T4]],0x10
    984 ; MIPS32: or [[T9]],[[T9]],[[T4]]
    985 ; MIPS32: srl [[T10:.*]],a0,0x10
    986 ; MIPS32: srl [[T0]],[[T0]],0x10
    987 ; MIPS32: sll [[T10]],[[T10]],0x10
    988 ; MIPS32: sll [[T0]],[[T0]],0x10
    989 ; MIPS32: slt [[T0]],[[T0]],[[T10]]
    990 ; MIPS32: xori [[T0]],[[T0]],0x1
    991 ; MIPS32: sll [[T0]],[[T0]],0x10
    992 ; MIPS32: sll [[T9]],[[T9]],0x10
    993 ; MIPS32: srl [[T9]],[[T9]],0x10
    994 ; MIPS32: or v0,[[T0]],[[T9]]
    995 ; MIPS32: move [[T10]],a1
    996 ; MIPS32: andi [[T10]],[[T10]],0xffff
    997 ; MIPS32: move [[T4]],[[T1]]
    998 ; MIPS32: andi [[T4]],[[T4]],0xffff
    999 ; MIPS32: sll [[T10]],[[T10]],0x10
   1000 ; MIPS32: sll [[T4]],[[T4]],0x10
   1001 ; MIPS32: slt [[T4]],[[T4]],[[T10]]
   1002 ; MIPS32: xori [[T4]],[[T4]],0x1
   1003 ; MIPS32: andi [[T4]],[[T4]],0xffff
   1004 ; MIPS32: srl [[T5]],[[T5]],0x10
   1005 ; MIPS32: sll [[T5]],[[T5]],0x10
   1006 ; MIPS32: or [[T4]],[[T4]],[[T5]]
   1007 ; MIPS32: srl [[T11:.*]],a1,0x10
   1008 ; MIPS32: srl [[T1]],[[T1]],0x10
   1009 ; MIPS32: sll [[T11]],[[T11]],0x10
   1010 ; MIPS32: sll [[T1]],[[T1]],0x10
   1011 ; MIPS32: slt [[T1]],[[T1]],[[T11]]
   1012 ; MIPS32: xori [[T1]],[[T1]],0x1
   1013 ; MIPS32: sll [[T1]],[[T1]],0x10
   1014 ; MIPS32: sll [[T4]],[[T4]],0x10
   1015 ; MIPS32: srl [[T4]],[[T4]],0x10
   1016 ; MIPS32: or v1,[[T1]],[[T4]]
   1017 ; MIPS32: move [[T10]],a2
   1018 ; MIPS32: andi [[T10]],[[T10]],0xffff
   1019 ; MIPS32: move [[T11]],[[T2]]
   1020 ; MIPS32: andi [[T11]],[[T11]],0xffff
   1021 ; MIPS32: sll [[T10]],[[T10]],0x10
   1022 ; MIPS32: sll [[T11]],[[T11]],0x10
   1023 ; MIPS32: slt [[T11]],[[T11]],[[T10]]
   1024 ; MIPS32: xori [[T11]],[[T11]],0x1
   1025 ; MIPS32: andi [[T11]],[[T11]],0xffff
   1026 ; MIPS32: srl [[T6]],[[T6]],0x10
   1027 ; MIPS32: sll [[T6]],[[T6]],0x10
   1028 ; MIPS32: or [[T11]],[[T11]],[[T6]]
   1029 ; MIPS32: srl [[T12:.*]],a2,0x10
   1030 ; MIPS32: srl [[T2]],[[T2]],0x10
   1031 ; MIPS32: sll [[T12]],[[T12]],0x10
   1032 ; MIPS32: sll [[T2]],[[T2]],0x10
   1033 ; MIPS32: slt [[T2]],[[T2]],[[T12]]
   1034 ; MIPS32: xori [[T2]],[[T2]],0x1
   1035 ; MIPS32: sll [[T2]],[[T2]],0x10
   1036 ; MIPS32: sll [[T11]],[[T11]],0x10
   1037 ; MIPS32: srl [[T11]],[[T11]],0x10
   1038 ; MIPS32: or [[T2]],[[T2]],[[T11]]
   1039 ; MIPS32: move [[T10]],a3
   1040 ; MIPS32: andi [[T10]],[[T10]],0xffff
   1041 ; MIPS32: move [[T11]],[[T3]]
   1042 ; MIPS32: andi [[T11]],[[T11]],0xffff
   1043 ; MIPS32: sll [[T10]],[[T10]],0x10
   1044 ; MIPS32: sll [[T11]],[[T11]],0x10
   1045 ; MIPS32: slt [[T11]],[[T11]],[[T10]]
   1046 ; MIPS32: xori [[T11]],[[T11]],0x1
   1047 ; MIPS32: andi [[T11]],[[T11]],0xffff
   1048 ; MIPS32: srl [[T7]],[[T7]],0x10
   1049 ; MIPS32: sll [[T7]],[[T7]],0x10
   1050 ; MIPS32: or [[T11]],[[T11]],[[T7]]
   1051 ; MIPS32: srl [[T13:.*]],a3,0x10
   1052 ; MIPS32: srl [[T3]],[[T3]],0x10
   1053 ; MIPS32: sll [[T13]],[[T13]],0x10
   1054 ; MIPS32: sll [[T3]],[[T3]],0x10
   1055 ; MIPS32: slt [[T3]],[[T3]],[[T13]]
   1056 ; MIPS32: xori [[T3]],[[T3]],0x1
   1057 ; MIPS32: sll [[T3]],[[T3]],0x10
   1058 ; MIPS32: sll [[T11]],[[T11]],0x10
   1059 ; MIPS32: srl [[T11]],[[T11]],0x10
   1060 ; MIPS32: or [[T3]],[[T3]],[[T11]]
   1061 ; MIPS32: move a0,[[T2]]
   1062 ; MIPS32: move a1,[[T3]]
   1063 }
   1064 
   1065 define internal <8 x i1> @test_icmp_v8i16_slt(<8 x i16> %a, <8 x i16> %b) {
   1066 entry:
   1067   %res = icmp slt <8 x i16> %a, %b
   1068   ret <8 x i1> %res
   1069 ; CHECK-LABEL: test_icmp_v8i16_slt
   1070 ; CHECK: pcmpgtw
   1071 
   1072 ; MIPS32-LABEL: test_icmp_v8i16_slt
   1073 ; MIPS32: lw [[T0:.*]],
   1074 ; MIPS32: lw [[T1:.*]],
   1075 ; MIPS32: lw [[T2:.*]],
   1076 ; MIPS32: lw [[T3:.*]],
   1077 ; MIPS32: move [[T4:.*]],zero
   1078 ; MIPS32: move [[T5:.*]],zero
   1079 ; MIPS32: move [[T6:.*]],zero
   1080 ; MIPS32: move [[T7:.*]],zero
   1081 ; MIPS32: move [[T8:.*]],a0
   1082 ; MIPS32: andi [[T8]],[[T8]],0xffff
   1083 ; MIPS32: move [[T9:.*]],[[T0]]
   1084 ; MIPS32: andi [[T9]],[[T9]],0xffff
   1085 ; MIPS32: sll [[T8]],[[T8]],0x10
   1086 ; MIPS32: sll [[T9]],[[T9]],0x10
   1087 ; MIPS32: slt [[T8]],[[T8]],[[T9]]
   1088 ; MIPS32: andi [[T8]],[[T8]],0xffff
   1089 ; MIPS32: srl [[T4]],[[T4]],0x10
   1090 ; MIPS32: sll [[T4]],[[T4]],0x10
   1091 ; MIPS32: or [[T8]],[[T8]],[[T4]]
   1092 ; MIPS32: srl [[T10:.*]],a0,0x10
   1093 ; MIPS32: srl [[T0]],[[T0]],0x10
   1094 ; MIPS32: sll [[T10]],[[T10]],0x10
   1095 ; MIPS32: sll [[T0]],[[T0]],0x10
   1096 ; MIPS32: slt [[T10]],[[T10]],[[T0]]
   1097 ; MIPS32: sll [[T10]],[[T10]],0x10
   1098 ; MIPS32: sll [[T8]],[[T8]],0x10
   1099 ; MIPS32: srl [[T8]],[[T8]],0x10
   1100 ; MIPS32: or [[T10]],[[T10]],[[T8]]
   1101 ; MIPS32: move [[T0]],a1
   1102 ; MIPS32: andi [[T0]],[[T0]],0xffff
   1103 ; MIPS32: move [[T4]],[[T1]]
   1104 ; MIPS32: andi [[T4]],[[T4]],0xffff
   1105 ; MIPS32: sll [[T0]],[[T0]],0x10
   1106 ; MIPS32: sll [[T4]],[[T4]],0x10
   1107 ; MIPS32: slt [[T0]],[[T0]],[[T4]]
   1108 ; MIPS32: andi [[T0]],[[T0]],0xffff
   1109 ; MIPS32: srl [[T5]],[[T5]],0x10
   1110 ; MIPS32: sll [[T5]],[[T5]],0x10
   1111 ; MIPS32: or [[T0]],[[T0]],[[T5]]
   1112 ; MIPS32: srl [[T11:.*]],a1,0x10
   1113 ; MIPS32: srl [[T1]],[[T1]],0x10
   1114 ; MIPS32: sll [[T11]],[[T11]],0x10
   1115 ; MIPS32: sll [[T1]],[[T1]],0x10
   1116 ; MIPS32: slt [[T11]],[[T11]],[[T1]]
   1117 ; MIPS32: sll [[T11]],[[T11]],0x10
   1118 ; MIPS32: sll [[T0]],[[T0]],0x10
   1119 ; MIPS32: srl [[T0]],[[T0]],0x10
   1120 ; MIPS32: or [[T11]],[[T11]],[[T0]]
   1121 ; MIPS32: move [[T0]],a2
   1122 ; MIPS32: andi [[T0]],[[T0]],0xffff
   1123 ; MIPS32: move [[T1]],[[T2]]
   1124 ; MIPS32: andi [[T1]],[[T1]],0xffff
   1125 ; MIPS32: sll [[T0]],[[T0]],0x10
   1126 ; MIPS32: sll [[T1]],[[T1]],0x10
   1127 ; MIPS32: slt [[T0]],[[T0]],[[T1]]
   1128 ; MIPS32: andi [[T0]],[[T0]],0xffff
   1129 ; MIPS32: srl [[T6]],[[T6]],0x10
   1130 ; MIPS32: sll [[T6]],[[T6]],0x10
   1131 ; MIPS32: or [[T0]],[[T0]],[[T6]]
   1132 ; MIPS32: srl [[T12:.*]],a2,0x10
   1133 ; MIPS32: srl [[T2]],[[T2]],0x10
   1134 ; MIPS32: sll [[T12]],[[T12]],0x10
   1135 ; MIPS32: sll [[T2]],[[T2]],0x10
   1136 ; MIPS32: slt [[T12]],[[T12]],[[T2]]
   1137 ; MIPS32: sll [[T12]],[[T12]],0x10
   1138 ; MIPS32: sll [[T0]],[[T0]],0x10
   1139 ; MIPS32: srl [[T0]],[[T0]],0x10
   1140 ; MIPS32: or [[T12]],[[T12]],[[T0]]
   1141 ; MIPS32: move [[T0]],a3
   1142 ; MIPS32: andi [[T0]],[[T0]],0xffff
   1143 ; MIPS32: move [[T1]],[[T3]]
   1144 ; MIPS32: andi [[T1]],[[T1]],0xffff
   1145 ; MIPS32: sll [[T0]],[[T0]],0x10
   1146 ; MIPS32: sll [[T1]],[[T1]],0x10
   1147 ; MIPS32: slt [[T0]],[[T0]],[[T1]]
   1148 ; MIPS32: andi [[T0]],[[T0]],0xffff
   1149 ; MIPS32: srl [[T7]],[[T7]],0x10
   1150 ; MIPS32: sll [[T7]],[[T7]],0x10
   1151 ; MIPS32: or [[T0]],[[T0]],[[T7]]
   1152 ; MIPS32: srl [[T13:.*]],a3,0x10
   1153 ; MIPS32: srl [[T3]],[[T3]],0x10
   1154 ; MIPS32: sll [[T13]],[[T13]],0x10
   1155 ; MIPS32: sll [[T3]],[[T3]],0x10
   1156 ; MIPS32: slt [[T13]],[[T13]],[[T3]]
   1157 ; MIPS32: sll [[T13]],[[T13]],0x10
   1158 ; MIPS32: sll [[T0]],[[T0]],0x10
   1159 ; MIPS32: srl [[T0]],[[T0]],0x10
   1160 ; MIPS32: or [[T13]],[[T13]],[[T0]]
   1161 ; MIPS32: move v0,[[T10]]
   1162 ; MIPS32: move v1,[[T11]]
   1163 ; MIPS32: move a0,[[T12]]
   1164 ; MIPS32: move a1,[[T13]]
   1165 }
   1166 
   1167 define internal <8 x i1> @test_icmp_v8i16_uge(<8 x i16> %a, <8 x i16> %b) {
   1168 entry:
   1169   %res = icmp uge <8 x i16> %a, %b
   1170   ret <8 x i1> %res
   1171 ; CHECK-LABEL: test_icmp_v8i16_uge
   1172 ; CHECK: pxor
   1173 ; CHECK: pcmpgtw
   1174 ; CHECK: pxor
   1175 
   1176 ; MIPS32-LABEL: test_icmp_v8i16_uge
   1177 ; MIPS32: lw [[T0:.*]],
   1178 ; MIPS32: lw [[T1:.*]],
   1179 ; MIPS32: lw [[T2:.*]],
   1180 ; MIPS32: lw [[T3:.*]],
   1181 ; MIPS32: move [[T4:.*]],zero
   1182 ; MIPS32: move [[T5:.*]],zero
   1183 ; MIPS32: move [[T6:.*]],zero
   1184 ; MIPS32: move [[T7:.*]],zero
   1185 ; MIPS32: move [[T8:.*]],a0
   1186 ; MIPS32: andi [[T8]],[[T8]],0xffff
   1187 ; MIPS32: move [[T9:.*]],[[T0]]
   1188 ; MIPS32: andi [[T9]],[[T9]],0xffff
   1189 ; MIPS32: sll [[T8]],[[T8]],0x10
   1190 ; MIPS32: sll [[T9]],[[T9]],0x10
   1191 ; MIPS32: sltu [[T8]],[[T8]],[[T9]]
   1192 ; MIPS32: xori [[T8]],[[T8]],0x1
   1193 ; MIPS32: andi [[T8]],[[T8]],0xffff
   1194 ; MIPS32: srl [[T4]],[[T4]],0x10
   1195 ; MIPS32: sll [[T4]],[[T4]],0x10
   1196 ; MIPS32: or [[T8]],[[T8]],[[T4]]
   1197 ; MIPS32: srl [[T10:.*]],a0,0x10
   1198 ; MIPS32: srl [[T0]],[[T0]],0x10
   1199 ; MIPS32: sll [[T10]],[[T10]],0x10
   1200 ; MIPS32: sll [[T0]],[[T0]],0x10
   1201 ; MIPS32: sltu [[T10]],[[T10]],[[T0]]
   1202 ; MIPS32: xori [[T10]],[[T10]],0x1
   1203 ; MIPS32: sll [[T10]],[[T10]],0x10
   1204 ; MIPS32: sll [[T8]],[[T8]],0x10
   1205 ; MIPS32: srl [[T8]],[[T8]],0x10
   1206 ; MIPS32: or [[T10]],[[T10]],[[T8]]
   1207 ; MIPS32: move [[T0]],a1
   1208 ; MIPS32: andi [[T0]],[[T0]],0xffff
   1209 ; MIPS32: move [[T4]],[[T1]]
   1210 ; MIPS32: andi [[T4]],[[T4]],0xffff
   1211 ; MIPS32: sll [[T0]],[[T0]],0x10
   1212 ; MIPS32: sll [[T4]],[[T4]],0x10
   1213 ; MIPS32: sltu [[T0]],[[T0]],[[T4]]
   1214 ; MIPS32: xori [[T0]],[[T0]],0x1
   1215 ; MIPS32: andi [[T0]],[[T0]],0xffff
   1216 ; MIPS32: srl [[T5]],[[T5]],0x10
   1217 ; MIPS32: sll [[T5]],[[T5]],0x10
   1218 ; MIPS32: or [[T0]],[[T0]],[[T5]]
   1219 ; MIPS32: srl [[T11:.*]],a1,0x10
   1220 ; MIPS32: srl [[T1]],[[T1]],0x10
   1221 ; MIPS32: sll [[T11]],[[T11]],0x10
   1222 ; MIPS32: sll [[T1]],[[T1]],0x10
   1223 ; MIPS32: sltu [[T11]],[[T11]],[[T1]]
   1224 ; MIPS32: xori [[T11]],[[T11]],0x1
   1225 ; MIPS32: sll [[T11]],[[T11]],0x10
   1226 ; MIPS32: sll [[T0]],[[T0]],0x10
   1227 ; MIPS32: srl [[T0]],[[T0]],0x10
   1228 ; MIPS32: or [[T11]],[[T11]],[[T0]]
   1229 ; MIPS32: move [[T0]],a2
   1230 ; MIPS32: andi [[T0]],[[T0]],0xffff
   1231 ; MIPS32: move [[T1]],[[T2]]
   1232 ; MIPS32: andi [[T1]],[[T1]],0xffff
   1233 ; MIPS32: sll [[T0]],[[T0]],0x10
   1234 ; MIPS32: sll [[T1]],[[T1]],0x10
   1235 ; MIPS32: sltu [[T0]],[[T0]],[[T1]]
   1236 ; MIPS32: xori [[T0]],[[T0]],0x1
   1237 ; MIPS32: andi [[T0]],[[T0]],0xffff
   1238 ; MIPS32: srl [[T6]],[[T6]],0x10
   1239 ; MIPS32: sll [[T6]],[[T6]],0x10
   1240 ; MIPS32: or [[T0]],[[T0]],[[T6]]
   1241 ; MIPS32: srl [[T12:.*]],a2,0x10
   1242 ; MIPS32: srl [[T2]],[[T2]],0x10
   1243 ; MIPS32: sll [[T12]],[[T12]],0x10
   1244 ; MIPS32: sll [[T2]],[[T2]],0x10
   1245 ; MIPS32: sltu [[T12]],[[T12]],[[T2]]
   1246 ; MIPS32: xori [[T12]],[[T12]],0x1
   1247 ; MIPS32: sll [[T12]],[[T12]],0x10
   1248 ; MIPS32: sll [[T0]],[[T0]],0x10
   1249 ; MIPS32: srl [[T0]],[[T0]],0x10
   1250 ; MIPS32: or [[T12]],[[T12]],[[T0]]
   1251 ; MIPS32: move [[T0]],a3
   1252 ; MIPS32: andi [[T0]],[[T0]],0xffff
   1253 ; MIPS32: move [[T1]],[[T3]]
   1254 ; MIPS32: andi [[T1]],[[T1]],0xffff
   1255 ; MIPS32: sll [[T0]],[[T0]],0x10
   1256 ; MIPS32: sll [[T1]],[[T1]],0x10
   1257 ; MIPS32: sltu [[T0]],[[T0]],[[T1]]
   1258 ; MIPS32: xori [[T0]],[[T0]],0x1
   1259 ; MIPS32: andi [[T0]],[[T0]],0xffff
   1260 ; MIPS32: srl [[T7]],[[T7]],0x10
   1261 ; MIPS32: sll [[T7]],[[T7]],0x10
   1262 ; MIPS32: or [[T0]],[[T0]],[[T7]]
   1263 ; MIPS32: srl [[T13:.*]],a3,0x10
   1264 ; MIPS32: srl [[T3]],[[T3]],0x10
   1265 ; MIPS32: sll [[T13]],[[T13]],0x10
   1266 ; MIPS32: sll [[T3]],[[T3]],0x10
   1267 ; MIPS32: sltu [[T13]],[[T13]],[[T3]]
   1268 ; MIPS32: xori [[T13]],[[T13]],0x1
   1269 ; MIPS32: sll [[T13]],[[T13]],0x10
   1270 ; MIPS32: sll [[T0]],[[T0]],0x10
   1271 ; MIPS32: srl [[T0]],[[T0]],0x10
   1272 ; MIPS32: or [[T13]],[[T13]],[[T0]]
   1273 ; MIPS32: move v0,[[T10]]
   1274 ; MIPS32: move v1,[[T11]]
   1275 ; MIPS32: move a0,[[T12]]
   1276 ; MIPS32: move a1,[[T13]]
   1277 }
   1278 
   1279 define internal <8 x i1> @test_icmp_v8i16_ugt(<8 x i16> %a, <8 x i16> %b) {
   1280 entry:
   1281   %res = icmp ugt <8 x i16> %a, %b
   1282   ret <8 x i1> %res
   1283 ; CHECK-LABEL: test_icmp_v8i16_ugt
   1284 ; CHECK: pxor
   1285 ; CHECK: pcmpgtw
   1286 
   1287 ; MIPS32-LABEL: test_icmp_v8i16_ugt
   1288 ; MIPS32: lw [[T0:.*]],
   1289 ; MIPS32: lw [[T1:.*]],
   1290 ; MIPS32: lw [[T2:.*]],
   1291 ; MIPS32: lw [[T3:.*]],
   1292 ; MIPS32: move [[T4:.*]],zero
   1293 ; MIPS32: move [[T5:.*]],zero
   1294 ; MIPS32: move [[T6:.*]],zero
   1295 ; MIPS32: move [[T7:.*]],zero
   1296 ; MIPS32: move [[T8:.*]],a0
   1297 ; MIPS32: andi [[T8]],[[T8]],0xffff
   1298 ; MIPS32: move [[T9:.*]],[[T0]]
   1299 ; MIPS32: andi [[T9]],[[T9]],0xffff
   1300 ; MIPS32: sll [[T8]],[[T8]],0x10
   1301 ; MIPS32: sll [[T9]],[[T9]],0x10
   1302 ; MIPS32: sltu [[T9]],[[T9]],[[T8]]
   1303 ; MIPS32: andi [[T9]],[[T9]],0xffff
   1304 ; MIPS32: srl [[T4]],[[T4]],0x10
   1305 ; MIPS32: sll [[T4]],[[T4]],0x10
   1306 ; MIPS32: or [[T9]],[[T9]],[[T4]]
   1307 ; MIPS32: srl [[T10:.*]],a0,0x10
   1308 ; MIPS32: srl [[T0]],[[T0]],0x10
   1309 ; MIPS32: sll [[T10]],[[T10]],0x10
   1310 ; MIPS32: sll [[T0]],[[T0]],0x10
   1311 ; MIPS32: sltu [[T0]],[[T0]],[[T10]]
   1312 ; MIPS32: sll [[T0]],[[T0]],0x10
   1313 ; MIPS32: sll [[T9]],[[T9]],0x10
   1314 ; MIPS32: srl [[T9]],[[T9]],0x10
   1315 ; MIPS32: or v0,[[T0]],[[T9]]
   1316 ; MIPS32: move [[T10]],a1
   1317 ; MIPS32: andi [[T10]],[[T10]],0xffff
   1318 ; MIPS32: move [[T4]],[[T1]]
   1319 ; MIPS32: andi [[T4]],[[T4]],0xffff
   1320 ; MIPS32: sll [[T10]],[[T10]],0x10
   1321 ; MIPS32: sll [[T4]],[[T4]],0x10
   1322 ; MIPS32: sltu [[T4]],[[T4]],[[T10]]
   1323 ; MIPS32: andi [[T4]],[[T4]],0xffff
   1324 ; MIPS32: srl [[T5]],[[T5]],0x10
   1325 ; MIPS32: sll [[T5]],[[T5]],0x10
   1326 ; MIPS32: or [[T4]],[[T4]],[[T5]]
   1327 ; MIPS32: srl [[T11:.*]],a1,0x10
   1328 ; MIPS32: srl [[T1]],[[T1]],0x10
   1329 ; MIPS32: sll [[T11]],[[T11]],0x10
   1330 ; MIPS32: sll [[T1]],[[T1]],0x10
   1331 ; MIPS32: sltu [[T1]],[[T1]],[[T11]]
   1332 ; MIPS32: sll [[T1]],[[T1]],0x10
   1333 ; MIPS32: sll [[T4]],[[T4]],0x10
   1334 ; MIPS32: srl [[T4]],[[T4]],0x10
   1335 ; MIPS32: or v1,[[T1]],[[T4]]
   1336 ; MIPS32: move [[T10]],a2
   1337 ; MIPS32: andi [[T10]],[[T10]],0xffff
   1338 ; MIPS32: move [[T11]],[[T2]]
   1339 ; MIPS32: andi [[T11]],[[T11]],0xffff
   1340 ; MIPS32: sll [[T10]],[[T10]],0x10
   1341 ; MIPS32: sll [[T11]],[[T11]],0x10
   1342 ; MIPS32: sltu [[T11]],[[T11]],[[T10]]
   1343 ; MIPS32: andi [[T11]],[[T11]],0xffff
   1344 ; MIPS32: srl [[T6]],[[T6]],0x10
   1345 ; MIPS32: sll [[T6]],[[T6]],0x10
   1346 ; MIPS32: or [[T11]],[[T11]],[[T6]]
   1347 ; MIPS32: srl [[T12:.*]],a2,0x10
   1348 ; MIPS32: srl [[T2]],[[T2]],0x10
   1349 ; MIPS32: sll [[T12]],[[T12]],0x10
   1350 ; MIPS32: sll [[T2]],[[T2]],0x10
   1351 ; MIPS32: sltu [[T2]],[[T2]],[[T12]]
   1352 ; MIPS32: sll [[T2]],[[T2]],0x10
   1353 ; MIPS32: sll [[T11]],[[T11]],0x10
   1354 ; MIPS32: srl [[T11]],[[T11]],0x10
   1355 ; MIPS32: or [[T2]],[[T2]],[[T11]]
   1356 ; MIPS32: move [[T10]],a3
   1357 ; MIPS32: andi [[T10]],[[T10]],0xffff
   1358 ; MIPS32: move [[T11]],[[T3]]
   1359 ; MIPS32: andi [[T11]],[[T11]],0xffff
   1360 ; MIPS32: sll [[T10]],[[T10]],0x10
   1361 ; MIPS32: sll [[T11]],[[T11]],0x10
   1362 ; MIPS32: sltu [[T11]],[[T11]],[[T10]]
   1363 ; MIPS32: andi [[T11]],[[T11]],0xffff
   1364 ; MIPS32: srl [[T7]],[[T7]],0x10
   1365 ; MIPS32: sll [[T7]],[[T7]],0x10
   1366 ; MIPS32: or [[T11]],[[T11]],[[T7]]
   1367 ; MIPS32: srl [[T13:.*]],a3,0x10
   1368 ; MIPS32: srl [[T3]],[[T3]],0x10
   1369 ; MIPS32: sll [[T13]],[[T13]],0x10
   1370 ; MIPS32: sll [[T3]],[[T3]],0x10
   1371 ; MIPS32: sltu [[T3]],[[T3]],[[T13]]
   1372 ; MIPS32: sll [[T3]],[[T3]],0x10
   1373 ; MIPS32: sll [[T11]],[[T11]],0x10
   1374 ; MIPS32: srl [[T11]],[[T11]],0x10
   1375 ; MIPS32: or [[T3]],[[T3]],[[T11]]
   1376 ; MIPS32: move a0,[[T2]]
   1377 ; MIPS32: move a1,[[T3]]
   1378 }
   1379 
   1380 define internal <8 x i1> @test_icmp_v8i16_ule(<8 x i16> %a, <8 x i16> %b) {
   1381 entry:
   1382   %res = icmp ule <8 x i16> %a, %b
   1383   ret <8 x i1> %res
   1384 ; CHECK-LABEL: test_icmp_v8i16_ule
   1385 ; CHECK: pxor
   1386 ; CHECK: pcmpgtw
   1387 ; CHECK: pxor
   1388 
   1389 ; MIPS32-LABEL: test_icmp_v8i16_ule
   1390 ; MIPS32: lw [[T0:.*]],
   1391 ; MIPS32: lw [[T1:.*]],
   1392 ; MIPS32: lw [[T2:.*]],
   1393 ; MIPS32: lw [[T3:.*]],
   1394 ; MIPS32: move [[T4:.*]],zero
   1395 ; MIPS32: move [[T5:.*]],zero
   1396 ; MIPS32: move [[T6:.*]],zero
   1397 ; MIPS32: move [[T7:.*]],zero
   1398 ; MIPS32: move [[T8:.*]],a0
   1399 ; MIPS32: andi [[T8]],[[T8]],0xffff
   1400 ; MIPS32: move [[T9:.*]],[[T0]]
   1401 ; MIPS32: andi [[T9]],[[T9]],0xffff
   1402 ; MIPS32: sll [[T8]],[[T8]],0x10
   1403 ; MIPS32: sll [[T9]],[[T9]],0x10
   1404 ; MIPS32: sltu [[T9]],[[T9]],[[T8]]
   1405 ; MIPS32: xori [[T9]],[[T9]],0x1
   1406 ; MIPS32: andi [[T9]],[[T9]],0xffff
   1407 ; MIPS32: srl [[T4]],[[T4]],0x10
   1408 ; MIPS32: sll [[T4]],[[T4]],0x10
   1409 ; MIPS32: or [[T9]],[[T9]],[[T4]]
   1410 ; MIPS32: srl [[T10:.*]],a0,0x10
   1411 ; MIPS32: srl [[T0]],[[T0]],0x10
   1412 ; MIPS32: sll [[T10]],[[T10]],0x10
   1413 ; MIPS32: sll [[T0]],[[T0]],0x10
   1414 ; MIPS32: sltu [[T0]],[[T0]],[[T10]]
   1415 ; MIPS32: xori [[T0]],[[T0]],0x1
   1416 ; MIPS32: sll [[T0]],[[T0]],0x10
   1417 ; MIPS32: sll [[T9]],[[T9]],0x10
   1418 ; MIPS32: srl [[T9]],[[T9]],0x10
   1419 ; MIPS32: or v0,[[T0]],[[T9]]
   1420 ; MIPS32: move [[T10]],a1
   1421 ; MIPS32: andi [[T10]],[[T10]],0xffff
   1422 ; MIPS32: move [[T4]],[[T1]]
   1423 ; MIPS32: andi [[T4]],[[T4]],0xffff
   1424 ; MIPS32: sll [[T10]],[[T10]],0x10
   1425 ; MIPS32: sll [[T4]],[[T4]],0x10
   1426 ; MIPS32: sltu [[T4]],[[T4]],[[T10]]
   1427 ; MIPS32: xori [[T4]],[[T4]],0x1
   1428 ; MIPS32: andi [[T4]],[[T4]],0xffff
   1429 ; MIPS32: srl [[T5]],[[T5]],0x10
   1430 ; MIPS32: sll [[T5]],[[T5]],0x10
   1431 ; MIPS32: or [[T4]],[[T4]],[[T5]]
   1432 ; MIPS32: srl [[T11:.*]],a1,0x10
   1433 ; MIPS32: srl [[T1]],[[T1]],0x10
   1434 ; MIPS32: sll [[T11]],[[T11]],0x10
   1435 ; MIPS32: sll [[T1]],[[T1]],0x10
   1436 ; MIPS32: sltu [[T1]],[[T1]],[[T11]]
   1437 ; MIPS32: xori [[T1]],[[T1]],0x1
   1438 ; MIPS32: sll [[T1]],[[T1]],0x10
   1439 ; MIPS32: sll [[T4]],[[T4]],0x10
   1440 ; MIPS32: srl [[T4]],[[T4]],0x10
   1441 ; MIPS32: or v1,[[T1]],[[T4]]
   1442 ; MIPS32: move [[T10]],a2
   1443 ; MIPS32: andi [[T10]],[[T10]],0xffff
   1444 ; MIPS32: move [[T11]],[[T2]]
   1445 ; MIPS32: andi [[T11]],[[T11]],0xffff
   1446 ; MIPS32: sll [[T10]],[[T10]],0x10
   1447 ; MIPS32: sll [[T11]],[[T11]],0x10
   1448 ; MIPS32: sltu [[T11]],[[T11]],[[T10]]
   1449 ; MIPS32: xori [[T11]],[[T11]],0x1
   1450 ; MIPS32: andi [[T11]],[[T11]],0xffff
   1451 ; MIPS32: srl [[T6]],[[T6]],0x10
   1452 ; MIPS32: sll [[T6]],[[T6]],0x10
   1453 ; MIPS32: or [[T11]],[[T11]],[[T6]]
   1454 ; MIPS32: srl [[T12:.*]],a2,0x10
   1455 ; MIPS32: srl [[T2]],[[T2]],0x10
   1456 ; MIPS32: sll [[T12]],[[T12]],0x10
   1457 ; MIPS32: sll [[T2]],[[T2]],0x10
   1458 ; MIPS32: sltu [[T2]],[[T2]],[[T12]]
   1459 ; MIPS32: xori [[T2]],[[T2]],0x1
   1460 ; MIPS32: sll [[T2]],[[T2]],0x10
   1461 ; MIPS32: sll [[T11]],[[T11]],0x10
   1462 ; MIPS32: srl [[T11]],[[T11]],0x10
   1463 ; MIPS32: or [[T2]],[[T2]],[[T11]]
   1464 ; MIPS32: move [[T10]],a3
   1465 ; MIPS32: andi [[T10]],[[T10]],0xffff
   1466 ; MIPS32: move [[T11]],[[T3]]
   1467 ; MIPS32: andi [[T11]],[[T11]],0xffff
   1468 ; MIPS32: sll [[T10]],[[T10]],0x10
   1469 ; MIPS32: sll [[T11]],[[T11]],0x10
   1470 ; MIPS32: sltu [[T11]],[[T11]],[[T10]]
   1471 ; MIPS32: xori [[T11]],[[T11]],0x1
   1472 ; MIPS32: andi [[T11]],[[T11]],0xffff
   1473 ; MIPS32: srl [[T7]],[[T7]],0x10
   1474 ; MIPS32: sll [[T7]],[[T7]],0x10
   1475 ; MIPS32: or [[T11]],[[T11]],[[T7]]
   1476 ; MIPS32: srl [[T13:.*]],a3,0x10
   1477 ; MIPS32: srl [[T3]],[[T3]],0x10
   1478 ; MIPS32: sll [[T13]],[[T13]],0x10
   1479 ; MIPS32: sll [[T3]],[[T3]],0x10
   1480 ; MIPS32: sltu [[T3]],[[T3]],[[T13]]
   1481 ; MIPS32: xori [[T3]],[[T3]],0x1
   1482 ; MIPS32: sll [[T3]],[[T3]],0x10
   1483 ; MIPS32: sll [[T11]],[[T11]],0x10
   1484 ; MIPS32: srl [[T11]],[[T11]],0x10
   1485 ; MIPS32: or [[T3]],[[T3]],[[T11]]
   1486 ; MIPS32: move a0,[[T2]]
   1487 ; MIPS32: move a1,[[T3]]
   1488 }
   1489 
   1490 define internal <8 x i1> @test_icmp_v8i16_ult(<8 x i16> %a, <8 x i16> %b) {
   1491 entry:
   1492   %res = icmp ult <8 x i16> %a, %b
   1493   ret <8 x i1> %res
   1494 ; CHECK-LABEL: test_icmp_v8i16_ult
   1495 ; CHECK: pxor
   1496 ; CHECK: pcmpgtw
   1497 
   1498 ; MIPS32-LABEL: test_icmp_v8i16_ult
   1499 ; MIPS32: lw [[T0:.*]],
   1500 ; MIPS32: lw [[T1:.*]],
   1501 ; MIPS32: lw [[T2:.*]],
   1502 ; MIPS32: lw [[T3:.*]],
   1503 ; MIPS32: move [[T4:.*]],zero
   1504 ; MIPS32: move [[T5:.*]],zero
   1505 ; MIPS32: move [[T6:.*]],zero
   1506 ; MIPS32: move [[T7:.*]],zero
   1507 ; MIPS32: move [[T8:.*]],a0
   1508 ; MIPS32: andi [[T8]],[[T8]],0xffff
   1509 ; MIPS32: move [[T9:.*]],[[T0]]
   1510 ; MIPS32: andi [[T9]],[[T9]],0xffff
   1511 ; MIPS32: sll [[T8]],[[T8]],0x10
   1512 ; MIPS32: sll [[T9]],[[T9]],0x10
   1513 ; MIPS32: sltu [[T8]],[[T8]],[[T9]]
   1514 ; MIPS32: andi [[T8]],[[T8]],0xffff
   1515 ; MIPS32: srl [[T4]],[[T4]],0x10
   1516 ; MIPS32: sll [[T4]],[[T4]],0x10
   1517 ; MIPS32: or [[T8]],[[T8]],[[T4]]
   1518 ; MIPS32: srl [[T10:.*]],a0,0x10
   1519 ; MIPS32: srl [[T0]],[[T0]],0x10
   1520 ; MIPS32: sll [[T10]],[[T10]],0x10
   1521 ; MIPS32: sll [[T0]],[[T0]],0x10
   1522 ; MIPS32: sltu [[T10]],[[T10]],[[T0]]
   1523 ; MIPS32: sll [[T10]],[[T10]],0x10
   1524 ; MIPS32: sll [[T8]],[[T8]],0x10
   1525 ; MIPS32: srl [[T8]],[[T8]],0x10
   1526 ; MIPS32: or [[T10]],[[T10]],[[T8]]
   1527 ; MIPS32: move [[T0]],a1
   1528 ; MIPS32: andi [[T0]],[[T0]],0xffff
   1529 ; MIPS32: move [[T4]],[[T1]]
   1530 ; MIPS32: andi [[T4]],[[T4]],0xffff
   1531 ; MIPS32: sll [[T0]],[[T0]],0x10
   1532 ; MIPS32: sll [[T4]],[[T4]],0x10
   1533 ; MIPS32: sltu [[T0]],[[T0]],[[T4]]
   1534 ; MIPS32: andi [[T0]],[[T0]],0xffff
   1535 ; MIPS32: srl [[T5]],[[T5]],0x10
   1536 ; MIPS32: sll [[T5]],[[T5]],0x10
   1537 ; MIPS32: or [[T0]],[[T0]],[[T5]]
   1538 ; MIPS32: srl [[T11:.*]],a1,0x10
   1539 ; MIPS32: srl [[T1]],[[T1]],0x10
   1540 ; MIPS32: sll [[T11]],[[T11]],0x10
   1541 ; MIPS32: sll [[T1]],[[T1]],0x10
   1542 ; MIPS32: sltu [[T11]],[[T11]],[[T1]]
   1543 ; MIPS32: sll [[T11]],[[T11]],0x10
   1544 ; MIPS32: sll [[T0]],[[T0]],0x10
   1545 ; MIPS32: srl [[T0]],[[T0]],0x10
   1546 ; MIPS32: or [[T11]],[[T11]],[[T0]]
   1547 ; MIPS32: move [[T0]],a2
   1548 ; MIPS32: andi [[T0]],[[T0]],0xffff
   1549 ; MIPS32: move [[T1]],[[T2]]
   1550 ; MIPS32: andi [[T1]],[[T1]],0xffff
   1551 ; MIPS32: sll [[T0]],[[T0]],0x10
   1552 ; MIPS32: sll [[T1]],[[T1]],0x10
   1553 ; MIPS32: sltu [[T0]],[[T0]],[[T1]]
   1554 ; MIPS32: andi [[T0]],[[T0]],0xffff
   1555 ; MIPS32: srl [[T6]],[[T6]],0x10
   1556 ; MIPS32: sll [[T6]],[[T6]],0x10
   1557 ; MIPS32: or [[T0]],[[T0]],[[T6]]
   1558 ; MIPS32: srl [[T12:.*]],a2,0x10
   1559 ; MIPS32: srl [[T2]],[[T2]],0x10
   1560 ; MIPS32: sll [[T12]],[[T12]],0x10
   1561 ; MIPS32: sll [[T2]],[[T2]],0x10
   1562 ; MIPS32: sltu [[T12]],[[T12]],[[T2]]
   1563 ; MIPS32: sll [[T12]],[[T12]],0x10
   1564 ; MIPS32: sll [[T0]],[[T0]],0x10
   1565 ; MIPS32: srl [[T0]],[[T0]],0x10
   1566 ; MIPS32: or [[T12]],[[T12]],[[T0]]
   1567 ; MIPS32: move [[T0]],a3
   1568 ; MIPS32: andi [[T0]],[[T0]],0xffff
   1569 ; MIPS32: move [[T1]],[[T3]]
   1570 ; MIPS32: andi [[T1]],[[T1]],0xffff
   1571 ; MIPS32: sll [[T0]],[[T0]],0x10
   1572 ; MIPS32: sll [[T1]],[[T1]],0x10
   1573 ; MIPS32: sltu [[T0]],[[T0]],[[T1]]
   1574 ; MIPS32: andi [[T0]],[[T0]],0xffff
   1575 ; MIPS32: srl [[T7]],[[T7]],0x10
   1576 ; MIPS32: sll [[T7]],[[T7]],0x10
   1577 ; MIPS32: or [[T0]],[[T0]],[[T7]]
   1578 ; MIPS32: srl [[T13:.*]],a3,0x10
   1579 ; MIPS32: srl [[T3]],[[T3]],0x10
   1580 ; MIPS32: sll [[T13]],[[T13]],0x10
   1581 ; MIPS32: sll [[T3]],[[T3]],0x10
   1582 ; MIPS32: sltu [[T13]],[[T13]],[[T3]]
   1583 ; MIPS32: sll [[T13]],[[T13]],0x10
   1584 ; MIPS32: sll [[T0]],[[T0]],0x10
   1585 ; MIPS32: srl [[T0]],[[T0]],0x10
   1586 ; MIPS32: or [[T13]],[[T13]],[[T0]]
   1587 ; MIPS32: move v0,[[T10]]
   1588 ; MIPS32: move v1,[[T11]]
   1589 ; MIPS32: move a0,[[T12]]
   1590 ; MIPS32: move a1,[[T13]]
   1591 }
   1592 
   1593 define internal <8 x i1> @test_icmp_v8i1_eq(<8 x i1> %a, <8 x i1> %b) {
   1594 entry:
   1595   %res = icmp eq <8 x i1> %a, %b
   1596   ret <8 x i1> %res
   1597 ; CHECK-LABEL: test_icmp_v8i1_eq
   1598 ; CHECK: pcmpeqw
   1599 
   1600 ; MIPS32-LABEL: test_icmp_v8i1_eq
   1601 ; MIPS32: lw [[T0:.*]],
   1602 ; MIPS32: lw [[T1:.*]],
   1603 ; MIPS32: lw [[T2:.*]],
   1604 ; MIPS32: lw [[T3:.*]],
   1605 ; MIPS32: move [[T4:.*]],zero
   1606 ; MIPS32: move [[T5:.*]],zero
   1607 ; MIPS32: move [[T6:.*]],zero
   1608 ; MIPS32: move [[T7:.*]],zero
   1609 ; MIPS32: move [[T8:.*]],a0
   1610 ; MIPS32: andi [[T8]],[[T8]],0xffff
   1611 ; MIPS32: andi [[T8]],[[T8]],0x1
   1612 ; MIPS32: move [[T9:.*]],[[T0]]
   1613 ; MIPS32: andi [[T9]],[[T9]],0xffff
   1614 ; MIPS32: andi [[T9]],[[T9]],0x1
   1615 ; MIPS32: sll [[T8]],[[T8]],0x1f
   1616 ; MIPS32: sll [[T9]],[[T9]],0x1f
   1617 ; MIPS32: xor [[T8]],[[T8]],[[T9]]
   1618 ; MIPS32: sltiu [[T8]],[[T8]],1
   1619 ; MIPS32: andi [[T8]],[[T8]],0xffff
   1620 ; MIPS32: srl [[T4]],[[T4]],0x10
   1621 ; MIPS32: sll [[T4]],[[T4]],0x10
   1622 ; MIPS32: or [[T8]],[[T8]],[[T4]]
   1623 ; MIPS32: srl [[T10:.*]],a0,0x10
   1624 ; MIPS32: andi [[T10]],[[T10]],0x1
   1625 ; MIPS32: srl [[T0]],[[T0]],0x10
   1626 ; MIPS32: andi [[T0]],[[T0]],0x1
   1627 ; MIPS32: sll [[T10]],[[T10]],0x1f
   1628 ; MIPS32: sll [[T0]],[[T0]],0x1f
   1629 ; MIPS32: xor [[T10]],[[T10]],[[T0]]
   1630 ; MIPS32: sltiu [[T10]],[[T10]],1
   1631 ; MIPS32: sll [[T10]],[[T10]],0x10
   1632 ; MIPS32: sll [[T8]],[[T8]],0x10
   1633 ; MIPS32: srl [[T8]],[[T8]],0x10
   1634 ; MIPS32: or [[T10]],[[T10]],[[T8]]
   1635 ; MIPS32: move [[T0]],a1
   1636 ; MIPS32: andi [[T0]],[[T0]],0xffff
   1637 ; MIPS32: andi [[T0]],[[T0]],0x1
   1638 ; MIPS32: move [[T4]],[[T1]]
   1639 ; MIPS32: andi [[T4]],[[T4]],0xffff
   1640 ; MIPS32: andi [[T4]],[[T4]],0x1
   1641 ; MIPS32: sll [[T0]],[[T0]],0x1f
   1642 ; MIPS32: sll [[T4]],[[T4]],0x1f
   1643 ; MIPS32: xor [[T0]],[[T0]],[[T4]]
   1644 ; MIPS32: sltiu [[T0]],[[T0]],1
   1645 ; MIPS32: andi [[T0]],[[T0]],0xffff
   1646 ; MIPS32: srl [[T5]],[[T5]],0x10
   1647 ; MIPS32: sll [[T5]],[[T5]],0x10
   1648 ; MIPS32: or [[T0]],[[T0]],[[T5]]
   1649 ; MIPS32: srl [[T11:.*]],a1,0x10
   1650 ; MIPS32: andi [[T11]],[[T11]],0x1
   1651 ; MIPS32: srl [[T1]],[[T1]],0x10
   1652 ; MIPS32: andi [[T1]],[[T1]],0x1
   1653 ; MIPS32: sll [[T11]],[[T11]],0x1f
   1654 ; MIPS32: sll [[T1]],[[T1]],0x1f
   1655 ; MIPS32: xor [[T11]],[[T11]],[[T1]]
   1656 ; MIPS32: sltiu [[T11]],[[T11]],1
   1657 ; MIPS32: sll [[T11]],[[T11]],0x10
   1658 ; MIPS32: sll [[T0]],[[T0]],0x10
   1659 ; MIPS32: srl [[T0]],[[T0]],0x10
   1660 ; MIPS32: or [[T11]],[[T11]],[[T0]]
   1661 ; MIPS32: move [[T0]],a2
   1662 ; MIPS32: andi [[T0]],[[T0]],0xffff
   1663 ; MIPS32: andi [[T0]],[[T0]],0x1
   1664 ; MIPS32: move [[T1]],[[T2]]
   1665 ; MIPS32: andi [[T1]],[[T1]],0xffff
   1666 ; MIPS32: andi [[T1]],[[T1]],0x1
   1667 ; MIPS32: sll [[T0]],[[T0]],0x1f
   1668 ; MIPS32: sll [[T1]],[[T1]],0x1f
   1669 ; MIPS32: xor [[T0]],[[T0]],[[T1]]
   1670 ; MIPS32: sltiu [[T0]],[[T0]],1
   1671 ; MIPS32: andi [[T0]],[[T0]],0xffff
   1672 ; MIPS32: srl [[T6]],[[T6]],0x10
   1673 ; MIPS32: sll [[T6]],[[T6]],0x10
   1674 ; MIPS32: or [[T0]],[[T0]],[[T6]]
   1675 ; MIPS32: srl [[T12:.*]],a2,0x10
   1676 ; MIPS32: andi [[T12]],[[T12]],0x1
   1677 ; MIPS32: srl [[T2]],[[T2]],0x10
   1678 ; MIPS32: andi [[T2]],[[T2]],0x1
   1679 ; MIPS32: sll [[T12]],[[T12]],0x1f
   1680 ; MIPS32: sll [[T2]],[[T2]],0x1f
   1681 ; MIPS32: xor [[T12]],[[T12]],[[T2]]
   1682 ; MIPS32: sltiu [[T12]],[[T12]],1
   1683 ; MIPS32: sll [[T12]],[[T12]],0x10
   1684 ; MIPS32: sll [[T0]],[[T0]],0x10
   1685 ; MIPS32: srl [[T0]],[[T0]],0x10
   1686 ; MIPS32: or [[T12]],[[T12]],[[T0]]
   1687 ; MIPS32: move [[T0]],a3
   1688 ; MIPS32: andi [[T0]],[[T0]],0xffff
   1689 ; MIPS32: andi [[T0]],[[T0]],0x1
   1690 ; MIPS32: move [[T1]],[[T3]]
   1691 ; MIPS32: andi [[T1]],[[T1]],0xffff
   1692 ; MIPS32: andi [[T1]],[[T1]],0x1
   1693 ; MIPS32: sll [[T0]],[[T0]],0x1f
   1694 ; MIPS32: sll [[T1]],[[T1]],0x1f
   1695 ; MIPS32: xor [[T0]],[[T0]],[[T1]]
   1696 ; MIPS32: sltiu [[T0]],[[T0]],1
   1697 ; MIPS32: andi [[T0]],[[T0]],0xffff
   1698 ; MIPS32: srl [[T7]],[[T7]],0x10
   1699 ; MIPS32: sll [[T7]],[[T7]],0x10
   1700 ; MIPS32: or [[T0]],[[T0]],[[T7]]
   1701 ; MIPS32: srl [[T13:.*]],a3,0x10
   1702 ; MIPS32: andi [[T13]],[[T13]],0x1
   1703 ; MIPS32: srl [[T3]],[[T3]],0x10
   1704 ; MIPS32: andi [[T3]],[[T3]],0x1
   1705 ; MIPS32: sll [[T13]],[[T13]],0x1f
   1706 ; MIPS32: sll [[T3]],[[T3]],0x1f
   1707 ; MIPS32: xor [[T13]],[[T13]],[[T3]]
   1708 ; MIPS32: sltiu [[T13]],[[T13]],1
   1709 ; MIPS32: sll [[T13]],[[T13]],0x10
   1710 ; MIPS32: sll [[T0]],[[T0]],0x10
   1711 ; MIPS32: srl [[T0]],[[T0]],0x10
   1712 ; MIPS32: or [[T13]],[[T13]],[[T0]]
   1713 ; MIPS32: move v0,[[T10]]
   1714 ; MIPS32: move v1,[[T11]]
   1715 ; MIPS32: move a0,[[T12]]
   1716 ; MIPS32: move a1,[[T13]]
   1717 }
   1718 
   1719 define internal <8 x i1> @test_icmp_v8i1_ne(<8 x i1> %a, <8 x i1> %b) {
   1720 entry:
   1721   %res = icmp ne <8 x i1> %a, %b
   1722   ret <8 x i1> %res
   1723 ; CHECK-LABEL: test_icmp_v8i1_ne
   1724 ; CHECK: pcmpeqw
   1725 ; CHECK: pxor
   1726 
   1727 ; MIPS32-LABEL: test_icmp_v8i1_ne
   1728 ; MIPS32: lw [[T0:.*]],
   1729 ; MIPS32: lw [[T1:.*]],
   1730 ; MIPS32: lw [[T2:.*]],
   1731 ; MIPS32: lw [[T3:.*]],
   1732 ; MIPS32: move [[T4:.*]],zero
   1733 ; MIPS32: move [[T5:.*]],zero
   1734 ; MIPS32: move [[T6:.*]],zero
   1735 ; MIPS32: move [[T7:.*]],zero
   1736 ; MIPS32: move [[T8:.*]],a0
   1737 ; MIPS32: andi [[T8]],[[T8]],0xffff
   1738 ; MIPS32: andi [[T8]],[[T8]],0x1
   1739 ; MIPS32: move [[T9:.*]],[[T0]]
   1740 ; MIPS32: andi [[T9]],[[T9]],0xffff
   1741 ; MIPS32: andi [[T9]],[[T9]],0x1
   1742 ; MIPS32: sll [[T8]],[[T8]],0x1f
   1743 ; MIPS32: sll [[T9]],[[T9]],0x1f
   1744 ; MIPS32: xor [[T8]],[[T8]],[[T9]]
   1745 ; MIPS32: sltu [[T8]],zero,[[T8]]
   1746 ; MIPS32: andi [[T8]],[[T8]],0xffff
   1747 ; MIPS32: srl [[T4]],[[T4]],0x10
   1748 ; MIPS32: sll [[T4]],[[T4]],0x10
   1749 ; MIPS32: or [[T8]],[[T8]],[[T4]]
   1750 ; MIPS32: srl [[T10:.*]],a0,0x10
   1751 ; MIPS32: andi [[T10]],[[T10]],0x1
   1752 ; MIPS32: srl [[T0]],[[T0]],0x10
   1753 ; MIPS32: andi [[T0]],[[T0]],0x1
   1754 ; MIPS32: sll [[T10]],[[T10]],0x1f
   1755 ; MIPS32: sll [[T0]],[[T0]],0x1f
   1756 ; MIPS32: xor [[T10]],[[T10]],[[T0]]
   1757 ; MIPS32: sltu [[T10]],zero,[[T10]]
   1758 ; MIPS32: sll [[T10]],[[T10]],0x10
   1759 ; MIPS32: sll [[T8]],[[T8]],0x10
   1760 ; MIPS32: srl [[T8]],[[T8]],0x10
   1761 ; MIPS32: or [[T10]],[[T10]],[[T8]]
   1762 ; MIPS32: move [[T0]],a1
   1763 ; MIPS32: andi [[T0]],[[T0]],0xffff
   1764 ; MIPS32: andi [[T0]],[[T0]],0x1
   1765 ; MIPS32: move [[T4]],[[T1]]
   1766 ; MIPS32: andi [[T4]],[[T4]],0xffff
   1767 ; MIPS32: andi [[T4]],[[T4]],0x1
   1768 ; MIPS32: sll [[T0]],[[T0]],0x1f
   1769 ; MIPS32: sll [[T4]],[[T4]],0x1f
   1770 ; MIPS32: xor [[T0]],[[T0]],[[T4]]
   1771 ; MIPS32: sltu [[T0]],zero,[[T0]]
   1772 ; MIPS32: andi [[T0]],[[T0]],0xffff
   1773 ; MIPS32: srl [[T5]],[[T5]],0x10
   1774 ; MIPS32: sll [[T5]],[[T5]],0x10
   1775 ; MIPS32: or [[T0]],[[T0]],[[T5]]
   1776 ; MIPS32: srl [[T11:.*]],a1,0x10
   1777 ; MIPS32: andi [[T11]],[[T11]],0x1
   1778 ; MIPS32: srl [[T1]],[[T1]],0x10
   1779 ; MIPS32: andi [[T1]],[[T1]],0x1
   1780 ; MIPS32: sll [[T11]],[[T11]],0x1f
   1781 ; MIPS32: sll [[T1]],[[T1]],0x1f
   1782 ; MIPS32: xor [[T11]],[[T11]],[[T1]]
   1783 ; MIPS32: sltu [[T11]],zero,[[T11]]
   1784 ; MIPS32: sll [[T11]],[[T11]],0x10
   1785 ; MIPS32: sll [[T0]],[[T0]],0x10
   1786 ; MIPS32: srl [[T0]],[[T0]],0x10
   1787 ; MIPS32: or [[T11]],[[T11]],[[T0]]
   1788 ; MIPS32: move [[T0]],a2
   1789 ; MIPS32: andi [[T0]],[[T0]],0xffff
   1790 ; MIPS32: andi [[T0]],[[T0]],0x1
   1791 ; MIPS32: move [[T1]],[[T2]]
   1792 ; MIPS32: andi [[T1]],[[T1]],0xffff
   1793 ; MIPS32: andi [[T1]],[[T1]],0x1
   1794 ; MIPS32: sll [[T0]],[[T0]],0x1f
   1795 ; MIPS32: sll [[T1]],[[T1]],0x1f
   1796 ; MIPS32: xor [[T0]],[[T0]],[[T1]]
   1797 ; MIPS32: sltu [[T0]],zero,[[T0]]
   1798 ; MIPS32: andi [[T0]],[[T0]],0xffff
   1799 ; MIPS32: srl [[T6]],[[T6]],0x10
   1800 ; MIPS32: sll [[T6]],[[T6]],0x10
   1801 ; MIPS32: or [[T0]],[[T0]],[[T6]]
   1802 ; MIPS32: srl [[T12:.*]],a2,0x10
   1803 ; MIPS32: andi [[T12]],[[T12]],0x1
   1804 ; MIPS32: srl [[T2]],[[T2]],0x10
   1805 ; MIPS32: andi [[T2]],[[T2]],0x1
   1806 ; MIPS32: sll [[T12]],[[T12]],0x1f
   1807 ; MIPS32: sll [[T2]],[[T2]],0x1f
   1808 ; MIPS32: xor [[T12]],[[T12]],[[T2]]
   1809 ; MIPS32: sltu [[T12]],zero,[[T12]]
   1810 ; MIPS32: sll [[T12]],[[T12]],0x10
   1811 ; MIPS32: sll [[T0]],[[T0]],0x10
   1812 ; MIPS32: srl [[T0]],[[T0]],0x10
   1813 ; MIPS32: or [[T12]],[[T12]],[[T0]]
   1814 ; MIPS32: move [[T0]],a3
   1815 ; MIPS32: andi [[T0]],[[T0]],0xffff
   1816 ; MIPS32: andi [[T0]],[[T0]],0x1
   1817 ; MIPS32: move [[T1]],[[T3]]
   1818 ; MIPS32: andi [[T1]],[[T1]],0xffff
   1819 ; MIPS32: andi [[T1]],[[T1]],0x1
   1820 ; MIPS32: sll [[T0]],[[T0]],0x1f
   1821 ; MIPS32: sll [[T1]],[[T1]],0x1f
   1822 ; MIPS32: xor [[T0]],[[T0]],[[T1]]
   1823 ; MIPS32: sltu [[T0]],zero,[[T0]]
   1824 ; MIPS32: andi [[T0]],[[T0]],0xffff
   1825 ; MIPS32: srl [[T7]],[[T7]],0x10
   1826 ; MIPS32: sll [[T7]],[[T7]],0x10
   1827 ; MIPS32: or [[T0]],[[T0]],[[T7]]
   1828 ; MIPS32: srl [[T13:.*]],a3,0x10
   1829 ; MIPS32: andi [[T13]],[[T13]],0x1
   1830 ; MIPS32: srl [[T3]],[[T3]],0x10
   1831 ; MIPS32: andi [[T3]],[[T3]],0x1
   1832 ; MIPS32: sll [[T13]],[[T13]],0x1f
   1833 ; MIPS32: sll [[T3]],[[T3]],0x1f
   1834 ; MIPS32: xor [[T13]],[[T13]],[[T3]]
   1835 ; MIPS32: sltu [[T13]],zero,[[T13]]
   1836 ; MIPS32: sll [[T13]],[[T13]],0x10
   1837 ; MIPS32: sll [[T0]],[[T0]],0x10
   1838 ; MIPS32: srl [[T0]],[[T0]],0x10
   1839 ; MIPS32: or [[T13]],[[T13]],[[T0]]
   1840 ; MIPS32: move v0,[[T10]]
   1841 ; MIPS32: move v1,[[T11]]
   1842 ; MIPS32: move a0,[[T12]]
   1843 ; MIPS32: move a1,[[T13]]
   1844 }
   1845 
   1846 define internal <8 x i1> @test_icmp_v8i1_sgt(<8 x i1> %a, <8 x i1> %b) {
   1847 entry:
   1848   %res = icmp sgt <8 x i1> %a, %b
   1849   ret <8 x i1> %res
   1850 ; CHECK-LABEL: test_icmp_v8i1_sgt
   1851 ; CHECK: pcmpgtw
   1852 
   1853 ; MIPS32-LABEL: test_icmp_v8i1_sgt
   1854 ; MIPS32: lw [[T0:.*]],
   1855 ; MIPS32: lw [[T1:.*]],
   1856 ; MIPS32: lw [[T2:.*]],
   1857 ; MIPS32: lw [[T3:.*]],
   1858 ; MIPS32: move [[T4:.*]],zero
   1859 ; MIPS32: move [[T5:.*]],zero
   1860 ; MIPS32: move [[T6:.*]],zero
   1861 ; MIPS32: move [[T7:.*]],zero
   1862 ; MIPS32: move [[T8:.*]],a0
   1863 ; MIPS32: andi [[T8]],[[T8]],0xffff
   1864 ; MIPS32: andi [[T8]],[[T8]],0x1
   1865 ; MIPS32: move [[T9:.*]],[[T0]]
   1866 ; MIPS32: andi [[T9]],[[T9]],0xffff
   1867 ; MIPS32: andi [[T9]],[[T9]],0x1
   1868 ; MIPS32: sll [[T8]],[[T8]],0x1f
   1869 ; MIPS32: sll [[T9]],[[T9]],0x1f
   1870 ; MIPS32: slt [[T9]],[[T9]],[[T8]]
   1871 ; MIPS32: andi [[T9]],[[T9]],0xffff
   1872 ; MIPS32: srl [[T4]],[[T4]],0x10
   1873 ; MIPS32: sll [[T4]],[[T4]],0x10
   1874 ; MIPS32: or [[T9]],[[T9]],[[T4]]
   1875 ; MIPS32: srl [[T10:.*]],a0,0x10
   1876 ; MIPS32: andi [[T10]],[[T10]],0x1
   1877 ; MIPS32: srl [[T0]],[[T0]],0x10
   1878 ; MIPS32: andi [[T0]],[[T0]],0x1
   1879 ; MIPS32: sll [[T10]],[[T10]],0x1f
   1880 ; MIPS32: sll [[T0]],[[T0]],0x1f
   1881 ; MIPS32: slt [[T0]],[[T0]],[[T10]]
   1882 ; MIPS32: sll [[T0]],[[T0]],0x10
   1883 ; MIPS32: sll [[T9]],[[T9]],0x10
   1884 ; MIPS32: srl [[T9]],[[T9]],0x10
   1885 ; MIPS32: or v0,[[T0]],[[T9]]
   1886 ; MIPS32: move [[T10]],a1
   1887 ; MIPS32: andi [[T10]],[[T10]],0xffff
   1888 ; MIPS32: andi [[T10]],[[T10]],0x1
   1889 ; MIPS32: move [[T4]],[[T1]]
   1890 ; MIPS32: andi [[T4]],[[T4]],0xffff
   1891 ; MIPS32: andi [[T4]],[[T4]],0x1
   1892 ; MIPS32: sll [[T10]],[[T10]],0x1f
   1893 ; MIPS32: sll [[T4]],[[T4]],0x1f
   1894 ; MIPS32: slt [[T4]],[[T4]],[[T10]]
   1895 ; MIPS32: andi [[T4]],[[T4]],0xffff
   1896 ; MIPS32: srl [[T5]],[[T5]],0x10
   1897 ; MIPS32: sll [[T5]],[[T5]],0x10
   1898 ; MIPS32: or [[T4]],[[T4]],[[T5]]
   1899 ; MIPS32: srl [[T11:.*]],a1,0x10
   1900 ; MIPS32: andi [[T11]],[[T11]],0x1
   1901 ; MIPS32: srl [[T1]],[[T1]],0x10
   1902 ; MIPS32: andi [[T1]],[[T1]],0x1
   1903 ; MIPS32: sll [[T11]],[[T11]],0x1f
   1904 ; MIPS32: sll [[T1]],[[T1]],0x1f
   1905 ; MIPS32: slt [[T1]],[[T1]],[[T11]]
   1906 ; MIPS32: sll [[T1]],[[T1]],0x10
   1907 ; MIPS32: sll [[T4]],[[T4]],0x10
   1908 ; MIPS32: srl [[T4]],[[T4]],0x10
   1909 ; MIPS32: or v1,[[T1]],[[T4]]
   1910 ; MIPS32: move [[T10]],a2
   1911 ; MIPS32: andi [[T10]],[[T10]],0xffff
   1912 ; MIPS32: andi [[T10]],[[T10]],0x1
   1913 ; MIPS32: move [[T11]],[[T2]]
   1914 ; MIPS32: andi [[T11]],[[T11]],0xffff
   1915 ; MIPS32: andi [[T11]],[[T11]],0x1
   1916 ; MIPS32: sll [[T10]],[[T10]],0x1f
   1917 ; MIPS32: sll [[T11]],[[T11]],0x1f
   1918 ; MIPS32: slt [[T11]],[[T11]],[[T10]]
   1919 ; MIPS32: andi [[T11]],[[T11]],0xffff
   1920 ; MIPS32: srl [[T6]],[[T6]],0x10
   1921 ; MIPS32: sll [[T6]],[[T6]],0x10
   1922 ; MIPS32: or [[T11]],[[T11]],[[T6]]
   1923 ; MIPS32: srl [[T12:.*]],a2,0x10
   1924 ; MIPS32: andi [[T12]],[[T12]],0x1
   1925 ; MIPS32: srl [[T2]],[[T2]],0x10
   1926 ; MIPS32: andi [[T2]],[[T2]],0x1
   1927 ; MIPS32: sll [[T12]],[[T12]],0x1f
   1928 ; MIPS32: sll [[T2]],[[T2]],0x1f
   1929 ; MIPS32: slt [[T2]],[[T2]],[[T12]]
   1930 ; MIPS32: sll [[T2]],[[T2]],0x10
   1931 ; MIPS32: sll [[T11]],[[T11]],0x10
   1932 ; MIPS32: srl [[T11]],[[T11]],0x10
   1933 ; MIPS32: or [[T2]],[[T2]],[[T11]]
   1934 ; MIPS32: move [[T10]],a3
   1935 ; MIPS32: andi [[T10]],[[T10]],0xffff
   1936 ; MIPS32: andi [[T10]],[[T10]],0x1
   1937 ; MIPS32: move [[T11]],[[T3]]
   1938 ; MIPS32: andi [[T11]],[[T11]],0xffff
   1939 ; MIPS32: andi [[T11]],[[T11]],0x1
   1940 ; MIPS32: sll [[T10]],[[T10]],0x1f
   1941 ; MIPS32: sll [[T11]],[[T11]],0x1f
   1942 ; MIPS32: slt [[T11]],[[T11]],[[T10]]
   1943 ; MIPS32: andi [[T11]],[[T11]],0xffff
   1944 ; MIPS32: srl [[T7]],[[T7]],0x10
   1945 ; MIPS32: sll [[T7]],[[T7]],0x10
   1946 ; MIPS32: or [[T11]],[[T11]],[[T7]]
   1947 ; MIPS32: srl [[T13:.*]],a3,0x10
   1948 ; MIPS32: andi [[T13]],[[T13]],0x1
   1949 ; MIPS32: srl [[T3]],[[T3]],0x10
   1950 ; MIPS32: andi [[T3]],[[T3]],0x1
   1951 ; MIPS32: sll [[T13]],[[T13]],0x1f
   1952 ; MIPS32: sll [[T3]],[[T3]],0x1f
   1953 ; MIPS32: slt [[T3]],[[T3]],[[T13]]
   1954 ; MIPS32: sll [[T3]],[[T3]],0x10
   1955 ; MIPS32: sll [[T11]],[[T11]],0x10
   1956 ; MIPS32: srl [[T11]],[[T11]],0x10
   1957 ; MIPS32: or [[T3]],[[T3]],[[T11]]
   1958 ; MIPS32: move a0,[[T2]]
   1959 ; MIPS32: move a1,[[T3]]
   1960 }
   1961 
   1962 define internal <8 x i1> @test_icmp_v8i1_sle(<8 x i1> %a, <8 x i1> %b) {
   1963 entry:
   1964   %res = icmp sle <8 x i1> %a, %b
   1965   ret <8 x i1> %res
   1966 ; CHECK-LABEL: test_icmp_v8i1_sle
   1967 ; CHECK: pcmpgtw
   1968 ; CHECK: pxor
   1969 
   1970 ; MIPS32-LABEL: test_icmp_v8i1_sle
   1971 ; MIPS32: lw [[T0:.*]],
   1972 ; MIPS32: lw [[T1:.*]],
   1973 ; MIPS32: lw [[T2:.*]],
   1974 ; MIPS32: lw [[T3:.*]],
   1975 ; MIPS32: move [[T4:.*]],zero
   1976 ; MIPS32: move [[T5:.*]],zero
   1977 ; MIPS32: move [[T6:.*]],zero
   1978 ; MIPS32: move [[T7:.*]],zero
   1979 ; MIPS32: move [[T8:.*]],a0
   1980 ; MIPS32: andi [[T8]],[[T8]],0xffff
   1981 ; MIPS32: andi [[T8]],[[T8]],0x1
   1982 ; MIPS32: move [[T9:.*]],[[T0]]
   1983 ; MIPS32: andi [[T9]],[[T9]],0xffff
   1984 ; MIPS32: andi [[T9]],[[T9]],0x1
   1985 ; MIPS32: sll [[T8]],[[T8]],0x1f
   1986 ; MIPS32: sll [[T9]],[[T9]],0x1f
   1987 ; MIPS32: slt [[T9]],[[T9]],[[T8]]
   1988 ; MIPS32: xori [[T9]],[[T9]],0x1
   1989 ; MIPS32: andi [[T9]],[[T9]],0xffff
   1990 ; MIPS32: srl [[T4]],[[T4]],0x10
   1991 ; MIPS32: sll [[T4]],[[T4]],0x10
   1992 ; MIPS32: or [[T9]],[[T9]],[[T4]]
   1993 ; MIPS32: srl [[T10:.*]],a0,0x10
   1994 ; MIPS32: andi [[T10]],[[T10]],0x1
   1995 ; MIPS32: srl [[T0]],[[T0]],0x10
   1996 ; MIPS32: andi [[T0]],[[T0]],0x1
   1997 ; MIPS32: sll [[T10]],[[T10]],0x1f
   1998 ; MIPS32: sll [[T0]],[[T0]],0x1f
   1999 ; MIPS32: slt [[T0]],[[T0]],[[T10]]
   2000 ; MIPS32: xori [[T0]],[[T0]],0x1
   2001 ; MIPS32: sll [[T0]],[[T0]],0x10
   2002 ; MIPS32: sll [[T9]],[[T9]],0x10
   2003 ; MIPS32: srl [[T9]],[[T9]],0x10
   2004 ; MIPS32: or v0,[[T0]],[[T9]]
   2005 ; MIPS32: move [[T10]],a1
   2006 ; MIPS32: andi [[T10]],[[T10]],0xffff
   2007 ; MIPS32: andi [[T10]],[[T10]],0x1
   2008 ; MIPS32: move [[T4]],[[T1]]
   2009 ; MIPS32: andi [[T4]],[[T4]],0xffff
   2010 ; MIPS32: andi [[T4]],[[T4]],0x1
   2011 ; MIPS32: sll [[T10]],[[T10]],0x1f
   2012 ; MIPS32: sll [[T4]],[[T4]],0x1f
   2013 ; MIPS32: slt [[T4]],[[T4]],[[T10]]
   2014 ; MIPS32: xori [[T4]],[[T4]],0x1
   2015 ; MIPS32: andi [[T4]],[[T4]],0xffff
   2016 ; MIPS32: srl [[T5]],[[T5]],0x10
   2017 ; MIPS32: sll [[T5]],[[T5]],0x10
   2018 ; MIPS32: or [[T4]],[[T4]],[[T5]]
   2019 ; MIPS32: srl [[T11:.*]],a1,0x10
   2020 ; MIPS32: andi [[T11]],[[T11]],0x1
   2021 ; MIPS32: srl [[T1]],[[T1]],0x10
   2022 ; MIPS32: andi [[T1]],[[T1]],0x1
   2023 ; MIPS32: sll [[T11]],[[T11]],0x1f
   2024 ; MIPS32: sll [[T1]],[[T1]],0x1f
   2025 ; MIPS32: slt [[T1]],[[T1]],[[T11]]
   2026 ; MIPS32: xori [[T1]],[[T1]],0x1
   2027 ; MIPS32: sll [[T1]],[[T1]],0x10
   2028 ; MIPS32: sll [[T4]],[[T4]],0x10
   2029 ; MIPS32: srl [[T4]],[[T4]],0x10
   2030 ; MIPS32: or v1,[[T1]],[[T4]]
   2031 ; MIPS32: move [[T10]],a2
   2032 ; MIPS32: andi [[T10]],[[T10]],0xffff
   2033 ; MIPS32: andi [[T10]],[[T10]],0x1
   2034 ; MIPS32: move [[T11]],[[T2]]
   2035 ; MIPS32: andi [[T11]],[[T11]],0xffff
   2036 ; MIPS32: andi [[T11]],[[T11]],0x1
   2037 ; MIPS32: sll [[T10]],[[T10]],0x1f
   2038 ; MIPS32: sll [[T11]],[[T11]],0x1f
   2039 ; MIPS32: slt [[T11]],[[T11]],[[T10]]
   2040 ; MIPS32: xori [[T11]],[[T11]],0x1
   2041 ; MIPS32: andi [[T11]],[[T11]],0xffff
   2042 ; MIPS32: srl [[T6]],[[T6]],0x10
   2043 ; MIPS32: sll [[T6]],[[T6]],0x10
   2044 ; MIPS32: or [[T11]],[[T11]],[[T6]]
   2045 ; MIPS32: srl [[T12:.*]],a2,0x10
   2046 ; MIPS32: andi [[T12]],[[T12]],0x1
   2047 ; MIPS32: srl [[T2]],[[T2]],0x10
   2048 ; MIPS32: andi [[T2]],[[T2]],0x1
   2049 ; MIPS32: sll [[T12]],[[T12]],0x1f
   2050 ; MIPS32: sll [[T2]],[[T2]],0x1f
   2051 ; MIPS32: slt [[T2]],[[T2]],[[T12]]
   2052 ; MIPS32: xori [[T2]],[[T2]],0x1
   2053 ; MIPS32: sll [[T2]],[[T2]],0x10
   2054 ; MIPS32: sll [[T11]],[[T11]],0x10
   2055 ; MIPS32: srl [[T11]],[[T11]],0x10
   2056 ; MIPS32: or [[T2]],[[T2]],[[T11]]
   2057 ; MIPS32: move [[T10]],a3
   2058 ; MIPS32: andi [[T10]],[[T10]],0xffff
   2059 ; MIPS32: andi [[T10]],[[T10]],0x1
   2060 ; MIPS32: move [[T11]],[[T3]]
   2061 ; MIPS32: andi [[T11]],[[T11]],0xffff
   2062 ; MIPS32: andi [[T11]],[[T11]],0x1
   2063 ; MIPS32: sll [[T10]],[[T10]],0x1f
   2064 ; MIPS32: sll [[T11]],[[T11]],0x1f
   2065 ; MIPS32: slt [[T11]],[[T11]],[[T10]]
   2066 ; MIPS32: xori [[T11]],[[T11]],0x1
   2067 ; MIPS32: andi [[T11]],[[T11]],0xffff
   2068 ; MIPS32: srl [[T7]],[[T7]],0x10
   2069 ; MIPS32: sll [[T7]],[[T7]],0x10
   2070 ; MIPS32: or [[T11]],[[T11]],[[T7]]
   2071 ; MIPS32: srl [[T13:.*]],a3,0x10
   2072 ; MIPS32: andi [[T13]],[[T13]],0x1
   2073 ; MIPS32: srl [[T3]],[[T3]],0x10
   2074 ; MIPS32: andi [[T3]],[[T3]],0x1
   2075 ; MIPS32: sll [[T13]],[[T13]],0x1f
   2076 ; MIPS32: sll [[T3]],[[T3]],0x1f
   2077 ; MIPS32: slt [[T3]],[[T3]],[[T13]]
   2078 ; MIPS32: xori [[T3]],[[T3]],0x1
   2079 ; MIPS32: sll [[T3]],[[T3]],0x10
   2080 ; MIPS32: sll [[T11]],[[T11]],0x10
   2081 ; MIPS32: srl [[T11]],[[T11]],0x10
   2082 ; MIPS32: or [[T3]],[[T3]],[[T11]]
   2083 ; MIPS32: move a0,[[T2]]
   2084 ; MIPS32: move a1,[[T3]]
   2085 }
   2086 
   2087 define internal <8 x i1> @test_icmp_v8i1_slt(<8 x i1> %a, <8 x i1> %b) {
   2088 entry:
   2089   %res = icmp slt <8 x i1> %a, %b
   2090   ret <8 x i1> %res
   2091 ; CHECK-LABEL: test_icmp_v8i1_slt
   2092 ; CHECK: pcmpgtw
   2093 
   2094 ; MIPS32-LABEL: test_icmp_v8i1_slt
   2095 ; MIPS32: lw [[T0:.*]],
   2096 ; MIPS32: lw [[T1:.*]],
   2097 ; MIPS32: lw [[T2:.*]],
   2098 ; MIPS32: lw [[T3:.*]],
   2099 ; MIPS32: move [[T4:.*]],zero
   2100 ; MIPS32: move [[T5:.*]],zero
   2101 ; MIPS32: move [[T6:.*]],zero
   2102 ; MIPS32: move [[T7:.*]],zero
   2103 ; MIPS32: move [[T8:.*]],a0
   2104 ; MIPS32: andi [[T8]],[[T8]],0xffff
   2105 ; MIPS32: andi [[T8]],[[T8]],0x1
   2106 ; MIPS32: move [[T9:.*]],[[T0]]
   2107 ; MIPS32: andi [[T9]],[[T9]],0xffff
   2108 ; MIPS32: andi [[T9]],[[T9]],0x1
   2109 ; MIPS32: sll [[T8]],[[T8]],0x1f
   2110 ; MIPS32: sll [[T9]],[[T9]],0x1f
   2111 ; MIPS32: slt [[T8]],[[T8]],[[T9]]
   2112 ; MIPS32: andi [[T8]],[[T8]],0xffff
   2113 ; MIPS32: srl [[T4]],[[T4]],0x10
   2114 ; MIPS32: sll [[T4]],[[T4]],0x10
   2115 ; MIPS32: or [[T8]],[[T8]],[[T4]]
   2116 ; MIPS32: srl [[T10:.*]],a0,0x10
   2117 ; MIPS32: andi [[T10]],[[T10]],0x1
   2118 ; MIPS32: srl [[T0]],[[T0]],0x10
   2119 ; MIPS32: andi [[T0]],[[T0]],0x1
   2120 ; MIPS32: sll [[T10]],[[T10]],0x1f
   2121 ; MIPS32: sll [[T0]],[[T0]],0x1f
   2122 ; MIPS32: slt [[T10]],[[T10]],[[T0]]
   2123 ; MIPS32: sll [[T10]],[[T10]],0x10
   2124 ; MIPS32: sll [[T8]],[[T8]],0x10
   2125 ; MIPS32: srl [[T8]],[[T8]],0x10
   2126 ; MIPS32: or [[T10]],[[T10]],[[T8]]
   2127 ; MIPS32: move [[T0]],a1
   2128 ; MIPS32: andi [[T0]],[[T0]],0xffff
   2129 ; MIPS32: andi [[T0]],[[T0]],0x1
   2130 ; MIPS32: move [[T4]],[[T1]]
   2131 ; MIPS32: andi [[T4]],[[T4]],0xffff
   2132 ; MIPS32: andi [[T4]],[[T4]],0x1
   2133 ; MIPS32: sll [[T0]],[[T0]],0x1f
   2134 ; MIPS32: sll [[T4]],[[T4]],0x1f
   2135 ; MIPS32: slt [[T0]],[[T0]],[[T4]]
   2136 ; MIPS32: andi [[T0]],[[T0]],0xffff
   2137 ; MIPS32: srl [[T5]],[[T5]],0x10
   2138 ; MIPS32: sll [[T5]],[[T5]],0x10
   2139 ; MIPS32: or [[T0]],[[T0]],[[T5]]
   2140 ; MIPS32: srl [[T11:.*]],a1,0x10
   2141 ; MIPS32: andi [[T11]],[[T11]],0x1
   2142 ; MIPS32: srl [[T1]],[[T1]],0x10
   2143 ; MIPS32: andi [[T1]],[[T1]],0x1
   2144 ; MIPS32: sll [[T11]],[[T11]],0x1f
   2145 ; MIPS32: sll [[T1]],[[T1]],0x1f
   2146 ; MIPS32: slt [[T11]],[[T11]],[[T1]]
   2147 ; MIPS32: sll [[T11]],[[T11]],0x10
   2148 ; MIPS32: sll [[T0]],[[T0]],0x10
   2149 ; MIPS32: srl [[T0]],[[T0]],0x10
   2150 ; MIPS32: or [[T11]],[[T11]],[[T0]]
   2151 ; MIPS32: move [[T0]],a2
   2152 ; MIPS32: andi [[T0]],[[T0]],0xffff
   2153 ; MIPS32: andi [[T0]],[[T0]],0x1
   2154 ; MIPS32: move [[T1]],[[T2]]
   2155 ; MIPS32: andi [[T1]],[[T1]],0xffff
   2156 ; MIPS32: andi [[T1]],[[T1]],0x1
   2157 ; MIPS32: sll [[T0]],[[T0]],0x1f
   2158 ; MIPS32: sll [[T1]],[[T1]],0x1f
   2159 ; MIPS32: slt [[T0]],[[T0]],[[T1]]
   2160 ; MIPS32: andi [[T0]],[[T0]],0xffff
   2161 ; MIPS32: srl [[T6]],[[T6]],0x10
   2162 ; MIPS32: sll [[T6]],[[T6]],0x10
   2163 ; MIPS32: or [[T0]],[[T0]],[[T6]]
   2164 ; MIPS32: srl [[T12:.*]],a2,0x10
   2165 ; MIPS32: andi [[T12]],[[T12]],0x1
   2166 ; MIPS32: srl [[T2]],[[T2]],0x10
   2167 ; MIPS32: andi [[T2]],[[T2]],0x1
   2168 ; MIPS32: sll [[T12]],[[T12]],0x1f
   2169 ; MIPS32: sll [[T2]],[[T2]],0x1f
   2170 ; MIPS32: slt [[T12]],[[T12]],[[T2]]
   2171 ; MIPS32: sll [[T12]],[[T12]],0x10
   2172 ; MIPS32: sll [[T0]],[[T0]],0x10
   2173 ; MIPS32: srl [[T0]],[[T0]],0x10
   2174 ; MIPS32: or [[T12]],[[T12]],[[T0]]
   2175 ; MIPS32: move [[T0]],a3
   2176 ; MIPS32: andi [[T0]],[[T0]],0xffff
   2177 ; MIPS32: andi [[T0]],[[T0]],0x1
   2178 ; MIPS32: move [[T1]],[[T3]]
   2179 ; MIPS32: andi [[T1]],[[T1]],0xffff
   2180 ; MIPS32: andi [[T1]],[[T1]],0x1
   2181 ; MIPS32: sll [[T0]],[[T0]],0x1f
   2182 ; MIPS32: sll [[T1]],[[T1]],0x1f
   2183 ; MIPS32: slt [[T0]],[[T0]],[[T1]]
   2184 ; MIPS32: andi [[T0]],[[T0]],0xffff
   2185 ; MIPS32: srl [[T7]],[[T7]],0x10
   2186 ; MIPS32: sll [[T7]],[[T7]],0x10
   2187 ; MIPS32: or [[T0]],[[T0]],[[T7]]
   2188 ; MIPS32: srl [[T13:.*]],a3,0x10
   2189 ; MIPS32: andi [[T13]],[[T13]],0x1
   2190 ; MIPS32: srl [[T3]],[[T3]],0x10
   2191 ; MIPS32: andi [[T3]],[[T3]],0x1
   2192 ; MIPS32: sll [[T13]],[[T13]],0x1f
   2193 ; MIPS32: sll [[T3]],[[T3]],0x1f
   2194 ; MIPS32: slt [[T13]],[[T13]],[[T3]]
   2195 ; MIPS32: sll [[T13]],[[T13]],0x10
   2196 ; MIPS32: sll [[T0]],[[T0]],0x10
   2197 ; MIPS32: srl [[T0]],[[T0]],0x10
   2198 ; MIPS32: or [[T13]],[[T13]],[[T0]]
   2199 ; MIPS32: move v0,[[T10]]
   2200 ; MIPS32: move v1,[[T11]]
   2201 ; MIPS32: move a0,[[T12]]
   2202 ; MIPS32: move a1,[[T13]]
   2203 }
   2204 
   2205 define internal <8 x i1> @test_icmp_v8i1_uge(<8 x i1> %a, <8 x i1> %b) {
   2206 entry:
   2207   %res = icmp uge <8 x i1> %a, %b
   2208   ret <8 x i1> %res
   2209 ; CHECK-LABEL: test_icmp_v8i1_uge
   2210 ; CHECK: pxor
   2211 ; CHECK: pcmpgtw
   2212 ; CHECK: pxor
   2213 
   2214 ; MIPS32-LABEL: test_icmp_v8i1_uge
   2215 ; MIPS32: lw [[T0:.*]],
   2216 ; MIPS32: lw [[T1:.*]],
   2217 ; MIPS32: lw [[T2:.*]],
   2218 ; MIPS32: lw [[T3:.*]],
   2219 ; MIPS32: move [[T4:.*]],zero
   2220 ; MIPS32: move [[T5:.*]],zero
   2221 ; MIPS32: move [[T6:.*]],zero
   2222 ; MIPS32: move [[T7:.*]],zero
   2223 ; MIPS32: move [[T8:.*]],a0
   2224 ; MIPS32: andi [[T8]],[[T8]],0xffff
   2225 ; MIPS32: andi [[T8]],[[T8]],0x1
   2226 ; MIPS32: move [[T9:.*]],[[T0]]
   2227 ; MIPS32: andi [[T9]],[[T9]],0xffff
   2228 ; MIPS32: andi [[T9]],[[T9]],0x1
   2229 ; MIPS32: sll [[T8]],[[T8]],0x1f
   2230 ; MIPS32: sll [[T9]],[[T9]],0x1f
   2231 ; MIPS32: sltu [[T8]],[[T8]],[[T9]]
   2232 ; MIPS32: xori [[T8]],[[T8]],0x1
   2233 ; MIPS32: andi [[T8]],[[T8]],0xffff
   2234 ; MIPS32: srl [[T4]],[[T4]],0x10
   2235 ; MIPS32: sll [[T4]],[[T4]],0x10
   2236 ; MIPS32: or [[T8]],[[T8]],[[T4]]
   2237 ; MIPS32: srl [[T10:.*]],a0,0x10
   2238 ; MIPS32: andi [[T10]],[[T10]],0x1
   2239 ; MIPS32: srl [[T0]],[[T0]],0x10
   2240 ; MIPS32: andi [[T0]],[[T0]],0x1
   2241 ; MIPS32: sll [[T10]],[[T10]],0x1f
   2242 ; MIPS32: sll [[T0]],[[T0]],0x1f
   2243 ; MIPS32: sltu [[T10]],[[T10]],[[T0]]
   2244 ; MIPS32: xori [[T10]],[[T10]],0x1
   2245 ; MIPS32: sll [[T10]],[[T10]],0x10
   2246 ; MIPS32: sll [[T8]],[[T8]],0x10
   2247 ; MIPS32: srl [[T8]],[[T8]],0x10
   2248 ; MIPS32: or [[T10]],[[T10]],[[T8]]
   2249 ; MIPS32: move [[T0]],a1
   2250 ; MIPS32: andi [[T0]],[[T0]],0xffff
   2251 ; MIPS32: andi [[T0]],[[T0]],0x1
   2252 ; MIPS32: move [[T4]],[[T1]]
   2253 ; MIPS32: andi [[T4]],[[T4]],0xffff
   2254 ; MIPS32: andi [[T4]],[[T4]],0x1
   2255 ; MIPS32: sll [[T0]],[[T0]],0x1f
   2256 ; MIPS32: sll [[T4]],[[T4]],0x1f
   2257 ; MIPS32: sltu [[T0]],[[T0]],[[T4]]
   2258 ; MIPS32: xori [[T0]],[[T0]],0x1
   2259 ; MIPS32: andi [[T0]],[[T0]],0xffff
   2260 ; MIPS32: srl [[T5]],[[T5]],0x10
   2261 ; MIPS32: sll [[T5]],[[T5]],0x10
   2262 ; MIPS32: or [[T0]],[[T0]],[[T5]]
   2263 ; MIPS32: srl [[T11:.*]],a1,0x10
   2264 ; MIPS32: andi [[T11]],[[T11]],0x1
   2265 ; MIPS32: srl [[T1]],[[T1]],0x10
   2266 ; MIPS32: andi [[T1]],[[T1]],0x1
   2267 ; MIPS32: sll [[T11]],[[T11]],0x1f
   2268 ; MIPS32: sll [[T1]],[[T1]],0x1f
   2269 ; MIPS32: sltu [[T11]],[[T11]],[[T1]]
   2270 ; MIPS32: xori [[T11]],[[T11]],0x1
   2271 ; MIPS32: sll [[T11]],[[T11]],0x10
   2272 ; MIPS32: sll [[T0]],[[T0]],0x10
   2273 ; MIPS32: srl [[T0]],[[T0]],0x10
   2274 ; MIPS32: or [[T11]],[[T11]],[[T0]]
   2275 ; MIPS32: move [[T0]],a2
   2276 ; MIPS32: andi [[T0]],[[T0]],0xffff
   2277 ; MIPS32: andi [[T0]],[[T0]],0x1
   2278 ; MIPS32: move [[T1]],[[T2]]
   2279 ; MIPS32: andi [[T1]],[[T1]],0xffff
   2280 ; MIPS32: andi [[T1]],[[T1]],0x1
   2281 ; MIPS32: sll [[T0]],[[T0]],0x1f
   2282 ; MIPS32: sll [[T1]],[[T1]],0x1f
   2283 ; MIPS32: sltu [[T0]],[[T0]],[[T1]]
   2284 ; MIPS32: xori [[T0]],[[T0]],0x1
   2285 ; MIPS32: andi [[T0]],[[T0]],0xffff
   2286 ; MIPS32: srl [[T6]],[[T6]],0x10
   2287 ; MIPS32: sll [[T6]],[[T6]],0x10
   2288 ; MIPS32: or [[T0]],[[T0]],[[T6]]
   2289 ; MIPS32: srl [[T12:.*]],a2,0x10
   2290 ; MIPS32: andi [[T12]],[[T12]],0x1
   2291 ; MIPS32: srl [[T2]],[[T2]],0x10
   2292 ; MIPS32: andi [[T2]],[[T2]],0x1
   2293 ; MIPS32: sll [[T12]],[[T12]],0x1f
   2294 ; MIPS32: sll [[T2]],[[T2]],0x1f
   2295 ; MIPS32: sltu [[T12]],[[T12]],[[T2]]
   2296 ; MIPS32: xori [[T12]],[[T12]],0x1
   2297 ; MIPS32: sll [[T12]],[[T12]],0x10
   2298 ; MIPS32: sll [[T0]],[[T0]],0x10
   2299 ; MIPS32: srl [[T0]],[[T0]],0x10
   2300 ; MIPS32: or [[T12]],[[T12]],[[T0]]
   2301 ; MIPS32: move [[T0]],a3
   2302 ; MIPS32: andi [[T0]],[[T0]],0xffff
   2303 ; MIPS32: andi [[T0]],[[T0]],0x1
   2304 ; MIPS32: move [[T1]],[[T3]]
   2305 ; MIPS32: andi [[T1]],[[T1]],0xffff
   2306 ; MIPS32: andi [[T1]],[[T1]],0x1
   2307 ; MIPS32: sll [[T0]],[[T0]],0x1f
   2308 ; MIPS32: sll [[T1]],[[T1]],0x1f
   2309 ; MIPS32: sltu [[T0]],[[T0]],[[T1]]
   2310 ; MIPS32: xori [[T0]],[[T0]],0x1
   2311 ; MIPS32: andi [[T0]],[[T0]],0xffff
   2312 ; MIPS32: srl [[T7]],[[T7]],0x10
   2313 ; MIPS32: sll [[T7]],[[T7]],0x10
   2314 ; MIPS32: or [[T0]],[[T0]],[[T7]]
   2315 ; MIPS32: srl [[T13:.*]],a3,0x10
   2316 ; MIPS32: andi [[T13]],[[T13]],0x1
   2317 ; MIPS32: srl [[T3]],[[T3]],0x10
   2318 ; MIPS32: andi [[T3]],[[T3]],0x1
   2319 ; MIPS32: sll [[T13]],[[T13]],0x1f
   2320 ; MIPS32: sll [[T3]],[[T3]],0x1f
   2321 ; MIPS32: sltu [[T13]],[[T13]],[[T3]]
   2322 ; MIPS32: xori [[T13]],[[T13]],0x1
   2323 ; MIPS32: sll [[T13]],[[T13]],0x10
   2324 ; MIPS32: sll [[T0]],[[T0]],0x10
   2325 ; MIPS32: srl [[T0]],[[T0]],0x10
   2326 ; MIPS32: or [[T13]],[[T13]],[[T0]]
   2327 ; MIPS32: move v0,[[T10]]
   2328 ; MIPS32: move v1,[[T11]]
   2329 ; MIPS32: move a0,[[T12]]
   2330 ; MIPS32: move a1,[[T13]]
   2331 }
   2332 
   2333 define internal <8 x i1> @test_icmp_v8i1_ugt(<8 x i1> %a, <8 x i1> %b) {
   2334 entry:
   2335   %res = icmp ugt <8 x i1> %a, %b
   2336   ret <8 x i1> %res
   2337 ; CHECK-LABEL: test_icmp_v8i1_ugt
   2338 ; CHECK: pxor
   2339 ; CHECK: pcmpgtw
   2340 
   2341 ; MIPS32-LABEL: test_icmp_v8i1_ugt
   2342 ; MIPS32: lw [[T0:.*]],
   2343 ; MIPS32: lw [[T1:.*]],
   2344 ; MIPS32: lw [[T2:.*]],
   2345 ; MIPS32: lw [[T3:.*]],
   2346 ; MIPS32: move [[T4:.*]],zero
   2347 ; MIPS32: move [[T5:.*]],zero
   2348 ; MIPS32: move [[T6:.*]],zero
   2349 ; MIPS32: move [[T7:.*]],zero
   2350 ; MIPS32: move [[T8:.*]],a0
   2351 ; MIPS32: andi [[T8]],[[T8]],0xffff
   2352 ; MIPS32: andi [[T8]],[[T8]],0x1
   2353 ; MIPS32: move [[T9:.*]],[[T0]]
   2354 ; MIPS32: andi [[T9]],[[T9]],0xffff
   2355 ; MIPS32: andi [[T9]],[[T9]],0x1
   2356 ; MIPS32: sll [[T8]],[[T8]],0x1f
   2357 ; MIPS32: sll [[T9]],[[T9]],0x1f
   2358 ; MIPS32: sltu [[T9]],[[T9]],[[T8]]
   2359 ; MIPS32: andi [[T9]],[[T9]],0xffff
   2360 ; MIPS32: srl [[T4]],[[T4]],0x10
   2361 ; MIPS32: sll [[T4]],[[T4]],0x10
   2362 ; MIPS32: or [[T9]],[[T9]],[[T4]]
   2363 ; MIPS32: srl [[T10:.*]],a0,0x10
   2364 ; MIPS32: andi [[T10]],[[T10]],0x1
   2365 ; MIPS32: srl [[T0]],[[T0]],0x10
   2366 ; MIPS32: andi [[T0]],[[T0]],0x1
   2367 ; MIPS32: sll [[T10]],[[T10]],0x1f
   2368 ; MIPS32: sll [[T0]],[[T0]],0x1f
   2369 ; MIPS32: sltu [[T0]],[[T0]],[[T10]]
   2370 ; MIPS32: sll [[T0]],[[T0]],0x10
   2371 ; MIPS32: sll [[T9]],[[T9]],0x10
   2372 ; MIPS32: srl [[T9]],[[T9]],0x10
   2373 ; MIPS32: or v0,[[T0]],[[T9]]
   2374 ; MIPS32: move [[T10]],a1
   2375 ; MIPS32: andi [[T10]],[[T10]],0xffff
   2376 ; MIPS32: andi [[T10]],[[T10]],0x1
   2377 ; MIPS32: move [[T4]],[[T1]]
   2378 ; MIPS32: andi [[T4]],[[T4]],0xffff
   2379 ; MIPS32: andi [[T4]],[[T4]],0x1
   2380 ; MIPS32: sll [[T10]],[[T10]],0x1f
   2381 ; MIPS32: sll [[T4]],[[T4]],0x1f
   2382 ; MIPS32: sltu [[T4]],[[T4]],[[T10]]
   2383 ; MIPS32: andi [[T4]],[[T4]],0xffff
   2384 ; MIPS32: srl [[T5]],[[T5]],0x10
   2385 ; MIPS32: sll [[T5]],[[T5]],0x10
   2386 ; MIPS32: or [[T4]],[[T4]],[[T5]]
   2387 ; MIPS32: srl [[T11:.*]],a1,0x10
   2388 ; MIPS32: andi [[T11]],[[T11]],0x1
   2389 ; MIPS32: srl [[T1]],[[T1]],0x10
   2390 ; MIPS32: andi [[T1]],[[T1]],0x1
   2391 ; MIPS32: sll [[T11]],[[T11]],0x1f
   2392 ; MIPS32: sll [[T1]],[[T1]],0x1f
   2393 ; MIPS32: sltu [[T1]],[[T1]],[[T11]]
   2394 ; MIPS32: sll [[T1]],[[T1]],0x10
   2395 ; MIPS32: sll [[T4]],[[T4]],0x10
   2396 ; MIPS32: srl [[T4]],[[T4]],0x10
   2397 ; MIPS32: or v1,[[T1]],[[T4]]
   2398 ; MIPS32: move [[T10]],a2
   2399 ; MIPS32: andi [[T10]],[[T10]],0xffff
   2400 ; MIPS32: andi [[T10]],[[T10]],0x1
   2401 ; MIPS32: move [[T11]],[[T2]]
   2402 ; MIPS32: andi [[T11]],[[T11]],0xffff
   2403 ; MIPS32: andi [[T11]],[[T11]],0x1
   2404 ; MIPS32: sll [[T10]],[[T10]],0x1f
   2405 ; MIPS32: sll [[T11]],[[T11]],0x1f
   2406 ; MIPS32: sltu [[T11]],[[T11]],[[T10]]
   2407 ; MIPS32: andi [[T11]],[[T11]],0xffff
   2408 ; MIPS32: srl [[T6]],[[T6]],0x10
   2409 ; MIPS32: sll [[T6]],[[T6]],0x10
   2410 ; MIPS32: or [[T11]],[[T11]],[[T6]]
   2411 ; MIPS32: srl [[T12:.*]],a2,0x10
   2412 ; MIPS32: andi [[T12]],[[T12]],0x1
   2413 ; MIPS32: srl [[T2]],[[T2]],0x10
   2414 ; MIPS32: andi [[T2]],[[T2]],0x1
   2415 ; MIPS32: sll [[T12]],[[T12]],0x1f
   2416 ; MIPS32: sll [[T2]],[[T2]],0x1f
   2417 ; MIPS32: sltu [[T2]],[[T2]],[[T12]]
   2418 ; MIPS32: sll [[T2]],[[T2]],0x10
   2419 ; MIPS32: sll [[T11]],[[T11]],0x10
   2420 ; MIPS32: srl [[T11]],[[T11]],0x10
   2421 ; MIPS32: or [[T2]],[[T2]],[[T11]]
   2422 ; MIPS32: move [[T10]],a3
   2423 ; MIPS32: andi [[T10]],[[T10]],0xffff
   2424 ; MIPS32: andi [[T10]],[[T10]],0x1
   2425 ; MIPS32: move [[T11]],[[T3]]
   2426 ; MIPS32: andi [[T11]],[[T11]],0xffff
   2427 ; MIPS32: andi [[T11]],[[T11]],0x1
   2428 ; MIPS32: sll [[T10]],[[T10]],0x1f
   2429 ; MIPS32: sll [[T11]],[[T11]],0x1f
   2430 ; MIPS32: sltu [[T11]],[[T11]],[[T10]]
   2431 ; MIPS32: andi [[T11]],[[T11]],0xffff
   2432 ; MIPS32: srl [[T7]],[[T7]],0x10
   2433 ; MIPS32: sll [[T7]],[[T7]],0x10
   2434 ; MIPS32: or [[T11]],[[T11]],[[T7]]
   2435 ; MIPS32: srl [[T13:.*]],a3,0x10
   2436 ; MIPS32: andi [[T13]],[[T13]],0x1
   2437 ; MIPS32: srl [[T3]],[[T3]],0x10
   2438 ; MIPS32: andi [[T3]],[[T3]],0x1
   2439 ; MIPS32: sll [[T13]],[[T13]],0x1f
   2440 ; MIPS32: sll [[T3]],[[T3]],0x1f
   2441 ; MIPS32: sltu [[T3]],[[T3]],[[T13]]
   2442 ; MIPS32: sll [[T3]],[[T3]],0x10
   2443 ; MIPS32: sll [[T11]],[[T11]],0x10
   2444 ; MIPS32: srl [[T11]],[[T11]],0x10
   2445 ; MIPS32: or [[T3]],[[T3]],[[T11]]
   2446 ; MIPS32: move a0,[[T2]]
   2447 ; MIPS32: move a1,[[T3]]
   2448 }
   2449 
   2450 define internal <8 x i1> @test_icmp_v8i1_ule(<8 x i1> %a, <8 x i1> %b) {
   2451 entry:
   2452   %res = icmp ule <8 x i1> %a, %b
   2453   ret <8 x i1> %res
   2454 ; CHECK-LABEL: test_icmp_v8i1_ule
   2455 ; CHECK: pxor
   2456 ; CHECK: pcmpgtw
   2457 ; CHECK: pxor
   2458 
   2459 ; MIPS32-LABEL: test_icmp_v8i1_ule
   2460 ; MIPS32: lw [[T0:.*]],
   2461 ; MIPS32: lw [[T1:.*]],
   2462 ; MIPS32: lw [[T2:.*]],
   2463 ; MIPS32: lw [[T3:.*]],
   2464 ; MIPS32: move [[T4:.*]],zero
   2465 ; MIPS32: move [[T5:.*]],zero
   2466 ; MIPS32: move [[T6:.*]],zero
   2467 ; MIPS32: move [[T7:.*]],zero
   2468 ; MIPS32: move [[T8:.*]],a0
   2469 ; MIPS32: andi [[T8]],[[T8]],0xffff
   2470 ; MIPS32: andi [[T8]],[[T8]],0x1
   2471 ; MIPS32: move [[T9:.*]],[[T0]]
   2472 ; MIPS32: andi [[T9]],[[T9]],0xffff
   2473 ; MIPS32: andi [[T9]],[[T9]],0x1
   2474 ; MIPS32: sll [[T8]],[[T8]],0x1f
   2475 ; MIPS32: sll [[T9]],[[T9]],0x1f
   2476 ; MIPS32: sltu [[T9]],[[T9]],[[T8]]
   2477 ; MIPS32: xori [[T9]],[[T9]],0x1
   2478 ; MIPS32: andi [[T9]],[[T9]],0xffff
   2479 ; MIPS32: srl [[T4]],[[T4]],0x10
   2480 ; MIPS32: sll [[T4]],[[T4]],0x10
   2481 ; MIPS32: or [[T9]],[[T9]],[[T4]]
   2482 ; MIPS32: srl [[T10:.*]],a0,0x10
   2483 ; MIPS32: andi [[T10]],[[T10]],0x1
   2484 ; MIPS32: srl [[T0]],[[T0]],0x10
   2485 ; MIPS32: andi [[T0]],[[T0]],0x1
   2486 ; MIPS32: sll [[T10]],[[T10]],0x1f
   2487 ; MIPS32: sll [[T0]],[[T0]],0x1f
   2488 ; MIPS32: sltu [[T0]],[[T0]],[[T10]]
   2489 ; MIPS32: xori [[T0]],[[T0]],0x1
   2490 ; MIPS32: sll [[T0]],[[T0]],0x10
   2491 ; MIPS32: sll [[T9]],[[T9]],0x10
   2492 ; MIPS32: srl [[T9]],[[T9]],0x10
   2493 ; MIPS32: or v0,[[T0]],[[T9]]
   2494 ; MIPS32: move [[T10]],a1
   2495 ; MIPS32: andi [[T10]],[[T10]],0xffff
   2496 ; MIPS32: andi [[T10]],[[T10]],0x1
   2497 ; MIPS32: move [[T4]],[[T1]]
   2498 ; MIPS32: andi [[T4]],[[T4]],0xffff
   2499 ; MIPS32: andi [[T4]],[[T4]],0x1
   2500 ; MIPS32: sll [[T10]],[[T10]],0x1f
   2501 ; MIPS32: sll [[T4]],[[T4]],0x1f
   2502 ; MIPS32: sltu [[T4]],[[T4]],[[T10]]
   2503 ; MIPS32: xori [[T4]],[[T4]],0x1
   2504 ; MIPS32: andi [[T4]],[[T4]],0xffff
   2505 ; MIPS32: srl [[T5]],[[T5]],0x10
   2506 ; MIPS32: sll [[T5]],[[T5]],0x10
   2507 ; MIPS32: or [[T4]],[[T4]],[[T5]]
   2508 ; MIPS32: srl [[T11:.*]],a1,0x10
   2509 ; MIPS32: andi [[T11]],[[T11]],0x1
   2510 ; MIPS32: srl [[T1]],[[T1]],0x10
   2511 ; MIPS32: andi [[T1]],[[T1]],0x1
   2512 ; MIPS32: sll [[T11]],[[T11]],0x1f
   2513 ; MIPS32: sll [[T1]],[[T1]],0x1f
   2514 ; MIPS32: sltu [[T1]],[[T1]],[[T11]]
   2515 ; MIPS32: xori [[T1]],[[T1]],0x1
   2516 ; MIPS32: sll [[T1]],[[T1]],0x10
   2517 ; MIPS32: sll [[T4]],[[T4]],0x10
   2518 ; MIPS32: srl [[T4]],[[T4]],0x10
   2519 ; MIPS32: or v1,[[T1]],[[T4]]
   2520 ; MIPS32: move [[T10]],a2
   2521 ; MIPS32: andi [[T10]],[[T10]],0xffff
   2522 ; MIPS32: andi [[T10]],[[T10]],0x1
   2523 ; MIPS32: move [[T11]],[[T2]]
   2524 ; MIPS32: andi [[T11]],[[T11]],0xffff
   2525 ; MIPS32: andi [[T11]],[[T11]],0x1
   2526 ; MIPS32: sll [[T10]],[[T10]],0x1f
   2527 ; MIPS32: sll [[T11]],[[T11]],0x1f
   2528 ; MIPS32: sltu [[T11]],[[T11]],[[T10]]
   2529 ; MIPS32: xori [[T11]],[[T11]],0x1
   2530 ; MIPS32: andi [[T11]],[[T11]],0xffff
   2531 ; MIPS32: srl [[T6]],[[T6]],0x10
   2532 ; MIPS32: sll [[T6]],[[T6]],0x10
   2533 ; MIPS32: or [[T11]],[[T11]],[[T6]]
   2534 ; MIPS32: srl [[T12:.*]],a2,0x10
   2535 ; MIPS32: andi [[T12]],[[T12]],0x1
   2536 ; MIPS32: srl [[T2]],[[T2]],0x10
   2537 ; MIPS32: andi [[T2]],[[T2]],0x1
   2538 ; MIPS32: sll [[T12]],[[T12]],0x1f
   2539 ; MIPS32: sll [[T2]],[[T2]],0x1f
   2540 ; MIPS32: sltu [[T2]],[[T2]],[[T12]]
   2541 ; MIPS32: xori [[T2]],[[T2]],0x1
   2542 ; MIPS32: sll [[T2]],[[T2]],0x10
   2543 ; MIPS32: sll [[T11]],[[T11]],0x10
   2544 ; MIPS32: srl [[T11]],[[T11]],0x10
   2545 ; MIPS32: or [[T2]],[[T2]],[[T11]]
   2546 ; MIPS32: move [[T10]],a3
   2547 ; MIPS32: andi [[T10]],[[T10]],0xffff
   2548 ; MIPS32: andi [[T10]],[[T10]],0x1
   2549 ; MIPS32: move [[T11]],[[T3]]
   2550 ; MIPS32: andi [[T11]],[[T11]],0xffff
   2551 ; MIPS32: andi [[T11]],[[T11]],0x1
   2552 ; MIPS32: sll [[T10]],[[T10]],0x1f
   2553 ; MIPS32: sll [[T11]],[[T11]],0x1f
   2554 ; MIPS32: sltu [[T11]],[[T11]],[[T10]]
   2555 ; MIPS32: xori [[T11]],[[T11]],0x1
   2556 ; MIPS32: andi [[T11]],[[T11]],0xffff
   2557 ; MIPS32: srl [[T7]],[[T7]],0x10
   2558 ; MIPS32: sll [[T7]],[[T7]],0x10
   2559 ; MIPS32: or [[T11]],[[T11]],[[T7]]
   2560 ; MIPS32: srl [[T13:.*]],a3,0x10
   2561 ; MIPS32: andi [[T13]],[[T13]],0x1
   2562 ; MIPS32: srl [[T3]],[[T3]],0x10
   2563 ; MIPS32: andi [[T3]],[[T3]],0x1
   2564 ; MIPS32: sll [[T13]],[[T13]],0x1f
   2565 ; MIPS32: sll [[T3]],[[T3]],0x1f
   2566 ; MIPS32: sltu [[T3]],[[T3]],[[T13]]
   2567 ; MIPS32: xori [[T3]],[[T3]],0x1
   2568 ; MIPS32: sll [[T3]],[[T3]],0x10
   2569 ; MIPS32: sll [[T11]],[[T11]],0x10
   2570 ; MIPS32: srl [[T11]],[[T11]],0x10
   2571 ; MIPS32: or [[T3]],[[T3]],[[T11]]
   2572 ; MIPS32: move a0,[[T2]]
   2573 ; MIPS32: move a1,[[T3]]
   2574 }
   2575 
   2576 define internal <8 x i1> @test_icmp_v8i1_ult(<8 x i1> %a, <8 x i1> %b) {
   2577 entry:
   2578   %res = icmp ult <8 x i1> %a, %b
   2579   ret <8 x i1> %res
   2580 ; CHECK-LABEL: test_icmp_v8i1_ult
   2581 ; CHECK: pxor
   2582 ; CHECK: pcmpgtw
   2583 
   2584 ; MIPS32-LABEL: test_icmp_v8i1_ult
   2585 ; MIPS32: lw [[T0:.*]],
   2586 ; MIPS32: lw [[T1:.*]],
   2587 ; MIPS32: lw [[T2:.*]],
   2588 ; MIPS32: lw [[T3:.*]],
   2589 ; MIPS32: move [[T4:.*]],zero
   2590 ; MIPS32: move [[T5:.*]],zero
   2591 ; MIPS32: move [[T6:.*]],zero
   2592 ; MIPS32: move [[T7:.*]],zero
   2593 ; MIPS32: move [[T8:.*]],a0
   2594 ; MIPS32: andi [[T8]],[[T8]],0xffff
   2595 ; MIPS32: andi [[T8]],[[T8]],0x1
   2596 ; MIPS32: move [[T9:.*]],[[T0]]
   2597 ; MIPS32: andi [[T9]],[[T9]],0xffff
   2598 ; MIPS32: andi [[T9]],[[T9]],0x1
   2599 ; MIPS32: sll [[T8]],[[T8]],0x1f
   2600 ; MIPS32: sll [[T9]],[[T9]],0x1f
   2601 ; MIPS32: sltu [[T8]],[[T8]],[[T9]]
   2602 ; MIPS32: andi [[T8]],[[T8]],0xffff
   2603 ; MIPS32: srl [[T4]],[[T4]],0x10
   2604 ; MIPS32: sll [[T4]],[[T4]],0x10
   2605 ; MIPS32: or [[T8]],[[T8]],[[T4]]
   2606 ; MIPS32: srl [[T10:.*]],a0,0x10
   2607 ; MIPS32: andi [[T10]],[[T10]],0x1
   2608 ; MIPS32: srl [[T0]],[[T0]],0x10
   2609 ; MIPS32: andi [[T0]],[[T0]],0x1
   2610 ; MIPS32: sll [[T10]],[[T10]],0x1f
   2611 ; MIPS32: sll [[T0]],[[T0]],0x1f
   2612 ; MIPS32: sltu [[T10]],[[T10]],[[T0]]
   2613 ; MIPS32: sll [[T10]],[[T10]],0x10
   2614 ; MIPS32: sll [[T8]],[[T8]],0x10
   2615 ; MIPS32: srl [[T8]],[[T8]],0x10
   2616 ; MIPS32: or [[T10]],[[T10]],[[T8]]
   2617 ; MIPS32: move [[T0]],a1
   2618 ; MIPS32: andi [[T0]],[[T0]],0xffff
   2619 ; MIPS32: andi [[T0]],[[T0]],0x1
   2620 ; MIPS32: move [[T4]],[[T1]]
   2621 ; MIPS32: andi [[T4]],[[T4]],0xffff
   2622 ; MIPS32: andi [[T4]],[[T4]],0x1
   2623 ; MIPS32: sll [[T0]],[[T0]],0x1f
   2624 ; MIPS32: sll [[T4]],[[T4]],0x1f
   2625 ; MIPS32: sltu [[T0]],[[T0]],[[T4]]
   2626 ; MIPS32: andi [[T0]],[[T0]],0xffff
   2627 ; MIPS32: srl [[T5]],[[T5]],0x10
   2628 ; MIPS32: sll [[T5]],[[T5]],0x10
   2629 ; MIPS32: or [[T0]],[[T0]],[[T5]]
   2630 ; MIPS32: srl [[T11:.*]],a1,0x10
   2631 ; MIPS32: andi [[T11]],[[T11]],0x1
   2632 ; MIPS32: srl [[T1]],[[T1]],0x10
   2633 ; MIPS32: andi [[T1]],[[T1]],0x1
   2634 ; MIPS32: sll [[T11]],[[T11]],0x1f
   2635 ; MIPS32: sll [[T1]],[[T1]],0x1f
   2636 ; MIPS32: sltu [[T11]],[[T11]],[[T1]]
   2637 ; MIPS32: sll [[T11]],[[T11]],0x10
   2638 ; MIPS32: sll [[T0]],[[T0]],0x10
   2639 ; MIPS32: srl [[T0]],[[T0]],0x10
   2640 ; MIPS32: or [[T11]],[[T11]],[[T0]]
   2641 ; MIPS32: move [[T0]],a2
   2642 ; MIPS32: andi [[T0]],[[T0]],0xffff
   2643 ; MIPS32: andi [[T0]],[[T0]],0x1
   2644 ; MIPS32: move [[T1]],[[T2]]
   2645 ; MIPS32: andi [[T1]],[[T1]],0xffff
   2646 ; MIPS32: andi [[T1]],[[T1]],0x1
   2647 ; MIPS32: sll [[T0]],[[T0]],0x1f
   2648 ; MIPS32: sll [[T1]],[[T1]],0x1f
   2649 ; MIPS32: sltu [[T0]],[[T0]],[[T1]]
   2650 ; MIPS32: andi [[T0]],[[T0]],0xffff
   2651 ; MIPS32: srl [[T6]],[[T6]],0x10
   2652 ; MIPS32: sll [[T6]],[[T6]],0x10
   2653 ; MIPS32: or [[T0]],[[T0]],[[T6]]
   2654 ; MIPS32: srl [[T12:.*]],a2,0x10
   2655 ; MIPS32: andi [[T12]],[[T12]],0x1
   2656 ; MIPS32: srl [[T2]],[[T2]],0x10
   2657 ; MIPS32: andi [[T2]],[[T2]],0x1
   2658 ; MIPS32: sll [[T12]],[[T12]],0x1f
   2659 ; MIPS32: sll [[T2]],[[T2]],0x1f
   2660 ; MIPS32: sltu [[T12]],[[T12]],[[T2]]
   2661 ; MIPS32: sll [[T12]],[[T12]],0x10
   2662 ; MIPS32: sll [[T0]],[[T0]],0x10
   2663 ; MIPS32: srl [[T0]],[[T0]],0x10
   2664 ; MIPS32: or [[T12]],[[T12]],[[T0]]
   2665 ; MIPS32: move [[T0]],a3
   2666 ; MIPS32: andi [[T0]],[[T0]],0xffff
   2667 ; MIPS32: andi [[T0]],[[T0]],0x1
   2668 ; MIPS32: move [[T1]],[[T3]]
   2669 ; MIPS32: andi [[T1]],[[T1]],0xffff
   2670 ; MIPS32: andi [[T1]],[[T1]],0x1
   2671 ; MIPS32: sll [[T0]],[[T0]],0x1f
   2672 ; MIPS32: sll [[T1]],[[T1]],0x1f
   2673 ; MIPS32: sltu [[T0]],[[T0]],[[T1]]
   2674 ; MIPS32: andi [[T0]],[[T0]],0xffff
   2675 ; MIPS32: srl [[T7]],[[T7]],0x10
   2676 ; MIPS32: sll [[T7]],[[T7]],0x10
   2677 ; MIPS32: or [[T0]],[[T0]],[[T7]]
   2678 ; MIPS32: srl [[T13:.*]],a3,0x10
   2679 ; MIPS32: andi [[T13]],[[T13]],0x1
   2680 ; MIPS32: srl [[T3]],[[T3]],0x10
   2681 ; MIPS32: andi [[T3]],[[T3]],0x1
   2682 ; MIPS32: sll [[T13]],[[T13]],0x1f
   2683 ; MIPS32: sll [[T3]],[[T3]],0x1f
   2684 ; MIPS32: sltu [[T13]],[[T13]],[[T3]]
   2685 ; MIPS32: sll [[T13]],[[T13]],0x10
   2686 ; MIPS32: sll [[T0]],[[T0]],0x10
   2687 ; MIPS32: srl [[T0]],[[T0]],0x10
   2688 ; MIPS32: or [[T13]],[[T13]],[[T0]]
   2689 ; MIPS32: move v0,[[T10]]
   2690 ; MIPS32: move v1,[[T11]]
   2691 ; MIPS32: move a0,[[T12]]
   2692 ; MIPS32: move a1,[[T13]]
   2693 }
   2694 
   2695 define internal <16 x i1> @test_icmp_v16i8_eq(<16 x i8> %a, <16 x i8> %b) {
   2696 entry:
   2697   %res = icmp eq <16 x i8> %a, %b
   2698   ret <16 x i1> %res
   2699 ; CHECK-LABEL: test_icmp_v16i8_eq
   2700 ; CHECK: pcmpeqb
   2701 
   2702 ; MIPS32-LABEL: test_icmp_v16i8_eq
   2703 ; MIPS32: lw [[T0:.*]],
   2704 ; MIPS32: lw [[T1:.*]],
   2705 ; MIPS32: lw [[T2:.*]],
   2706 ; MIPS32: lw [[T3:.*]],
   2707 ; MIPS32: move [[T4:.*]],zero
   2708 ; MIPS32: move [[T5:.*]],zero
   2709 ; MIPS32: move [[T6:.*]],zero
   2710 ; MIPS32: move [[T7:.*]],zero
   2711 ; MIPS32: move [[T8:.*]],a0
   2712 ; MIPS32: andi [[T8]],[[T8]],0xff
   2713 ; MIPS32: move [[T9:.*]],[[T0]]
   2714 ; MIPS32: andi [[T9]],[[T9]],0xff
   2715 ; MIPS32: sll [[T8]],[[T8]],0x18
   2716 ; MIPS32: sll [[T9]],[[T9]],0x18
   2717 ; MIPS32: xor [[T8]],[[T8]],[[T9]]
   2718 ; MIPS32: sltiu [[T8]],[[T8]],1
   2719 ; MIPS32: andi [[T8]],[[T8]],0xff
   2720 ; MIPS32: srl [[T4]],[[T4]],0x8
   2721 ; MIPS32: sll [[T4]],[[T4]],0x8
   2722 ; MIPS32: or [[T8]],[[T8]],[[T4]]
   2723 ; MIPS32: move [[T4]],a0
   2724 ; MIPS32: srl [[T4]],[[T4]],0x8
   2725 ; MIPS32: andi [[T4]],[[T4]],0xff
   2726 ; MIPS32: move [[T9]],[[T0]]
   2727 ; MIPS32: srl [[T9]],[[T9]],0x8
   2728 ; MIPS32: andi [[T9]],[[T9]],0xff
   2729 ; MIPS32: sll [[T4]],[[T4]],0x18
   2730 ; MIPS32: sll [[T9]],[[T9]],0x18
   2731 ; MIPS32: xor [[T4]],[[T4]],[[T9]]
   2732 ; MIPS32: sltiu [[T4]],[[T4]],1
   2733 ; MIPS32: andi [[T4]],[[T4]],0xff
   2734 ; MIPS32: sll [[T4]],[[T4]],0x8
   2735 ; MIPS32: lui [[T9]],0xffff
   2736 ; MIPS32: ori [[T9]],[[T9]],0xff
   2737 ; MIPS32: and [[T8]],[[T8]],[[T9]]
   2738 ; MIPS32: or [[T4]],[[T4]],[[T8]]
   2739 ; MIPS32: move [[T8]],a0
   2740 ; MIPS32: srl [[T8]],[[T8]],0x10
   2741 ; MIPS32: andi [[T8]],[[T8]],0xff
   2742 ; MIPS32: move [[T9]],[[T0]]
   2743 ; MIPS32: srl [[T9]],[[T9]],0x10
   2744 ; MIPS32: andi [[T9]],[[T9]],0xff
   2745 ; MIPS32: sll [[T8]],[[T8]],0x18
   2746 ; MIPS32: sll [[T9]],[[T9]],0x18
   2747 ; MIPS32: xor [[T8]],[[T8]],[[T9]]
   2748 ; MIPS32: sltiu [[T8]],[[T8]],1
   2749 ; MIPS32: andi [[T8]],[[T8]],0xff
   2750 ; MIPS32: sll [[T8]],[[T8]],0x10
   2751 ; MIPS32: lui [[T9]],0xff00
   2752 ; MIPS32: ori [[T9]],[[T9]],0xffff
   2753 ; MIPS32: and [[T4]],[[T4]],[[T9]]
   2754 ; MIPS32: or [[T8]],[[T8]],[[T4]]
   2755 ; MIPS32: srl [[T10:.*]],a0,0x18
   2756 ; MIPS32: srl [[T0]],[[T0]],0x18
   2757 ; MIPS32: sll [[T10]],[[T10]],0x18
   2758 ; MIPS32: sll [[T0]],[[T0]],0x18
   2759 ; MIPS32: xor [[T10]],[[T10]],[[T0]]
   2760 ; MIPS32: sltiu [[T10]],[[T10]],1
   2761 ; MIPS32: sll [[T10]],[[T10]],0x18
   2762 ; MIPS32: sll [[T8]],[[T8]],0x8
   2763 ; MIPS32: srl [[T8]],[[T8]],0x8
   2764 ; MIPS32: or [[T10]],[[T10]],[[T8]]
   2765 ; MIPS32: move [[T0]],a1
   2766 ; MIPS32: andi [[T0]],[[T0]],0xff
   2767 ; MIPS32: move [[T4]],[[T1]]
   2768 ; MIPS32: andi [[T4]],[[T4]],0xff
   2769 ; MIPS32: sll [[T0]],[[T0]],0x18
   2770 ; MIPS32: sll [[T4]],[[T4]],0x18
   2771 ; MIPS32: xor [[T0]],[[T0]],[[T4]]
   2772 ; MIPS32: sltiu [[T0]],[[T0]],1
   2773 ; MIPS32: andi [[T0]],[[T0]],0xff
   2774 ; MIPS32: srl [[T5]],[[T5]],0x8
   2775 ; MIPS32: sll [[T5]],[[T5]],0x8
   2776 ; MIPS32: or [[T0]],[[T0]],[[T5]]
   2777 ; MIPS32: move [[T4]],a1
   2778 ; MIPS32: srl [[T4]],[[T4]],0x8
   2779 ; MIPS32: andi [[T4]],[[T4]],0xff
   2780 ; MIPS32: move [[T5]],[[T1]]
   2781 ; MIPS32: srl [[T5]],[[T5]],0x8
   2782 ; MIPS32: andi [[T5]],[[T5]],0xff
   2783 ; MIPS32: sll [[T4]],[[T4]],0x18
   2784 ; MIPS32: sll [[T5]],[[T5]],0x18
   2785 ; MIPS32: xor [[T4]],[[T4]],[[T5]]
   2786 ; MIPS32: sltiu [[T4]],[[T4]],1
   2787 ; MIPS32: andi [[T4]],[[T4]],0xff
   2788 ; MIPS32: sll [[T4]],[[T4]],0x8
   2789 ; MIPS32: lui [[T5]],0xffff
   2790 ; MIPS32: ori [[T5]],[[T5]],0xff
   2791 ; MIPS32: and [[T0]],[[T0]],[[T5]]
   2792 ; MIPS32: or [[T4]],[[T4]],[[T0]]
   2793 ; MIPS32: move [[T0]],a1
   2794 ; MIPS32: srl [[T0]],[[T0]],0x10
   2795 ; MIPS32: andi [[T0]],[[T0]],0xff
   2796 ; MIPS32: move [[T5]],[[T1]]
   2797 ; MIPS32: srl [[T5]],[[T5]],0x10
   2798 ; MIPS32: andi [[T5]],[[T5]],0xff
   2799 ; MIPS32: sll [[T0]],[[T0]],0x18
   2800 ; MIPS32: sll [[T5]],[[T5]],0x18
   2801 ; MIPS32: xor [[T0]],[[T0]],[[T5]]
   2802 ; MIPS32: sltiu [[T0]],[[T0]],1
   2803 ; MIPS32: andi [[T0]],[[T0]],0xff
   2804 ; MIPS32: sll [[T0]],[[T0]],0x10
   2805 ; MIPS32: lui [[T5]],0xff00
   2806 ; MIPS32: ori [[T5]],[[T5]],0xffff
   2807 ; MIPS32: and [[T4]],[[T4]],[[T5]]
   2808 ; MIPS32: or [[T0]],[[T0]],[[T4]]
   2809 ; MIPS32: srl [[T11:.*]],a1,0x18
   2810 ; MIPS32: srl [[T1]],[[T1]],0x18
   2811 ; MIPS32: sll [[T11]],[[T11]],0x18
   2812 ; MIPS32: sll [[T1]],[[T1]],0x18
   2813 ; MIPS32: xor [[T11]],[[T11]],[[T1]]
   2814 ; MIPS32: sltiu [[T11]],[[T11]],1
   2815 ; MIPS32: sll [[T11]],[[T11]],0x18
   2816 ; MIPS32: sll [[T0]],[[T0]],0x8
   2817 ; MIPS32: srl [[T0]],[[T0]],0x8
   2818 ; MIPS32: or [[T11]],[[T11]],[[T0]]
   2819 ; MIPS32: move [[T0]],a2
   2820 ; MIPS32: andi [[T0]],[[T0]],0xff
   2821 ; MIPS32: move [[T1]],[[T2]]
   2822 ; MIPS32: andi [[T1]],[[T1]],0xff
   2823 ; MIPS32: sll [[T0]],[[T0]],0x18
   2824 ; MIPS32: sll [[T1]],[[T1]],0x18
   2825 ; MIPS32: xor [[T0]],[[T0]],[[T1]]
   2826 ; MIPS32: sltiu [[T0]],[[T0]],1
   2827 ; MIPS32: andi [[T0]],[[T0]],0xff
   2828 ; MIPS32: srl [[T6]],[[T6]],0x8
   2829 ; MIPS32: sll [[T6]],[[T6]],0x8
   2830 ; MIPS32: or [[T0]],[[T0]],[[T6]]
   2831 ; MIPS32: move [[T1]],a2
   2832 ; MIPS32: srl [[T1]],[[T1]],0x8
   2833 ; MIPS32: andi [[T1]],[[T1]],0xff
   2834 ; MIPS32: move [[T4]],[[T2]]
   2835 ; MIPS32: srl [[T4]],[[T4]],0x8
   2836 ; MIPS32: andi [[T4]],[[T4]],0xff
   2837 ; MIPS32: sll [[T1]],[[T1]],0x18
   2838 ; MIPS32: sll [[T4]],[[T4]],0x18
   2839 ; MIPS32: xor [[T1]],[[T1]],[[T4]]
   2840 ; MIPS32: sltiu [[T1]],[[T1]],1
   2841 ; MIPS32: andi [[T1]],[[T1]],0xff
   2842 ; MIPS32: sll [[T1]],[[T1]],0x8
   2843 ; MIPS32: lui [[T4]],0xffff
   2844 ; MIPS32: ori [[T4]],[[T4]],0xff
   2845 ; MIPS32: and [[T0]],[[T0]],[[T4]]
   2846 ; MIPS32: or [[T1]],[[T1]],[[T0]]
   2847 ; MIPS32: move [[T0]],a2
   2848 ; MIPS32: srl [[T0]],[[T0]],0x10
   2849 ; MIPS32: andi [[T0]],[[T0]],0xff
   2850 ; MIPS32: move [[T4]],[[T2]]
   2851 ; MIPS32: srl [[T4]],[[T4]],0x10
   2852 ; MIPS32: andi [[T4]],[[T4]],0xff
   2853 ; MIPS32: sll [[T0]],[[T0]],0x18
   2854 ; MIPS32: sll [[T4]],[[T4]],0x18
   2855 ; MIPS32: xor [[T0]],[[T0]],[[T4]]
   2856 ; MIPS32: sltiu [[T0]],[[T0]],1
   2857 ; MIPS32: andi [[T0]],[[T0]],0xff
   2858 ; MIPS32: sll [[T0]],[[T0]],0x10
   2859 ; MIPS32: lui [[T4]],0xff00
   2860 ; MIPS32: ori [[T4]],[[T4]],0xffff
   2861 ; MIPS32: and [[T1]],[[T1]],[[T4]]
   2862 ; MIPS32: or [[T0]],[[T0]],[[T1]]
   2863 ; MIPS32: srl [[T12:.*]],a2,0x18
   2864 ; MIPS32: srl [[T2]],[[T2]],0x18
   2865 ; MIPS32: sll [[T12]],[[T12]],0x18
   2866 ; MIPS32: sll [[T2]],[[T2]],0x18
   2867 ; MIPS32: xor [[T12]],[[T12]],[[T2]]
   2868 ; MIPS32: sltiu [[T12]],[[T12]],1
   2869 ; MIPS32: sll [[T12]],[[T12]],0x18
   2870 ; MIPS32: sll [[T0]],[[T0]],0x8
   2871 ; MIPS32: srl [[T0]],[[T0]],0x8
   2872 ; MIPS32: or [[T12]],[[T12]],[[T0]]
   2873 ; MIPS32: move [[T0]],a3
   2874 ; MIPS32: andi [[T0]],[[T0]],0xff
   2875 ; MIPS32: move [[T1]],[[T3]]
   2876 ; MIPS32: andi [[T1]],[[T1]],0xff
   2877 ; MIPS32: sll [[T0]],[[T0]],0x18
   2878 ; MIPS32: sll [[T1]],[[T1]],0x18
   2879 ; MIPS32: xor [[T0]],[[T0]],[[T1]]
   2880 ; MIPS32: sltiu [[T0]],[[T0]],1
   2881 ; MIPS32: andi [[T0]],[[T0]],0xff
   2882 ; MIPS32: srl [[T7]],[[T7]],0x8
   2883 ; MIPS32: sll [[T7]],[[T7]],0x8
   2884 ; MIPS32: or [[T0]],[[T0]],[[T7]]
   2885 ; MIPS32: move [[T1]],a3
   2886 ; MIPS32: srl [[T1]],[[T1]],0x8
   2887 ; MIPS32: andi [[T1]],[[T1]],0xff
   2888 ; MIPS32: move [[T2]],[[T3]]
   2889 ; MIPS32: srl [[T2]],[[T2]],0x8
   2890 ; MIPS32: andi [[T2]],[[T2]],0xff
   2891 ; MIPS32: sll [[T1]],[[T1]],0x18
   2892 ; MIPS32: sll [[T2]],[[T2]],0x18
   2893 ; MIPS32: xor [[T1]],[[T1]],[[T2]]
   2894 ; MIPS32: sltiu [[T1]],[[T1]],1
   2895 ; MIPS32: andi [[T1]],[[T1]],0xff
   2896 ; MIPS32: sll [[T1]],[[T1]],0x8
   2897 ; MIPS32: lui [[T2]],0xffff
   2898 ; MIPS32: ori [[T2]],[[T2]],0xff
   2899 ; MIPS32: and [[T0]],[[T0]],[[T2]]
   2900 ; MIPS32: or [[T1]],[[T1]],[[T0]]
   2901 ; MIPS32: move [[T0]],a3
   2902 ; MIPS32: srl [[T0]],[[T0]],0x10
   2903 ; MIPS32: andi [[T0]],[[T0]],0xff
   2904 ; MIPS32: move [[T2]],[[T3]]
   2905 ; MIPS32: srl [[T2]],[[T2]],0x10
   2906 ; MIPS32: andi [[T2]],[[T2]],0xff
   2907 ; MIPS32: sll [[T0]],[[T0]],0x18
   2908 ; MIPS32: sll [[T2]],[[T2]],0x18
   2909 ; MIPS32: xor [[T0]],[[T0]],[[T2]]
   2910 ; MIPS32: sltiu [[T0]],[[T0]],1
   2911 ; MIPS32: andi [[T0]],[[T0]],0xff
   2912 ; MIPS32: sll [[T0]],[[T0]],0x10
   2913 ; MIPS32: lui [[T2]],0xff00
   2914 ; MIPS32: ori [[T2]],[[T2]],0xffff
   2915 ; MIPS32: and [[T1]],[[T1]],[[T2]]
   2916 ; MIPS32: or [[T0]],[[T0]],[[T1]]
   2917 ; MIPS32: srl [[T13:.*]],a3,0x18
   2918 ; MIPS32: srl [[T3]],[[T3]],0x18
   2919 ; MIPS32: sll [[T13]],[[T13]],0x18
   2920 ; MIPS32: sll [[T3]],[[T3]],0x18
   2921 ; MIPS32: xor [[T13]],[[T13]],[[T3]]
   2922 ; MIPS32: sltiu [[T13]],[[T13]],1
   2923 ; MIPS32: sll [[T13]],[[T13]],0x18
   2924 ; MIPS32: sll [[T0]],[[T0]],0x8
   2925 ; MIPS32: srl [[T0]],[[T0]],0x8
   2926 ; MIPS32: or [[T13]],[[T13]],[[T0]]
   2927 ; MIPS32: move v0,[[T10]]
   2928 ; MIPS32: move v1,[[T11]]
   2929 ; MIPS32: move a0,[[T12]]
   2930 ; MIPS32: move a1,[[T13]]
   2931 }
   2932 
   2933 define internal <16 x i1> @test_icmp_v16i8_ne(<16 x i8> %a, <16 x i8> %b) {
   2934 entry:
   2935   %res = icmp ne <16 x i8> %a, %b
   2936   ret <16 x i1> %res
   2937 ; CHECK-LABEL: test_icmp_v16i8_ne
   2938 ; CHECK: pcmpeqb
   2939 ; CHECK: pxor
   2940 
   2941 ; MIPS32-LABEL: test_icmp_v16i8_ne
   2942 ; MIPS32: lw [[T0:.*]],
   2943 ; MIPS32: lw [[T1:.*]],
   2944 ; MIPS32: lw [[T2:.*]],
   2945 ; MIPS32: lw [[T3:.*]],
   2946 ; MIPS32: move [[T4:.*]],zero
   2947 ; MIPS32: move [[T5:.*]],zero
   2948 ; MIPS32: move [[T6:.*]],zero
   2949 ; MIPS32: move [[T7:.*]],zero
   2950 ; MIPS32: move [[T8:.*]],a0
   2951 ; MIPS32: andi [[T8]],[[T8]],0xff
   2952 ; MIPS32: move [[T9:.*]],[[T0]]
   2953 ; MIPS32: andi [[T9]],[[T9]],0xff
   2954 ; MIPS32: sll [[T8]],[[T8]],0x18
   2955 ; MIPS32: sll [[T9]],[[T9]],0x18
   2956 ; MIPS32: xor [[T8]],[[T8]],[[T9]]
   2957 ; MIPS32: sltu [[T8]],zero,[[T8]]
   2958 ; MIPS32: andi [[T8]],[[T8]],0xff
   2959 ; MIPS32: srl [[T4]],[[T4]],0x8
   2960 ; MIPS32: sll [[T4]],[[T4]],0x8
   2961 ; MIPS32: or [[T8]],[[T8]],[[T4]]
   2962 ; MIPS32: move [[T4]],a0
   2963 ; MIPS32: srl [[T4]],[[T4]],0x8
   2964 ; MIPS32: andi [[T4]],[[T4]],0xff
   2965 ; MIPS32: move [[T9]],[[T0]]
   2966 ; MIPS32: srl [[T9]],[[T9]],0x8
   2967 ; MIPS32: andi [[T9]],[[T9]],0xff
   2968 ; MIPS32: sll [[T4]],[[T4]],0x18
   2969 ; MIPS32: sll [[T9]],[[T9]],0x18
   2970 ; MIPS32: xor [[T4]],[[T4]],[[T9]]
   2971 ; MIPS32: sltu [[T4]],zero,[[T4]]
   2972 ; MIPS32: andi [[T4]],[[T4]],0xff
   2973 ; MIPS32: sll [[T4]],[[T4]],0x8
   2974 ; MIPS32: lui [[T9]],0xffff
   2975 ; MIPS32: ori [[T9]],[[T9]],0xff
   2976 ; MIPS32: and [[T8]],[[T8]],[[T9]]
   2977 ; MIPS32: or [[T4]],[[T4]],[[T8]]
   2978 ; MIPS32: move [[T8]],a0
   2979 ; MIPS32: srl [[T8]],[[T8]],0x10
   2980 ; MIPS32: andi [[T8]],[[T8]],0xff
   2981 ; MIPS32: move [[T9]],[[T0]]
   2982 ; MIPS32: srl [[T9]],[[T9]],0x10
   2983 ; MIPS32: andi [[T9]],[[T9]],0xff
   2984 ; MIPS32: sll [[T8]],[[T8]],0x18
   2985 ; MIPS32: sll [[T9]],[[T9]],0x18
   2986 ; MIPS32: xor [[T8]],[[T8]],[[T9]]
   2987 ; MIPS32: sltu [[T8]],zero,[[T8]]
   2988 ; MIPS32: andi [[T8]],[[T8]],0xff
   2989 ; MIPS32: sll [[T8]],[[T8]],0x10
   2990 ; MIPS32: lui [[T9]],0xff00
   2991 ; MIPS32: ori [[T9]],[[T9]],0xffff
   2992 ; MIPS32: and [[T4]],[[T4]],[[T9]]
   2993 ; MIPS32: or [[T8]],[[T8]],[[T4]]
   2994 ; MIPS32: srl [[T10:.*]],a0,0x18
   2995 ; MIPS32: srl [[T0]],[[T0]],0x18
   2996 ; MIPS32: sll [[T10]],[[T10]],0x18
   2997 ; MIPS32: sll [[T0]],[[T0]],0x18
   2998 ; MIPS32: xor [[T10]],[[T10]],[[T0]]
   2999 ; MIPS32: sltu [[T10]],zero,[[T10]]
   3000 ; MIPS32: sll [[T10]],[[T10]],0x18
   3001 ; MIPS32: sll [[T8]],[[T8]],0x8
   3002 ; MIPS32: srl [[T8]],[[T8]],0x8
   3003 ; MIPS32: or [[T10]],[[T10]],[[T8]]
   3004 ; MIPS32: move [[T0]],a1
   3005 ; MIPS32: andi [[T0]],[[T0]],0xff
   3006 ; MIPS32: move [[T4]],[[T1]]
   3007 ; MIPS32: andi [[T4]],[[T4]],0xff
   3008 ; MIPS32: sll [[T0]],[[T0]],0x18
   3009 ; MIPS32: sll [[T4]],[[T4]],0x18
   3010 ; MIPS32: xor [[T0]],[[T0]],[[T4]]
   3011 ; MIPS32: sltu [[T0]],zero,[[T0]]
   3012 ; MIPS32: andi [[T0]],[[T0]],0xff
   3013 ; MIPS32: srl [[T5]],[[T5]],0x8
   3014 ; MIPS32: sll [[T5]],[[T5]],0x8
   3015 ; MIPS32: or [[T0]],[[T0]],[[T5]]
   3016 ; MIPS32: move [[T4]],a1
   3017 ; MIPS32: srl [[T4]],[[T4]],0x8
   3018 ; MIPS32: andi [[T4]],[[T4]],0xff
   3019 ; MIPS32: move [[T5]],[[T1]]
   3020 ; MIPS32: srl [[T5]],[[T5]],0x8
   3021 ; MIPS32: andi [[T5]],[[T5]],0xff
   3022 ; MIPS32: sll [[T4]],[[T4]],0x18
   3023 ; MIPS32: sll [[T5]],[[T5]],0x18
   3024 ; MIPS32: xor [[T4]],[[T4]],[[T5]]
   3025 ; MIPS32: sltu [[T4]],zero,[[T4]]
   3026 ; MIPS32: andi [[T4]],[[T4]],0xff
   3027 ; MIPS32: sll [[T4]],[[T4]],0x8
   3028 ; MIPS32: lui [[T5]],0xffff
   3029 ; MIPS32: ori [[T5]],[[T5]],0xff
   3030 ; MIPS32: and [[T0]],[[T0]],[[T5]]
   3031 ; MIPS32: or [[T4]],[[T4]],[[T0]]
   3032 ; MIPS32: move [[T0]],a1
   3033 ; MIPS32: srl [[T0]],[[T0]],0x10
   3034 ; MIPS32: andi [[T0]],[[T0]],0xff
   3035 ; MIPS32: move [[T5]],[[T1]]
   3036 ; MIPS32: srl [[T5]],[[T5]],0x10
   3037 ; MIPS32: andi [[T5]],[[T5]],0xff
   3038 ; MIPS32: sll [[T0]],[[T0]],0x18
   3039 ; MIPS32: sll [[T5]],[[T5]],0x18
   3040 ; MIPS32: xor [[T0]],[[T0]],[[T5]]
   3041 ; MIPS32: sltu [[T0]],zero,[[T0]]
   3042 ; MIPS32: andi [[T0]],[[T0]],0xff
   3043 ; MIPS32: sll [[T0]],[[T0]],0x10
   3044 ; MIPS32: lui [[T5]],0xff00
   3045 ; MIPS32: ori [[T5]],[[T5]],0xffff
   3046 ; MIPS32: and [[T4]],[[T4]],[[T5]]
   3047 ; MIPS32: or [[T0]],[[T0]],[[T4]]
   3048 ; MIPS32: srl [[T11:.*]],a1,0x18
   3049 ; MIPS32: srl [[T1]],[[T1]],0x18
   3050 ; MIPS32: sll [[T11]],[[T11]],0x18
   3051 ; MIPS32: sll [[T1]],[[T1]],0x18
   3052 ; MIPS32: xor [[T11]],[[T11]],[[T1]]
   3053 ; MIPS32: sltu [[T11]],zero,[[T11]]
   3054 ; MIPS32: sll [[T11]],[[T11]],0x18
   3055 ; MIPS32: sll [[T0]],[[T0]],0x8
   3056 ; MIPS32: srl [[T0]],[[T0]],0x8
   3057 ; MIPS32: or [[T11]],[[T11]],[[T0]]
   3058 ; MIPS32: move [[T0]],a2
   3059 ; MIPS32: andi [[T0]],[[T0]],0xff
   3060 ; MIPS32: move [[T1]],[[T2]]
   3061 ; MIPS32: andi [[T1]],[[T1]],0xff
   3062 ; MIPS32: sll [[T0]],[[T0]],0x18
   3063 ; MIPS32: sll [[T1]],[[T1]],0x18
   3064 ; MIPS32: xor [[T0]],[[T0]],[[T1]]
   3065 ; MIPS32: sltu [[T0]],zero,[[T0]]
   3066 ; MIPS32: andi [[T0]],[[T0]],0xff
   3067 ; MIPS32: srl [[T6]],[[T6]],0x8
   3068 ; MIPS32: sll [[T6]],[[T6]],0x8
   3069 ; MIPS32: or [[T0]],[[T0]],[[T6]]
   3070 ; MIPS32: move [[T1]],a2
   3071 ; MIPS32: srl [[T1]],[[T1]],0x8
   3072 ; MIPS32: andi [[T1]],[[T1]],0xff
   3073 ; MIPS32: move [[T4]],[[T2]]
   3074 ; MIPS32: srl [[T4]],[[T4]],0x8
   3075 ; MIPS32: andi [[T4]],[[T4]],0xff
   3076 ; MIPS32: sll [[T1]],[[T1]],0x18
   3077 ; MIPS32: sll [[T4]],[[T4]],0x18
   3078 ; MIPS32: xor [[T1]],[[T1]],[[T4]]
   3079 ; MIPS32: sltu [[T1]],zero,[[T1]]
   3080 ; MIPS32: andi [[T1]],[[T1]],0xff
   3081 ; MIPS32: sll [[T1]],[[T1]],0x8
   3082 ; MIPS32: lui [[T4]],0xffff
   3083 ; MIPS32: ori [[T4]],[[T4]],0xff
   3084 ; MIPS32: and [[T0]],[[T0]],[[T4]]
   3085 ; MIPS32: or [[T1]],[[T1]],[[T0]]
   3086 ; MIPS32: move [[T0]],a2
   3087 ; MIPS32: srl [[T0]],[[T0]],0x10
   3088 ; MIPS32: andi [[T0]],[[T0]],0xff
   3089 ; MIPS32: move [[T4]],[[T2]]
   3090 ; MIPS32: srl [[T4]],[[T4]],0x10
   3091 ; MIPS32: andi [[T4]],[[T4]],0xff
   3092 ; MIPS32: sll [[T0]],[[T0]],0x18
   3093 ; MIPS32: sll [[T4]],[[T4]],0x18
   3094 ; MIPS32: xor [[T0]],[[T0]],[[T4]]
   3095 ; MIPS32: sltu [[T0]],zero,[[T0]]
   3096 ; MIPS32: andi [[T0]],[[T0]],0xff
   3097 ; MIPS32: sll [[T0]],[[T0]],0x10
   3098 ; MIPS32: lui [[T4]],0xff00
   3099 ; MIPS32: ori [[T4]],[[T4]],0xffff
   3100 ; MIPS32: and [[T1]],[[T1]],[[T4]]
   3101 ; MIPS32: or [[T0]],[[T0]],[[T1]]
   3102 ; MIPS32: srl [[T12:.*]],a2,0x18
   3103 ; MIPS32: srl [[T2]],[[T2]],0x18
   3104 ; MIPS32: sll [[T12]],[[T12]],0x18
   3105 ; MIPS32: sll [[T2]],[[T2]],0x18
   3106 ; MIPS32: xor [[T12]],[[T12]],[[T2]]
   3107 ; MIPS32: sltu [[T12]],zero,[[T12]]
   3108 ; MIPS32: sll [[T12]],[[T12]],0x18
   3109 ; MIPS32: sll [[T0]],[[T0]],0x8
   3110 ; MIPS32: srl [[T0]],[[T0]],0x8
   3111 ; MIPS32: or [[T12]],[[T12]],[[T0]]
   3112 ; MIPS32: move [[T0]],a3
   3113 ; MIPS32: andi [[T0]],[[T0]],0xff
   3114 ; MIPS32: move [[T1]],[[T3]]
   3115 ; MIPS32: andi [[T1]],[[T1]],0xff
   3116 ; MIPS32: sll [[T0]],[[T0]],0x18
   3117 ; MIPS32: sll [[T1]],[[T1]],0x18
   3118 ; MIPS32: xor [[T0]],[[T0]],[[T1]]
   3119 ; MIPS32: sltu [[T0]],zero,[[T0]]
   3120 ; MIPS32: andi [[T0]],[[T0]],0xff
   3121 ; MIPS32: srl [[T7]],[[T7]],0x8
   3122 ; MIPS32: sll [[T7]],[[T7]],0x8
   3123 ; MIPS32: or [[T0]],[[T0]],[[T7]]
   3124 ; MIPS32: move [[T1]],a3
   3125 ; MIPS32: srl [[T1]],[[T1]],0x8
   3126 ; MIPS32: andi [[T1]],[[T1]],0xff
   3127 ; MIPS32: move [[T2]],[[T3]]
   3128 ; MIPS32: srl [[T2]],[[T2]],0x8
   3129 ; MIPS32: andi [[T2]],[[T2]],0xff
   3130 ; MIPS32: sll [[T1]],[[T1]],0x18
   3131 ; MIPS32: sll [[T2]],[[T2]],0x18
   3132 ; MIPS32: xor [[T1]],[[T1]],[[T2]]
   3133 ; MIPS32: sltu [[T1]],zero,[[T1]]
   3134 ; MIPS32: andi [[T1]],[[T1]],0xff
   3135 ; MIPS32: sll [[T1]],[[T1]],0x8
   3136 ; MIPS32: lui [[T2]],0xffff
   3137 ; MIPS32: ori [[T2]],[[T2]],0xff
   3138 ; MIPS32: and [[T0]],[[T0]],[[T2]]
   3139 ; MIPS32: or [[T1]],[[T1]],[[T0]]
   3140 ; MIPS32: move [[T0]],a3
   3141 ; MIPS32: srl [[T0]],[[T0]],0x10
   3142 ; MIPS32: andi [[T0]],[[T0]],0xff
   3143 ; MIPS32: move [[T2]],[[T3]]
   3144 ; MIPS32: srl [[T2]],[[T2]],0x10
   3145 ; MIPS32: andi [[T2]],[[T2]],0xff
   3146 ; MIPS32: sll [[T0]],[[T0]],0x18
   3147 ; MIPS32: sll [[T2]],[[T2]],0x18
   3148 ; MIPS32: xor [[T0]],[[T0]],[[T2]]
   3149 ; MIPS32: sltu [[T0]],zero,[[T0]]
   3150 ; MIPS32: andi [[T0]],[[T0]],0xff
   3151 ; MIPS32: sll [[T0]],[[T0]],0x10
   3152 ; MIPS32: lui [[T2]],0xff00
   3153 ; MIPS32: ori [[T2]],[[T2]],0xffff
   3154 ; MIPS32: and [[T1]],[[T1]],[[T2]]
   3155 ; MIPS32: or [[T0]],[[T0]],[[T1]]
   3156 ; MIPS32: srl [[T13:.*]],a3,0x18
   3157 ; MIPS32: srl [[T3]],[[T3]],0x18
   3158 ; MIPS32: sll [[T13]],[[T13]],0x18
   3159 ; MIPS32: sll [[T3]],[[T3]],0x18
   3160 ; MIPS32: xor [[T13]],[[T13]],[[T3]]
   3161 ; MIPS32: sltu [[T13]],zero,[[T13]]
   3162 ; MIPS32: sll [[T13]],[[T13]],0x18
   3163 ; MIPS32: sll [[T0]],[[T0]],0x8
   3164 ; MIPS32: srl [[T0]],[[T0]],0x8
   3165 ; MIPS32: or [[T13]],[[T13]],[[T0]]
   3166 ; MIPS32: move v0,[[T10]]
   3167 ; MIPS32: move v1,[[T11]]
   3168 ; MIPS32: move a0,[[T12]]
   3169 ; MIPS32: move a1,[[T13]]
   3170 }
   3171 
   3172 define internal <16 x i1> @test_icmp_v16i8_sgt(<16 x i8> %a, <16 x i8> %b) {
   3173 entry:
   3174   %res = icmp sgt <16 x i8> %a, %b
   3175   ret <16 x i1> %res
   3176 ; CHECK-LABEL: test_icmp_v16i8_sgt
   3177 ; CHECK: pcmpgtb
   3178 
   3179 ; MIPS32-LABEL: test_icmp_v16i8_sgt
   3180 ; MIPS32: lw [[T0:.*]],
   3181 ; MIPS32: lw [[T1:.*]],
   3182 ; MIPS32: lw [[T2:.*]],
   3183 ; MIPS32: lw [[T3:.*]],
   3184 ; MIPS32: move [[T4:.*]],zero
   3185 ; MIPS32: move [[T5:.*]],zero
   3186 ; MIPS32: move [[T6:.*]],zero
   3187 ; MIPS32: move [[T7:.*]],zero
   3188 ; MIPS32: move [[T8:.*]],a0
   3189 ; MIPS32: andi [[T8]],[[T8]],0xff
   3190 ; MIPS32: move [[T9:.*]],[[T0]]
   3191 ; MIPS32: andi [[T9]],[[T9]],0xff
   3192 ; MIPS32: sll [[T8]],[[T8]],0x18
   3193 ; MIPS32: sll [[T9]],[[T9]],0x18
   3194 ; MIPS32: slt [[T9]],[[T9]],[[T8]]
   3195 ; MIPS32: andi [[T9]],[[T9]],0xff
   3196 ; MIPS32: srl [[T4]],[[T4]],0x8
   3197 ; MIPS32: sll [[T4]],[[T4]],0x8
   3198 ; MIPS32: or [[T9]],[[T9]],[[T4]]
   3199 ; MIPS32: move [[T4]],a0
   3200 ; MIPS32: srl [[T4]],[[T4]],0x8
   3201 ; MIPS32: andi [[T4]],[[T4]],0xff
   3202 ; MIPS32: move [[T8]],[[T0]]
   3203 ; MIPS32: srl [[T8]],[[T8]],0x8
   3204 ; MIPS32: andi [[T8]],[[T8]],0xff
   3205 ; MIPS32: sll [[T4]],[[T4]],0x18
   3206 ; MIPS32: sll [[T8]],[[T8]],0x18
   3207 ; MIPS32: slt [[T8]],[[T8]],[[T4]]
   3208 ; MIPS32: andi [[T8]],[[T8]],0xff
   3209 ; MIPS32: sll [[T8]],[[T8]],0x8
   3210 ; MIPS32: lui [[T4]],0xffff
   3211 ; MIPS32: ori [[T4]],[[T4]],0xff
   3212 ; MIPS32: and [[T9]],[[T9]],[[T4]]
   3213 ; MIPS32: or [[T8]],[[T8]],[[T9]]
   3214 ; MIPS32: move [[T4]],a0
   3215 ; MIPS32: srl [[T4]],[[T4]],0x10
   3216 ; MIPS32: andi [[T4]],[[T4]],0xff
   3217 ; MIPS32: move [[T9]],[[T0]]
   3218 ; MIPS32: srl [[T9]],[[T9]],0x10
   3219 ; MIPS32: andi [[T9]],[[T9]],0xff
   3220 ; MIPS32: sll [[T4]],[[T4]],0x18
   3221 ; MIPS32: sll [[T9]],[[T9]],0x18
   3222 ; MIPS32: slt [[T9]],[[T9]],[[T4]]
   3223 ; MIPS32: andi [[T9]],[[T9]],0xff
   3224 ; MIPS32: sll [[T9]],[[T9]],0x10
   3225 ; MIPS32: lui [[T4]],0xff00
   3226 ; MIPS32: ori [[T4]],[[T4]],0xffff
   3227 ; MIPS32: and [[T8]],[[T8]],[[T4]]
   3228 ; MIPS32: or [[T9]],[[T9]],[[T8]]
   3229 ; MIPS32: srl [[T10:.*]],a0,0x18
   3230 ; MIPS32: srl [[T0]],[[T0]],0x18
   3231 ; MIPS32: sll [[T10]],[[T10]],0x18
   3232 ; MIPS32: sll [[T0]],[[T0]],0x18
   3233 ; MIPS32: slt [[T0]],[[T0]],[[T10]]
   3234 ; MIPS32: sll [[T0]],[[T0]],0x18
   3235 ; MIPS32: sll [[T9]],[[T9]],0x8
   3236 ; MIPS32: srl [[T9]],[[T9]],0x8
   3237 ; MIPS32: or v0,[[T0]],[[T9]]
   3238 ; MIPS32: move [[T10]],a1
   3239 ; MIPS32: andi [[T10]],[[T10]],0xff
   3240 ; MIPS32: move [[T4]],[[T1]]
   3241 ; MIPS32: andi [[T4]],[[T4]],0xff
   3242 ; MIPS32: sll [[T10]],[[T10]],0x18
   3243 ; MIPS32: sll [[T4]],[[T4]],0x18
   3244 ; MIPS32: slt [[T4]],[[T4]],[[T10]]
   3245 ; MIPS32: andi [[T4]],[[T4]],0xff
   3246 ; MIPS32: srl [[T5]],[[T5]],0x8
   3247 ; MIPS32: sll [[T5]],[[T5]],0x8
   3248 ; MIPS32: or [[T4]],[[T4]],[[T5]]
   3249 ; MIPS32: move [[T10]],a1
   3250 ; MIPS32: srl [[T10]],[[T10]],0x8
   3251 ; MIPS32: andi [[T10]],[[T10]],0xff
   3252 ; MIPS32: move [[T5]],[[T1]]
   3253 ; MIPS32: srl [[T5]],[[T5]],0x8
   3254 ; MIPS32: andi [[T5]],[[T5]],0xff
   3255 ; MIPS32: sll [[T10]],[[T10]],0x18
   3256 ; MIPS32: sll [[T5]],[[T5]],0x18
   3257 ; MIPS32: slt [[T5]],[[T5]],[[T10]]
   3258 ; MIPS32: andi [[T5]],[[T5]],0xff
   3259 ; MIPS32: sll [[T5]],[[T5]],0x8
   3260 ; MIPS32: lui [[T10]],0xffff
   3261 ; MIPS32: ori [[T10]],[[T10]],0xff
   3262 ; MIPS32: and [[T4]],[[T4]],[[T10]]
   3263 ; MIPS32: or [[T5]],[[T5]],[[T4]]
   3264 ; MIPS32: move [[T10]],a1
   3265 ; MIPS32: srl [[T10]],[[T10]],0x10
   3266 ; MIPS32: andi [[T10]],[[T10]],0xff
   3267 ; MIPS32: move [[T4]],[[T1]]
   3268 ; MIPS32: srl [[T4]],[[T4]],0x10
   3269 ; MIPS32: andi [[T4]],[[T4]],0xff
   3270 ; MIPS32: sll [[T10]],[[T10]],0x18
   3271 ; MIPS32: sll [[T4]],[[T4]],0x18
   3272 ; MIPS32: slt [[T4]],[[T4]],[[T10]]
   3273 ; MIPS32: andi [[T4]],[[T4]],0xff
   3274 ; MIPS32: sll [[T4]],[[T4]],0x10
   3275 ; MIPS32: lui [[T10]],0xff00
   3276 ; MIPS32: ori [[T10]],[[T10]],0xffff
   3277 ; MIPS32: and [[T5]],[[T5]],[[T10]]
   3278 ; MIPS32: or [[T4]],[[T4]],[[T5]]
   3279 ; MIPS32: srl [[T11:.*]],a1,0x18
   3280 ; MIPS32: srl [[T1]],[[T1]],0x18
   3281 ; MIPS32: sll [[T11]],[[T11]],0x18
   3282 ; MIPS32: sll [[T1]],[[T1]],0x18
   3283 ; MIPS32: slt [[T1]],[[T1]],[[T11]]
   3284 ; MIPS32: sll [[T1]],[[T1]],0x18
   3285 ; MIPS32: sll [[T4]],[[T4]],0x8
   3286 ; MIPS32: srl [[T4]],[[T4]],0x8
   3287 ; MIPS32: or v1,[[T1]],[[T4]]
   3288 ; MIPS32: move [[T10]],a2
   3289 ; MIPS32: andi [[T10]],[[T10]],0xff
   3290 ; MIPS32: move [[T11]],[[T2]]
   3291 ; MIPS32: andi [[T11]],[[T11]],0xff
   3292 ; MIPS32: sll [[T10]],[[T10]],0x18
   3293 ; MIPS32: sll [[T11]],[[T11]],0x18
   3294 ; MIPS32: slt [[T11]],[[T11]],[[T10]]
   3295 ; MIPS32: andi [[T11]],[[T11]],0xff
   3296 ; MIPS32: srl [[T6]],[[T6]],0x8
   3297 ; MIPS32: sll [[T6]],[[T6]],0x8
   3298 ; MIPS32: or [[T11]],[[T11]],[[T6]]
   3299 ; MIPS32: move [[T10]],a2
   3300 ; MIPS32: srl [[T10]],[[T10]],0x8
   3301 ; MIPS32: andi [[T10]],[[T10]],0xff
   3302 ; MIPS32: move [[T4]],[[T2]]
   3303 ; MIPS32: srl [[T4]],[[T4]],0x8
   3304 ; MIPS32: andi [[T4]],[[T4]],0xff
   3305 ; MIPS32: sll [[T10]],[[T10]],0x18
   3306 ; MIPS32: sll [[T4]],[[T4]],0x18
   3307 ; MIPS32: slt [[T4]],[[T4]],[[T10]]
   3308 ; MIPS32: andi [[T4]],[[T4]],0xff
   3309 ; MIPS32: sll [[T4]],[[T4]],0x8
   3310 ; MIPS32: lui [[T10]],0xffff
   3311 ; MIPS32: ori [[T10]],[[T10]],0xff
   3312 ; MIPS32: and [[T11]],[[T11]],[[T10]]
   3313 ; MIPS32: or [[T4]],[[T4]],[[T11]]
   3314 ; MIPS32: move [[T10]],a2
   3315 ; MIPS32: srl [[T10]],[[T10]],0x10
   3316 ; MIPS32: andi [[T10]],[[T10]],0xff
   3317 ; MIPS32: move [[T11]],[[T2]]
   3318 ; MIPS32: srl [[T11]],[[T11]],0x10
   3319 ; MIPS32: andi [[T11]],[[T11]],0xff
   3320 ; MIPS32: sll [[T10]],[[T10]],0x18
   3321 ; MIPS32: sll [[T11]],[[T11]],0x18
   3322 ; MIPS32: slt [[T11]],[[T11]],[[T10]]
   3323 ; MIPS32: andi [[T11]],[[T11]],0xff
   3324 ; MIPS32: sll [[T11]],[[T11]],0x10
   3325 ; MIPS32: lui [[T10]],0xff00
   3326 ; MIPS32: ori [[T10]],[[T10]],0xffff
   3327 ; MIPS32: and [[T4]],[[T4]],[[T10]]
   3328 ; MIPS32: or [[T11]],[[T11]],[[T4]]
   3329 ; MIPS32: srl [[T12:.*]],a2,0x18
   3330 ; MIPS32: srl [[T2]],[[T2]],0x18
   3331 ; MIPS32: sll [[T12]],[[T12]],0x18
   3332 ; MIPS32: sll [[T2]],[[T2]],0x18
   3333 ; MIPS32: slt [[T2]],[[T2]],[[T12]]
   3334 ; MIPS32: sll [[T2]],[[T2]],0x18
   3335 ; MIPS32: sll [[T11]],[[T11]],0x8
   3336 ; MIPS32: srl [[T11]],[[T11]],0x8
   3337 ; MIPS32: or [[T2]],[[T2]],[[T11]]
   3338 ; MIPS32: move [[T10]],a3
   3339 ; MIPS32: andi [[T10]],[[T10]],0xff
   3340 ; MIPS32: move [[T11]],[[T3]]
   3341 ; MIPS32: andi [[T11]],[[T11]],0xff
   3342 ; MIPS32: sll [[T10]],[[T10]],0x18
   3343 ; MIPS32: sll [[T11]],[[T11]],0x18
   3344 ; MIPS32: slt [[T11]],[[T11]],[[T10]]
   3345 ; MIPS32: andi [[T11]],[[T11]],0xff
   3346 ; MIPS32: srl [[T7]],[[T7]],0x8
   3347 ; MIPS32: sll [[T7]],[[T7]],0x8
   3348 ; MIPS32: or [[T11]],[[T11]],[[T7]]
   3349 ; MIPS32: move [[T10]],a3
   3350 ; MIPS32: srl [[T10]],[[T10]],0x8
   3351 ; MIPS32: andi [[T10]],[[T10]],0xff
   3352 ; MIPS32: move [[T12]],[[T3]]
   3353 ; MIPS32: srl [[T12]],[[T12]],0x8
   3354 ; MIPS32: andi [[T12]],[[T12]],0xff
   3355 ; MIPS32: sll [[T10]],[[T10]],0x18
   3356 ; MIPS32: sll [[T12]],[[T12]],0x18
   3357 ; MIPS32: slt [[T12]],[[T12]],[[T10]]
   3358 ; MIPS32: andi [[T12]],[[T12]],0xff
   3359 ; MIPS32: sll [[T12]],[[T12]],0x8
   3360 ; MIPS32: lui [[T10]],0xffff
   3361 ; MIPS32: ori [[T10]],[[T10]],0xff
   3362 ; MIPS32: and [[T11]],[[T11]],[[T10]]
   3363 ; MIPS32: or [[T12]],[[T12]],[[T11]]
   3364 ; MIPS32: move [[T10]],a3
   3365 ; MIPS32: srl [[T10]],[[T10]],0x10
   3366 ; MIPS32: andi [[T10]],[[T10]],0xff
   3367 ; MIPS32: move [[T11]],[[T3]]
   3368 ; MIPS32: srl [[T11]],[[T11]],0x10
   3369 ; MIPS32: andi [[T11]],[[T11]],0xff
   3370 ; MIPS32: sll [[T10]],[[T10]],0x18
   3371 ; MIPS32: sll [[T11]],[[T11]],0x18
   3372 ; MIPS32: slt [[T11]],[[T11]],[[T10]]
   3373 ; MIPS32: andi [[T11]],[[T11]],0xff
   3374 ; MIPS32: sll [[T11]],[[T11]],0x10
   3375 ; MIPS32: lui [[T10]],0xff00
   3376 ; MIPS32: ori [[T10]],[[T10]],0xffff
   3377 ; MIPS32: and [[T12]],[[T12]],[[T10]]
   3378 ; MIPS32: or [[T11]],[[T11]],[[T12]]
   3379 ; MIPS32: srl [[T13:.*]],a3,0x18
   3380 ; MIPS32: srl [[T3]],[[T3]],0x18
   3381 ; MIPS32: sll [[T13]],[[T13]],0x18
   3382 ; MIPS32: sll [[T3]],[[T3]],0x18
   3383 ; MIPS32: slt [[T3]],[[T3]],[[T13]]
   3384 ; MIPS32: sll [[T3]],[[T3]],0x18
   3385 ; MIPS32: sll [[T11]],[[T11]],0x8
   3386 ; MIPS32: srl [[T11]],[[T11]],0x8
   3387 ; MIPS32: or [[T3]],[[T3]],[[T11]]
   3388 ; MIPS32: move a0,[[T2]]
   3389 ; MIPS32: move a1,[[T3]]
   3390 }
   3391 
   3392 define internal <16 x i1> @test_icmp_v16i8_sle(<16 x i8> %a, <16 x i8> %b) {
   3393 entry:
   3394   %res = icmp sle <16 x i8> %a, %b
   3395   ret <16 x i1> %res
   3396 ; CHECK-LABEL: test_icmp_v16i8_sle
   3397 ; CHECK: pcmpgtb
   3398 ; CHECK: pxor
   3399 
   3400 ; MIPS32-LABEL: test_icmp_v16i8_sle
   3401 ; MIPS32: lw [[T0:.*]],
   3402 ; MIPS32: lw [[T1:.*]],
   3403 ; MIPS32: lw [[T2:.*]],
   3404 ; MIPS32: lw [[T3:.*]],
   3405 ; MIPS32: move [[T4:.*]],zero
   3406 ; MIPS32: move [[T5:.*]],zero
   3407 ; MIPS32: move [[T6:.*]],zero
   3408 ; MIPS32: move [[T7:.*]],zero
   3409 ; MIPS32: move [[T8:.*]],a0
   3410 ; MIPS32: andi [[T8]],[[T8]],0xff
   3411 ; MIPS32: move [[T9:.*]],[[T0]]
   3412 ; MIPS32: andi [[T9]],[[T9]],0xff
   3413 ; MIPS32: sll [[T8]],[[T8]],0x18
   3414 ; MIPS32: sll [[T9]],[[T9]],0x18
   3415 ; MIPS32: slt [[T9]],[[T9]],[[T8]]
   3416 ; MIPS32: xori [[T9]],[[T9]],0x1
   3417 ; MIPS32: andi [[T9]],[[T9]],0xff
   3418 ; MIPS32: srl [[T4]],[[T4]],0x8
   3419 ; MIPS32: sll [[T4]],[[T4]],0x8
   3420 ; MIPS32: or [[T9]],[[T9]],[[T4]]
   3421 ; MIPS32: move [[T4]],a0
   3422 ; MIPS32: srl [[T4]],[[T4]],0x8
   3423 ; MIPS32: andi [[T4]],[[T4]],0xff
   3424 ; MIPS32: move [[T8]],[[T0]]
   3425 ; MIPS32: srl [[T8]],[[T8]],0x8
   3426 ; MIPS32: andi [[T8]],[[T8]],0xff
   3427 ; MIPS32: sll [[T4]],[[T4]],0x18
   3428 ; MIPS32: sll [[T8]],[[T8]],0x18
   3429 ; MIPS32: slt [[T8]],[[T8]],[[T4]]
   3430 ; MIPS32: xori [[T8]],[[T8]],0x1
   3431 ; MIPS32: andi [[T8]],[[T8]],0xff
   3432 ; MIPS32: sll [[T8]],[[T8]],0x8
   3433 ; MIPS32: lui [[T4]],0xffff
   3434 ; MIPS32: ori [[T4]],[[T4]],0xff
   3435 ; MIPS32: and [[T9]],[[T9]],[[T4]]
   3436 ; MIPS32: or [[T8]],[[T8]],[[T9]]
   3437 ; MIPS32: move [[T4]],a0
   3438 ; MIPS32: srl [[T4]],[[T4]],0x10
   3439 ; MIPS32: andi [[T4]],[[T4]],0xff
   3440 ; MIPS32: move [[T9]],[[T0]]
   3441 ; MIPS32: srl [[T9]],[[T9]],0x10
   3442 ; MIPS32: andi [[T9]],[[T9]],0xff
   3443 ; MIPS32: sll [[T4]],[[T4]],0x18
   3444 ; MIPS32: sll [[T9]],[[T9]],0x18
   3445 ; MIPS32: slt [[T9]],[[T9]],[[T4]]
   3446 ; MIPS32: xori [[T9]],[[T9]],0x1
   3447 ; MIPS32: andi [[T9]],[[T9]],0xff
   3448 ; MIPS32: sll [[T9]],[[T9]],0x10
   3449 ; MIPS32: lui [[T4]],0xff00
   3450 ; MIPS32: ori [[T4]],[[T4]],0xffff
   3451 ; MIPS32: and [[T8]],[[T8]],[[T4]]
   3452 ; MIPS32: or [[T9]],[[T9]],[[T8]]
   3453 ; MIPS32: srl [[T10:.*]],a0,0x18
   3454 ; MIPS32: srl [[T0]],[[T0]],0x18
   3455 ; MIPS32: sll [[T10]],[[T10]],0x18
   3456 ; MIPS32: sll [[T0]],[[T0]],0x18
   3457 ; MIPS32: slt [[T0]],[[T0]],[[T10]]
   3458 ; MIPS32: xori [[T0]],[[T0]],0x1
   3459 ; MIPS32: sll [[T0]],[[T0]],0x18
   3460 ; MIPS32: sll [[T9]],[[T9]],0x8
   3461 ; MIPS32: srl [[T9]],[[T9]],0x8
   3462 ; MIPS32: or v0,[[T0]],[[T9]]
   3463 ; MIPS32: move [[T10]],a1
   3464 ; MIPS32: andi [[T10]],[[T10]],0xff
   3465 ; MIPS32: move [[T4]],[[T1]]
   3466 ; MIPS32: andi [[T4]],[[T4]],0xff
   3467 ; MIPS32: sll [[T10]],[[T10]],0x18
   3468 ; MIPS32: sll [[T4]],[[T4]],0x18
   3469 ; MIPS32: slt [[T4]],[[T4]],[[T10]]
   3470 ; MIPS32: xori [[T4]],[[T4]],0x1
   3471 ; MIPS32: andi [[T4]],[[T4]],0xff
   3472 ; MIPS32: srl [[T5]],[[T5]],0x8
   3473 ; MIPS32: sll [[T5]],[[T5]],0x8
   3474 ; MIPS32: or [[T4]],[[T4]],[[T5]]
   3475 ; MIPS32: move [[T10]],a1
   3476 ; MIPS32: srl [[T10]],[[T10]],0x8
   3477 ; MIPS32: andi [[T10]],[[T10]],0xff
   3478 ; MIPS32: move [[T5]],[[T1]]
   3479 ; MIPS32: srl [[T5]],[[T5]],0x8
   3480 ; MIPS32: andi [[T5]],[[T5]],0xff
   3481 ; MIPS32: sll [[T10]],[[T10]],0x18
   3482 ; MIPS32: sll [[T5]],[[T5]],0x18
   3483 ; MIPS32: slt [[T5]],[[T5]],[[T10]]
   3484 ; MIPS32: xori [[T5]],[[T5]],0x1
   3485 ; MIPS32: andi [[T5]],[[T5]],0xff
   3486 ; MIPS32: sll [[T5]],[[T5]],0x8
   3487 ; MIPS32: lui [[T10]],0xffff
   3488 ; MIPS32: ori [[T10]],[[T10]],0xff
   3489 ; MIPS32: and [[T4]],[[T4]],[[T10]]
   3490 ; MIPS32: or [[T5]],[[T5]],[[T4]]
   3491 ; MIPS32: move [[T10]],a1
   3492 ; MIPS32: srl [[T10]],[[T10]],0x10
   3493 ; MIPS32: andi [[T10]],[[T10]],0xff
   3494 ; MIPS32: move [[T4]],[[T1]]
   3495 ; MIPS32: srl [[T4]],[[T4]],0x10
   3496 ; MIPS32: andi [[T4]],[[T4]],0xff
   3497 ; MIPS32: sll [[T10]],[[T10]],0x18
   3498 ; MIPS32: sll [[T4]],[[T4]],0x18
   3499 ; MIPS32: slt [[T4]],[[T4]],[[T10]]
   3500 ; MIPS32: xori [[T4]],[[T4]],0x1
   3501 ; MIPS32: andi [[T4]],[[T4]],0xff
   3502 ; MIPS32: sll [[T4]],[[T4]],0x10
   3503 ; MIPS32: lui [[T10]],0xff00
   3504 ; MIPS32: ori [[T10]],[[T10]],0xffff
   3505 ; MIPS32: and [[T5]],[[T5]],[[T10]]
   3506 ; MIPS32: or [[T4]],[[T4]],[[T5]]
   3507 ; MIPS32: srl [[T11:.*]],a1,0x18
   3508 ; MIPS32: srl [[T1]],[[T1]],0x18
   3509 ; MIPS32: sll [[T11]],[[T11]],0x18
   3510 ; MIPS32: sll [[T1]],[[T1]],0x18
   3511 ; MIPS32: slt [[T1]],[[T1]],[[T11]]
   3512 ; MIPS32: xori [[T1]],[[T1]],0x1
   3513 ; MIPS32: sll [[T1]],[[T1]],0x18
   3514 ; MIPS32: sll [[T4]],[[T4]],0x8
   3515 ; MIPS32: srl [[T4]],[[T4]],0x8
   3516 ; MIPS32: or v1,[[T1]],[[T4]]
   3517 ; MIPS32: move [[T10]],a2
   3518 ; MIPS32: andi [[T10]],[[T10]],0xff
   3519 ; MIPS32: move [[T11]],[[T2]]
   3520 ; MIPS32: andi [[T11]],[[T11]],0xff
   3521 ; MIPS32: sll [[T10]],[[T10]],0x18
   3522 ; MIPS32: sll [[T11]],[[T11]],0x18
   3523 ; MIPS32: slt [[T11]],[[T11]],[[T10]]
   3524 ; MIPS32: xori [[T11]],[[T11]],0x1
   3525 ; MIPS32: andi [[T11]],[[T11]],0xff
   3526 ; MIPS32: srl [[T6]],[[T6]],0x8
   3527 ; MIPS32: sll [[T6]],[[T6]],0x8
   3528 ; MIPS32: or [[T11]],[[T11]],[[T6]]
   3529 ; MIPS32: move [[T10]],a2
   3530 ; MIPS32: srl [[T10]],[[T10]],0x8
   3531 ; MIPS32: andi [[T10]],[[T10]],0xff
   3532 ; MIPS32: move [[T4]],[[T2]]
   3533 ; MIPS32: srl [[T4]],[[T4]],0x8
   3534 ; MIPS32: andi [[T4]],[[T4]],0xff
   3535 ; MIPS32: sll [[T10]],[[T10]],0x18
   3536 ; MIPS32: sll [[T4]],[[T4]],0x18
   3537 ; MIPS32: slt [[T4]],[[T4]],[[T10]]
   3538 ; MIPS32: xori [[T4]],[[T4]],0x1
   3539 ; MIPS32: andi [[T4]],[[T4]],0xff
   3540 ; MIPS32: sll [[T4]],[[T4]],0x8
   3541 ; MIPS32: lui [[T10]],0xffff
   3542 ; MIPS32: ori [[T10]],[[T10]],0xff
   3543 ; MIPS32: and [[T11]],[[T11]],[[T10]]
   3544 ; MIPS32: or [[T4]],[[T4]],[[T11]]
   3545 ; MIPS32: move [[T10]],a2
   3546 ; MIPS32: srl [[T10]],[[T10]],0x10
   3547 ; MIPS32: andi [[T10]],[[T10]],0xff
   3548 ; MIPS32: move [[T11]],[[T2]]
   3549 ; MIPS32: srl [[T11]],[[T11]],0x10
   3550 ; MIPS32: andi [[T11]],[[T11]],0xff
   3551 ; MIPS32: sll [[T10]],[[T10]],0x18
   3552 ; MIPS32: sll [[T11]],[[T11]],0x18
   3553 ; MIPS32: slt [[T11]],[[T11]],[[T10]]
   3554 ; MIPS32: xori [[T11]],[[T11]],0x1
   3555 ; MIPS32: andi [[T11]],[[T11]],0xff
   3556 ; MIPS32: sll [[T11]],[[T11]],0x10
   3557 ; MIPS32: lui [[T10]],0xff00
   3558 ; MIPS32: ori [[T10]],[[T10]],0xffff
   3559 ; MIPS32: and [[T4]],[[T4]],[[T10]]
   3560 ; MIPS32: or [[T11]],[[T11]],[[T4]]
   3561 ; MIPS32: srl [[T12:.*]],a2,0x18
   3562 ; MIPS32: srl [[T2]],[[T2]],0x18
   3563 ; MIPS32: sll [[T12]],[[T12]],0x18
   3564 ; MIPS32: sll [[T2]],[[T2]],0x18
   3565 ; MIPS32: slt [[T2]],[[T2]],[[T12]]
   3566 ; MIPS32: xori [[T2]],[[T2]],0x1
   3567 ; MIPS32: sll [[T2]],[[T2]],0x18
   3568 ; MIPS32: sll [[T11]],[[T11]],0x8
   3569 ; MIPS32: srl [[T11]],[[T11]],0x8
   3570 ; MIPS32: or [[T2]],[[T2]],[[T11]]
   3571 ; MIPS32: move [[T10]],a3
   3572 ; MIPS32: andi [[T10]],[[T10]],0xff
   3573 ; MIPS32: move [[T11]],[[T3]]
   3574 ; MIPS32: andi [[T11]],[[T11]],0xff
   3575 ; MIPS32: sll [[T10]],[[T10]],0x18
   3576 ; MIPS32: sll [[T11]],[[T11]],0x18
   3577 ; MIPS32: slt [[T11]],[[T11]],[[T10]]
   3578 ; MIPS32: xori [[T11]],[[T11]],0x1
   3579 ; MIPS32: andi [[T11]],[[T11]],0xff
   3580 ; MIPS32: srl [[T7]],[[T7]],0x8
   3581 ; MIPS32: sll [[T7]],[[T7]],0x8
   3582 ; MIPS32: or [[T11]],[[T11]],[[T7]]
   3583 ; MIPS32: move [[T10]],a3
   3584 ; MIPS32: srl [[T10]],[[T10]],0x8
   3585 ; MIPS32: andi [[T10]],[[T10]],0xff
   3586 ; MIPS32: move [[T12]],[[T3]]
   3587 ; MIPS32: srl [[T12]],[[T12]],0x8
   3588 ; MIPS32: andi [[T12]],[[T12]],0xff
   3589 ; MIPS32: sll [[T10]],[[T10]],0x18
   3590 ; MIPS32: sll [[T12]],[[T12]],0x18
   3591 ; MIPS32: slt [[T12]],[[T12]],[[T10]]
   3592 ; MIPS32: xori [[T12]],[[T12]],0x1
   3593 ; MIPS32: andi [[T12]],[[T12]],0xff
   3594 ; MIPS32: sll [[T12]],[[T12]],0x8
   3595 ; MIPS32: lui [[T10]],0xffff
   3596 ; MIPS32: ori [[T10]],[[T10]],0xff
   3597 ; MIPS32: and [[T11]],[[T11]],[[T10]]
   3598 ; MIPS32: or [[T12]],[[T12]],[[T11]]
   3599 ; MIPS32: move [[T10]],a3
   3600 ; MIPS32: srl [[T10]],[[T10]],0x10
   3601 ; MIPS32: andi [[T10]],[[T10]],0xff
   3602 ; MIPS32: move [[T11]],[[T3]]
   3603 ; MIPS32: srl [[T11]],[[T11]],0x10
   3604 ; MIPS32: andi [[T11]],[[T11]],0xff
   3605 ; MIPS32: sll [[T10]],[[T10]],0x18
   3606 ; MIPS32: sll [[T11]],[[T11]],0x18
   3607 ; MIPS32: slt [[T11]],[[T11]],[[T10]]
   3608 ; MIPS32: xori [[T11]],[[T11]],0x1
   3609 ; MIPS32: andi [[T11]],[[T11]],0xff
   3610 ; MIPS32: sll [[T11]],[[T11]],0x10
   3611 ; MIPS32: lui [[T10]],0xff00
   3612 ; MIPS32: ori [[T10]],[[T10]],0xffff
   3613 ; MIPS32: and [[T12]],[[T12]],[[T10]]
   3614 ; MIPS32: or [[T11]],[[T11]],[[T12]]
   3615 ; MIPS32: srl [[T13:.*]],a3,0x18
   3616 ; MIPS32: srl [[T3]],[[T3]],0x18
   3617 ; MIPS32: sll [[T13]],[[T13]],0x18
   3618 ; MIPS32: sll [[T3]],[[T3]],0x18
   3619 ; MIPS32: slt [[T3]],[[T3]],[[T13]]
   3620 ; MIPS32: xori [[T3]],[[T3]],0x1
   3621 ; MIPS32: sll [[T3]],[[T3]],0x18
   3622 ; MIPS32: sll [[T11]],[[T11]],0x8
   3623 ; MIPS32: srl [[T11]],[[T11]],0x8
   3624 ; MIPS32: or [[T3]],[[T3]],[[T11]]
   3625 ; MIPS32: move a0,[[T2]]
   3626 ; MIPS32: move a1,[[T3]]
   3627 }
   3628 
   3629 define internal <16 x i1> @test_icmp_v16i8_slt(<16 x i8> %a, <16 x i8> %b) {
   3630 entry:
   3631   %res = icmp slt <16 x i8> %a, %b
   3632   ret <16 x i1> %res
   3633 ; CHECK-LABEL: test_icmp_v16i8_slt
   3634 ; CHECK: pcmpgtb
   3635 
   3636 ; MIPS32-LABEL: test_icmp_v16i8_slt
   3637 ; MIPS32: lw [[T0:.*]],
   3638 ; MIPS32: lw [[T1:.*]],
   3639 ; MIPS32: lw [[T2:.*]],
   3640 ; MIPS32: lw [[T3:.*]],
   3641 ; MIPS32: move [[T4:.*]],zero
   3642 ; MIPS32: move [[T5:.*]],zero
   3643 ; MIPS32: move [[T6:.*]],zero
   3644 ; MIPS32: move [[T7:.*]],zero
   3645 ; MIPS32: move [[T8:.*]],a0
   3646 ; MIPS32: andi [[T8]],[[T8]],0xff
   3647 ; MIPS32: move [[T9:.*]],[[T0]]
   3648 ; MIPS32: andi [[T9]],[[T9]],0xff
   3649 ; MIPS32: sll [[T8]],[[T8]],0x18
   3650 ; MIPS32: sll [[T9]],[[T9]],0x18
   3651 ; MIPS32: slt [[T8]],[[T8]],[[T9]]
   3652 ; MIPS32: andi [[T8]],[[T8]],0xff
   3653 ; MIPS32: srl [[T4]],[[T4]],0x8
   3654 ; MIPS32: sll [[T4]],[[T4]],0x8
   3655 ; MIPS32: or [[T8]],[[T8]],[[T4]]
   3656 ; MIPS32: move [[T4]],a0
   3657 ; MIPS32: srl [[T4]],[[T4]],0x8
   3658 ; MIPS32: andi [[T4]],[[T4]],0xff
   3659 ; MIPS32: move [[T9]],[[T0]]
   3660 ; MIPS32: srl [[T9]],[[T9]],0x8
   3661 ; MIPS32: andi [[T9]],[[T9]],0xff
   3662 ; MIPS32: sll [[T4]],[[T4]],0x18
   3663 ; MIPS32: sll [[T9]],[[T9]],0x18
   3664 ; MIPS32: slt [[T4]],[[T4]],[[T9]]
   3665 ; MIPS32: andi [[T4]],[[T4]],0xff
   3666 ; MIPS32: sll [[T4]],[[T4]],0x8
   3667 ; MIPS32: lui [[T9]],0xffff
   3668 ; MIPS32: ori [[T9]],[[T9]],0xff
   3669 ; MIPS32: and [[T8]],[[T8]],[[T9]]
   3670 ; MIPS32: or [[T4]],[[T4]],[[T8]]
   3671 ; MIPS32: move [[T8]],a0
   3672 ; MIPS32: srl [[T8]],[[T8]],0x10
   3673 ; MIPS32: andi [[T8]],[[T8]],0xff
   3674 ; MIPS32: move [[T9]],[[T0]]
   3675 ; MIPS32: srl [[T9]],[[T9]],0x10
   3676 ; MIPS32: andi [[T9]],[[T9]],0xff
   3677 ; MIPS32: sll [[T8]],[[T8]],0x18
   3678 ; MIPS32: sll [[T9]],[[T9]],0x18
   3679 ; MIPS32: slt [[T8]],[[T8]],[[T9]]
   3680 ; MIPS32: andi [[T8]],[[T8]],0xff
   3681 ; MIPS32: sll [[T8]],[[T8]],0x10
   3682 ; MIPS32: lui [[T9]],0xff00
   3683 ; MIPS32: ori [[T9]],[[T9]],0xffff
   3684 ; MIPS32: and [[T4]],[[T4]],[[T9]]
   3685 ; MIPS32: or [[T8]],[[T8]],[[T4]]
   3686 ; MIPS32: srl [[T10:.*]],a0,0x18
   3687 ; MIPS32: srl [[T0]],[[T0]],0x18
   3688 ; MIPS32: sll [[T10]],[[T10]],0x18
   3689 ; MIPS32: sll [[T0]],[[T0]],0x18
   3690 ; MIPS32: slt [[T10]],[[T10]],[[T0]]
   3691 ; MIPS32: sll [[T10]],[[T10]],0x18
   3692 ; MIPS32: sll [[T8]],[[T8]],0x8
   3693 ; MIPS32: srl [[T8]],[[T8]],0x8
   3694 ; MIPS32: or [[T10]],[[T10]],[[T8]]
   3695 ; MIPS32: move [[T0]],a1
   3696 ; MIPS32: andi [[T0]],[[T0]],0xff
   3697 ; MIPS32: move [[T4]],[[T1]]
   3698 ; MIPS32: andi [[T4]],[[T4]],0xff
   3699 ; MIPS32: sll [[T0]],[[T0]],0x18
   3700 ; MIPS32: sll [[T4]],[[T4]],0x18
   3701 ; MIPS32: slt [[T0]],[[T0]],[[T4]]
   3702 ; MIPS32: andi [[T0]],[[T0]],0xff
   3703 ; MIPS32: srl [[T5]],[[T5]],0x8
   3704 ; MIPS32: sll [[T5]],[[T5]],0x8
   3705 ; MIPS32: or [[T0]],[[T0]],[[T5]]
   3706 ; MIPS32: move [[T4]],a1
   3707 ; MIPS32: srl [[T4]],[[T4]],0x8
   3708 ; MIPS32: andi [[T4]],[[T4]],0xff
   3709 ; MIPS32: move [[T5]],[[T1]]
   3710 ; MIPS32: srl [[T5]],[[T5]],0x8
   3711 ; MIPS32: andi [[T5]],[[T5]],0xff
   3712 ; MIPS32: sll [[T4]],[[T4]],0x18
   3713 ; MIPS32: sll [[T5]],[[T5]],0x18
   3714 ; MIPS32: slt [[T4]],[[T4]],[[T5]]
   3715 ; MIPS32: andi [[T4]],[[T4]],0xff
   3716 ; MIPS32: sll [[T4]],[[T4]],0x8
   3717 ; MIPS32: lui [[T5]],0xffff
   3718 ; MIPS32: ori [[T5]],[[T5]],0xff
   3719 ; MIPS32: and [[T0]],[[T0]],[[T5]]
   3720 ; MIPS32: or [[T4]],[[T4]],[[T0]]
   3721 ; MIPS32: move [[T0]],a1
   3722 ; MIPS32: srl [[T0]],[[T0]],0x10
   3723 ; MIPS32: andi [[T0]],[[T0]],0xff
   3724 ; MIPS32: move [[T5]],[[T1]]
   3725 ; MIPS32: srl [[T5]],[[T5]],0x10
   3726 ; MIPS32: andi [[T5]],[[T5]],0xff
   3727 ; MIPS32: sll [[T0]],[[T0]],0x18
   3728 ; MIPS32: sll [[T5]],[[T5]],0x18
   3729 ; MIPS32: slt [[T0]],[[T0]],[[T5]]
   3730 ; MIPS32: andi [[T0]],[[T0]],0xff
   3731 ; MIPS32: sll [[T0]],[[T0]],0x10
   3732 ; MIPS32: lui [[T5]],0xff00
   3733 ; MIPS32: ori [[T5]],[[T5]],0xffff
   3734 ; MIPS32: and [[T4]],[[T4]],[[T5]]
   3735 ; MIPS32: or [[T0]],[[T0]],[[T4]]
   3736 ; MIPS32: srl [[T11:.*]],a1,0x18
   3737 ; MIPS32: srl [[T1]],[[T1]],0x18
   3738 ; MIPS32: sll [[T11]],[[T11]],0x18
   3739 ; MIPS32: sll [[T1]],[[T1]],0x18
   3740 ; MIPS32: slt [[T11]],[[T11]],[[T1]]
   3741 ; MIPS32: sll [[T11]],[[T11]],0x18
   3742 ; MIPS32: sll [[T0]],[[T0]],0x8
   3743 ; MIPS32: srl [[T0]],[[T0]],0x8
   3744 ; MIPS32: or [[T11]],[[T11]],[[T0]]
   3745 ; MIPS32: move [[T0]],a2
   3746 ; MIPS32: andi [[T0]],[[T0]],0xff
   3747 ; MIPS32: move [[T1]],[[T2]]
   3748 ; MIPS32: andi [[T1]],[[T1]],0xff
   3749 ; MIPS32: sll [[T0]],[[T0]],0x18
   3750 ; MIPS32: sll [[T1]],[[T1]],0x18
   3751 ; MIPS32: slt [[T0]],[[T0]],[[T1]]
   3752 ; MIPS32: andi [[T0]],[[T0]],0xff
   3753 ; MIPS32: srl [[T6]],[[T6]],0x8
   3754 ; MIPS32: sll [[T6]],[[T6]],0x8
   3755 ; MIPS32: or [[T0]],[[T0]],[[T6]]
   3756 ; MIPS32: move [[T1]],a2
   3757 ; MIPS32: srl [[T1]],[[T1]],0x8
   3758 ; MIPS32: andi [[T1]],[[T1]],0xff
   3759 ; MIPS32: move [[T4]],[[T2]]
   3760 ; MIPS32: srl [[T4]],[[T4]],0x8
   3761 ; MIPS32: andi [[T4]],[[T4]],0xff
   3762 ; MIPS32: sll [[T1]],[[T1]],0x18
   3763 ; MIPS32: sll [[T4]],[[T4]],0x18
   3764 ; MIPS32: slt [[T1]],[[T1]],[[T4]]
   3765 ; MIPS32: andi [[T1]],[[T1]],0xff
   3766 ; MIPS32: sll [[T1]],[[T1]],0x8
   3767 ; MIPS32: lui [[T4]],0xffff
   3768 ; MIPS32: ori [[T4]],[[T4]],0xff
   3769 ; MIPS32: and [[T0]],[[T0]],[[T4]]
   3770 ; MIPS32: or [[T1]],[[T1]],[[T0]]
   3771 ; MIPS32: move [[T0]],a2
   3772 ; MIPS32: srl [[T0]],[[T0]],0x10
   3773 ; MIPS32: andi [[T0]],[[T0]],0xff
   3774 ; MIPS32: move [[T4]],[[T2]]
   3775 ; MIPS32: srl [[T4]],[[T4]],0x10
   3776 ; MIPS32: andi [[T4]],[[T4]],0xff
   3777 ; MIPS32: sll [[T0]],[[T0]],0x18
   3778 ; MIPS32: sll [[T4]],[[T4]],0x18
   3779 ; MIPS32: slt [[T0]],[[T0]],[[T4]]
   3780 ; MIPS32: andi [[T0]],[[T0]],0xff
   3781 ; MIPS32: sll [[T0]],[[T0]],0x10
   3782 ; MIPS32: lui [[T4]],0xff00
   3783 ; MIPS32: ori [[T4]],[[T4]],0xffff
   3784 ; MIPS32: and [[T1]],[[T1]],[[T4]]
   3785 ; MIPS32: or [[T0]],[[T0]],[[T1]]
   3786 ; MIPS32: srl [[T12:.*]],a2,0x18
   3787 ; MIPS32: srl [[T2]],[[T2]],0x18
   3788 ; MIPS32: sll [[T12]],[[T12]],0x18
   3789 ; MIPS32: sll [[T2]],[[T2]],0x18
   3790 ; MIPS32: slt [[T12]],[[T12]],[[T2]]
   3791 ; MIPS32: sll [[T12]],[[T12]],0x18
   3792 ; MIPS32: sll [[T0]],[[T0]],0x8
   3793 ; MIPS32: srl [[T0]],[[T0]],0x8
   3794 ; MIPS32: or [[T12]],[[T12]],[[T0]]
   3795 ; MIPS32: move [[T0]],a3
   3796 ; MIPS32: andi [[T0]],[[T0]],0xff
   3797 ; MIPS32: move [[T1]],[[T3]]
   3798 ; MIPS32: andi [[T1]],[[T1]],0xff
   3799 ; MIPS32: sll [[T0]],[[T0]],0x18
   3800 ; MIPS32: sll [[T1]],[[T1]],0x18
   3801 ; MIPS32: slt [[T0]],[[T0]],[[T1]]
   3802 ; MIPS32: andi [[T0]],[[T0]],0xff
   3803 ; MIPS32: srl [[T7]],[[T7]],0x8
   3804 ; MIPS32: sll [[T7]],[[T7]],0x8
   3805 ; MIPS32: or [[T0]],[[T0]],[[T7]]
   3806 ; MIPS32: move [[T1]],a3
   3807 ; MIPS32: srl [[T1]],[[T1]],0x8
   3808 ; MIPS32: andi [[T1]],[[T1]],0xff
   3809 ; MIPS32: move [[T2]],[[T3]]
   3810 ; MIPS32: srl [[T2]],[[T2]],0x8
   3811 ; MIPS32: andi [[T2]],[[T2]],0xff
   3812 ; MIPS32: sll [[T1]],[[T1]],0x18
   3813 ; MIPS32: sll [[T2]],[[T2]],0x18
   3814 ; MIPS32: slt [[T1]],[[T1]],[[T2]]
   3815 ; MIPS32: andi [[T1]],[[T1]],0xff
   3816 ; MIPS32: sll [[T1]],[[T1]],0x8
   3817 ; MIPS32: lui [[T2]],0xffff
   3818 ; MIPS32: ori [[T2]],[[T2]],0xff
   3819 ; MIPS32: and [[T0]],[[T0]],[[T2]]
   3820 ; MIPS32: or [[T1]],[[T1]],[[T0]]
   3821 ; MIPS32: move [[T0]],a3
   3822 ; MIPS32: srl [[T0]],[[T0]],0x10
   3823 ; MIPS32: andi [[T0]],[[T0]],0xff
   3824 ; MIPS32: move [[T2]],[[T3]]
   3825 ; MIPS32: srl [[T2]],[[T2]],0x10
   3826 ; MIPS32: andi [[T2]],[[T2]],0xff
   3827 ; MIPS32: sll [[T0]],[[T0]],0x18
   3828 ; MIPS32: sll [[T2]],[[T2]],0x18
   3829 ; MIPS32: slt [[T0]],[[T0]],[[T2]]
   3830 ; MIPS32: andi [[T0]],[[T0]],0xff
   3831 ; MIPS32: sll [[T0]],[[T0]],0x10
   3832 ; MIPS32: lui [[T2]],0xff00
   3833 ; MIPS32: ori [[T2]],[[T2]],0xffff
   3834 ; MIPS32: and [[T1]],[[T1]],[[T2]]
   3835 ; MIPS32: or [[T0]],[[T0]],[[T1]]
   3836 ; MIPS32: srl [[T13:.*]],a3,0x18
   3837 ; MIPS32: srl [[T3]],[[T3]],0x18
   3838 ; MIPS32: sll [[T13]],[[T13]],0x18
   3839 ; MIPS32: sll [[T3]],[[T3]],0x18
   3840 ; MIPS32: slt [[T13]],[[T13]],[[T3]]
   3841 ; MIPS32: sll [[T13]],[[T13]],0x18
   3842 ; MIPS32: sll [[T0]],[[T0]],0x8
   3843 ; MIPS32: srl [[T0]],[[T0]],0x8
   3844 ; MIPS32: or [[T13]],[[T13]],[[T0]]
   3845 ; MIPS32: move v0,[[T10]]
   3846 ; MIPS32: move v1,[[T11]]
   3847 ; MIPS32: move a0,[[T12]]
   3848 ; MIPS32: move a1,[[T13]]
   3849 }
   3850 
   3851 define internal <16 x i1> @test_icmp_v16i8_uge(<16 x i8> %a, <16 x i8> %b) {
   3852 entry:
   3853   %res = icmp uge <16 x i8> %a, %b
   3854   ret <16 x i1> %res
   3855 ; CHECK-LABEL: test_icmp_v16i8_uge
   3856 ; CHECK: pxor
   3857 ; CHECK: pcmpgtb
   3858 ; CHECK: pxor
   3859 
   3860 ; MIPS32-LABEL: test_icmp_v16i8_uge
   3861 ; MIPS32: lw [[T0:.*]],
   3862 ; MIPS32: lw [[T1:.*]],
   3863 ; MIPS32: lw [[T2:.*]],
   3864 ; MIPS32: lw [[T3:.*]],
   3865 ; MIPS32: move [[T4:.*]],zero
   3866 ; MIPS32: move [[T5:.*]],zero
   3867 ; MIPS32: move [[T6:.*]],zero
   3868 ; MIPS32: move [[T7:.*]],zero
   3869 ; MIPS32: move [[T8:.*]],a0
   3870 ; MIPS32: andi [[T8]],[[T8]],0xff
   3871 ; MIPS32: move [[T9:.*]],[[T0]]
   3872 ; MIPS32: andi [[T9]],[[T9]],0xff
   3873 ; MIPS32: sll [[T8]],[[T8]],0x18
   3874 ; MIPS32: sll [[T9]],[[T9]],0x18
   3875 ; MIPS32: sltu [[T8]],[[T8]],[[T9]]
   3876 ; MIPS32: xori [[T8]],[[T8]],0x1
   3877 ; MIPS32: andi [[T8]],[[T8]],0xff
   3878 ; MIPS32: srl [[T4]],[[T4]],0x8
   3879 ; MIPS32: sll [[T4]],[[T4]],0x8
   3880 ; MIPS32: or [[T8]],[[T8]],[[T4]]
   3881 ; MIPS32: move [[T4]],a0
   3882 ; MIPS32: srl [[T4]],[[T4]],0x8
   3883 ; MIPS32: andi [[T4]],[[T4]],0xff
   3884 ; MIPS32: move [[T9]],[[T0]]
   3885 ; MIPS32: srl [[T9]],[[T9]],0x8
   3886 ; MIPS32: andi [[T9]],[[T9]],0xff
   3887 ; MIPS32: sll [[T4]],[[T4]],0x18
   3888 ; MIPS32: sll [[T9]],[[T9]],0x18
   3889 ; MIPS32: sltu [[T4]],[[T4]],[[T9]]
   3890 ; MIPS32: xori [[T4]],[[T4]],0x1
   3891 ; MIPS32: andi [[T4]],[[T4]],0xff
   3892 ; MIPS32: sll [[T4]],[[T4]],0x8
   3893 ; MIPS32: lui [[T9]],0xffff
   3894 ; MIPS32: ori [[T9]],[[T9]],0xff
   3895 ; MIPS32: and [[T8]],[[T8]],[[T9]]
   3896 ; MIPS32: or [[T4]],[[T4]],[[T8]]
   3897 ; MIPS32: move [[T8]],a0
   3898 ; MIPS32: srl [[T8]],[[T8]],0x10
   3899 ; MIPS32: andi [[T8]],[[T8]],0xff
   3900 ; MIPS32: move [[T9]],[[T0]]
   3901 ; MIPS32: srl [[T9]],[[T9]],0x10
   3902 ; MIPS32: andi [[T9]],[[T9]],0xff
   3903 ; MIPS32: sll [[T8]],[[T8]],0x18
   3904 ; MIPS32: sll [[T9]],[[T9]],0x18
   3905 ; MIPS32: sltu [[T8]],[[T8]],[[T9]]
   3906 ; MIPS32: xori [[T8]],[[T8]],0x1
   3907 ; MIPS32: andi [[T8]],[[T8]],0xff
   3908 ; MIPS32: sll [[T8]],[[T8]],0x10
   3909 ; MIPS32: lui [[T9]],0xff00
   3910 ; MIPS32: ori [[T9]],[[T9]],0xffff
   3911 ; MIPS32: and [[T4]],[[T4]],[[T9]]
   3912 ; MIPS32: or [[T8]],[[T8]],[[T4]]
   3913 ; MIPS32: srl [[T10:.*]],a0,0x18
   3914 ; MIPS32: srl [[T0]],[[T0]],0x18
   3915 ; MIPS32: sll [[T10]],[[T10]],0x18
   3916 ; MIPS32: sll [[T0]],[[T0]],0x18
   3917 ; MIPS32: sltu [[T10]],[[T10]],[[T0]]
   3918 ; MIPS32: xori [[T10]],[[T10]],0x1
   3919 ; MIPS32: sll [[T10]],[[T10]],0x18
   3920 ; MIPS32: sll [[T8]],[[T8]],0x8
   3921 ; MIPS32: srl [[T8]],[[T8]],0x8
   3922 ; MIPS32: or [[T10]],[[T10]],[[T8]]
   3923 ; MIPS32: move [[T0]],a1
   3924 ; MIPS32: andi [[T0]],[[T0]],0xff
   3925 ; MIPS32: move [[T4]],[[T1]]
   3926 ; MIPS32: andi [[T4]],[[T4]],0xff
   3927 ; MIPS32: sll [[T0]],[[T0]],0x18
   3928 ; MIPS32: sll [[T4]],[[T4]],0x18
   3929 ; MIPS32: sltu [[T0]],[[T0]],[[T4]]
   3930 ; MIPS32: xori [[T0]],[[T0]],0x1
   3931 ; MIPS32: andi [[T0]],[[T0]],0xff
   3932 ; MIPS32: srl [[T5]],[[T5]],0x8
   3933 ; MIPS32: sll [[T5]],[[T5]],0x8
   3934 ; MIPS32: or [[T0]],[[T0]],[[T5]]
   3935 ; MIPS32: move [[T4]],a1
   3936 ; MIPS32: srl [[T4]],[[T4]],0x8
   3937 ; MIPS32: andi [[T4]],[[T4]],0xff
   3938 ; MIPS32: move [[T5]],[[T1]]
   3939 ; MIPS32: srl [[T5]],[[T5]],0x8
   3940 ; MIPS32: andi [[T5]],[[T5]],0xff
   3941 ; MIPS32: sll [[T4]],[[T4]],0x18
   3942 ; MIPS32: sll [[T5]],[[T5]],0x18
   3943 ; MIPS32: sltu [[T4]],[[T4]],[[T5]]
   3944 ; MIPS32: xori [[T4]],[[T4]],0x1
   3945 ; MIPS32: andi [[T4]],[[T4]],0xff
   3946 ; MIPS32: sll [[T4]],[[T4]],0x8
   3947 ; MIPS32: lui [[T5]],0xffff
   3948 ; MIPS32: ori [[T5]],[[T5]],0xff
   3949 ; MIPS32: and [[T0]],[[T0]],[[T5]]
   3950 ; MIPS32: or [[T4]],[[T4]],[[T0]]
   3951 ; MIPS32: move [[T0]],a1
   3952 ; MIPS32: srl [[T0]],[[T0]],0x10
   3953 ; MIPS32: andi [[T0]],[[T0]],0xff
   3954 ; MIPS32: move [[T5]],[[T1]]
   3955 ; MIPS32: srl [[T5]],[[T5]],0x10
   3956 ; MIPS32: andi [[T5]],[[T5]],0xff
   3957 ; MIPS32: sll [[T0]],[[T0]],0x18
   3958 ; MIPS32: sll [[T5]],[[T5]],0x18
   3959 ; MIPS32: sltu [[T0]],[[T0]],[[T5]]
   3960 ; MIPS32: xori [[T0]],[[T0]],0x1
   3961 ; MIPS32: andi [[T0]],[[T0]],0xff
   3962 ; MIPS32: sll [[T0]],[[T0]],0x10
   3963 ; MIPS32: lui [[T5]],0xff00
   3964 ; MIPS32: ori [[T5]],[[T5]],0xffff
   3965 ; MIPS32: and [[T4]],[[T4]],[[T5]]
   3966 ; MIPS32: or [[T0]],[[T0]],[[T4]]
   3967 ; MIPS32: srl [[T11:.*]],a1,0x18
   3968 ; MIPS32: srl [[T1]],[[T1]],0x18
   3969 ; MIPS32: sll [[T11]],[[T11]],0x18
   3970 ; MIPS32: sll [[T1]],[[T1]],0x18
   3971 ; MIPS32: sltu [[T11]],[[T11]],[[T1]]
   3972 ; MIPS32: xori [[T11]],[[T11]],0x1
   3973 ; MIPS32: sll [[T11]],[[T11]],0x18
   3974 ; MIPS32: sll [[T0]],[[T0]],0x8
   3975 ; MIPS32: srl [[T0]],[[T0]],0x8
   3976 ; MIPS32: or [[T11]],[[T11]],[[T0]]
   3977 ; MIPS32: move [[T0]],a2
   3978 ; MIPS32: andi [[T0]],[[T0]],0xff
   3979 ; MIPS32: move [[T1]],[[T2]]
   3980 ; MIPS32: andi [[T1]],[[T1]],0xff
   3981 ; MIPS32: sll [[T0]],[[T0]],0x18
   3982 ; MIPS32: sll [[T1]],[[T1]],0x18
   3983 ; MIPS32: sltu [[T0]],[[T0]],[[T1]]
   3984 ; MIPS32: xori [[T0]],[[T0]],0x1
   3985 ; MIPS32: andi [[T0]],[[T0]],0xff
   3986 ; MIPS32: srl [[T6]],[[T6]],0x8
   3987 ; MIPS32: sll [[T6]],[[T6]],0x8
   3988 ; MIPS32: or [[T0]],[[T0]],[[T6]]
   3989 ; MIPS32: move [[T1]],a2
   3990 ; MIPS32: srl [[T1]],[[T1]],0x8
   3991 ; MIPS32: andi [[T1]],[[T1]],0xff
   3992 ; MIPS32: move [[T4]],[[T2]]
   3993 ; MIPS32: srl [[T4]],[[T4]],0x8
   3994 ; MIPS32: andi [[T4]],[[T4]],0xff
   3995 ; MIPS32: sll [[T1]],[[T1]],0x18
   3996 ; MIPS32: sll [[T4]],[[T4]],0x18
   3997 ; MIPS32: sltu [[T1]],[[T1]],[[T4]]
   3998 ; MIPS32: xori [[T1]],[[T1]],0x1
   3999 ; MIPS32: andi [[T1]],[[T1]],0xff
   4000 ; MIPS32: sll [[T1]],[[T1]],0x8
   4001 ; MIPS32: lui [[T4]],0xffff
   4002 ; MIPS32: ori [[T4]],[[T4]],0xff
   4003 ; MIPS32: and [[T0]],[[T0]],[[T4]]
   4004 ; MIPS32: or [[T1]],[[T1]],[[T0]]
   4005 ; MIPS32: move [[T0]],a2
   4006 ; MIPS32: srl [[T0]],[[T0]],0x10
   4007 ; MIPS32: andi [[T0]],[[T0]],0xff
   4008 ; MIPS32: move [[T4]],[[T2]]
   4009 ; MIPS32: srl [[T4]],[[T4]],0x10
   4010 ; MIPS32: andi [[T4]],[[T4]],0xff
   4011 ; MIPS32: sll [[T0]],[[T0]],0x18
   4012 ; MIPS32: sll [[T4]],[[T4]],0x18
   4013 ; MIPS32: sltu [[T0]],[[T0]],[[T4]]
   4014 ; MIPS32: xori [[T0]],[[T0]],0x1
   4015 ; MIPS32: andi [[T0]],[[T0]],0xff
   4016 ; MIPS32: sll [[T0]],[[T0]],0x10
   4017 ; MIPS32: lui [[T4]],0xff00
   4018 ; MIPS32: ori [[T4]],[[T4]],0xffff
   4019 ; MIPS32: and [[T1]],[[T1]],[[T4]]
   4020 ; MIPS32: or [[T0]],[[T0]],[[T1]]
   4021 ; MIPS32: srl [[T12:.*]],a2,0x18
   4022 ; MIPS32: srl [[T2]],[[T2]],0x18
   4023 ; MIPS32: sll [[T12]],[[T12]],0x18
   4024 ; MIPS32: sll [[T2]],[[T2]],0x18
   4025 ; MIPS32: sltu [[T12]],[[T12]],[[T2]]
   4026 ; MIPS32: xori [[T12]],[[T12]],0x1
   4027 ; MIPS32: sll [[T12]],[[T12]],0x18
   4028 ; MIPS32: sll [[T0]],[[T0]],0x8
   4029 ; MIPS32: srl [[T0]],[[T0]],0x8
   4030 ; MIPS32: or [[T12]],[[T12]],[[T0]]
   4031 ; MIPS32: move [[T0]],a3
   4032 ; MIPS32: andi [[T0]],[[T0]],0xff
   4033 ; MIPS32: move [[T1]],[[T3]]
   4034 ; MIPS32: andi [[T1]],[[T1]],0xff
   4035 ; MIPS32: sll [[T0]],[[T0]],0x18
   4036 ; MIPS32: sll [[T1]],[[T1]],0x18
   4037 ; MIPS32: sltu [[T0]],[[T0]],[[T1]]
   4038 ; MIPS32: xori [[T0]],[[T0]],0x1
   4039 ; MIPS32: andi [[T0]],[[T0]],0xff
   4040 ; MIPS32: srl [[T7]],[[T7]],0x8
   4041 ; MIPS32: sll [[T7]],[[T7]],0x8
   4042 ; MIPS32: or [[T0]],[[T0]],[[T7]]
   4043 ; MIPS32: move [[T1]],a3
   4044 ; MIPS32: srl [[T1]],[[T1]],0x8
   4045 ; MIPS32: andi [[T1]],[[T1]],0xff
   4046 ; MIPS32: move [[T2]],[[T3]]
   4047 ; MIPS32: srl [[T2]],[[T2]],0x8
   4048 ; MIPS32: andi [[T2]],[[T2]],0xff
   4049 ; MIPS32: sll [[T1]],[[T1]],0x18
   4050 ; MIPS32: sll [[T2]],[[T2]],0x18
   4051 ; MIPS32: sltu [[T1]],[[T1]],[[T2]]
   4052 ; MIPS32: xori [[T1]],[[T1]],0x1
   4053 ; MIPS32: andi [[T1]],[[T1]],0xff
   4054 ; MIPS32: sll [[T1]],[[T1]],0x8
   4055 ; MIPS32: lui [[T2]],0xffff
   4056 ; MIPS32: ori [[T2]],[[T2]],0xff
   4057 ; MIPS32: and [[T0]],[[T0]],[[T2]]
   4058 ; MIPS32: or [[T1]],[[T1]],[[T0]]
   4059 ; MIPS32: move [[T0]],a3
   4060 ; MIPS32: srl [[T0]],[[T0]],0x10
   4061 ; MIPS32: andi [[T0]],[[T0]],0xff
   4062 ; MIPS32: move [[T2]],[[T3]]
   4063 ; MIPS32: srl [[T2]],[[T2]],0x10
   4064 ; MIPS32: andi [[T2]],[[T2]],0xff
   4065 ; MIPS32: sll [[T0]],[[T0]],0x18
   4066 ; MIPS32: sll [[T2]],[[T2]],0x18
   4067 ; MIPS32: sltu [[T0]],[[T0]],[[T2]]
   4068 ; MIPS32: xori [[T0]],[[T0]],0x1
   4069 ; MIPS32: andi [[T0]],[[T0]],0xff
   4070 ; MIPS32: sll [[T0]],[[T0]],0x10
   4071 ; MIPS32: lui [[T2]],0xff00
   4072 ; MIPS32: ori [[T2]],[[T2]],0xffff
   4073 ; MIPS32: and [[T1]],[[T1]],[[T2]]
   4074 ; MIPS32: or [[T0]],[[T0]],[[T1]]
   4075 ; MIPS32: srl [[T13:.*]],a3,0x18
   4076 ; MIPS32: srl [[T3]],[[T3]],0x18
   4077 ; MIPS32: sll [[T13]],[[T13]],0x18
   4078 ; MIPS32: sll [[T3]],[[T3]],0x18
   4079 ; MIPS32: sltu [[T13]],[[T13]],[[T3]]
   4080 ; MIPS32: xori [[T13]],[[T13]],0x1
   4081 ; MIPS32: sll [[T13]],[[T13]],0x18
   4082 ; MIPS32: sll [[T0]],[[T0]],0x8
   4083 ; MIPS32: srl [[T0]],[[T0]],0x8
   4084 ; MIPS32: or [[T13]],[[T13]],[[T0]]
   4085 ; MIPS32: move v0,[[T10]]
   4086 ; MIPS32: move v1,[[T11]]
   4087 ; MIPS32: move a0,[[T12]]
   4088 ; MIPS32: move a1,[[T13]]
   4089 }
   4090 
   4091 define internal <16 x i1> @test_icmp_v16i8_ugt(<16 x i8> %a, <16 x i8> %b) {
   4092 entry:
   4093   %res = icmp ugt <16 x i8> %a, %b
   4094   ret <16 x i1> %res
   4095 ; CHECK-LABEL: test_icmp_v16i8_ugt
   4096 ; CHECK: pxor
   4097 ; CHECK: pcmpgtb
   4098 
   4099 ; MIPS32-LABEL: test_icmp_v16i8_ugt
   4100 ; MIPS32: lw [[T0:.*]],
   4101 ; MIPS32: lw [[T1:.*]],
   4102 ; MIPS32: lw [[T2:.*]],
   4103 ; MIPS32: lw [[T3:.*]],
   4104 ; MIPS32: move [[T4:.*]],zero
   4105 ; MIPS32: move [[T5:.*]],zero
   4106 ; MIPS32: move [[T6:.*]],zero
   4107 ; MIPS32: move [[T7:.*]],zero
   4108 ; MIPS32: move [[T8:.*]],a0
   4109 ; MIPS32: andi [[T8]],[[T8]],0xff
   4110 ; MIPS32: move [[T9:.*]],[[T0]]
   4111 ; MIPS32: andi [[T9]],[[T9]],0xff
   4112 ; MIPS32: sll [[T8]],[[T8]],0x18
   4113 ; MIPS32: sll [[T9]],[[T9]],0x18
   4114 ; MIPS32: sltu [[T9]],[[T9]],[[T8]]
   4115 ; MIPS32: andi [[T9]],[[T9]],0xff
   4116 ; MIPS32: srl [[T4]],[[T4]],0x8
   4117 ; MIPS32: sll [[T4]],[[T4]],0x8
   4118 ; MIPS32: or [[T9]],[[T9]],[[T4]]
   4119 ; MIPS32: move [[T4]],a0
   4120 ; MIPS32: srl [[T4]],[[T4]],0x8
   4121 ; MIPS32: andi [[T4]],[[T4]],0xff
   4122 ; MIPS32: move [[T8]],[[T0]]
   4123 ; MIPS32: srl [[T8]],[[T8]],0x8
   4124 ; MIPS32: andi [[T8]],[[T8]],0xff
   4125 ; MIPS32: sll [[T4]],[[T4]],0x18
   4126 ; MIPS32: sll [[T8]],[[T8]],0x18
   4127 ; MIPS32: sltu [[T8]],[[T8]],[[T4]]
   4128 ; MIPS32: andi [[T8]],[[T8]],0xff
   4129 ; MIPS32: sll [[T8]],[[T8]],0x8
   4130 ; MIPS32: lui [[T4]],0xffff
   4131 ; MIPS32: ori [[T4]],[[T4]],0xff
   4132 ; MIPS32: and [[T9]],[[T9]],[[T4]]
   4133 ; MIPS32: or [[T8]],[[T8]],[[T9]]
   4134 ; MIPS32: move [[T4]],a0
   4135 ; MIPS32: srl [[T4]],[[T4]],0x10
   4136 ; MIPS32: andi [[T4]],[[T4]],0xff
   4137 ; MIPS32: move [[T9]],[[T0]]
   4138 ; MIPS32: srl [[T9]],[[T9]],0x10
   4139 ; MIPS32: andi [[T9]],[[T9]],0xff
   4140 ; MIPS32: sll [[T4]],[[T4]],0x18
   4141 ; MIPS32: sll [[T9]],[[T9]],0x18
   4142 ; MIPS32: sltu [[T9]],[[T9]],[[T4]]
   4143 ; MIPS32: andi [[T9]],[[T9]],0xff
   4144 ; MIPS32: sll [[T9]],[[T9]],0x10
   4145 ; MIPS32: lui [[T4]],0xff00
   4146 ; MIPS32: ori [[T4]],[[T4]],0xffff
   4147 ; MIPS32: and [[T8]],[[T8]],[[T4]]
   4148 ; MIPS32: or [[T9]],[[T9]],[[T8]]
   4149 ; MIPS32: srl [[T10:.*]],a0,0x18
   4150 ; MIPS32: srl [[T0]],[[T0]],0x18
   4151 ; MIPS32: sll [[T10]],[[T10]],0x18
   4152 ; MIPS32: sll [[T0]],[[T0]],0x18
   4153 ; MIPS32: sltu [[T0]],[[T0]],[[T10]]
   4154 ; MIPS32: sll [[T0]],[[T0]],0x18
   4155 ; MIPS32: sll [[T9]],[[T9]],0x8
   4156 ; MIPS32: srl [[T9]],[[T9]],0x8
   4157 ; MIPS32: or v0,[[T0]],[[T9]]
   4158 ; MIPS32: move [[T10]],a1
   4159 ; MIPS32: andi [[T10]],[[T10]],0xff
   4160 ; MIPS32: move [[T4]],[[T1]]
   4161 ; MIPS32: andi [[T4]],[[T4]],0xff
   4162 ; MIPS32: sll [[T10]],[[T10]],0x18
   4163 ; MIPS32: sll [[T4]],[[T4]],0x18
   4164 ; MIPS32: sltu [[T4]],[[T4]],[[T10]]
   4165 ; MIPS32: andi [[T4]],[[T4]],0xff
   4166 ; MIPS32: srl [[T5]],[[T5]],0x8
   4167 ; MIPS32: sll [[T5]],[[T5]],0x8
   4168 ; MIPS32: or [[T4]],[[T4]],[[T5]]
   4169 ; MIPS32: move [[T10]],a1
   4170 ; MIPS32: srl [[T10]],[[T10]],0x8
   4171 ; MIPS32: andi [[T10]],[[T10]],0xff
   4172 ; MIPS32: move [[T5]],[[T1]]
   4173 ; MIPS32: srl [[T5]],[[T5]],0x8
   4174 ; MIPS32: andi [[T5]],[[T5]],0xff
   4175 ; MIPS32: sll [[T10]],[[T10]],0x18
   4176 ; MIPS32: sll [[T5]],[[T5]],0x18
   4177 ; MIPS32: sltu [[T5]],[[T5]],[[T10]]
   4178 ; MIPS32: andi [[T5]],[[T5]],0xff
   4179 ; MIPS32: sll [[T5]],[[T5]],0x8
   4180 ; MIPS32: lui [[T10]],0xffff
   4181 ; MIPS32: ori [[T10]],[[T10]],0xff
   4182 ; MIPS32: and [[T4]],[[T4]],[[T10]]
   4183 ; MIPS32: or [[T5]],[[T5]],[[T4]]
   4184 ; MIPS32: move [[T10]],a1
   4185 ; MIPS32: srl [[T10]],[[T10]],0x10
   4186 ; MIPS32: andi [[T10]],[[T10]],0xff
   4187 ; MIPS32: move [[T4]],[[T1]]
   4188 ; MIPS32: srl [[T4]],[[T4]],0x10
   4189 ; MIPS32: andi [[T4]],[[T4]],0xff
   4190 ; MIPS32: sll [[T10]],[[T10]],0x18
   4191 ; MIPS32: sll [[T4]],[[T4]],0x18
   4192 ; MIPS32: sltu [[T4]],[[T4]],[[T10]]
   4193 ; MIPS32: andi [[T4]],[[T4]],0xff
   4194 ; MIPS32: sll [[T4]],[[T4]],0x10
   4195 ; MIPS32: lui [[T10]],0xff00
   4196 ; MIPS32: ori [[T10]],[[T10]],0xffff
   4197 ; MIPS32: and [[T5]],[[T5]],[[T10]]
   4198 ; MIPS32: or [[T4]],[[T4]],[[T5]]
   4199 ; MIPS32: srl [[T11:.*]],a1,0x18
   4200 ; MIPS32: srl [[T1]],[[T1]],0x18
   4201 ; MIPS32: sll [[T11]],[[T11]],0x18
   4202 ; MIPS32: sll [[T1]],[[T1]],0x18
   4203 ; MIPS32: sltu [[T1]],[[T1]],[[T11]]
   4204 ; MIPS32: sll [[T1]],[[T1]],0x18
   4205 ; MIPS32: sll [[T4]],[[T4]],0x8
   4206 ; MIPS32: srl [[T4]],[[T4]],0x8
   4207 ; MIPS32: or v1,[[T1]],[[T4]]
   4208 ; MIPS32: move [[T10]],a2
   4209 ; MIPS32: andi [[T10]],[[T10]],0xff
   4210 ; MIPS32: move [[T11]],[[T2]]
   4211 ; MIPS32: andi [[T11]],[[T11]],0xff
   4212 ; MIPS32: sll [[T10]],[[T10]],0x18
   4213 ; MIPS32: sll [[T11]],[[T11]],0x18
   4214 ; MIPS32: sltu [[T11]],[[T11]],[[T10]]
   4215 ; MIPS32: andi [[T11]],[[T11]],0xff
   4216 ; MIPS32: srl [[T6]],[[T6]],0x8
   4217 ; MIPS32: sll [[T6]],[[T6]],0x8
   4218 ; MIPS32: or [[T11]],[[T11]],[[T6]]
   4219 ; MIPS32: move [[T10]],a2
   4220 ; MIPS32: srl [[T10]],[[T10]],0x8
   4221 ; MIPS32: andi [[T10]],[[T10]],0xff
   4222 ; MIPS32: move [[T4]],[[T2]]
   4223 ; MIPS32: srl [[T4]],[[T4]],0x8
   4224 ; MIPS32: andi [[T4]],[[T4]],0xff
   4225 ; MIPS32: sll [[T10]],[[T10]],0x18
   4226 ; MIPS32: sll [[T4]],[[T4]],0x18
   4227 ; MIPS32: sltu [[T4]],[[T4]],[[T10]]
   4228 ; MIPS32: andi [[T4]],[[T4]],0xff
   4229 ; MIPS32: sll [[T4]],[[T4]],0x8
   4230 ; MIPS32: lui [[T10]],0xffff
   4231 ; MIPS32: ori [[T10]],[[T10]],0xff
   4232 ; MIPS32: and [[T11]],[[T11]],[[T10]]
   4233 ; MIPS32: or [[T4]],[[T4]],[[T11]]
   4234 ; MIPS32: move [[T10]],a2
   4235 ; MIPS32: srl [[T10]],[[T10]],0x10
   4236 ; MIPS32: andi [[T10]],[[T10]],0xff
   4237 ; MIPS32: move [[T11]],[[T2]]
   4238 ; MIPS32: srl [[T11]],[[T11]],0x10
   4239 ; MIPS32: andi [[T11]],[[T11]],0xff
   4240 ; MIPS32: sll [[T10]],[[T10]],0x18
   4241 ; MIPS32: sll [[T11]],[[T11]],0x18
   4242 ; MIPS32: sltu [[T11]],[[T11]],[[T10]]
   4243 ; MIPS32: andi [[T11]],[[T11]],0xff
   4244 ; MIPS32: sll [[T11]],[[T11]],0x10
   4245 ; MIPS32: lui [[T10]],0xff00
   4246 ; MIPS32: ori [[T10]],[[T10]],0xffff
   4247 ; MIPS32: and [[T4]],[[T4]],[[T10]]
   4248 ; MIPS32: or [[T11]],[[T11]],[[T4]]
   4249 ; MIPS32: srl [[T12:.*]],a2,0x18
   4250 ; MIPS32: srl [[T2]],[[T2]],0x18
   4251 ; MIPS32: sll [[T12]],[[T12]],0x18
   4252 ; MIPS32: sll [[T2]],[[T2]],0x18
   4253 ; MIPS32: sltu [[T2]],[[T2]],[[T12]]
   4254 ; MIPS32: sll [[T2]],[[T2]],0x18
   4255 ; MIPS32: sll [[T11]],[[T11]],0x8
   4256 ; MIPS32: srl [[T11]],[[T11]],0x8
   4257 ; MIPS32: or [[T2]],[[T2]],[[T11]]
   4258 ; MIPS32: move [[T10]],a3
   4259 ; MIPS32: andi [[T10]],[[T10]],0xff
   4260 ; MIPS32: move [[T11]],[[T3]]
   4261 ; MIPS32: andi [[T11]],[[T11]],0xff
   4262 ; MIPS32: sll [[T10]],[[T10]],0x18
   4263 ; MIPS32: sll [[T11]],[[T11]],0x18
   4264 ; MIPS32: sltu [[T11]],[[T11]],[[T10]]
   4265 ; MIPS32: andi [[T11]],[[T11]],0xff
   4266 ; MIPS32: srl [[T7]],[[T7]],0x8
   4267 ; MIPS32: sll [[T7]],[[T7]],0x8
   4268 ; MIPS32: or [[T11]],[[T11]],[[T7]]
   4269 ; MIPS32: move [[T10]],a3
   4270 ; MIPS32: srl [[T10]],[[T10]],0x8
   4271 ; MIPS32: andi [[T10]],[[T10]],0xff
   4272 ; MIPS32: move [[T12]],[[T3]]
   4273 ; MIPS32: srl [[T12]],[[T12]],0x8
   4274 ; MIPS32: andi [[T12]],[[T12]],0xff
   4275 ; MIPS32: sll [[T10]],[[T10]],0x18
   4276 ; MIPS32: sll [[T12]],[[T12]],0x18
   4277 ; MIPS32: sltu [[T12]],[[T12]],[[T10]]
   4278 ; MIPS32: andi [[T12]],[[T12]],0xff
   4279 ; MIPS32: sll [[T12]],[[T12]],0x8
   4280 ; MIPS32: lui [[T10]],0xffff
   4281 ; MIPS32: ori [[T10]],[[T10]],0xff
   4282 ; MIPS32: and [[T11]],[[T11]],[[T10]]
   4283 ; MIPS32: or [[T12]],[[T12]],[[T11]]
   4284 ; MIPS32: move [[T10]],a3
   4285 ; MIPS32: srl [[T10]],[[T10]],0x10
   4286 ; MIPS32: andi [[T10]],[[T10]],0xff
   4287 ; MIPS32: move [[T11]],[[T3]]
   4288 ; MIPS32: srl [[T11]],[[T11]],0x10
   4289 ; MIPS32: andi [[T11]],[[T11]],0xff
   4290 ; MIPS32: sll [[T10]],[[T10]],0x18
   4291 ; MIPS32: sll [[T11]],[[T11]],0x18
   4292 ; MIPS32: sltu [[T11]],[[T11]],[[T10]]
   4293 ; MIPS32: andi [[T11]],[[T11]],0xff
   4294 ; MIPS32: sll [[T11]],[[T11]],0x10
   4295 ; MIPS32: lui [[T10]],0xff00
   4296 ; MIPS32: ori [[T10]],[[T10]],0xffff
   4297 ; MIPS32: and [[T12]],[[T12]],[[T10]]
   4298 ; MIPS32: or [[T11]],[[T11]],[[T12]]
   4299 ; MIPS32: srl [[T13:.*]],a3,0x18
   4300 ; MIPS32: srl [[T3]],[[T3]],0x18
   4301 ; MIPS32: sll [[T13]],[[T13]],0x18
   4302 ; MIPS32: sll [[T3]],[[T3]],0x18
   4303 ; MIPS32: sltu [[T3]],[[T3]],[[T13]]
   4304 ; MIPS32: sll [[T3]],[[T3]],0x18
   4305 ; MIPS32: sll [[T11]],[[T11]],0x8
   4306 ; MIPS32: srl [[T11]],[[T11]],0x8
   4307 ; MIPS32: or [[T3]],[[T3]],[[T11]]
   4308 ; MIPS32: move a0,[[T2]]
   4309 ; MIPS32: move a1,[[T3]]
   4310 }
   4311 
   4312 define internal <16 x i1> @test_icmp_v16i8_ule(<16 x i8> %a, <16 x i8> %b) {
   4313 entry:
   4314   %res = icmp ule <16 x i8> %a, %b
   4315   ret <16 x i1> %res
   4316 ; CHECK-LABEL: test_icmp_v16i8_ule
   4317 ; CHECK: pxor
   4318 ; CHECK: pcmpgtb
   4319 ; CHECK: pxor
   4320 
   4321 ; MIPS32-LABEL: test_icmp_v16i8_ule
   4322 ; MIPS32: lw [[T0:.*]],
   4323 ; MIPS32: lw [[T1:.*]],
   4324 ; MIPS32: lw [[T2:.*]],
   4325 ; MIPS32: lw [[T3:.*]],
   4326 ; MIPS32: move [[T4:.*]],zero
   4327 ; MIPS32: move [[T5:.*]],zero
   4328 ; MIPS32: move [[T6:.*]],zero
   4329 ; MIPS32: move [[T7:.*]],zero
   4330 ; MIPS32: move [[T8:.*]],a0
   4331 ; MIPS32: andi [[T8]],[[T8]],0xff
   4332 ; MIPS32: move [[T9:.*]],[[T0]]
   4333 ; MIPS32: andi [[T9]],[[T9]],0xff
   4334 ; MIPS32: sll [[T8]],[[T8]],0x18
   4335 ; MIPS32: sll [[T9]],[[T9]],0x18
   4336 ; MIPS32: sltu [[T9]],[[T9]],[[T8]]
   4337 ; MIPS32: xori [[T9]],[[T9]],0x1
   4338 ; MIPS32: andi [[T9]],[[T9]],0xff
   4339 ; MIPS32: srl [[T4]],[[T4]],0x8
   4340 ; MIPS32: sll [[T4]],[[T4]],0x8
   4341 ; MIPS32: or [[T9]],[[T9]],[[T4]]
   4342 ; MIPS32: move [[T4]],a0
   4343 ; MIPS32: srl [[T4]],[[T4]],0x8
   4344 ; MIPS32: andi [[T4]],[[T4]],0xff
   4345 ; MIPS32: move [[T8]],[[T0]]
   4346 ; MIPS32: srl [[T8]],[[T8]],0x8
   4347 ; MIPS32: andi [[T8]],[[T8]],0xff
   4348 ; MIPS32: sll [[T4]],[[T4]],0x18
   4349 ; MIPS32: sll [[T8]],[[T8]],0x18
   4350 ; MIPS32: sltu [[T8]],[[T8]],[[T4]]
   4351 ; MIPS32: xori [[T8]],[[T8]],0x1
   4352 ; MIPS32: andi [[T8]],[[T8]],0xff
   4353 ; MIPS32: sll [[T8]],[[T8]],0x8
   4354 ; MIPS32: lui [[T4]],0xffff
   4355 ; MIPS32: ori [[T4]],[[T4]],0xff
   4356 ; MIPS32: and [[T9]],[[T9]],[[T4]]
   4357 ; MIPS32: or [[T8]],[[T8]],[[T9]]
   4358 ; MIPS32: move [[T4]],a0
   4359 ; MIPS32: srl [[T4]],[[T4]],0x10
   4360 ; MIPS32: andi [[T4]],[[T4]],0xff
   4361 ; MIPS32: move [[T9]],[[T0]]
   4362 ; MIPS32: srl [[T9]],[[T9]],0x10
   4363 ; MIPS32: andi [[T9]],[[T9]],0xff
   4364 ; MIPS32: sll [[T4]],[[T4]],0x18
   4365 ; MIPS32: sll [[T9]],[[T9]],0x18
   4366 ; MIPS32: sltu [[T9]],[[T9]],[[T4]]
   4367 ; MIPS32: xori [[T9]],[[T9]],0x1
   4368 ; MIPS32: andi [[T9]],[[T9]],0xff
   4369 ; MIPS32: sll [[T9]],[[T9]],0x10
   4370 ; MIPS32: lui [[T4]],0xff00
   4371 ; MIPS32: ori [[T4]],[[T4]],0xffff
   4372 ; MIPS32: and [[T8]],[[T8]],[[T4]]
   4373 ; MIPS32: or [[T9]],[[T9]],[[T8]]
   4374 ; MIPS32: srl [[T10:.*]],a0,0x18
   4375 ; MIPS32: srl [[T0]],[[T0]],0x18
   4376 ; MIPS32: sll [[T10]],[[T10]],0x18
   4377 ; MIPS32: sll [[T0]],[[T0]],0x18
   4378 ; MIPS32: sltu [[T0]],[[T0]],[[T10]]
   4379 ; MIPS32: xori [[T0]],[[T0]],0x1
   4380 ; MIPS32: sll [[T0]],[[T0]],0x18
   4381 ; MIPS32: sll [[T9]],[[T9]],0x8
   4382 ; MIPS32: srl [[T9]],[[T9]],0x8
   4383 ; MIPS32: or v0,[[T0]],[[T9]]
   4384 ; MIPS32: move [[T10]],a1
   4385 ; MIPS32: andi [[T10]],[[T10]],0xff
   4386 ; MIPS32: move [[T4]],[[T1]]
   4387 ; MIPS32: andi [[T4]],[[T4]],0xff
   4388 ; MIPS32: sll [[T10]],[[T10]],0x18
   4389 ; MIPS32: sll [[T4]],[[T4]],0x18
   4390 ; MIPS32: sltu [[T4]],[[T4]],[[T10]]
   4391 ; MIPS32: xori [[T4]],[[T4]],0x1
   4392 ; MIPS32: andi [[T4]],[[T4]],0xff
   4393 ; MIPS32: srl [[T5]],[[T5]],0x8
   4394 ; MIPS32: sll [[T5]],[[T5]],0x8
   4395 ; MIPS32: or [[T4]],[[T4]],[[T5]]
   4396 ; MIPS32: move [[T10]],a1
   4397 ; MIPS32: srl [[T10]],[[T10]],0x8
   4398 ; MIPS32: andi [[T10]],[[T10]],0xff
   4399 ; MIPS32: move [[T5]],[[T1]]
   4400 ; MIPS32: srl [[T5]],[[T5]],0x8
   4401 ; MIPS32: andi [[T5]],[[T5]],0xff
   4402 ; MIPS32: sll [[T10]],[[T10]],0x18
   4403 ; MIPS32: sll [[T5]],[[T5]],0x18
   4404 ; MIPS32: sltu [[T5]],[[T5]],[[T10]]
   4405 ; MIPS32: xori [[T5]],[[T5]],0x1
   4406 ; MIPS32: andi [[T5]],[[T5]],0xff
   4407 ; MIPS32: sll [[T5]],[[T5]],0x8
   4408 ; MIPS32: lui [[T10]],0xffff
   4409 ; MIPS32: ori [[T10]],[[T10]],0xff
   4410 ; MIPS32: and [[T4]],[[T4]],[[T10]]
   4411 ; MIPS32: or [[T5]],[[T5]],[[T4]]
   4412 ; MIPS32: move [[T10]],a1
   4413 ; MIPS32: srl [[T10]],[[T10]],0x10
   4414 ; MIPS32: andi [[T10]],[[T10]],0xff
   4415 ; MIPS32: move [[T4]],[[T1]]
   4416 ; MIPS32: srl [[T4]],[[T4]],0x10
   4417 ; MIPS32: andi [[T4]],[[T4]],0xff
   4418 ; MIPS32: sll [[T10]],[[T10]],0x18
   4419 ; MIPS32: sll [[T4]],[[T4]],0x18
   4420 ; MIPS32: sltu [[T4]],[[T4]],[[T10]]
   4421 ; MIPS32: xori [[T4]],[[T4]],0x1
   4422 ; MIPS32: andi [[T4]],[[T4]],0xff
   4423 ; MIPS32: sll [[T4]],[[T4]],0x10
   4424 ; MIPS32: lui [[T10]],0xff00
   4425 ; MIPS32: ori [[T10]],[[T10]],0xffff
   4426 ; MIPS32: and [[T5]],[[T5]],[[T10]]
   4427 ; MIPS32: or [[T4]],[[T4]],[[T5]]
   4428 ; MIPS32: srl [[T11:.*]],a1,0x18
   4429 ; MIPS32: srl [[T1]],[[T1]],0x18
   4430 ; MIPS32: sll [[T11]],[[T11]],0x18
   4431 ; MIPS32: sll [[T1]],[[T1]],0x18
   4432 ; MIPS32: sltu [[T1]],[[T1]],[[T11]]
   4433 ; MIPS32: xori [[T1]],[[T1]],0x1
   4434 ; MIPS32: sll [[T1]],[[T1]],0x18
   4435 ; MIPS32: sll [[T4]],[[T4]],0x8
   4436 ; MIPS32: srl [[T4]],[[T4]],0x8
   4437 ; MIPS32: or v1,[[T1]],[[T4]]
   4438 ; MIPS32: move [[T10]],a2
   4439 ; MIPS32: andi [[T10]],[[T10]],0xff
   4440 ; MIPS32: move [[T11]],[[T2]]
   4441 ; MIPS32: andi [[T11]],[[T11]],0xff
   4442 ; MIPS32: sll [[T10]],[[T10]],0x18
   4443 ; MIPS32: sll [[T11]],[[T11]],0x18
   4444 ; MIPS32: sltu [[T11]],[[T11]],[[T10]]
   4445 ; MIPS32: xori [[T11]],[[T11]],0x1
   4446 ; MIPS32: andi [[T11]],[[T11]],0xff
   4447 ; MIPS32: srl [[T6]],[[T6]],0x8
   4448 ; MIPS32: sll [[T6]],[[T6]],0x8
   4449 ; MIPS32: or [[T11]],[[T11]],[[T6]]
   4450 ; MIPS32: move [[T10]],a2
   4451 ; MIPS32: srl [[T10]],[[T10]],0x8
   4452 ; MIPS32: andi [[T10]],[[T10]],0xff
   4453 ; MIPS32: move [[T4]],[[T2]]
   4454 ; MIPS32: srl [[T4]],[[T4]],0x8
   4455 ; MIPS32: andi [[T4]],[[T4]],0xff
   4456 ; MIPS32: sll [[T10]],[[T10]],0x18
   4457 ; MIPS32: sll [[T4]],[[T4]],0x18
   4458 ; MIPS32: sltu [[T4]],[[T4]],[[T10]]
   4459 ; MIPS32: xori [[T4]],[[T4]],0x1
   4460 ; MIPS32: andi [[T4]],[[T4]],0xff
   4461 ; MIPS32: sll [[T4]],[[T4]],0x8
   4462 ; MIPS32: lui [[T10]],0xffff
   4463 ; MIPS32: ori [[T10]],[[T10]],0xff
   4464 ; MIPS32: and [[T11]],[[T11]],[[T10]]
   4465 ; MIPS32: or [[T4]],[[T4]],[[T11]]
   4466 ; MIPS32: move [[T10]],a2
   4467 ; MIPS32: srl [[T10]],[[T10]],0x10
   4468 ; MIPS32: andi [[T10]],[[T10]],0xff
   4469 ; MIPS32: move [[T11]],[[T2]]
   4470 ; MIPS32: srl [[T11]],[[T11]],0x10
   4471 ; MIPS32: andi [[T11]],[[T11]],0xff
   4472 ; MIPS32: sll [[T10]],[[T10]],0x18
   4473 ; MIPS32: sll [[T11]],[[T11]],0x18
   4474 ; MIPS32: sltu [[T11]],[[T11]],[[T10]]
   4475 ; MIPS32: xori [[T11]],[[T11]],0x1
   4476 ; MIPS32: andi [[T11]],[[T11]],0xff
   4477 ; MIPS32: sll [[T11]],[[T11]],0x10
   4478 ; MIPS32: lui [[T10]],0xff00
   4479 ; MIPS32: ori [[T10]],[[T10]],0xffff
   4480 ; MIPS32: and [[T4]],[[T4]],[[T10]]
   4481 ; MIPS32: or [[T11]],[[T11]],[[T4]]
   4482 ; MIPS32: srl [[T12:.*]],a2,0x18
   4483 ; MIPS32: srl [[T2]],[[T2]],0x18
   4484 ; MIPS32: sll [[T12]],[[T12]],0x18
   4485 ; MIPS32: sll [[T2]],[[T2]],0x18
   4486 ; MIPS32: sltu [[T2]],[[T2]],[[T12]]
   4487 ; MIPS32: xori [[T2]],[[T2]],0x1
   4488 ; MIPS32: sll [[T2]],[[T2]],0x18
   4489 ; MIPS32: sll [[T11]],[[T11]],0x8
   4490 ; MIPS32: srl [[T11]],[[T11]],0x8
   4491 ; MIPS32: or [[T2]],[[T2]],[[T11]]
   4492 ; MIPS32: move [[T10]],a3
   4493 ; MIPS32: andi [[T10]],[[T10]],0xff
   4494 ; MIPS32: move [[T11]],[[T3]]
   4495 ; MIPS32: andi [[T11]],[[T11]],0xff
   4496 ; MIPS32: sll [[T10]],[[T10]],0x18
   4497 ; MIPS32: sll [[T11]],[[T11]],0x18
   4498 ; MIPS32: sltu [[T11]],[[T11]],[[T10]]
   4499 ; MIPS32: xori [[T11]],[[T11]],0x1
   4500 ; MIPS32: andi [[T11]],[[T11]],0xff
   4501 ; MIPS32: srl [[T7]],[[T7]],0x8
   4502 ; MIPS32: sll [[T7]],[[T7]],0x8
   4503 ; MIPS32: or [[T11]],[[T11]],[[T7]]
   4504 ; MIPS32: move [[T10]],a3
   4505 ; MIPS32: srl [[T10]],[[T10]],0x8
   4506 ; MIPS32: andi [[T10]],[[T10]],0xff
   4507 ; MIPS32: move [[T12]],[[T3]]
   4508 ; MIPS32: srl [[T12]],[[T12]],0x8
   4509 ; MIPS32: andi [[T12]],[[T12]],0xff
   4510 ; MIPS32: sll [[T10]],[[T10]],0x18
   4511 ; MIPS32: sll [[T12]],[[T12]],0x18
   4512 ; MIPS32: sltu [[T12]],[[T12]],[[T10]]
   4513 ; MIPS32: xori [[T12]],[[T12]],0x1
   4514 ; MIPS32: andi [[T12]],[[T12]],0xff
   4515 ; MIPS32: sll [[T12]],[[T12]],0x8
   4516 ; MIPS32: lui [[T10]],0xffff
   4517 ; MIPS32: ori [[T10]],[[T10]],0xff
   4518 ; MIPS32: and [[T11]],[[T11]],[[T10]]
   4519 ; MIPS32: or [[T12]],[[T12]],[[T11]]
   4520 ; MIPS32: move [[T10]],a3
   4521 ; MIPS32: srl [[T10]],[[T10]],0x10
   4522 ; MIPS32: andi [[T10]],[[T10]],0xff
   4523 ; MIPS32: move [[T11]],[[T3]]
   4524 ; MIPS32: srl [[T11]],[[T11]],0x10
   4525 ; MIPS32: andi [[T11]],[[T11]],0xff
   4526 ; MIPS32: sll [[T10]],[[T10]],0x18
   4527 ; MIPS32: sll [[T11]],[[T11]],0x18
   4528 ; MIPS32: sltu [[T11]],[[T11]],[[T10]]
   4529 ; MIPS32: xori [[T11]],[[T11]],0x1
   4530 ; MIPS32: andi [[T11]],[[T11]],0xff
   4531 ; MIPS32: sll [[T11]],[[T11]],0x10
   4532 ; MIPS32: lui [[T10]],0xff00
   4533 ; MIPS32: ori [[T10]],[[T10]],0xffff
   4534 ; MIPS32: and [[T12]],[[T12]],[[T10]]
   4535 ; MIPS32: or [[T11]],[[T11]],[[T12]]
   4536 ; MIPS32: srl [[T13:.*]],a3,0x18
   4537 ; MIPS32: srl [[T3]],[[T3]],0x18
   4538 ; MIPS32: sll [[T13]],[[T13]],0x18
   4539 ; MIPS32: sll [[T3]],[[T3]],0x18
   4540 ; MIPS32: sltu [[T3]],[[T3]],[[T13]]
   4541 ; MIPS32: xori [[T3]],[[T3]],0x1
   4542 ; MIPS32: sll [[T3]],[[T3]],0x18
   4543 ; MIPS32: sll [[T11]],[[T11]],0x8
   4544 ; MIPS32: srl [[T11]],[[T11]],0x8
   4545 ; MIPS32: or [[T3]],[[T3]],[[T11]]
   4546 ; MIPS32: move a0,[[T2]]
   4547 ; MIPS32: move a1,[[T3]]
   4548 }
   4549 
   4550 define internal <16 x i1> @test_icmp_v16i8_ult(<16 x i8> %a, <16 x i8> %b) {
   4551 entry:
   4552   %res = icmp ult <16 x i8> %a, %b
   4553   ret <16 x i1> %res
   4554 ; CHECK-LABEL: test_icmp_v16i8_ult
   4555 ; CHECK: pxor
   4556 ; CHECK: pcmpgtb
   4557 
   4558 ; MIPS32-LABEL: test_icmp_v16i8_ult
   4559 ; MIPS32: lw [[T0:.*]],
   4560 ; MIPS32: lw [[T1:.*]],
   4561 ; MIPS32: lw [[T2:.*]],
   4562 ; MIPS32: lw [[T3:.*]],
   4563 ; MIPS32: move [[T4:.*]],zero
   4564 ; MIPS32: move [[T5:.*]],zero
   4565 ; MIPS32: move [[T6:.*]],zero
   4566 ; MIPS32: move [[T7:.*]],zero
   4567 ; MIPS32: move [[T8:.*]],a0
   4568 ; MIPS32: andi [[T8]],[[T8]],0xff
   4569 ; MIPS32: move [[T9:.*]],[[T0]]
   4570 ; MIPS32: andi [[T9]],[[T9]],0xff
   4571 ; MIPS32: sll [[T8]],[[T8]],0x18
   4572 ; MIPS32: sll [[T9]],[[T9]],0x18
   4573 ; MIPS32: sltu [[T8]],[[T8]],[[T9]]
   4574 ; MIPS32: andi [[T8]],[[T8]],0xff
   4575 ; MIPS32: srl [[T4]],[[T4]],0x8
   4576 ; MIPS32: sll [[T4]],[[T4]],0x8
   4577 ; MIPS32: or [[T8]],[[T8]],[[T4]]
   4578 ; MIPS32: move [[T4]],a0
   4579 ; MIPS32: srl [[T4]],[[T4]],0x8
   4580 ; MIPS32: andi [[T4]],[[T4]],0xff
   4581 ; MIPS32: move [[T9]],[[T0]]
   4582 ; MIPS32: srl [[T9]],[[T9]],0x8
   4583 ; MIPS32: andi [[T9]],[[T9]],0xff
   4584 ; MIPS32: sll [[T4]],[[T4]],0x18
   4585 ; MIPS32: sll [[T9]],[[T9]],0x18
   4586 ; MIPS32: sltu [[T4]],[[T4]],[[T9]]
   4587 ; MIPS32: andi [[T4]],[[T4]],0xff
   4588 ; MIPS32: sll [[T4]],[[T4]],0x8
   4589 ; MIPS32: lui [[T9]],0xffff
   4590 ; MIPS32: ori [[T9]],[[T9]],0xff
   4591 ; MIPS32: and [[T8]],[[T8]],[[T9]]
   4592 ; MIPS32: or [[T4]],[[T4]],[[T8]]
   4593 ; MIPS32: move [[T8]],a0
   4594 ; MIPS32: srl [[T8]],[[T8]],0x10
   4595 ; MIPS32: andi [[T8]],[[T8]],0xff
   4596 ; MIPS32: move [[T9]],[[T0]]
   4597 ; MIPS32: srl [[T9]],[[T9]],0x10
   4598 ; MIPS32: andi [[T9]],[[T9]],0xff
   4599 ; MIPS32: sll [[T8]],[[T8]],0x18
   4600 ; MIPS32: sll [[T9]],[[T9]],0x18
   4601 ; MIPS32: sltu [[T8]],[[T8]],[[T9]]
   4602 ; MIPS32: andi [[T8]],[[T8]],0xff
   4603 ; MIPS32: sll [[T8]],[[T8]],0x10
   4604 ; MIPS32: lui [[T9]],0xff00
   4605 ; MIPS32: ori [[T9]],[[T9]],0xffff
   4606 ; MIPS32: and [[T4]],[[T4]],[[T9]]
   4607 ; MIPS32: or [[T8]],[[T8]],[[T4]]
   4608 ; MIPS32: srl [[T10:.*]],a0,0x18
   4609 ; MIPS32: srl [[T0]],[[T0]],0x18
   4610 ; MIPS32: sll [[T10]],[[T10]],0x18
   4611 ; MIPS32: sll [[T0]],[[T0]],0x18
   4612 ; MIPS32: sltu [[T10]],[[T10]],[[T0]]
   4613 ; MIPS32: sll [[T10]],[[T10]],0x18
   4614 ; MIPS32: sll [[T8]],[[T8]],0x8
   4615 ; MIPS32: srl [[T8]],[[T8]],0x8
   4616 ; MIPS32: or [[T10]],[[T10]],[[T8]]
   4617 ; MIPS32: move [[T0]],a1
   4618 ; MIPS32: andi [[T0]],[[T0]],0xff
   4619 ; MIPS32: move [[T4]],[[T1]]
   4620 ; MIPS32: andi [[T4]],[[T4]],0xff
   4621 ; MIPS32: sll [[T0]],[[T0]],0x18
   4622 ; MIPS32: sll [[T4]],[[T4]],0x18
   4623 ; MIPS32: sltu [[T0]],[[T0]],[[T4]]
   4624 ; MIPS32: andi [[T0]],[[T0]],0xff
   4625 ; MIPS32: srl [[T5]],[[T5]],0x8
   4626 ; MIPS32: sll [[T5]],[[T5]],0x8
   4627 ; MIPS32: or [[T0]],[[T0]],[[T5]]
   4628 ; MIPS32: move [[T4]],a1
   4629 ; MIPS32: srl [[T4]],[[T4]],0x8
   4630 ; MIPS32: andi [[T4]],[[T4]],0xff
   4631 ; MIPS32: move [[T5]],[[T1]]
   4632 ; MIPS32: srl [[T5]],[[T5]],0x8
   4633 ; MIPS32: andi [[T5]],[[T5]],0xff
   4634 ; MIPS32: sll [[T4]],[[T4]],0x18
   4635 ; MIPS32: sll [[T5]],[[T5]],0x18
   4636 ; MIPS32: sltu [[T4]],[[T4]],[[T5]]
   4637 ; MIPS32: andi [[T4]],[[T4]],0xff
   4638 ; MIPS32: sll [[T4]],[[T4]],0x8
   4639 ; MIPS32: lui [[T5]],0xffff
   4640 ; MIPS32: ori [[T5]],[[T5]],0xff
   4641 ; MIPS32: and [[T0]],[[T0]],[[T5]]
   4642 ; MIPS32: or [[T4]],[[T4]],[[T0]]
   4643 ; MIPS32: move [[T0]],a1
   4644 ; MIPS32: srl [[T0]],[[T0]],0x10
   4645 ; MIPS32: andi [[T0]],[[T0]],0xff
   4646 ; MIPS32: move [[T5]],[[T1]]
   4647 ; MIPS32: srl [[T5]],[[T5]],0x10
   4648 ; MIPS32: andi [[T5]],[[T5]],0xff
   4649 ; MIPS32: sll [[T0]],[[T0]],0x18
   4650 ; MIPS32: sll [[T5]],[[T5]],0x18
   4651 ; MIPS32: sltu [[T0]],[[T0]],[[T5]]
   4652 ; MIPS32: andi [[T0]],[[T0]],0xff
   4653 ; MIPS32: sll [[T0]],[[T0]],0x10
   4654 ; MIPS32: lui [[T5]],0xff00
   4655 ; MIPS32: ori [[T5]],[[T5]],0xffff
   4656 ; MIPS32: and [[T4]],[[T4]],[[T5]]
   4657 ; MIPS32: or [[T0]],[[T0]],[[T4]]
   4658 ; MIPS32: srl [[T11:.*]],a1,0x18
   4659 ; MIPS32: srl [[T1]],[[T1]],0x18
   4660 ; MIPS32: sll [[T11]],[[T11]],0x18
   4661 ; MIPS32: sll [[T1]],[[T1]],0x18
   4662 ; MIPS32: sltu [[T11]],[[T11]],[[T1]]
   4663 ; MIPS32: sll [[T11]],[[T11]],0x18
   4664 ; MIPS32: sll [[T0]],[[T0]],0x8
   4665 ; MIPS32: srl [[T0]],[[T0]],0x8
   4666 ; MIPS32: or [[T11]],[[T11]],[[T0]]
   4667 ; MIPS32: move [[T0]],a2
   4668 ; MIPS32: andi [[T0]],[[T0]],0xff
   4669 ; MIPS32: move [[T1]],[[T2]]
   4670 ; MIPS32: andi [[T1]],[[T1]],0xff
   4671 ; MIPS32: sll [[T0]],[[T0]],0x18
   4672 ; MIPS32: sll [[T1]],[[T1]],0x18
   4673 ; MIPS32: sltu [[T0]],[[T0]],[[T1]]
   4674 ; MIPS32: andi [[T0]],[[T0]],0xff
   4675 ; MIPS32: srl [[T6]],[[T6]],0x8
   4676 ; MIPS32: sll [[T6]],[[T6]],0x8
   4677 ; MIPS32: or [[T0]],[[T0]],[[T6]]
   4678 ; MIPS32: move [[T1]],a2
   4679 ; MIPS32: srl [[T1]],[[T1]],0x8
   4680 ; MIPS32: andi [[T1]],[[T1]],0xff
   4681 ; MIPS32: move [[T4]],[[T2]]
   4682 ; MIPS32: srl [[T4]],[[T4]],0x8
   4683 ; MIPS32: andi [[T4]],[[T4]],0xff
   4684 ; MIPS32: sll [[T1]],[[T1]],0x18
   4685 ; MIPS32: sll [[T4]],[[T4]],0x18
   4686 ; MIPS32: sltu [[T1]],[[T1]],[[T4]]
   4687 ; MIPS32: andi [[T1]],[[T1]],0xff
   4688 ; MIPS32: sll [[T1]],[[T1]],0x8
   4689 ; MIPS32: lui [[T4]],0xffff
   4690 ; MIPS32: ori [[T4]],[[T4]],0xff
   4691 ; MIPS32: and [[T0]],[[T0]],[[T4]]
   4692 ; MIPS32: or [[T1]],[[T1]],[[T0]]
   4693 ; MIPS32: move [[T0]],a2
   4694 ; MIPS32: srl [[T0]],[[T0]],0x10
   4695 ; MIPS32: andi [[T0]],[[T0]],0xff
   4696 ; MIPS32: move [[T4]],[[T2]]
   4697 ; MIPS32: srl [[T4]],[[T4]],0x10
   4698 ; MIPS32: andi [[T4]],[[T4]],0xff
   4699 ; MIPS32: sll [[T0]],[[T0]],0x18
   4700 ; MIPS32: sll [[T4]],[[T4]],0x18
   4701 ; MIPS32: sltu [[T0]],[[T0]],[[T4]]
   4702 ; MIPS32: andi [[T0]],[[T0]],0xff
   4703 ; MIPS32: sll [[T0]],[[T0]],0x10
   4704 ; MIPS32: lui [[T4]],0xff00
   4705 ; MIPS32: ori [[T4]],[[T4]],0xffff
   4706 ; MIPS32: and [[T1]],[[T1]],[[T4]]
   4707 ; MIPS32: or [[T0]],[[T0]],[[T1]]
   4708 ; MIPS32: srl [[T12:.*]],a2,0x18
   4709 ; MIPS32: srl [[T2]],[[T2]],0x18
   4710 ; MIPS32: sll [[T12]],[[T12]],0x18
   4711 ; MIPS32: sll [[T2]],[[T2]],0x18
   4712 ; MIPS32: sltu [[T12]],[[T12]],[[T2]]
   4713 ; MIPS32: sll [[T12]],[[T12]],0x18
   4714 ; MIPS32: sll [[T0]],[[T0]],0x8
   4715 ; MIPS32: srl [[T0]],[[T0]],0x8
   4716 ; MIPS32: or [[T12]],[[T12]],[[T0]]
   4717 ; MIPS32: move [[T0]],a3
   4718 ; MIPS32: andi [[T0]],[[T0]],0xff
   4719 ; MIPS32: move [[T1]],[[T3]]
   4720 ; MIPS32: andi [[T1]],[[T1]],0xff
   4721 ; MIPS32: sll [[T0]],[[T0]],0x18
   4722 ; MIPS32: sll [[T1]],[[T1]],0x18
   4723 ; MIPS32: sltu [[T0]],[[T0]],[[T1]]
   4724 ; MIPS32: andi [[T0]],[[T0]],0xff
   4725 ; MIPS32: srl [[T7]],[[T7]],0x8
   4726 ; MIPS32: sll [[T7]],[[T7]],0x8
   4727 ; MIPS32: or [[T0]],[[T0]],[[T7]]
   4728 ; MIPS32: move [[T1]],a3
   4729 ; MIPS32: srl [[T1]],[[T1]],0x8
   4730 ; MIPS32: andi [[T1]],[[T1]],0xff
   4731 ; MIPS32: move [[T2]],[[T3]]
   4732 ; MIPS32: srl [[T2]],[[T2]],0x8
   4733 ; MIPS32: andi [[T2]],[[T2]],0xff
   4734 ; MIPS32: sll [[T1]],[[T1]],0x18
   4735 ; MIPS32: sll [[T2]],[[T2]],0x18
   4736 ; MIPS32: sltu [[T1]],[[T1]],[[T2]]
   4737 ; MIPS32: andi [[T1]],[[T1]],0xff
   4738 ; MIPS32: sll [[T1]],[[T1]],0x8
   4739 ; MIPS32: lui [[T2]],0xffff
   4740 ; MIPS32: ori [[T2]],[[T2]],0xff
   4741 ; MIPS32: and [[T0]],[[T0]],[[T2]]
   4742 ; MIPS32: or [[T1]],[[T1]],[[T0]]
   4743 ; MIPS32: move [[T0]],a3
   4744 ; MIPS32: srl [[T0]],[[T0]],0x10
   4745 ; MIPS32: andi [[T0]],[[T0]],0xff
   4746 ; MIPS32: move [[T2]],[[T3]]
   4747 ; MIPS32: srl [[T2]],[[T2]],0x10
   4748 ; MIPS32: andi [[T2]],[[T2]],0xff
   4749 ; MIPS32: sll [[T0]],[[T0]],0x18
   4750 ; MIPS32: sll [[T2]],[[T2]],0x18
   4751 ; MIPS32: sltu [[T0]],[[T0]],[[T2]]
   4752 ; MIPS32: andi [[T0]],[[T0]],0xff
   4753 ; MIPS32: sll [[T0]],[[T0]],0x10
   4754 ; MIPS32: lui [[T2]],0xff00
   4755 ; MIPS32: ori [[T2]],[[T2]],0xffff
   4756 ; MIPS32: and [[T1]],[[T1]],[[T2]]
   4757 ; MIPS32: or [[T0]],[[T0]],[[T1]]
   4758 ; MIPS32: srl [[T13:.*]],a3,0x18
   4759 ; MIPS32: srl [[T3]],[[T3]],0x18
   4760 ; MIPS32: sll [[T13]],[[T13]],0x18
   4761 ; MIPS32: sll [[T3]],[[T3]],0x18
   4762 ; MIPS32: sltu [[T13]],[[T13]],[[T3]]
   4763 ; MIPS32: sll [[T13]],[[T13]],0x18
   4764 ; MIPS32: sll [[T0]],[[T0]],0x8
   4765 ; MIPS32: srl [[T0]],[[T0]],0x8
   4766 ; MIPS32: or [[T13]],[[T13]],[[T0]]
   4767 ; MIPS32: move v0,[[T10]]
   4768 ; MIPS32: move v1,[[T11]]
   4769 ; MIPS32: move a0,[[T12]]
   4770 ; MIPS32: move a1,[[T13]]
   4771 }
   4772 
   4773 define internal <16 x i1> @test_icmp_v16i1_eq(<16 x i1> %a, <16 x i1> %b) {
   4774 entry:
   4775   %res = icmp eq <16 x i1> %a, %b
   4776   ret <16 x i1> %res
   4777 ; CHECK-LABEL: test_icmp_v16i1_eq
   4778 ; CHECK: pcmpeqb
   4779 
   4780 ; MIPS32-LABEL: test_icmp_v16i1_eq
   4781 ; MIPS32: lw [[T0:.*]],
   4782 ; MIPS32: lw [[T1:.*]],
   4783 ; MIPS32: lw [[T2:.*]],
   4784 ; MIPS32: lw [[T3:.*]],
   4785 ; MIPS32: move [[T4:.*]],zero
   4786 ; MIPS32: move [[T5:.*]],zero
   4787 ; MIPS32: move [[T6:.*]],zero
   4788 ; MIPS32: move [[T7:.*]],zero
   4789 ; MIPS32: move [[T8:.*]],a0
   4790 ; MIPS32: andi [[T8]],[[T8]],0xff
   4791 ; MIPS32: andi [[T8]],[[T8]],0x1
   4792 ; MIPS32: move [[T9:.*]],[[T0]]
   4793 ; MIPS32: andi [[T9]],[[T9]],0xff
   4794 ; MIPS32: andi [[T9]],[[T9]],0x1
   4795 ; MIPS32: sll [[T8]],[[T8]],0x1f
   4796 ; MIPS32: sll [[T9]],[[T9]],0x1f
   4797 ; MIPS32: xor [[T8]],[[T8]],[[T9]]
   4798 ; MIPS32: sltiu [[T8]],[[T8]],1
   4799 ; MIPS32: andi [[T8]],[[T8]],0xff
   4800 ; MIPS32: srl [[T4]],[[T4]],0x8
   4801 ; MIPS32: sll [[T4]],[[T4]],0x8
   4802 ; MIPS32: or [[T8]],[[T8]],[[T4]]
   4803 ; MIPS32: move [[T4]],a0
   4804 ; MIPS32: srl [[T4]],[[T4]],0x8
   4805 ; MIPS32: andi [[T4]],[[T4]],0xff
   4806 ; MIPS32: andi [[T4]],[[T4]],0x1
   4807 ; MIPS32: move [[T9]],[[T0]]
   4808 ; MIPS32: srl [[T9]],[[T9]],0x8
   4809 ; MIPS32: andi [[T9]],[[T9]],0xff
   4810 ; MIPS32: andi [[T9]],[[T9]],0x1
   4811 ; MIPS32: sll [[T4]],[[T4]],0x1f
   4812 ; MIPS32: sll [[T9]],[[T9]],0x1f
   4813 ; MIPS32: xor [[T4]],[[T4]],[[T9]]
   4814 ; MIPS32: sltiu [[T4]],[[T4]],1
   4815 ; MIPS32: andi [[T4]],[[T4]],0xff
   4816 ; MIPS32: sll [[T4]],[[T4]],0x8
   4817 ; MIPS32: lui [[T9]],0xffff
   4818 ; MIPS32: ori [[T9]],[[T9]],0xff
   4819 ; MIPS32: and [[T8]],[[T8]],[[T9]]
   4820 ; MIPS32: or [[T4]],[[T4]],[[T8]]
   4821 ; MIPS32: move [[T8]],a0
   4822 ; MIPS32: srl [[T8]],[[T8]],0x10
   4823 ; MIPS32: andi [[T8]],[[T8]],0xff
   4824 ; MIPS32: andi [[T8]],[[T8]],0x1
   4825 ; MIPS32: move [[T9]],[[T0]]
   4826 ; MIPS32: srl [[T9]],[[T9]],0x10
   4827 ; MIPS32: andi [[T9]],[[T9]],0xff
   4828 ; MIPS32: andi [[T9]],[[T9]],0x1
   4829 ; MIPS32: sll [[T8]],[[T8]],0x1f
   4830 ; MIPS32: sll [[T9]],[[T9]],0x1f
   4831 ; MIPS32: xor [[T8]],[[T8]],[[T9]]
   4832 ; MIPS32: sltiu [[T8]],[[T8]],1
   4833 ; MIPS32: andi [[T8]],[[T8]],0xff
   4834 ; MIPS32: sll [[T8]],[[T8]],0x10
   4835 ; MIPS32: lui [[T9]],0xff00
   4836 ; MIPS32: ori [[T9]],[[T9]],0xffff
   4837 ; MIPS32: and [[T4]],[[T4]],[[T9]]
   4838 ; MIPS32: or [[T8]],[[T8]],[[T4]]
   4839 ; MIPS32: srl [[T10:.*]],a0,0x18
   4840 ; MIPS32: andi [[T10]],[[T10]],0x1
   4841 ; MIPS32: srl [[T0]],[[T0]],0x18
   4842 ; MIPS32: andi [[T0]],[[T0]],0x1
   4843 ; MIPS32: sll [[T10]],[[T10]],0x1f
   4844 ; MIPS32: sll [[T0]],[[T0]],0x1f
   4845 ; MIPS32: xor [[T10]],[[T10]],[[T0]]
   4846 ; MIPS32: sltiu [[T10]],[[T10]],1
   4847 ; MIPS32: sll [[T10]],[[T10]],0x18
   4848 ; MIPS32: sll [[T8]],[[T8]],0x8
   4849 ; MIPS32: srl [[T8]],[[T8]],0x8
   4850 ; MIPS32: or [[T10]],[[T10]],[[T8]]
   4851 ; MIPS32: move [[T0]],a1
   4852 ; MIPS32: andi [[T0]],[[T0]],0xff
   4853 ; MIPS32: andi [[T0]],[[T0]],0x1
   4854 ; MIPS32: move [[T4]],[[T1]]
   4855 ; MIPS32: andi [[T4]],[[T4]],0xff
   4856 ; MIPS32: andi [[T4]],[[T4]],0x1
   4857 ; MIPS32: sll [[T0]],[[T0]],0x1f
   4858 ; MIPS32: sll [[T4]],[[T4]],0x1f
   4859 ; MIPS32: xor [[T0]],[[T0]],[[T4]]
   4860 ; MIPS32: sltiu [[T0]],[[T0]],1
   4861 ; MIPS32: andi [[T0]],[[T0]],0xff
   4862 ; MIPS32: srl [[T5]],[[T5]],0x8
   4863 ; MIPS32: sll [[T5]],[[T5]],0x8
   4864 ; MIPS32: or [[T0]],[[T0]],[[T5]]
   4865 ; MIPS32: move [[T4]],a1
   4866 ; MIPS32: srl [[T4]],[[T4]],0x8
   4867 ; MIPS32: andi [[T4]],[[T4]],0xff
   4868 ; MIPS32: andi [[T4]],[[T4]],0x1
   4869 ; MIPS32: move [[T5]],[[T1]]
   4870 ; MIPS32: srl [[T5]],[[T5]],0x8
   4871 ; MIPS32: andi [[T5]],[[T5]],0xff
   4872 ; MIPS32: andi [[T5]],[[T5]],0x1
   4873 ; MIPS32: sll [[T4]],[[T4]],0x1f
   4874 ; MIPS32: sll [[T5]],[[T5]],0x1f
   4875 ; MIPS32: xor [[T4]],[[T4]],[[T5]]
   4876 ; MIPS32: sltiu [[T4]],[[T4]],1
   4877 ; MIPS32: andi [[T4]],[[T4]],0xff
   4878 ; MIPS32: sll [[T4]],[[T4]],0x8
   4879 ; MIPS32: lui [[T5]],0xffff
   4880 ; MIPS32: ori [[T5]],[[T5]],0xff
   4881 ; MIPS32: and [[T0]],[[T0]],[[T5]]
   4882 ; MIPS32: or [[T4]],[[T4]],[[T0]]
   4883 ; MIPS32: move [[T0]],a1
   4884 ; MIPS32: srl [[T0]],[[T0]],0x10
   4885 ; MIPS32: andi [[T0]],[[T0]],0xff
   4886 ; MIPS32: andi [[T0]],[[T0]],0x1
   4887 ; MIPS32: move [[T5]],[[T1]]
   4888 ; MIPS32: srl [[T5]],[[T5]],0x10
   4889 ; MIPS32: andi [[T5]],[[T5]],0xff
   4890 ; MIPS32: andi [[T5]],[[T5]],0x1
   4891 ; MIPS32: sll [[T0]],[[T0]],0x1f
   4892 ; MIPS32: sll [[T5]],[[T5]],0x1f
   4893 ; MIPS32: xor [[T0]],[[T0]],[[T5]]
   4894 ; MIPS32: sltiu [[T0]],[[T0]],1
   4895 ; MIPS32: andi [[T0]],[[T0]],0xff
   4896 ; MIPS32: sll [[T0]],[[T0]],0x10
   4897 ; MIPS32: lui [[T5]],0xff00
   4898 ; MIPS32: ori [[T5]],[[T5]],0xffff
   4899 ; MIPS32: and [[T4]],[[T4]],[[T5]]
   4900 ; MIPS32: or [[T0]],[[T0]],[[T4]]
   4901 ; MIPS32: srl [[T11:.*]],a1,0x18
   4902 ; MIPS32: andi [[T11]],[[T11]],0x1
   4903 ; MIPS32: srl [[T1]],[[T1]],0x18
   4904 ; MIPS32: andi [[T1]],[[T1]],0x1
   4905 ; MIPS32: sll [[T11]],[[T11]],0x1f
   4906 ; MIPS32: sll [[T1]],[[T1]],0x1f
   4907 ; MIPS32: xor [[T11]],[[T11]],[[T1]]
   4908 ; MIPS32: sltiu [[T11]],[[T11]],1
   4909 ; MIPS32: sll [[T11]],[[T11]],0x18
   4910 ; MIPS32: sll [[T0]],[[T0]],0x8
   4911 ; MIPS32: srl [[T0]],[[T0]],0x8
   4912 ; MIPS32: or [[T11]],[[T11]],[[T0]]
   4913 ; MIPS32: move [[T0]],a2
   4914 ; MIPS32: andi [[T0]],[[T0]],0xff
   4915 ; MIPS32: andi [[T0]],[[T0]],0x1
   4916 ; MIPS32: move [[T1]],[[T2]]
   4917 ; MIPS32: andi [[T1]],[[T1]],0xff
   4918 ; MIPS32: andi [[T1]],[[T1]],0x1
   4919 ; MIPS32: sll [[T0]],[[T0]],0x1f
   4920 ; MIPS32: sll [[T1]],[[T1]],0x1f
   4921 ; MIPS32: xor [[T0]],[[T0]],[[T1]]
   4922 ; MIPS32: sltiu [[T0]],[[T0]],1
   4923 ; MIPS32: andi [[T0]],[[T0]],0xff
   4924 ; MIPS32: srl [[T6]],[[T6]],0x8
   4925 ; MIPS32: sll [[T6]],[[T6]],0x8
   4926 ; MIPS32: or [[T0]],[[T0]],[[T6]]
   4927 ; MIPS32: move [[T1]],a2
   4928 ; MIPS32: srl [[T1]],[[T1]],0x8
   4929 ; MIPS32: andi [[T1]],[[T1]],0xff
   4930 ; MIPS32: andi [[T1]],[[T1]],0x1
   4931 ; MIPS32: move [[T4]],[[T2]]
   4932 ; MIPS32: srl [[T4]],[[T4]],0x8
   4933 ; MIPS32: andi [[T4]],[[T4]],0xff
   4934 ; MIPS32: andi [[T4]],[[T4]],0x1
   4935 ; MIPS32: sll [[T1]],[[T1]],0x1f
   4936 ; MIPS32: sll [[T4]],[[T4]],0x1f
   4937 ; MIPS32: xor [[T1]],[[T1]],[[T4]]
   4938 ; MIPS32: sltiu [[T1]],[[T1]],1
   4939 ; MIPS32: andi [[T1]],[[T1]],0xff
   4940 ; MIPS32: sll [[T1]],[[T1]],0x8
   4941 ; MIPS32: lui [[T4]],0xffff
   4942 ; MIPS32: ori [[T4]],[[T4]],0xff
   4943 ; MIPS32: and [[T0]],[[T0]],[[T4]]
   4944 ; MIPS32: or [[T1]],[[T1]],[[T0]]
   4945 ; MIPS32: move [[T0]],a2
   4946 ; MIPS32: srl [[T0]],[[T0]],0x10
   4947 ; MIPS32: andi [[T0]],[[T0]],0xff
   4948 ; MIPS32: andi [[T0]],[[T0]],0x1
   4949 ; MIPS32: move [[T4]],[[T2]]
   4950 ; MIPS32: srl [[T4]],[[T4]],0x10
   4951 ; MIPS32: andi [[T4]],[[T4]],0xff
   4952 ; MIPS32: andi [[T4]],[[T4]],0x1
   4953 ; MIPS32: sll [[T0]],[[T0]],0x1f
   4954 ; MIPS32: sll [[T4]],[[T4]],0x1f
   4955 ; MIPS32: xor [[T0]],[[T0]],[[T4]]
   4956 ; MIPS32: sltiu [[T0]],[[T0]],1
   4957 ; MIPS32: andi [[T0]],[[T0]],0xff
   4958 ; MIPS32: sll [[T0]],[[T0]],0x10
   4959 ; MIPS32: lui [[T4]],0xff00
   4960 ; MIPS32: ori [[T4]],[[T4]],0xffff
   4961 ; MIPS32: and [[T1]],[[T1]],[[T4]]
   4962 ; MIPS32: or [[T0]],[[T0]],[[T1]]
   4963 ; MIPS32: srl [[T12:.*]],a2,0x18
   4964 ; MIPS32: andi [[T12]],[[T12]],0x1
   4965 ; MIPS32: srl [[T2]],[[T2]],0x18
   4966 ; MIPS32: andi [[T2]],[[T2]],0x1
   4967 ; MIPS32: sll [[T12]],[[T12]],0x1f
   4968 ; MIPS32: sll [[T2]],[[T2]],0x1f
   4969 ; MIPS32: xor [[T12]],[[T12]],[[T2]]
   4970 ; MIPS32: sltiu [[T12]],[[T12]],1
   4971 ; MIPS32: sll [[T12]],[[T12]],0x18
   4972 ; MIPS32: sll [[T0]],[[T0]],0x8
   4973 ; MIPS32: srl [[T0]],[[T0]],0x8
   4974 ; MIPS32: or [[T12]],[[T12]],[[T0]]
   4975 ; MIPS32: move [[T0]],a3
   4976 ; MIPS32: andi [[T0]],[[T0]],0xff
   4977 ; MIPS32: andi [[T0]],[[T0]],0x1
   4978 ; MIPS32: move [[T1]],[[T3]]
   4979 ; MIPS32: andi [[T1]],[[T1]],0xff
   4980 ; MIPS32: andi [[T1]],[[T1]],0x1
   4981 ; MIPS32: sll [[T0]],[[T0]],0x1f
   4982 ; MIPS32: sll [[T1]],[[T1]],0x1f
   4983 ; MIPS32: xor [[T0]],[[T0]],[[T1]]
   4984 ; MIPS32: sltiu [[T0]],[[T0]],1
   4985 ; MIPS32: andi [[T0]],[[T0]],0xff
   4986 ; MIPS32: srl [[T7]],[[T7]],0x8
   4987 ; MIPS32: sll [[T7]],[[T7]],0x8
   4988 ; MIPS32: or [[T0]],[[T0]],[[T7]]
   4989 ; MIPS32: move [[T1]],a3
   4990 ; MIPS32: srl [[T1]],[[T1]],0x8
   4991 ; MIPS32: andi [[T1]],[[T1]],0xff
   4992 ; MIPS32: andi [[T1]],[[T1]],0x1
   4993 ; MIPS32: move [[T2]],[[T3]]
   4994 ; MIPS32: srl [[T2]],[[T2]],0x8
   4995 ; MIPS32: andi [[T2]],[[T2]],0xff
   4996 ; MIPS32: andi [[T2]],[[T2]],0x1
   4997 ; MIPS32: sll [[T1]],[[T1]],0x1f
   4998 ; MIPS32: sll [[T2]],[[T2]],0x1f
   4999 ; MIPS32: xor [[T1]],[[T1]],[[T2]]
   5000 ; MIPS32: sltiu [[T1]],[[T1]],1
   5001 ; MIPS32: andi [[T1]],[[T1]],0xff
   5002 ; MIPS32: sll [[T1]],[[T1]],0x8
   5003 ; MIPS32: lui [[T2]],0xffff
   5004 ; MIPS32: ori [[T2]],[[T2]],0xff
   5005 ; MIPS32: and [[T0]],[[T0]],[[T2]]
   5006 ; MIPS32: or [[T1]],[[T1]],[[T0]]
   5007 ; MIPS32: move [[T0]],a3
   5008 ; MIPS32: srl [[T0]],[[T0]],0x10
   5009 ; MIPS32: andi [[T0]],[[T0]],0xff
   5010 ; MIPS32: andi [[T0]],[[T0]],0x1
   5011 ; MIPS32: move [[T2]],[[T3]]
   5012 ; MIPS32: srl [[T2]],[[T2]],0x10
   5013 ; MIPS32: andi [[T2]],[[T2]],0xff
   5014 ; MIPS32: andi [[T2]],[[T2]],0x1
   5015 ; MIPS32: sll [[T0]],[[T0]],0x1f
   5016 ; MIPS32: sll [[T2]],[[T2]],0x1f
   5017 ; MIPS32: xor [[T0]],[[T0]],[[T2]]
   5018 ; MIPS32: sltiu [[T0]],[[T0]],1
   5019 ; MIPS32: andi [[T0]],[[T0]],0xff
   5020 ; MIPS32: sll [[T0]],[[T0]],0x10
   5021 ; MIPS32: lui [[T2]],0xff00
   5022 ; MIPS32: ori [[T2]],[[T2]],0xffff
   5023 ; MIPS32: and [[T1]],[[T1]],[[T2]]
   5024 ; MIPS32: or [[T0]],[[T0]],[[T1]]
   5025 ; MIPS32: srl [[T13:.*]],a3,0x18
   5026 ; MIPS32: andi [[T13]],[[T13]],0x1
   5027 ; MIPS32: srl [[T3]],[[T3]],0x18
   5028 ; MIPS32: andi [[T3]],[[T3]],0x1
   5029 ; MIPS32: sll [[T13]],[[T13]],0x1f
   5030 ; MIPS32: sll [[T3]],[[T3]],0x1f
   5031 ; MIPS32: xor [[T13]],[[T13]],[[T3]]
   5032 ; MIPS32: sltiu [[T13]],[[T13]],1
   5033 ; MIPS32: sll [[T13]],[[T13]],0x18
   5034 ; MIPS32: sll [[T0]],[[T0]],0x8
   5035 ; MIPS32: srl [[T0]],[[T0]],0x8
   5036 ; MIPS32: or [[T13]],[[T13]],[[T0]]
   5037 ; MIPS32: move v0,[[T10]]
   5038 ; MIPS32: move v1,[[T11]]
   5039 ; MIPS32: move a0,[[T12]]
   5040 ; MIPS32: move a1,[[T13]]
   5041 }
   5042 
   5043 define internal <16 x i1> @test_icmp_v16i1_ne(<16 x i1> %a, <16 x i1> %b) {
   5044 entry:
   5045   %res = icmp ne <16 x i1> %a, %b
   5046   ret <16 x i1> %res
   5047 ; CHECK-LABEL: test_icmp_v16i1_ne
   5048 ; CHECK: pcmpeqb
   5049 ; CHECK: pxor
   5050 
   5051 ; MIPS32-LABEL: test_icmp_v16i1_ne
   5052 ; MIPS32: lw [[T0:.*]],
   5053 ; MIPS32: lw [[T1:.*]],
   5054 ; MIPS32: lw [[T2:.*]],
   5055 ; MIPS32: lw [[T3:.*]],
   5056 ; MIPS32: move [[T4:.*]],zero
   5057 ; MIPS32: move [[T5:.*]],zero
   5058 ; MIPS32: move [[T6:.*]],zero
   5059 ; MIPS32: move [[T7:.*]],zero
   5060 ; MIPS32: move [[T8:.*]],a0
   5061 ; MIPS32: andi [[T8]],[[T8]],0xff
   5062 ; MIPS32: andi [[T8]],[[T8]],0x1
   5063 ; MIPS32: move [[T9:.*]],[[T0]]
   5064 ; MIPS32: andi [[T9]],[[T9]],0xff
   5065 ; MIPS32: andi [[T9]],[[T9]],0x1
   5066 ; MIPS32: sll [[T8]],[[T8]],0x1f
   5067 ; MIPS32: sll [[T9]],[[T9]],0x1f
   5068 ; MIPS32: xor [[T8]],[[T8]],[[T9]]
   5069 ; MIPS32: sltu [[T8]],zero,[[T8]]
   5070 ; MIPS32: andi [[T8]],[[T8]],0xff
   5071 ; MIPS32: srl [[T4]],[[T4]],0x8
   5072 ; MIPS32: sll [[T4]],[[T4]],0x8
   5073 ; MIPS32: or [[T8]],[[T8]],[[T4]]
   5074 ; MIPS32: move [[T4]],a0
   5075 ; MIPS32: srl [[T4]],[[T4]],0x8
   5076 ; MIPS32: andi [[T4]],[[T4]],0xff
   5077 ; MIPS32: andi [[T4]],[[T4]],0x1
   5078 ; MIPS32: move [[T9]],[[T0]]
   5079 ; MIPS32: srl [[T9]],[[T9]],0x8
   5080 ; MIPS32: andi [[T9]],[[T9]],0xff
   5081 ; MIPS32: andi [[T9]],[[T9]],0x1
   5082 ; MIPS32: sll [[T4]],[[T4]],0x1f
   5083 ; MIPS32: sll [[T9]],[[T9]],0x1f
   5084 ; MIPS32: xor [[T4]],[[T4]],[[T9]]
   5085 ; MIPS32: sltu [[T4]],zero,[[T4]]
   5086 ; MIPS32: andi [[T4]],[[T4]],0xff
   5087 ; MIPS32: sll [[T4]],[[T4]],0x8
   5088 ; MIPS32: lui [[T9]],0xffff
   5089 ; MIPS32: ori [[T9]],[[T9]],0xff
   5090 ; MIPS32: and [[T8]],[[T8]],[[T9]]
   5091 ; MIPS32: or [[T4]],[[T4]],[[T8]]
   5092 ; MIPS32: move [[T8]],a0
   5093 ; MIPS32: srl [[T8]],[[T8]],0x10
   5094 ; MIPS32: andi [[T8]],[[T8]],0xff
   5095 ; MIPS32: andi [[T8]],[[T8]],0x1
   5096 ; MIPS32: move [[T9]],[[T0]]
   5097 ; MIPS32: srl [[T9]],[[T9]],0x10
   5098 ; MIPS32: andi [[T9]],[[T9]],0xff
   5099 ; MIPS32: andi [[T9]],[[T9]],0x1
   5100 ; MIPS32: sll [[T8]],[[T8]],0x1f
   5101 ; MIPS32: sll [[T9]],[[T9]],0x1f
   5102 ; MIPS32: xor [[T8]],[[T8]],[[T9]]
   5103 ; MIPS32: sltu [[T8]],zero,[[T8]]
   5104 ; MIPS32: andi [[T8]],[[T8]],0xff
   5105 ; MIPS32: sll [[T8]],[[T8]],0x10
   5106 ; MIPS32: lui [[T9]],0xff00
   5107 ; MIPS32: ori [[T9]],[[T9]],0xffff
   5108 ; MIPS32: and [[T4]],[[T4]],[[T9]]
   5109 ; MIPS32: or [[T8]],[[T8]],[[T4]]
   5110 ; MIPS32: srl [[T10:.*]],a0,0x18
   5111 ; MIPS32: andi [[T10]],[[T10]],0x1
   5112 ; MIPS32: srl [[T0]],[[T0]],0x18
   5113 ; MIPS32: andi [[T0]],[[T0]],0x1
   5114 ; MIPS32: sll [[T10]],[[T10]],0x1f
   5115 ; MIPS32: sll [[T0]],[[T0]],0x1f
   5116 ; MIPS32: xor [[T10]],[[T10]],[[T0]]
   5117 ; MIPS32: sltu [[T10]],zero,[[T10]]
   5118 ; MIPS32: sll [[T10]],[[T10]],0x18
   5119 ; MIPS32: sll [[T8]],[[T8]],0x8
   5120 ; MIPS32: srl [[T8]],[[T8]],0x8
   5121 ; MIPS32: or [[T10]],[[T10]],[[T8]]
   5122 ; MIPS32: move [[T0]],a1
   5123 ; MIPS32: andi [[T0]],[[T0]],0xff
   5124 ; MIPS32: andi [[T0]],[[T0]],0x1
   5125 ; MIPS32: move [[T4]],[[T1]]
   5126 ; MIPS32: andi [[T4]],[[T4]],0xff
   5127 ; MIPS32: andi [[T4]],[[T4]],0x1
   5128 ; MIPS32: sll [[T0]],[[T0]],0x1f
   5129 ; MIPS32: sll [[T4]],[[T4]],0x1f
   5130 ; MIPS32: xor [[T0]],[[T0]],[[T4]]
   5131 ; MIPS32: sltu [[T0]],zero,[[T0]]
   5132 ; MIPS32: andi [[T0]],[[T0]],0xff
   5133 ; MIPS32: srl [[T5]],[[T5]],0x8
   5134 ; MIPS32: sll [[T5]],[[T5]],0x8
   5135 ; MIPS32: or [[T0]],[[T0]],[[T5]]
   5136 ; MIPS32: move [[T4]],a1
   5137 ; MIPS32: srl [[T4]],[[T4]],0x8
   5138 ; MIPS32: andi [[T4]],[[T4]],0xff
   5139 ; MIPS32: andi [[T4]],[[T4]],0x1
   5140 ; MIPS32: move [[T5]],[[T1]]
   5141 ; MIPS32: srl [[T5]],[[T5]],0x8
   5142 ; MIPS32: andi [[T5]],[[T5]],0xff
   5143 ; MIPS32: andi [[T5]],[[T5]],0x1
   5144 ; MIPS32: sll [[T4]],[[T4]],0x1f
   5145 ; MIPS32: sll [[T5]],[[T5]],0x1f
   5146 ; MIPS32: xor [[T4]],[[T4]],[[T5]]
   5147 ; MIPS32: sltu [[T4]],zero,[[T4]]
   5148 ; MIPS32: andi [[T4]],[[T4]],0xff
   5149 ; MIPS32: sll [[T4]],[[T4]],0x8
   5150 ; MIPS32: lui [[T5]],0xffff
   5151 ; MIPS32: ori [[T5]],[[T5]],0xff
   5152 ; MIPS32: and [[T0]],[[T0]],[[T5]]
   5153 ; MIPS32: or [[T4]],[[T4]],[[T0]]
   5154 ; MIPS32: move [[T0]],a1
   5155 ; MIPS32: srl [[T0]],[[T0]],0x10
   5156 ; MIPS32: andi [[T0]],[[T0]],0xff
   5157 ; MIPS32: andi [[T0]],[[T0]],0x1
   5158 ; MIPS32: move [[T5]],[[T1]]
   5159 ; MIPS32: srl [[T5]],[[T5]],0x10
   5160 ; MIPS32: andi [[T5]],[[T5]],0xff
   5161 ; MIPS32: andi [[T5]],[[T5]],0x1
   5162 ; MIPS32: sll [[T0]],[[T0]],0x1f
   5163 ; MIPS32: sll [[T5]],[[T5]],0x1f
   5164 ; MIPS32: xor [[T0]],[[T0]],[[T5]]
   5165 ; MIPS32: sltu [[T0]],zero,[[T0]]
   5166 ; MIPS32: andi [[T0]],[[T0]],0xff
   5167 ; MIPS32: sll [[T0]],[[T0]],0x10
   5168 ; MIPS32: lui [[T5]],0xff00
   5169 ; MIPS32: ori [[T5]],[[T5]],0xffff
   5170 ; MIPS32: and [[T4]],[[T4]],[[T5]]
   5171 ; MIPS32: or [[T0]],[[T0]],[[T4]]
   5172 ; MIPS32: srl [[T11:.*]],a1,0x18
   5173 ; MIPS32: andi [[T11]],[[T11]],0x1
   5174 ; MIPS32: srl [[T1]],[[T1]],0x18
   5175 ; MIPS32: andi [[T1]],[[T1]],0x1
   5176 ; MIPS32: sll [[T11]],[[T11]],0x1f
   5177 ; MIPS32: sll [[T1]],[[T1]],0x1f
   5178 ; MIPS32: xor [[T11]],[[T11]],[[T1]]
   5179 ; MIPS32: sltu [[T11]],zero,[[T11]]
   5180 ; MIPS32: sll [[T11]],[[T11]],0x18
   5181 ; MIPS32: sll [[T0]],[[T0]],0x8
   5182 ; MIPS32: srl [[T0]],[[T0]],0x8
   5183 ; MIPS32: or [[T11]],[[T11]],[[T0]]
   5184 ; MIPS32: move [[T0]],a2
   5185 ; MIPS32: andi [[T0]],[[T0]],0xff
   5186 ; MIPS32: andi [[T0]],[[T0]],0x1
   5187 ; MIPS32: move [[T1]],[[T2]]
   5188 ; MIPS32: andi [[T1]],[[T1]],0xff
   5189 ; MIPS32: andi [[T1]],[[T1]],0x1
   5190 ; MIPS32: sll [[T0]],[[T0]],0x1f
   5191 ; MIPS32: sll [[T1]],[[T1]],0x1f
   5192 ; MIPS32: xor [[T0]],[[T0]],[[T1]]
   5193 ; MIPS32: sltu [[T0]],zero,[[T0]]
   5194 ; MIPS32: andi [[T0]],[[T0]],0xff
   5195 ; MIPS32: srl [[T6]],[[T6]],0x8
   5196 ; MIPS32: sll [[T6]],[[T6]],0x8
   5197 ; MIPS32: or [[T0]],[[T0]],[[T6]]
   5198 ; MIPS32: move [[T1]],a2
   5199 ; MIPS32: srl [[T1]],[[T1]],0x8
   5200 ; MIPS32: andi [[T1]],[[T1]],0xff
   5201 ; MIPS32: andi [[T1]],[[T1]],0x1
   5202 ; MIPS32: move [[T4]],[[T2]]
   5203 ; MIPS32: srl [[T4]],[[T4]],0x8
   5204 ; MIPS32: andi [[T4]],[[T4]],0xff
   5205 ; MIPS32: andi [[T4]],[[T4]],0x1
   5206 ; MIPS32: sll [[T1]],[[T1]],0x1f
   5207 ; MIPS32: sll [[T4]],[[T4]],0x1f
   5208 ; MIPS32: xor [[T1]],[[T1]],[[T4]]
   5209 ; MIPS32: sltu [[T1]],zero,[[T1]]
   5210 ; MIPS32: andi [[T1]],[[T1]],0xff
   5211 ; MIPS32: sll [[T1]],[[T1]],0x8
   5212 ; MIPS32: lui [[T4]],0xffff
   5213 ; MIPS32: ori [[T4]],[[T4]],0xff
   5214 ; MIPS32: and [[T0]],[[T0]],[[T4]]
   5215 ; MIPS32: or [[T1]],[[T1]],[[T0]]
   5216 ; MIPS32: move [[T0]],a2
   5217 ; MIPS32: srl [[T0]],[[T0]],0x10
   5218 ; MIPS32: andi [[T0]],[[T0]],0xff
   5219 ; MIPS32: andi [[T0]],[[T0]],0x1
   5220 ; MIPS32: move [[T4]],[[T2]]
   5221 ; MIPS32: srl [[T4]],[[T4]],0x10
   5222 ; MIPS32: andi [[T4]],[[T4]],0xff
   5223 ; MIPS32: andi [[T4]],[[T4]],0x1
   5224 ; MIPS32: sll [[T0]],[[T0]],0x1f
   5225 ; MIPS32: sll [[T4]],[[T4]],0x1f
   5226 ; MIPS32: xor [[T0]],[[T0]],[[T4]]
   5227 ; MIPS32: sltu [[T0]],zero,[[T0]]
   5228 ; MIPS32: andi [[T0]],[[T0]],0xff
   5229 ; MIPS32: sll [[T0]],[[T0]],0x10
   5230 ; MIPS32: lui [[T4]],0xff00
   5231 ; MIPS32: ori [[T4]],[[T4]],0xffff
   5232 ; MIPS32: and [[T1]],[[T1]],[[T4]]
   5233 ; MIPS32: or [[T0]],[[T0]],[[T1]]
   5234 ; MIPS32: srl [[T12:.*]],a2,0x18
   5235 ; MIPS32: andi [[T12]],[[T12]],0x1
   5236 ; MIPS32: srl [[T2]],[[T2]],0x18
   5237 ; MIPS32: andi [[T2]],[[T2]],0x1
   5238 ; MIPS32: sll [[T12]],[[T12]],0x1f
   5239 ; MIPS32: sll [[T2]],[[T2]],0x1f
   5240 ; MIPS32: xor [[T12]],[[T12]],[[T2]]
   5241 ; MIPS32: sltu [[T12]],zero,[[T12]]
   5242 ; MIPS32: sll [[T12]],[[T12]],0x18
   5243 ; MIPS32: sll [[T0]],[[T0]],0x8
   5244 ; MIPS32: srl [[T0]],[[T0]],0x8
   5245 ; MIPS32: or [[T12]],[[T12]],[[T0]]
   5246 ; MIPS32: move [[T0]],a3
   5247 ; MIPS32: andi [[T0]],[[T0]],0xff
   5248 ; MIPS32: andi [[T0]],[[T0]],0x1
   5249 ; MIPS32: move [[T1]],[[T3]]
   5250 ; MIPS32: andi [[T1]],[[T1]],0xff
   5251 ; MIPS32: andi [[T1]],[[T1]],0x1
   5252 ; MIPS32: sll [[T0]],[[T0]],0x1f
   5253 ; MIPS32: sll [[T1]],[[T1]],0x1f
   5254 ; MIPS32: xor [[T0]],[[T0]],[[T1]]
   5255 ; MIPS32: sltu [[T0]],zero,[[T0]]
   5256 ; MIPS32: andi [[T0]],[[T0]],0xff
   5257 ; MIPS32: srl [[T7]],[[T7]],0x8
   5258 ; MIPS32: sll [[T7]],[[T7]],0x8
   5259 ; MIPS32: or [[T0]],[[T0]],[[T7]]
   5260 ; MIPS32: move [[T1]],a3
   5261 ; MIPS32: srl [[T1]],[[T1]],0x8
   5262 ; MIPS32: andi [[T1]],[[T1]],0xff
   5263 ; MIPS32: andi [[T1]],[[T1]],0x1
   5264 ; MIPS32: move [[T2]],[[T3]]
   5265 ; MIPS32: srl [[T2]],[[T2]],0x8
   5266 ; MIPS32: andi [[T2]],[[T2]],0xff
   5267 ; MIPS32: andi [[T2]],[[T2]],0x1
   5268 ; MIPS32: sll [[T1]],[[T1]],0x1f
   5269 ; MIPS32: sll [[T2]],[[T2]],0x1f
   5270 ; MIPS32: xor [[T1]],[[T1]],[[T2]]
   5271 ; MIPS32: sltu [[T1]],zero,[[T1]]
   5272 ; MIPS32: andi [[T1]],[[T1]],0xff
   5273 ; MIPS32: sll [[T1]],[[T1]],0x8
   5274 ; MIPS32: lui [[T2]],0xffff
   5275 ; MIPS32: ori [[T2]],[[T2]],0xff
   5276 ; MIPS32: and [[T0]],[[T0]],[[T2]]
   5277 ; MIPS32: or [[T1]],[[T1]],[[T0]]
   5278 ; MIPS32: move [[T0]],a3
   5279 ; MIPS32: srl [[T0]],[[T0]],0x10
   5280 ; MIPS32: andi [[T0]],[[T0]],0xff
   5281 ; MIPS32: andi [[T0]],[[T0]],0x1
   5282 ; MIPS32: move [[T2]],[[T3]]
   5283 ; MIPS32: srl [[T2]],[[T2]],0x10
   5284 ; MIPS32: andi [[T2]],[[T2]],0xff
   5285 ; MIPS32: andi [[T2]],[[T2]],0x1
   5286 ; MIPS32: sll [[T0]],[[T0]],0x1f
   5287 ; MIPS32: sll [[T2]],[[T2]],0x1f
   5288 ; MIPS32: xor [[T0]],[[T0]],[[T2]]
   5289 ; MIPS32: sltu [[T0]],zero,[[T0]]
   5290 ; MIPS32: andi [[T0]],[[T0]],0xff
   5291 ; MIPS32: sll [[T0]],[[T0]],0x10
   5292 ; MIPS32: lui [[T2]],0xff00
   5293 ; MIPS32: ori [[T2]],[[T2]],0xffff
   5294 ; MIPS32: and [[T1]],[[T1]],[[T2]]
   5295 ; MIPS32: or [[T0]],[[T0]],[[T1]]
   5296 ; MIPS32: srl [[T13:.*]],a3,0x18
   5297 ; MIPS32: andi [[T13]],[[T13]],0x1
   5298 ; MIPS32: srl [[T3]],[[T3]],0x18
   5299 ; MIPS32: andi [[T3]],[[T3]],0x1
   5300 ; MIPS32: sll [[T13]],[[T13]],0x1f
   5301 ; MIPS32: sll [[T3]],[[T3]],0x1f
   5302 ; MIPS32: xor [[T13]],[[T13]],[[T3]]
   5303 ; MIPS32: sltu [[T13]],zero,[[T13]]
   5304 ; MIPS32: sll [[T13]],[[T13]],0x18
   5305 ; MIPS32: sll [[T0]],[[T0]],0x8
   5306 ; MIPS32: srl [[T0]],[[T0]],0x8
   5307 ; MIPS32: or [[T13]],[[T13]],[[T0]]
   5308 ; MIPS32: move v0,[[T10]]
   5309 ; MIPS32: move v1,[[T11]]
   5310 ; MIPS32: move a0,[[T12]]
   5311 ; MIPS32: move a1,[[T13]]
   5312 }
   5313 
   5314 define internal <16 x i1> @test_icmp_v16i1_sgt(<16 x i1> %a, <16 x i1> %b) {
   5315 entry:
   5316   %res = icmp sgt <16 x i1> %a, %b
   5317   ret <16 x i1> %res
   5318 ; CHECK-LABEL: test_icmp_v16i1_sgt
   5319 ; CHECK: pcmpgtb
   5320 
   5321 ; MIPS32-LABEL: test_icmp_v16i1_sgt
   5322 ; MIPS32: lw [[T0:.*]],
   5323 ; MIPS32: lw [[T1:.*]],
   5324 ; MIPS32: lw [[T2:.*]],
   5325 ; MIPS32: lw [[T3:.*]],
   5326 ; MIPS32: move [[T4:.*]],zero
   5327 ; MIPS32: move [[T5:.*]],zero
   5328 ; MIPS32: move [[T6:.*]],zero
   5329 ; MIPS32: move [[T7:.*]],zero
   5330 ; MIPS32: move [[T8:.*]],a0
   5331 ; MIPS32: andi [[T8]],[[T8]],0xff
   5332 ; MIPS32: andi [[T8]],[[T8]],0x1
   5333 ; MIPS32: move [[T9:.*]],[[T0]]
   5334 ; MIPS32: andi [[T9]],[[T9]],0xff
   5335 ; MIPS32: andi [[T9]],[[T9]],0x1
   5336 ; MIPS32: sll [[T8]],[[T8]],0x1f
   5337 ; MIPS32: sll [[T9]],[[T9]],0x1f
   5338 ; MIPS32: slt [[T9]],[[T9]],[[T8]]
   5339 ; MIPS32: andi [[T9]],[[T9]],0xff
   5340 ; MIPS32: srl [[T4]],[[T4]],0x8
   5341 ; MIPS32: sll [[T4]],[[T4]],0x8
   5342 ; MIPS32: or [[T9]],[[T9]],[[T4]]
   5343 ; MIPS32: move [[T4]],a0
   5344 ; MIPS32: srl [[T4]],[[T4]],0x8
   5345 ; MIPS32: andi [[T4]],[[T4]],0xff
   5346 ; MIPS32: andi [[T4]],[[T4]],0x1
   5347 ; MIPS32: move [[T8]],[[T0]]
   5348 ; MIPS32: srl [[T8]],[[T8]],0x8
   5349 ; MIPS32: andi [[T8]],[[T8]],0xff
   5350 ; MIPS32: andi [[T8]],[[T8]],0x1
   5351 ; MIPS32: sll [[T4]],[[T4]],0x1f
   5352 ; MIPS32: sll [[T8]],[[T8]],0x1f
   5353 ; MIPS32: slt [[T8]],[[T8]],[[T4]]
   5354 ; MIPS32: andi [[T8]],[[T8]],0xff
   5355 ; MIPS32: sll [[T8]],[[T8]],0x8
   5356 ; MIPS32: lui [[T4]],0xffff
   5357 ; MIPS32: ori [[T4]],[[T4]],0xff
   5358 ; MIPS32: and [[T9]],[[T9]],[[T4]]
   5359 ; MIPS32: or [[T8]],[[T8]],[[T9]]
   5360 ; MIPS32: move [[T4]],a0
   5361 ; MIPS32: srl [[T4]],[[T4]],0x10
   5362 ; MIPS32: andi [[T4]],[[T4]],0xff
   5363 ; MIPS32: andi [[T4]],[[T4]],0x1
   5364 ; MIPS32: move [[T9]],[[T0]]
   5365 ; MIPS32: srl [[T9]],[[T9]],0x10
   5366 ; MIPS32: andi [[T9]],[[T9]],0xff
   5367 ; MIPS32: andi [[T9]],[[T9]],0x1
   5368 ; MIPS32: sll [[T4]],[[T4]],0x1f
   5369 ; MIPS32: sll [[T9]],[[T9]],0x1f
   5370 ; MIPS32: slt [[T9]],[[T9]],[[T4]]
   5371 ; MIPS32: andi [[T9]],[[T9]],0xff
   5372 ; MIPS32: sll [[T9]],[[T9]],0x10
   5373 ; MIPS32: lui [[T4]],0xff00
   5374 ; MIPS32: ori [[T4]],[[T4]],0xffff
   5375 ; MIPS32: and [[T8]],[[T8]],[[T4]]
   5376 ; MIPS32: or [[T9]],[[T9]],[[T8]]
   5377 ; MIPS32: srl [[T10:.*]],a0,0x18
   5378 ; MIPS32: andi [[T10]],[[T10]],0x1
   5379 ; MIPS32: srl [[T0]],[[T0]],0x18
   5380 ; MIPS32: andi [[T0]],[[T0]],0x1
   5381 ; MIPS32: sll [[T10]],[[T10]],0x1f
   5382 ; MIPS32: sll [[T0]],[[T0]],0x1f
   5383 ; MIPS32: slt [[T0]],[[T0]],[[T10]]
   5384 ; MIPS32: sll [[T0]],[[T0]],0x18
   5385 ; MIPS32: sll [[T9]],[[T9]],0x8
   5386 ; MIPS32: srl [[T9]],[[T9]],0x8
   5387 ; MIPS32: or v0,[[T0]],[[T9]]
   5388 ; MIPS32: move [[T10]],a1
   5389 ; MIPS32: andi [[T10]],[[T10]],0xff
   5390 ; MIPS32: andi [[T10]],[[T10]],0x1
   5391 ; MIPS32: move [[T4]],[[T1]]
   5392 ; MIPS32: andi [[T4]],[[T4]],0xff
   5393 ; MIPS32: andi [[T4]],[[T4]],0x1
   5394 ; MIPS32: sll [[T10]],[[T10]],0x1f
   5395 ; MIPS32: sll [[T4]],[[T4]],0x1f
   5396 ; MIPS32: slt [[T4]],[[T4]],[[T10]]
   5397 ; MIPS32: andi [[T4]],[[T4]],0xff
   5398 ; MIPS32: srl [[T5]],[[T5]],0x8
   5399 ; MIPS32: sll [[T5]],[[T5]],0x8
   5400 ; MIPS32: or [[T4]],[[T4]],[[T5]]
   5401 ; MIPS32: move [[T10]],a1
   5402 ; MIPS32: srl [[T10]],[[T10]],0x8
   5403 ; MIPS32: andi [[T10]],[[T10]],0xff
   5404 ; MIPS32: andi [[T10]],[[T10]],0x1
   5405 ; MIPS32: move [[T5]],[[T1]]
   5406 ; MIPS32: srl [[T5]],[[T5]],0x8
   5407 ; MIPS32: andi [[T5]],[[T5]],0xff
   5408 ; MIPS32: andi [[T5]],[[T5]],0x1
   5409 ; MIPS32: sll [[T10]],[[T10]],0x1f
   5410 ; MIPS32: sll [[T5]],[[T5]],0x1f
   5411 ; MIPS32: slt [[T5]],[[T5]],[[T10]]
   5412 ; MIPS32: andi [[T5]],[[T5]],0xff
   5413 ; MIPS32: sll [[T5]],[[T5]],0x8
   5414 ; MIPS32: lui [[T10]],0xffff
   5415 ; MIPS32: ori [[T10]],[[T10]],0xff
   5416 ; MIPS32: and [[T4]],[[T4]],[[T10]]
   5417 ; MIPS32: or [[T5]],[[T5]],[[T4]]
   5418 ; MIPS32: move [[T10]],a1
   5419 ; MIPS32: srl [[T10]],[[T10]],0x10
   5420 ; MIPS32: andi [[T10]],[[T10]],0xff
   5421 ; MIPS32: andi [[T10]],[[T10]],0x1
   5422 ; MIPS32: move [[T4]],[[T1]]
   5423 ; MIPS32: srl [[T4]],[[T4]],0x10
   5424 ; MIPS32: andi [[T4]],[[T4]],0xff
   5425 ; MIPS32: andi [[T4]],[[T4]],0x1
   5426 ; MIPS32: sll [[T10]],[[T10]],0x1f
   5427 ; MIPS32: sll [[T4]],[[T4]],0x1f
   5428 ; MIPS32: slt [[T4]],[[T4]],[[T10]]
   5429 ; MIPS32: andi [[T4]],[[T4]],0xff
   5430 ; MIPS32: sll [[T4]],[[T4]],0x10
   5431 ; MIPS32: lui [[T10]],0xff00
   5432 ; MIPS32: ori [[T10]],[[T10]],0xffff
   5433 ; MIPS32: and [[T5]],[[T5]],[[T10]]
   5434 ; MIPS32: or [[T4]],[[T4]],[[T5]]
   5435 ; MIPS32: srl [[T11:.*]],a1,0x18
   5436 ; MIPS32: andi [[T11]],[[T11]],0x1
   5437 ; MIPS32: srl [[T1]],[[T1]],0x18
   5438 ; MIPS32: andi [[T1]],[[T1]],0x1
   5439 ; MIPS32: sll [[T11]],[[T11]],0x1f
   5440 ; MIPS32: sll [[T1]],[[T1]],0x1f
   5441 ; MIPS32: slt [[T1]],[[T1]],[[T11]]
   5442 ; MIPS32: sll [[T1]],[[T1]],0x18
   5443 ; MIPS32: sll [[T4]],[[T4]],0x8
   5444 ; MIPS32: srl [[T4]],[[T4]],0x8
   5445 ; MIPS32: or v1,[[T1]],[[T4]]
   5446 ; MIPS32: move [[T10]],a2
   5447 ; MIPS32: andi [[T10]],[[T10]],0xff
   5448 ; MIPS32: andi [[T10]],[[T10]],0x1
   5449 ; MIPS32: move [[T11]],[[T2]]
   5450 ; MIPS32: andi [[T11]],[[T11]],0xff
   5451 ; MIPS32: andi [[T11]],[[T11]],0x1
   5452 ; MIPS32: sll [[T10]],[[T10]],0x1f
   5453 ; MIPS32: sll [[T11]],[[T11]],0x1f
   5454 ; MIPS32: slt [[T11]],[[T11]],[[T10]]
   5455 ; MIPS32: andi [[T11]],[[T11]],0xff
   5456 ; MIPS32: srl [[T6]],[[T6]],0x8
   5457 ; MIPS32: sll [[T6]],[[T6]],0x8
   5458 ; MIPS32: or [[T11]],[[T11]],[[T6]]
   5459 ; MIPS32: move [[T10]],a2
   5460 ; MIPS32: srl [[T10]],[[T10]],0x8
   5461 ; MIPS32: andi [[T10]],[[T10]],0xff
   5462 ; MIPS32: andi [[T10]],[[T10]],0x1
   5463 ; MIPS32: move [[T4]],[[T2]]
   5464 ; MIPS32: srl [[T4]],[[T4]],0x8
   5465 ; MIPS32: andi [[T4]],[[T4]],0xff
   5466 ; MIPS32: andi [[T4]],[[T4]],0x1
   5467 ; MIPS32: sll [[T10]],[[T10]],0x1f
   5468 ; MIPS32: sll [[T4]],[[T4]],0x1f
   5469 ; MIPS32: slt [[T4]],[[T4]],[[T10]]
   5470 ; MIPS32: andi [[T4]],[[T4]],0xff
   5471 ; MIPS32: sll [[T4]],[[T4]],0x8
   5472 ; MIPS32: lui [[T10]],0xffff
   5473 ; MIPS32: ori [[T10]],[[T10]],0xff
   5474 ; MIPS32: and [[T11]],[[T11]],[[T10]]
   5475 ; MIPS32: or [[T4]],[[T4]],[[T11]]
   5476 ; MIPS32: move [[T10]],a2
   5477 ; MIPS32: srl [[T10]],[[T10]],0x10
   5478 ; MIPS32: andi [[T10]],[[T10]],0xff
   5479 ; MIPS32: andi [[T10]],[[T10]],0x1
   5480 ; MIPS32: move [[T11]],[[T2]]
   5481 ; MIPS32: srl [[T11]],[[T11]],0x10
   5482 ; MIPS32: andi [[T11]],[[T11]],0xff
   5483 ; MIPS32: andi [[T11]],[[T11]],0x1
   5484 ; MIPS32: sll [[T10]],[[T10]],0x1f
   5485 ; MIPS32: sll [[T11]],[[T11]],0x1f
   5486 ; MIPS32: slt [[T11]],[[T11]],[[T10]]
   5487 ; MIPS32: andi [[T11]],[[T11]],0xff
   5488 ; MIPS32: sll [[T11]],[[T11]],0x10
   5489 ; MIPS32: lui [[T10]],0xff00
   5490 ; MIPS32: ori [[T10]],[[T10]],0xffff
   5491 ; MIPS32: and [[T4]],[[T4]],[[T10]]
   5492 ; MIPS32: or [[T11]],[[T11]],[[T4]]
   5493 ; MIPS32: srl [[T12:.*]],a2,0x18
   5494 ; MIPS32: andi [[T12]],[[T12]],0x1
   5495 ; MIPS32: srl [[T2]],[[T2]],0x18
   5496 ; MIPS32: andi [[T2]],[[T2]],0x1
   5497 ; MIPS32: sll [[T12]],[[T12]],0x1f
   5498 ; MIPS32: sll [[T2]],[[T2]],0x1f
   5499 ; MIPS32: slt [[T2]],[[T2]],[[T12]]
   5500 ; MIPS32: sll [[T2]],[[T2]],0x18
   5501 ; MIPS32: sll [[T11]],[[T11]],0x8
   5502 ; MIPS32: srl [[T11]],[[T11]],0x8
   5503 ; MIPS32: or [[T2]],[[T2]],[[T11]]
   5504 ; MIPS32: move [[T10]],a3
   5505 ; MIPS32: andi [[T10]],[[T10]],0xff
   5506 ; MIPS32: andi [[T10]],[[T10]],0x1
   5507 ; MIPS32: move [[T11]],[[T3]]
   5508 ; MIPS32: andi [[T11]],[[T11]],0xff
   5509 ; MIPS32: andi [[T11]],[[T11]],0x1
   5510 ; MIPS32: sll [[T10]],[[T10]],0x1f
   5511 ; MIPS32: sll [[T11]],[[T11]],0x1f
   5512 ; MIPS32: slt [[T11]],[[T11]],[[T10]]
   5513 ; MIPS32: andi [[T11]],[[T11]],0xff
   5514 ; MIPS32: srl [[T7]],[[T7]],0x8
   5515 ; MIPS32: sll [[T7]],[[T7]],0x8
   5516 ; MIPS32: or [[T11]],[[T11]],[[T7]]
   5517 ; MIPS32: move [[T10]],a3
   5518 ; MIPS32: srl [[T10]],[[T10]],0x8
   5519 ; MIPS32: andi [[T10]],[[T10]],0xff
   5520 ; MIPS32: andi [[T10]],[[T10]],0x1
   5521 ; MIPS32: move [[T12]],[[T3]]
   5522 ; MIPS32: srl [[T12]],[[T12]],0x8
   5523 ; MIPS32: andi [[T12]],[[T12]],0xff
   5524 ; MIPS32: andi [[T12]],[[T12]],0x1
   5525 ; MIPS32: sll [[T10]],[[T10]],0x1f
   5526 ; MIPS32: sll [[T12]],[[T12]],0x1f
   5527 ; MIPS32: slt [[T12]],[[T12]],[[T10]]
   5528 ; MIPS32: andi [[T12]],[[T12]],0xff
   5529 ; MIPS32: sll [[T12]],[[T12]],0x8
   5530 ; MIPS32: lui [[T10]],0xffff
   5531 ; MIPS32: ori [[T10]],[[T10]],0xff
   5532 ; MIPS32: and [[T11]],[[T11]],[[T10]]
   5533 ; MIPS32: or [[T12]],[[T12]],[[T11]]
   5534 ; MIPS32: move [[T10]],a3
   5535 ; MIPS32: srl [[T10]],[[T10]],0x10
   5536 ; MIPS32: andi [[T10]],[[T10]],0xff
   5537 ; MIPS32: andi [[T10]],[[T10]],0x1
   5538 ; MIPS32: move [[T11]],[[T3]]
   5539 ; MIPS32: srl [[T11]],[[T11]],0x10
   5540 ; MIPS32: andi [[T11]],[[T11]],0xff
   5541 ; MIPS32: andi [[T11]],[[T11]],0x1
   5542 ; MIPS32: sll [[T10]],[[T10]],0x1f
   5543 ; MIPS32: sll [[T11]],[[T11]],0x1f
   5544 ; MIPS32: slt [[T11]],[[T11]],[[T10]]
   5545 ; MIPS32: andi [[T11]],[[T11]],0xff
   5546 ; MIPS32: sll [[T11]],[[T11]],0x10
   5547 ; MIPS32: lui [[T10]],0xff00
   5548 ; MIPS32: ori [[T10]],[[T10]],0xffff
   5549 ; MIPS32: and [[T12]],[[T12]],[[T10]]
   5550 ; MIPS32: or [[T11]],[[T11]],[[T12]]
   5551 ; MIPS32: srl [[T13:.*]],a3,0x18
   5552 ; MIPS32: andi [[T13]],[[T13]],0x1
   5553 ; MIPS32: srl [[T3]],[[T3]],0x18
   5554 ; MIPS32: andi [[T3]],[[T3]],0x1
   5555 ; MIPS32: sll [[T13]],[[T13]],0x1f
   5556 ; MIPS32: sll [[T3]],[[T3]],0x1f
   5557 ; MIPS32: slt [[T3]],[[T3]],[[T13]]
   5558 ; MIPS32: sll [[T3]],[[T3]],0x18
   5559 ; MIPS32: sll [[T11]],[[T11]],0x8
   5560 ; MIPS32: srl [[T11]],[[T11]],0x8
   5561 ; MIPS32: or [[T3]],[[T3]],[[T11]]
   5562 ; MIPS32: move a0,[[T2]]
   5563 ; MIPS32: move a1,[[T3]]
   5564 }
   5565 
   5566 define internal <16 x i1> @test_icmp_v16i1_sle(<16 x i1> %a, <16 x i1> %b) {
   5567 entry:
   5568   %res = icmp sle <16 x i1> %a, %b
   5569   ret <16 x i1> %res
   5570 ; CHECK-LABEL: test_icmp_v16i1_sle
   5571 ; CHECK: pcmpgtb
   5572 ; CHECK: pxor
   5573 
   5574 ; MIPS32-LABEL: test_icmp_v16i1_sle
   5575 ; MIPS32: lw [[T0:.*]],
   5576 ; MIPS32: lw [[T1:.*]],
   5577 ; MIPS32: lw [[T2:.*]],
   5578 ; MIPS32: lw [[T3:.*]],
   5579 ; MIPS32: move [[T4:.*]],zero
   5580 ; MIPS32: move [[T5:.*]],zero
   5581 ; MIPS32: move [[T6:.*]],zero
   5582 ; MIPS32: move [[T7:.*]],zero
   5583 ; MIPS32: move [[T8:.*]],a0
   5584 ; MIPS32: andi [[T8]],[[T8]],0xff
   5585 ; MIPS32: andi [[T8]],[[T8]],0x1
   5586 ; MIPS32: move [[T9:.*]],[[T0]]
   5587 ; MIPS32: andi [[T9]],[[T9]],0xff
   5588 ; MIPS32: andi [[T9]],[[T9]],0x1
   5589 ; MIPS32: sll [[T8]],[[T8]],0x1f
   5590 ; MIPS32: sll [[T9]],[[T9]],0x1f
   5591 ; MIPS32: slt [[T9]],[[T9]],[[T8]]
   5592 ; MIPS32: xori [[T9]],[[T9]],0x1
   5593 ; MIPS32: andi [[T9]],[[T9]],0xff
   5594 ; MIPS32: srl [[T4]],[[T4]],0x8
   5595 ; MIPS32: sll [[T4]],[[T4]],0x8
   5596 ; MIPS32: or [[T9]],[[T9]],[[T4]]
   5597 ; MIPS32: move [[T4]],a0
   5598 ; MIPS32: srl [[T4]],[[T4]],0x8
   5599 ; MIPS32: andi [[T4]],[[T4]],0xff
   5600 ; MIPS32: andi [[T4]],[[T4]],0x1
   5601 ; MIPS32: move [[T8]],[[T0]]
   5602 ; MIPS32: srl [[T8]],[[T8]],0x8
   5603 ; MIPS32: andi [[T8]],[[T8]],0xff
   5604 ; MIPS32: andi [[T8]],[[T8]],0x1
   5605 ; MIPS32: sll [[T4]],[[T4]],0x1f
   5606 ; MIPS32: sll [[T8]],[[T8]],0x1f
   5607 ; MIPS32: slt [[T8]],[[T8]],[[T4]]
   5608 ; MIPS32: xori [[T8]],[[T8]],0x1
   5609 ; MIPS32: andi [[T8]],[[T8]],0xff
   5610 ; MIPS32: sll [[T8]],[[T8]],0x8
   5611 ; MIPS32: lui [[T4]],0xffff
   5612 ; MIPS32: ori [[T4]],[[T4]],0xff
   5613 ; MIPS32: and [[T9]],[[T9]],[[T4]]
   5614 ; MIPS32: or [[T8]],[[T8]],[[T9]]
   5615 ; MIPS32: move [[T4]],a0
   5616 ; MIPS32: srl [[T4]],[[T4]],0x10
   5617 ; MIPS32: andi [[T4]],[[T4]],0xff
   5618 ; MIPS32: andi [[T4]],[[T4]],0x1
   5619 ; MIPS32: move [[T9]],[[T0]]
   5620 ; MIPS32: srl [[T9]],[[T9]],0x10
   5621 ; MIPS32: andi [[T9]],[[T9]],0xff
   5622 ; MIPS32: andi [[T9]],[[T9]],0x1
   5623 ; MIPS32: sll [[T4]],[[T4]],0x1f
   5624 ; MIPS32: sll [[T9]],[[T9]],0x1f
   5625 ; MIPS32: slt [[T9]],[[T9]],[[T4]]
   5626 ; MIPS32: xori [[T9]],[[T9]],0x1
   5627 ; MIPS32: andi [[T9]],[[T9]],0xff
   5628 ; MIPS32: sll [[T9]],[[T9]],0x10
   5629 ; MIPS32: lui [[T4]],0xff00
   5630 ; MIPS32: ori [[T4]],[[T4]],0xffff
   5631 ; MIPS32: and [[T8]],[[T8]],[[T4]]
   5632 ; MIPS32: or [[T9]],[[T9]],[[T8]]
   5633 ; MIPS32: srl [[T10:.*]],a0,0x18
   5634 ; MIPS32: andi [[T10]],[[T10]],0x1
   5635 ; MIPS32: srl [[T0]],[[T0]],0x18
   5636 ; MIPS32: andi [[T0]],[[T0]],0x1
   5637 ; MIPS32: sll [[T10]],[[T10]],0x1f
   5638 ; MIPS32: sll [[T0]],[[T0]],0x1f
   5639 ; MIPS32: slt [[T0]],[[T0]],[[T10]]
   5640 ; MIPS32: xori [[T0]],[[T0]],0x1
   5641 ; MIPS32: sll [[T0]],[[T0]],0x18
   5642 ; MIPS32: sll [[T9]],[[T9]],0x8
   5643 ; MIPS32: srl [[T9]],[[T9]],0x8
   5644 ; MIPS32: or v0,[[T0]],[[T9]]
   5645 ; MIPS32: move [[T10]],a1
   5646 ; MIPS32: andi [[T10]],[[T10]],0xff
   5647 ; MIPS32: andi [[T10]],[[T10]],0x1
   5648 ; MIPS32: move [[T4]],[[T1]]
   5649 ; MIPS32: andi [[T4]],[[T4]],0xff
   5650 ; MIPS32: andi [[T4]],[[T4]],0x1
   5651 ; MIPS32: sll [[T10]],[[T10]],0x1f
   5652 ; MIPS32: sll [[T4]],[[T4]],0x1f
   5653 ; MIPS32: slt [[T4]],[[T4]],[[T10]]
   5654 ; MIPS32: xori [[T4]],[[T4]],0x1
   5655 ; MIPS32: andi [[T4]],[[T4]],0xff
   5656 ; MIPS32: srl [[T5]],[[T5]],0x8
   5657 ; MIPS32: sll [[T5]],[[T5]],0x8
   5658 ; MIPS32: or [[T4]],[[T4]],[[T5]]
   5659 ; MIPS32: move [[T10]],a1
   5660 ; MIPS32: srl [[T10]],[[T10]],0x8
   5661 ; MIPS32: andi [[T10]],[[T10]],0xff
   5662 ; MIPS32: andi [[T10]],[[T10]],0x1
   5663 ; MIPS32: move [[T5]],[[T1]]
   5664 ; MIPS32: srl [[T5]],[[T5]],0x8
   5665 ; MIPS32: andi [[T5]],[[T5]],0xff
   5666 ; MIPS32: andi [[T5]],[[T5]],0x1
   5667 ; MIPS32: sll [[T10]],[[T10]],0x1f
   5668 ; MIPS32: sll [[T5]],[[T5]],0x1f
   5669 ; MIPS32: slt [[T5]],[[T5]],[[T10]]
   5670 ; MIPS32: xori [[T5]],[[T5]],0x1
   5671 ; MIPS32: andi [[T5]],[[T5]],0xff
   5672 ; MIPS32: sll [[T5]],[[T5]],0x8
   5673 ; MIPS32: lui [[T10]],0xffff
   5674 ; MIPS32: ori [[T10]],[[T10]],0xff
   5675 ; MIPS32: and [[T4]],[[T4]],[[T10]]
   5676 ; MIPS32: or [[T5]],[[T5]],[[T4]]
   5677 ; MIPS32: move [[T10]],a1
   5678 ; MIPS32: srl [[T10]],[[T10]],0x10
   5679 ; MIPS32: andi [[T10]],[[T10]],0xff
   5680 ; MIPS32: andi [[T10]],[[T10]],0x1
   5681 ; MIPS32: move [[T4]],[[T1]]
   5682 ; MIPS32: srl [[T4]],[[T4]],0x10
   5683 ; MIPS32: andi [[T4]],[[T4]],0xff
   5684 ; MIPS32: andi [[T4]],[[T4]],0x1
   5685 ; MIPS32: sll [[T10]],[[T10]],0x1f
   5686 ; MIPS32: sll [[T4]],[[T4]],0x1f
   5687 ; MIPS32: slt [[T4]],[[T4]],[[T10]]
   5688 ; MIPS32: xori [[T4]],[[T4]],0x1
   5689 ; MIPS32: andi [[T4]],[[T4]],0xff
   5690 ; MIPS32: sll [[T4]],[[T4]],0x10
   5691 ; MIPS32: lui [[T10]],0xff00
   5692 ; MIPS32: ori [[T10]],[[T10]],0xffff
   5693 ; MIPS32: and [[T5]],[[T5]],[[T10]]
   5694 ; MIPS32: or [[T4]],[[T4]],[[T5]]
   5695 ; MIPS32: srl [[T11:.*]],a1,0x18
   5696 ; MIPS32: andi [[T11]],[[T11]],0x1
   5697 ; MIPS32: srl [[T1]],[[T1]],0x18
   5698 ; MIPS32: andi [[T1]],[[T1]],0x1
   5699 ; MIPS32: sll [[T11]],[[T11]],0x1f
   5700 ; MIPS32: sll [[T1]],[[T1]],0x1f
   5701 ; MIPS32: slt [[T1]],[[T1]],[[T11]]
   5702 ; MIPS32: xori [[T1]],[[T1]],0x1
   5703 ; MIPS32: sll [[T1]],[[T1]],0x18
   5704 ; MIPS32: sll [[T4]],[[T4]],0x8
   5705 ; MIPS32: srl [[T4]],[[T4]],0x8
   5706 ; MIPS32: or v1,[[T1]],[[T4]]
   5707 ; MIPS32: move [[T10]],a2
   5708 ; MIPS32: andi [[T10]],[[T10]],0xff
   5709 ; MIPS32: andi [[T10]],[[T10]],0x1
   5710 ; MIPS32: move [[T11]],[[T2]]
   5711 ; MIPS32: andi [[T11]],[[T11]],0xff
   5712 ; MIPS32: andi [[T11]],[[T11]],0x1
   5713 ; MIPS32: sll [[T10]],[[T10]],0x1f
   5714 ; MIPS32: sll [[T11]],[[T11]],0x1f
   5715 ; MIPS32: slt [[T11]],[[T11]],[[T10]]
   5716 ; MIPS32: xori [[T11]],[[T11]],0x1
   5717 ; MIPS32: andi [[T11]],[[T11]],0xff
   5718 ; MIPS32: srl [[T6]],[[T6]],0x8
   5719 ; MIPS32: sll [[T6]],[[T6]],0x8
   5720 ; MIPS32: or [[T11]],[[T11]],[[T6]]
   5721 ; MIPS32: move [[T10]],a2
   5722 ; MIPS32: srl [[T10]],[[T10]],0x8
   5723 ; MIPS32: andi [[T10]],[[T10]],0xff
   5724 ; MIPS32: andi [[T10]],[[T10]],0x1
   5725 ; MIPS32: move [[T4]],[[T2]]
   5726 ; MIPS32: srl [[T4]],[[T4]],0x8
   5727 ; MIPS32: andi [[T4]],[[T4]],0xff
   5728 ; MIPS32: andi [[T4]],[[T4]],0x1
   5729 ; MIPS32: sll [[T10]],[[T10]],0x1f
   5730 ; MIPS32: sll [[T4]],[[T4]],0x1f
   5731 ; MIPS32: slt [[T4]],[[T4]],[[T10]]
   5732 ; MIPS32: xori [[T4]],[[T4]],0x1
   5733 ; MIPS32: andi [[T4]],[[T4]],0xff
   5734 ; MIPS32: sll [[T4]],[[T4]],0x8
   5735 ; MIPS32: lui [[T10]],0xffff
   5736 ; MIPS32: ori [[T10]],[[T10]],0xff
   5737 ; MIPS32: and [[T11]],[[T11]],[[T10]]
   5738 ; MIPS32: or [[T4]],[[T4]],[[T11]]
   5739 ; MIPS32: move [[T10]],a2
   5740 ; MIPS32: srl [[T10]],[[T10]],0x10
   5741 ; MIPS32: andi [[T10]],[[T10]],0xff
   5742 ; MIPS32: andi [[T10]],[[T10]],0x1
   5743 ; MIPS32: move [[T11]],[[T2]]
   5744 ; MIPS32: srl [[T11]],[[T11]],0x10
   5745 ; MIPS32: andi [[T11]],[[T11]],0xff
   5746 ; MIPS32: andi [[T11]],[[T11]],0x1
   5747 ; MIPS32: sll [[T10]],[[T10]],0x1f
   5748 ; MIPS32: sll [[T11]],[[T11]],0x1f
   5749 ; MIPS32: slt [[T11]],[[T11]],[[T10]]
   5750 ; MIPS32: xori [[T11]],[[T11]],0x1
   5751 ; MIPS32: andi [[T11]],[[T11]],0xff
   5752 ; MIPS32: sll [[T11]],[[T11]],0x10
   5753 ; MIPS32: lui [[T10]],0xff00
   5754 ; MIPS32: ori [[T10]],[[T10]],0xffff
   5755 ; MIPS32: and [[T4]],[[T4]],[[T10]]
   5756 ; MIPS32: or [[T11]],[[T11]],[[T4]]
   5757 ; MIPS32: srl [[T12:.*]],a2,0x18
   5758 ; MIPS32: andi [[T12]],[[T12]],0x1
   5759 ; MIPS32: srl [[T2]],[[T2]],0x18
   5760 ; MIPS32: andi [[T2]],[[T2]],0x1
   5761 ; MIPS32: sll [[T12]],[[T12]],0x1f
   5762 ; MIPS32: sll [[T2]],[[T2]],0x1f
   5763 ; MIPS32: slt [[T2]],[[T2]],[[T12]]
   5764 ; MIPS32: xori [[T2]],[[T2]],0x1
   5765 ; MIPS32: sll [[T2]],[[T2]],0x18
   5766 ; MIPS32: sll [[T11]],[[T11]],0x8
   5767 ; MIPS32: srl [[T11]],[[T11]],0x8
   5768 ; MIPS32: or [[T2]],[[T2]],[[T11]]
   5769 ; MIPS32: move [[T10]],a3
   5770 ; MIPS32: andi [[T10]],[[T10]],0xff
   5771 ; MIPS32: andi [[T10]],[[T10]],0x1
   5772 ; MIPS32: move [[T11]],[[T3]]
   5773 ; MIPS32: andi [[T11]],[[T11]],0xff
   5774 ; MIPS32: andi [[T11]],[[T11]],0x1
   5775 ; MIPS32: sll [[T10]],[[T10]],0x1f
   5776 ; MIPS32: sll [[T11]],[[T11]],0x1f
   5777 ; MIPS32: slt [[T11]],[[T11]],[[T10]]
   5778 ; MIPS32: xori [[T11]],[[T11]],0x1
   5779 ; MIPS32: andi [[T11]],[[T11]],0xff
   5780 ; MIPS32: srl [[T7]],[[T7]],0x8
   5781 ; MIPS32: sll [[T7]],[[T7]],0x8
   5782 ; MIPS32: or [[T11]],[[T11]],[[T7]]
   5783 ; MIPS32: move [[T10]],a3
   5784 ; MIPS32: srl [[T10]],[[T10]],0x8
   5785 ; MIPS32: andi [[T10]],[[T10]],0xff
   5786 ; MIPS32: andi [[T10]],[[T10]],0x1
   5787 ; MIPS32: move [[T12]],[[T3]]
   5788 ; MIPS32: srl [[T12]],[[T12]],0x8
   5789 ; MIPS32: andi [[T12]],[[T12]],0xff
   5790 ; MIPS32: andi [[T12]],[[T12]],0x1
   5791 ; MIPS32: sll [[T10]],[[T10]],0x1f
   5792 ; MIPS32: sll [[T12]],[[T12]],0x1f
   5793 ; MIPS32: slt [[T12]],[[T12]],[[T10]]
   5794 ; MIPS32: xori [[T12]],[[T12]],0x1
   5795 ; MIPS32: andi [[T12]],[[T12]],0xff
   5796 ; MIPS32: sll [[T12]],[[T12]],0x8
   5797 ; MIPS32: lui [[T10]],0xffff
   5798 ; MIPS32: ori [[T10]],[[T10]],0xff
   5799 ; MIPS32: and [[T11]],[[T11]],[[T10]]
   5800 ; MIPS32: or [[T12]],[[T12]],[[T11]]
   5801 ; MIPS32: move [[T10]],a3
   5802 ; MIPS32: srl [[T10]],[[T10]],0x10
   5803 ; MIPS32: andi [[T10]],[[T10]],0xff
   5804 ; MIPS32: andi [[T10]],[[T10]],0x1
   5805 ; MIPS32: move [[T11]],[[T3]]
   5806 ; MIPS32: srl [[T11]],[[T11]],0x10
   5807 ; MIPS32: andi [[T11]],[[T11]],0xff
   5808 ; MIPS32: andi [[T11]],[[T11]],0x1
   5809 ; MIPS32: sll [[T10]],[[T10]],0x1f
   5810 ; MIPS32: sll [[T11]],[[T11]],0x1f
   5811 ; MIPS32: slt [[T11]],[[T11]],[[T10]]
   5812 ; MIPS32: xori [[T11]],[[T11]],0x1
   5813 ; MIPS32: andi [[T11]],[[T11]],0xff
   5814 ; MIPS32: sll [[T11]],[[T11]],0x10
   5815 ; MIPS32: lui [[T10]],0xff00
   5816 ; MIPS32: ori [[T10]],[[T10]],0xffff
   5817 ; MIPS32: and [[T12]],[[T12]],[[T10]]
   5818 ; MIPS32: or [[T11]],[[T11]],[[T12]]
   5819 ; MIPS32: srl [[T13:.*]],a3,0x18
   5820 ; MIPS32: andi [[T13]],[[T13]],0x1
   5821 ; MIPS32: srl [[T3]],[[T3]],0x18
   5822 ; MIPS32: andi [[T3]],[[T3]],0x1
   5823 ; MIPS32: sll [[T13]],[[T13]],0x1f
   5824 ; MIPS32: sll [[T3]],[[T3]],0x1f
   5825 ; MIPS32: slt [[T3]],[[T3]],[[T13]]
   5826 ; MIPS32: xori [[T3]],[[T3]],0x1
   5827 ; MIPS32: sll [[T3]],[[T3]],0x18
   5828 ; MIPS32: sll [[T11]],[[T11]],0x8
   5829 ; MIPS32: srl [[T11]],[[T11]],0x8
   5830 ; MIPS32: or [[T3]],[[T3]],[[T11]]
   5831 ; MIPS32: move a0,[[T2]]
   5832 ; MIPS32: move a1,[[T3]]
   5833 }
   5834 
   5835 define internal <16 x i1> @test_icmp_v16i1_slt(<16 x i1> %a, <16 x i1> %b) {
   5836 entry:
   5837   %res = icmp slt <16 x i1> %a, %b
   5838   ret <16 x i1> %res
   5839 ; CHECK-LABEL: test_icmp_v16i1_slt
   5840 ; CHECK: pcmpgtb
   5841 
   5842 ; MIPS32-LABEL: test_icmp_v16i1_slt
   5843 ; MIPS32: lw [[T0:.*]],
   5844 ; MIPS32: lw [[T1:.*]],
   5845 ; MIPS32: lw [[T2:.*]],
   5846 ; MIPS32: lw [[T3:.*]],
   5847 ; MIPS32: move [[T4:.*]],zero
   5848 ; MIPS32: move [[T5:.*]],zero
   5849 ; MIPS32: move [[T6:.*]],zero
   5850 ; MIPS32: move [[T7:.*]],zero
   5851 ; MIPS32: move [[T8:.*]],a0
   5852 ; MIPS32: andi [[T8]],[[T8]],0xff
   5853 ; MIPS32: andi [[T8]],[[T8]],0x1
   5854 ; MIPS32: move [[T9:.*]],[[T0]]
   5855 ; MIPS32: andi [[T9]],[[T9]],0xff
   5856 ; MIPS32: andi [[T9]],[[T9]],0x1
   5857 ; MIPS32: sll [[T8]],[[T8]],0x1f
   5858 ; MIPS32: sll [[T9]],[[T9]],0x1f
   5859 ; MIPS32: slt [[T8]],[[T8]],[[T9]]
   5860 ; MIPS32: andi [[T8]],[[T8]],0xff
   5861 ; MIPS32: srl [[T4]],[[T4]],0x8
   5862 ; MIPS32: sll [[T4]],[[T4]],0x8
   5863 ; MIPS32: or [[T8]],[[T8]],[[T4]]
   5864 ; MIPS32: move [[T4]],a0
   5865 ; MIPS32: srl [[T4]],[[T4]],0x8
   5866 ; MIPS32: andi [[T4]],[[T4]],0xff
   5867 ; MIPS32: andi [[T4]],[[T4]],0x1
   5868 ; MIPS32: move [[T9]],[[T0]]
   5869 ; MIPS32: srl [[T9]],[[T9]],0x8
   5870 ; MIPS32: andi [[T9]],[[T9]],0xff
   5871 ; MIPS32: andi [[T9]],[[T9]],0x1
   5872 ; MIPS32: sll [[T4]],[[T4]],0x1f
   5873 ; MIPS32: sll [[T9]],[[T9]],0x1f
   5874 ; MIPS32: slt [[T4]],[[T4]],[[T9]]
   5875 ; MIPS32: andi [[T4]],[[T4]],0xff
   5876 ; MIPS32: sll [[T4]],[[T4]],0x8
   5877 ; MIPS32: lui [[T9]],0xffff
   5878 ; MIPS32: ori [[T9]],[[T9]],0xff
   5879 ; MIPS32: and [[T8]],[[T8]],[[T9]]
   5880 ; MIPS32: or [[T4]],[[T4]],[[T8]]
   5881 ; MIPS32: move [[T8]],a0
   5882 ; MIPS32: srl [[T8]],[[T8]],0x10
   5883 ; MIPS32: andi [[T8]],[[T8]],0xff
   5884 ; MIPS32: andi [[T8]],[[T8]],0x1
   5885 ; MIPS32: move [[T9]],[[T0]]
   5886 ; MIPS32: srl [[T9]],[[T9]],0x10
   5887 ; MIPS32: andi [[T9]],[[T9]],0xff
   5888 ; MIPS32: andi [[T9]],[[T9]],0x1
   5889 ; MIPS32: sll [[T8]],[[T8]],0x1f
   5890 ; MIPS32: sll [[T9]],[[T9]],0x1f
   5891 ; MIPS32: slt [[T8]],[[T8]],[[T9]]
   5892 ; MIPS32: andi [[T8]],[[T8]],0xff
   5893 ; MIPS32: sll [[T8]],[[T8]],0x10
   5894 ; MIPS32: lui [[T9]],0xff00
   5895 ; MIPS32: ori [[T9]],[[T9]],0xffff
   5896 ; MIPS32: and [[T4]],[[T4]],[[T9]]
   5897 ; MIPS32: or [[T8]],[[T8]],[[T4]]
   5898 ; MIPS32: srl [[T10:.*]],a0,0x18
   5899 ; MIPS32: andi [[T10]],[[T10]],0x1
   5900 ; MIPS32: srl [[T0]],[[T0]],0x18
   5901 ; MIPS32: andi [[T0]],[[T0]],0x1
   5902 ; MIPS32: sll [[T10]],[[T10]],0x1f
   5903 ; MIPS32: sll [[T0]],[[T0]],0x1f
   5904 ; MIPS32: slt [[T10]],[[T10]],[[T0]]
   5905 ; MIPS32: sll [[T10]],[[T10]],0x18
   5906 ; MIPS32: sll [[T8]],[[T8]],0x8
   5907 ; MIPS32: srl [[T8]],[[T8]],0x8
   5908 ; MIPS32: or [[T10]],[[T10]],[[T8]]
   5909 ; MIPS32: move [[T0]],a1
   5910 ; MIPS32: andi [[T0]],[[T0]],0xff
   5911 ; MIPS32: andi [[T0]],[[T0]],0x1
   5912 ; MIPS32: move [[T4]],[[T1]]
   5913 ; MIPS32: andi [[T4]],[[T4]],0xff
   5914 ; MIPS32: andi [[T4]],[[T4]],0x1
   5915 ; MIPS32: sll [[T0]],[[T0]],0x1f
   5916 ; MIPS32: sll [[T4]],[[T4]],0x1f
   5917 ; MIPS32: slt [[T0]],[[T0]],[[T4]]
   5918 ; MIPS32: andi [[T0]],[[T0]],0xff
   5919 ; MIPS32: srl [[T5]],[[T5]],0x8
   5920 ; MIPS32: sll [[T5]],[[T5]],0x8
   5921 ; MIPS32: or [[T0]],[[T0]],[[T5]]
   5922 ; MIPS32: move [[T4]],a1
   5923 ; MIPS32: srl [[T4]],[[T4]],0x8
   5924 ; MIPS32: andi [[T4]],[[T4]],0xff
   5925 ; MIPS32: andi [[T4]],[[T4]],0x1
   5926 ; MIPS32: move [[T5]],[[T1]]
   5927 ; MIPS32: srl [[T5]],[[T5]],0x8
   5928 ; MIPS32: andi [[T5]],[[T5]],0xff
   5929 ; MIPS32: andi [[T5]],[[T5]],0x1
   5930 ; MIPS32: sll [[T4]],[[T4]],0x1f
   5931 ; MIPS32: sll [[T5]],[[T5]],0x1f
   5932 ; MIPS32: slt [[T4]],[[T4]],[[T5]]
   5933 ; MIPS32: andi [[T4]],[[T4]],0xff
   5934 ; MIPS32: sll [[T4]],[[T4]],0x8
   5935 ; MIPS32: lui [[T5]],0xffff
   5936 ; MIPS32: ori [[T5]],[[T5]],0xff
   5937 ; MIPS32: and [[T0]],[[T0]],[[T5]]
   5938 ; MIPS32: or [[T4]],[[T4]],[[T0]]
   5939 ; MIPS32: move [[T0]],a1
   5940 ; MIPS32: srl [[T0]],[[T0]],0x10
   5941 ; MIPS32: andi [[T0]],[[T0]],0xff
   5942 ; MIPS32: andi [[T0]],[[T0]],0x1
   5943 ; MIPS32: move [[T5]],[[T1]]
   5944 ; MIPS32: srl [[T5]],[[T5]],0x10
   5945 ; MIPS32: andi [[T5]],[[T5]],0xff
   5946 ; MIPS32: andi [[T5]],[[T5]],0x1
   5947 ; MIPS32: sll [[T0]],[[T0]],0x1f
   5948 ; MIPS32: sll [[T5]],[[T5]],0x1f
   5949 ; MIPS32: slt [[T0]],[[T0]],[[T5]]
   5950 ; MIPS32: andi [[T0]],[[T0]],0xff
   5951 ; MIPS32: sll [[T0]],[[T0]],0x10
   5952 ; MIPS32: lui [[T5]],0xff00
   5953 ; MIPS32: ori [[T5]],[[T5]],0xffff
   5954 ; MIPS32: and [[T4]],[[T4]],[[T5]]
   5955 ; MIPS32: or [[T0]],[[T0]],[[T4]]
   5956 ; MIPS32: srl [[T11:.*]],a1,0x18
   5957 ; MIPS32: andi [[T11]],[[T11]],0x1
   5958 ; MIPS32: srl [[T1]],[[T1]],0x18
   5959 ; MIPS32: andi [[T1]],[[T1]],0x1
   5960 ; MIPS32: sll [[T11]],[[T11]],0x1f
   5961 ; MIPS32: sll [[T1]],[[T1]],0x1f
   5962 ; MIPS32: slt [[T11]],[[T11]],[[T1]]
   5963 ; MIPS32: sll [[T11]],[[T11]],0x18
   5964 ; MIPS32: sll [[T0]],[[T0]],0x8
   5965 ; MIPS32: srl [[T0]],[[T0]],0x8
   5966 ; MIPS32: or [[T11]],[[T11]],[[T0]]
   5967 ; MIPS32: move [[T0]],a2
   5968 ; MIPS32: andi [[T0]],[[T0]],0xff
   5969 ; MIPS32: andi [[T0]],[[T0]],0x1
   5970 ; MIPS32: move [[T1]],[[T2]]
   5971 ; MIPS32: andi [[T1]],[[T1]],0xff
   5972 ; MIPS32: andi [[T1]],[[T1]],0x1
   5973 ; MIPS32: sll [[T0]],[[T0]],0x1f
   5974 ; MIPS32: sll [[T1]],[[T1]],0x1f
   5975 ; MIPS32: slt [[T0]],[[T0]],[[T1]]
   5976 ; MIPS32: andi [[T0]],[[T0]],0xff
   5977 ; MIPS32: srl [[T6]],[[T6]],0x8
   5978 ; MIPS32: sll [[T6]],[[T6]],0x8
   5979 ; MIPS32: or [[T0]],[[T0]],[[T6]]
   5980 ; MIPS32: move [[T1]],a2
   5981 ; MIPS32: srl [[T1]],[[T1]],0x8
   5982 ; MIPS32: andi [[T1]],[[T1]],0xff
   5983 ; MIPS32: andi [[T1]],[[T1]],0x1
   5984 ; MIPS32: move [[T4]],[[T2]]
   5985 ; MIPS32: srl [[T4]],[[T4]],0x8
   5986 ; MIPS32: andi [[T4]],[[T4]],0xff
   5987 ; MIPS32: andi [[T4]],[[T4]],0x1
   5988 ; MIPS32: sll [[T1]],[[T1]],0x1f
   5989 ; MIPS32: sll [[T4]],[[T4]],0x1f
   5990 ; MIPS32: slt [[T1]],[[T1]],[[T4]]
   5991 ; MIPS32: andi [[T1]],[[T1]],0xff
   5992 ; MIPS32: sll [[T1]],[[T1]],0x8
   5993 ; MIPS32: lui [[T4]],0xffff
   5994 ; MIPS32: ori [[T4]],[[T4]],0xff
   5995 ; MIPS32: and [[T0]],[[T0]],[[T4]]
   5996 ; MIPS32: or [[T1]],[[T1]],[[T0]]
   5997 ; MIPS32: move [[T0]],a2
   5998 ; MIPS32: srl [[T0]],[[T0]],0x10
   5999 ; MIPS32: andi [[T0]],[[T0]],0xff
   6000 ; MIPS32: andi [[T0]],[[T0]],0x1
   6001 ; MIPS32: move [[T4]],[[T2]]
   6002 ; MIPS32: srl [[T4]],[[T4]],0x10
   6003 ; MIPS32: andi [[T4]],[[T4]],0xff
   6004 ; MIPS32: andi [[T4]],[[T4]],0x1
   6005 ; MIPS32: sll [[T0]],[[T0]],0x1f
   6006 ; MIPS32: sll [[T4]],[[T4]],0x1f
   6007 ; MIPS32: slt [[T0]],[[T0]],[[T4]]
   6008 ; MIPS32: andi [[T0]],[[T0]],0xff
   6009 ; MIPS32: sll [[T0]],[[T0]],0x10
   6010 ; MIPS32: lui [[T4]],0xff00
   6011 ; MIPS32: ori [[T4]],[[T4]],0xffff
   6012 ; MIPS32: and [[T1]],[[T1]],[[T4]]
   6013 ; MIPS32: or [[T0]],[[T0]],[[T1]]
   6014 ; MIPS32: srl [[T12:.*]],a2,0x18
   6015 ; MIPS32: andi [[T12]],[[T12]],0x1
   6016 ; MIPS32: srl [[T2]],[[T2]],0x18
   6017 ; MIPS32: andi [[T2]],[[T2]],0x1
   6018 ; MIPS32: sll [[T12]],[[T12]],0x1f
   6019 ; MIPS32: sll [[T2]],[[T2]],0x1f
   6020 ; MIPS32: slt [[T12]],[[T12]],[[T2]]
   6021 ; MIPS32: sll [[T12]],[[T12]],0x18
   6022 ; MIPS32: sll [[T0]],[[T0]],0x8
   6023 ; MIPS32: srl [[T0]],[[T0]],0x8
   6024 ; MIPS32: or [[T12]],[[T12]],[[T0]]
   6025 ; MIPS32: move [[T0]],a3
   6026 ; MIPS32: andi [[T0]],[[T0]],0xff
   6027 ; MIPS32: andi [[T0]],[[T0]],0x1
   6028 ; MIPS32: move [[T1]],[[T3]]
   6029 ; MIPS32: andi [[T1]],[[T1]],0xff
   6030 ; MIPS32: andi [[T1]],[[T1]],0x1
   6031 ; MIPS32: sll [[T0]],[[T0]],0x1f
   6032 ; MIPS32: sll [[T1]],[[T1]],0x1f
   6033 ; MIPS32: slt [[T0]],[[T0]],[[T1]]
   6034 ; MIPS32: andi [[T0]],[[T0]],0xff
   6035 ; MIPS32: srl [[T7]],[[T7]],0x8
   6036 ; MIPS32: sll [[T7]],[[T7]],0x8
   6037 ; MIPS32: or [[T0]],[[T0]],[[T7]]
   6038 ; MIPS32: move [[T1]],a3
   6039 ; MIPS32: srl [[T1]],[[T1]],0x8
   6040 ; MIPS32: andi [[T1]],[[T1]],0xff
   6041 ; MIPS32: andi [[T1]],[[T1]],0x1
   6042 ; MIPS32: move [[T2]],[[T3]]
   6043 ; MIPS32: srl [[T2]],[[T2]],0x8
   6044 ; MIPS32: andi [[T2]],[[T2]],0xff
   6045 ; MIPS32: andi [[T2]],[[T2]],0x1
   6046 ; MIPS32: sll [[T1]],[[T1]],0x1f
   6047 ; MIPS32: sll [[T2]],[[T2]],0x1f
   6048 ; MIPS32: slt [[T1]],[[T1]],[[T2]]
   6049 ; MIPS32: andi [[T1]],[[T1]],0xff
   6050 ; MIPS32: sll [[T1]],[[T1]],0x8
   6051 ; MIPS32: lui [[T2]],0xffff
   6052 ; MIPS32: ori [[T2]],[[T2]],0xff
   6053 ; MIPS32: and [[T0]],[[T0]],[[T2]]
   6054 ; MIPS32: or [[T1]],[[T1]],[[T0]]
   6055 ; MIPS32: move [[T0]],a3
   6056 ; MIPS32: srl [[T0]],[[T0]],0x10
   6057 ; MIPS32: andi [[T0]],[[T0]],0xff
   6058 ; MIPS32: andi [[T0]],[[T0]],0x1
   6059 ; MIPS32: move [[T2]],[[T3]]
   6060 ; MIPS32: srl [[T2]],[[T2]],0x10
   6061 ; MIPS32: andi [[T2]],[[T2]],0xff
   6062 ; MIPS32: andi [[T2]],[[T2]],0x1
   6063 ; MIPS32: sll [[T0]],[[T0]],0x1f
   6064 ; MIPS32: sll [[T2]],[[T2]],0x1f
   6065 ; MIPS32: slt [[T0]],[[T0]],[[T2]]
   6066 ; MIPS32: andi [[T0]],[[T0]],0xff
   6067 ; MIPS32: sll [[T0]],[[T0]],0x10
   6068 ; MIPS32: lui [[T2]],0xff00
   6069 ; MIPS32: ori [[T2]],[[T2]],0xffff
   6070 ; MIPS32: and [[T1]],[[T1]],[[T2]]
   6071 ; MIPS32: or [[T0]],[[T0]],[[T1]]
   6072 ; MIPS32: srl [[T13:.*]],a3,0x18
   6073 ; MIPS32: andi [[T13]],[[T13]],0x1
   6074 ; MIPS32: srl [[T3]],[[T3]],0x18
   6075 ; MIPS32: andi [[T3]],[[T3]],0x1
   6076 ; MIPS32: sll [[T13]],[[T13]],0x1f
   6077 ; MIPS32: sll [[T3]],[[T3]],0x1f
   6078 ; MIPS32: slt [[T13]],[[T13]],[[T3]]
   6079 ; MIPS32: sll [[T13]],[[T13]],0x18
   6080 ; MIPS32: sll [[T0]],[[T0]],0x8
   6081 ; MIPS32: srl [[T0]],[[T0]],0x8
   6082 ; MIPS32: or [[T13]],[[T13]],[[T0]]
   6083 ; MIPS32: move v0,[[T10]]
   6084 ; MIPS32: move v1,[[T11]]
   6085 ; MIPS32: move a0,[[T12]]
   6086 ; MIPS32: move a1,[[T13]]
   6087 }
   6088 
   6089 define internal <16 x i1> @test_icmp_v16i1_uge(<16 x i1> %a, <16 x i1> %b) {
   6090 entry:
   6091   %res = icmp uge <16 x i1> %a, %b
   6092   ret <16 x i1> %res
   6093 ; CHECK-LABEL: test_icmp_v16i1_uge
   6094 ; CHECK: pxor
   6095 ; CHECK: pcmpgtb
   6096 ; CHECK: pxor
   6097 
   6098 ; MIPS32-LABEL: test_icmp_v16i1_uge
   6099 ; MIPS32: lw [[T0:.*]],
   6100 ; MIPS32: lw [[T1:.*]],
   6101 ; MIPS32: lw [[T2:.*]],
   6102 ; MIPS32: lw [[T3:.*]],
   6103 ; MIPS32: move [[T4:.*]],zero
   6104 ; MIPS32: move [[T5:.*]],zero
   6105 ; MIPS32: move [[T6:.*]],zero
   6106 ; MIPS32: move [[T7:.*]],zero
   6107 ; MIPS32: move [[T8:.*]],a0
   6108 ; MIPS32: andi [[T8]],[[T8]],0xff
   6109 ; MIPS32: andi [[T8]],[[T8]],0x1
   6110 ; MIPS32: move [[T9:.*]],[[T0]]
   6111 ; MIPS32: andi [[T9]],[[T9]],0xff
   6112 ; MIPS32: andi [[T9]],[[T9]],0x1
   6113 ; MIPS32: sll [[T8]],[[T8]],0x1f
   6114 ; MIPS32: sll [[T9]],[[T9]],0x1f
   6115 ; MIPS32: sltu [[T8]],[[T8]],[[T9]]
   6116 ; MIPS32: xori [[T8]],[[T8]],0x1
   6117 ; MIPS32: andi [[T8]],[[T8]],0xff
   6118 ; MIPS32: srl [[T4]],[[T4]],0x8
   6119 ; MIPS32: sll [[T4]],[[T4]],0x8
   6120 ; MIPS32: or [[T8]],[[T8]],[[T4]]
   6121 ; MIPS32: move [[T4]],a0
   6122 ; MIPS32: srl [[T4]],[[T4]],0x8
   6123 ; MIPS32: andi [[T4]],[[T4]],0xff
   6124 ; MIPS32: andi [[T4]],[[T4]],0x1
   6125 ; MIPS32: move [[T9]],[[T0]]
   6126 ; MIPS32: srl [[T9]],[[T9]],0x8
   6127 ; MIPS32: andi [[T9]],[[T9]],0xff
   6128 ; MIPS32: andi [[T9]],[[T9]],0x1
   6129 ; MIPS32: sll [[T4]],[[T4]],0x1f
   6130 ; MIPS32: sll [[T9]],[[T9]],0x1f
   6131 ; MIPS32: sltu [[T4]],[[T4]],[[T9]]
   6132 ; MIPS32: xori [[T4]],[[T4]],0x1
   6133 ; MIPS32: andi [[T4]],[[T4]],0xff
   6134 ; MIPS32: sll [[T4]],[[T4]],0x8
   6135 ; MIPS32: lui [[T9]],0xffff
   6136 ; MIPS32: ori [[T9]],[[T9]],0xff
   6137 ; MIPS32: and [[T8]],[[T8]],[[T9]]
   6138 ; MIPS32: or [[T4]],[[T4]],[[T8]]
   6139 ; MIPS32: move [[T8]],a0
   6140 ; MIPS32: srl [[T8]],[[T8]],0x10
   6141 ; MIPS32: andi [[T8]],[[T8]],0xff
   6142 ; MIPS32: andi [[T8]],[[T8]],0x1
   6143 ; MIPS32: move [[T9]],[[T0]]
   6144 ; MIPS32: srl [[T9]],[[T9]],0x10
   6145 ; MIPS32: andi [[T9]],[[T9]],0xff
   6146 ; MIPS32: andi [[T9]],[[T9]],0x1
   6147 ; MIPS32: sll [[T8]],[[T8]],0x1f
   6148 ; MIPS32: sll [[T9]],[[T9]],0x1f
   6149 ; MIPS32: sltu [[T8]],[[T8]],[[T9]]
   6150 ; MIPS32: xori [[T8]],[[T8]],0x1
   6151 ; MIPS32: andi [[T8]],[[T8]],0xff
   6152 ; MIPS32: sll [[T8]],[[T8]],0x10
   6153 ; MIPS32: lui [[T9]],0xff00
   6154 ; MIPS32: ori [[T9]],[[T9]],0xffff
   6155 ; MIPS32: and [[T4]],[[T4]],[[T9]]
   6156 ; MIPS32: or [[T8]],[[T8]],[[T4]]
   6157 ; MIPS32: srl [[T10:.*]],a0,0x18
   6158 ; MIPS32: andi [[T10]],[[T10]],0x1
   6159 ; MIPS32: srl [[T0]],[[T0]],0x18
   6160 ; MIPS32: andi [[T0]],[[T0]],0x1
   6161 ; MIPS32: sll [[T10]],[[T10]],0x1f
   6162 ; MIPS32: sll [[T0]],[[T0]],0x1f
   6163 ; MIPS32: sltu [[T10]],[[T10]],[[T0]]
   6164 ; MIPS32: xori [[T10]],[[T10]],0x1
   6165 ; MIPS32: sll [[T10]],[[T10]],0x18
   6166 ; MIPS32: sll [[T8]],[[T8]],0x8
   6167 ; MIPS32: srl [[T8]],[[T8]],0x8
   6168 ; MIPS32: or [[T10]],[[T10]],[[T8]]
   6169 ; MIPS32: move [[T0]],a1
   6170 ; MIPS32: andi [[T0]],[[T0]],0xff
   6171 ; MIPS32: andi [[T0]],[[T0]],0x1
   6172 ; MIPS32: move [[T4]],[[T1]]
   6173 ; MIPS32: andi [[T4]],[[T4]],0xff
   6174 ; MIPS32: andi [[T4]],[[T4]],0x1
   6175 ; MIPS32: sll [[T0]],[[T0]],0x1f
   6176 ; MIPS32: sll [[T4]],[[T4]],0x1f
   6177 ; MIPS32: sltu [[T0]],[[T0]],[[T4]]
   6178 ; MIPS32: xori [[T0]],[[T0]],0x1
   6179 ; MIPS32: andi [[T0]],[[T0]],0xff
   6180 ; MIPS32: srl [[T5]],[[T5]],0x8
   6181 ; MIPS32: sll [[T5]],[[T5]],0x8
   6182 ; MIPS32: or [[T0]],[[T0]],[[T5]]
   6183 ; MIPS32: move [[T4]],a1
   6184 ; MIPS32: srl [[T4]],[[T4]],0x8
   6185 ; MIPS32: andi [[T4]],[[T4]],0xff
   6186 ; MIPS32: andi [[T4]],[[T4]],0x1
   6187 ; MIPS32: move [[T5]],[[T1]]
   6188 ; MIPS32: srl [[T5]],[[T5]],0x8
   6189 ; MIPS32: andi [[T5]],[[T5]],0xff
   6190 ; MIPS32: andi [[T5]],[[T5]],0x1
   6191 ; MIPS32: sll [[T4]],[[T4]],0x1f
   6192 ; MIPS32: sll [[T5]],[[T5]],0x1f
   6193 ; MIPS32: sltu [[T4]],[[T4]],[[T5]]
   6194 ; MIPS32: xori [[T4]],[[T4]],0x1
   6195 ; MIPS32: andi [[T4]],[[T4]],0xff
   6196 ; MIPS32: sll [[T4]],[[T4]],0x8
   6197 ; MIPS32: lui [[T5]],0xffff
   6198 ; MIPS32: ori [[T5]],[[T5]],0xff
   6199 ; MIPS32: and [[T0]],[[T0]],[[T5]]
   6200 ; MIPS32: or [[T4]],[[T4]],[[T0]]
   6201 ; MIPS32: move [[T0]],a1
   6202 ; MIPS32: srl [[T0]],[[T0]],0x10
   6203 ; MIPS32: andi [[T0]],[[T0]],0xff
   6204 ; MIPS32: andi [[T0]],[[T0]],0x1
   6205 ; MIPS32: move [[T5]],[[T1]]
   6206 ; MIPS32: srl [[T5]],[[T5]],0x10
   6207 ; MIPS32: andi [[T5]],[[T5]],0xff
   6208 ; MIPS32: andi [[T5]],[[T5]],0x1
   6209 ; MIPS32: sll [[T0]],[[T0]],0x1f
   6210 ; MIPS32: sll [[T5]],[[T5]],0x1f
   6211 ; MIPS32: sltu [[T0]],[[T0]],[[T5]]
   6212 ; MIPS32: xori [[T0]],[[T0]],0x1
   6213 ; MIPS32: andi [[T0]],[[T0]],0xff
   6214 ; MIPS32: sll [[T0]],[[T0]],0x10
   6215 ; MIPS32: lui [[T5]],0xff00
   6216 ; MIPS32: ori [[T5]],[[T5]],0xffff
   6217 ; MIPS32: and [[T4]],[[T4]],[[T5]]
   6218 ; MIPS32: or [[T0]],[[T0]],[[T4]]
   6219 ; MIPS32: srl [[T11:.*]],a1,0x18
   6220 ; MIPS32: andi [[T11]],[[T11]],0x1
   6221 ; MIPS32: srl [[T1]],[[T1]],0x18
   6222 ; MIPS32: andi [[T1]],[[T1]],0x1
   6223 ; MIPS32: sll [[T11]],[[T11]],0x1f
   6224 ; MIPS32: sll [[T1]],[[T1]],0x1f
   6225 ; MIPS32: sltu [[T11]],[[T11]],[[T1]]
   6226 ; MIPS32: xori [[T11]],[[T11]],0x1
   6227 ; MIPS32: sll [[T11]],[[T11]],0x18
   6228 ; MIPS32: sll [[T0]],[[T0]],0x8
   6229 ; MIPS32: srl [[T0]],[[T0]],0x8
   6230 ; MIPS32: or [[T11]],[[T11]],[[T0]]
   6231 ; MIPS32: move [[T0]],a2
   6232 ; MIPS32: andi [[T0]],[[T0]],0xff
   6233 ; MIPS32: andi [[T0]],[[T0]],0x1
   6234 ; MIPS32: move [[T1]],[[T2]]
   6235 ; MIPS32: andi [[T1]],[[T1]],0xff
   6236 ; MIPS32: andi [[T1]],[[T1]],0x1
   6237 ; MIPS32: sll [[T0]],[[T0]],0x1f
   6238 ; MIPS32: sll [[T1]],[[T1]],0x1f
   6239 ; MIPS32: sltu [[T0]],[[T0]],[[T1]]
   6240 ; MIPS32: xori [[T0]],[[T0]],0x1
   6241 ; MIPS32: andi [[T0]],[[T0]],0xff
   6242 ; MIPS32: srl [[T6]],[[T6]],0x8
   6243 ; MIPS32: sll [[T6]],[[T6]],0x8
   6244 ; MIPS32: or [[T0]],[[T0]],[[T6]]
   6245 ; MIPS32: move [[T1]],a2
   6246 ; MIPS32: srl [[T1]],[[T1]],0x8
   6247 ; MIPS32: andi [[T1]],[[T1]],0xff
   6248 ; MIPS32: andi [[T1]],[[T1]],0x1
   6249 ; MIPS32: move [[T4]],[[T2]]
   6250 ; MIPS32: srl [[T4]],[[T4]],0x8
   6251 ; MIPS32: andi [[T4]],[[T4]],0xff
   6252 ; MIPS32: andi [[T4]],[[T4]],0x1
   6253 ; MIPS32: sll [[T1]],[[T1]],0x1f
   6254 ; MIPS32: sll [[T4]],[[T4]],0x1f
   6255 ; MIPS32: sltu [[T1]],[[T1]],[[T4]]
   6256 ; MIPS32: xori [[T1]],[[T1]],0x1
   6257 ; MIPS32: andi [[T1]],[[T1]],0xff
   6258 ; MIPS32: sll [[T1]],[[T1]],0x8
   6259 ; MIPS32: lui [[T4]],0xffff
   6260 ; MIPS32: ori [[T4]],[[T4]],0xff
   6261 ; MIPS32: and [[T0]],[[T0]],[[T4]]
   6262 ; MIPS32: or [[T1]],[[T1]],[[T0]]
   6263 ; MIPS32: move [[T0]],a2
   6264 ; MIPS32: srl [[T0]],[[T0]],0x10
   6265 ; MIPS32: andi [[T0]],[[T0]],0xff
   6266 ; MIPS32: andi [[T0]],[[T0]],0x1
   6267 ; MIPS32: move [[T4]],[[T2]]
   6268 ; MIPS32: srl [[T4]],[[T4]],0x10
   6269 ; MIPS32: andi [[T4]],[[T4]],0xff
   6270 ; MIPS32: andi [[T4]],[[T4]],0x1
   6271 ; MIPS32: sll [[T0]],[[T0]],0x1f
   6272 ; MIPS32: sll [[T4]],[[T4]],0x1f
   6273 ; MIPS32: sltu [[T0]],[[T0]],[[T4]]
   6274 ; MIPS32: xori [[T0]],[[T0]],0x1
   6275 ; MIPS32: andi [[T0]],[[T0]],0xff
   6276 ; MIPS32: sll [[T0]],[[T0]],0x10
   6277 ; MIPS32: lui [[T4]],0xff00
   6278 ; MIPS32: ori [[T4]],[[T4]],0xffff
   6279 ; MIPS32: and [[T1]],[[T1]],[[T4]]
   6280 ; MIPS32: or [[T0]],[[T0]],[[T1]]
   6281 ; MIPS32: srl [[T12:.*]],a2,0x18
   6282 ; MIPS32: andi [[T12]],[[T12]],0x1
   6283 ; MIPS32: srl [[T2]],[[T2]],0x18
   6284 ; MIPS32: andi [[T2]],[[T2]],0x1
   6285 ; MIPS32: sll [[T12]],[[T12]],0x1f
   6286 ; MIPS32: sll [[T2]],[[T2]],0x1f
   6287 ; MIPS32: sltu [[T12]],[[T12]],[[T2]]
   6288 ; MIPS32: xori [[T12]],[[T12]],0x1
   6289 ; MIPS32: sll [[T12]],[[T12]],0x18
   6290 ; MIPS32: sll [[T0]],[[T0]],0x8
   6291 ; MIPS32: srl [[T0]],[[T0]],0x8
   6292 ; MIPS32: or [[T12]],[[T12]],[[T0]]
   6293 ; MIPS32: move [[T0]],a3
   6294 ; MIPS32: andi [[T0]],[[T0]],0xff
   6295 ; MIPS32: andi [[T0]],[[T0]],0x1
   6296 ; MIPS32: move [[T1]],[[T3]]
   6297 ; MIPS32: andi [[T1]],[[T1]],0xff
   6298 ; MIPS32: andi [[T1]],[[T1]],0x1
   6299 ; MIPS32: sll [[T0]],[[T0]],0x1f
   6300 ; MIPS32: sll [[T1]],[[T1]],0x1f
   6301 ; MIPS32: sltu [[T0]],[[T0]],[[T1]]
   6302 ; MIPS32: xori [[T0]],[[T0]],0x1
   6303 ; MIPS32: andi [[T0]],[[T0]],0xff
   6304 ; MIPS32: srl [[T7]],[[T7]],0x8
   6305 ; MIPS32: sll [[T7]],[[T7]],0x8
   6306 ; MIPS32: or [[T0]],[[T0]],[[T7]]
   6307 ; MIPS32: move [[T1]],a3
   6308 ; MIPS32: srl [[T1]],[[T1]],0x8
   6309 ; MIPS32: andi [[T1]],[[T1]],0xff
   6310 ; MIPS32: andi [[T1]],[[T1]],0x1
   6311 ; MIPS32: move [[T2]],[[T3]]
   6312 ; MIPS32: srl [[T2]],[[T2]],0x8
   6313 ; MIPS32: andi [[T2]],[[T2]],0xff
   6314 ; MIPS32: andi [[T2]],[[T2]],0x1
   6315 ; MIPS32: sll [[T1]],[[T1]],0x1f
   6316 ; MIPS32: sll [[T2]],[[T2]],0x1f
   6317 ; MIPS32: sltu [[T1]],[[T1]],[[T2]]
   6318 ; MIPS32: xori [[T1]],[[T1]],0x1
   6319 ; MIPS32: andi [[T1]],[[T1]],0xff
   6320 ; MIPS32: sll [[T1]],[[T1]],0x8
   6321 ; MIPS32: lui [[T2]],0xffff
   6322 ; MIPS32: ori [[T2]],[[T2]],0xff
   6323 ; MIPS32: and [[T0]],[[T0]],[[T2]]
   6324 ; MIPS32: or [[T1]],[[T1]],[[T0]]
   6325 ; MIPS32: move [[T0]],a3
   6326 ; MIPS32: srl [[T0]],[[T0]],0x10
   6327 ; MIPS32: andi [[T0]],[[T0]],0xff
   6328 ; MIPS32: andi [[T0]],[[T0]],0x1
   6329 ; MIPS32: move [[T2]],[[T3]]
   6330 ; MIPS32: srl [[T2]],[[T2]],0x10
   6331 ; MIPS32: andi [[T2]],[[T2]],0xff
   6332 ; MIPS32: andi [[T2]],[[T2]],0x1
   6333 ; MIPS32: sll [[T0]],[[T0]],0x1f
   6334 ; MIPS32: sll [[T2]],[[T2]],0x1f
   6335 ; MIPS32: sltu [[T0]],[[T0]],[[T2]]
   6336 ; MIPS32: xori [[T0]],[[T0]],0x1
   6337 ; MIPS32: andi [[T0]],[[T0]],0xff
   6338 ; MIPS32: sll [[T0]],[[T0]],0x10
   6339 ; MIPS32: lui [[T2]],0xff00
   6340 ; MIPS32: ori [[T2]],[[T2]],0xffff
   6341 ; MIPS32: and [[T1]],[[T1]],[[T2]]
   6342 ; MIPS32: or [[T0]],[[T0]],[[T1]]
   6343 ; MIPS32: srl [[T13:.*]],a3,0x18
   6344 ; MIPS32: andi [[T13]],[[T13]],0x1
   6345 ; MIPS32: srl [[T3]],[[T3]],0x18
   6346 ; MIPS32: andi [[T3]],[[T3]],0x1
   6347 ; MIPS32: sll [[T13]],[[T13]],0x1f
   6348 ; MIPS32: sll [[T3]],[[T3]],0x1f
   6349 ; MIPS32: sltu [[T13]],[[T13]],[[T3]]
   6350 ; MIPS32: xori [[T13]],[[T13]],0x1
   6351 ; MIPS32: sll [[T13]],[[T13]],0x18
   6352 ; MIPS32: sll [[T0]],[[T0]],0x8
   6353 ; MIPS32: srl [[T0]],[[T0]],0x8
   6354 ; MIPS32: or [[T13]],[[T13]],[[T0]]
   6355 ; MIPS32: move v0,[[T10]]
   6356 ; MIPS32: move v1,[[T11]]
   6357 ; MIPS32: move a0,[[T12]]
   6358 ; MIPS32: move a1,[[T13]]
   6359 }
   6360 
   6361 define internal <16 x i1> @test_icmp_v16i1_ugt(<16 x i1> %a, <16 x i1> %b) {
   6362 entry:
   6363   %res = icmp ugt <16 x i1> %a, %b
   6364   ret <16 x i1> %res
   6365 ; CHECK-LABEL: test_icmp_v16i1_ugt
   6366 ; CHECK: pxor
   6367 ; CHECK: pcmpgtb
   6368 
   6369 ; MIPS32-LABEL: test_icmp_v16i1_ugt
   6370 ; MIPS32: lw [[T0:.*]],
   6371 ; MIPS32: lw [[T1:.*]],
   6372 ; MIPS32: lw [[T2:.*]],
   6373 ; MIPS32: lw [[T3:.*]],
   6374 ; MIPS32: move [[T4:.*]],zero
   6375 ; MIPS32: move [[T5:.*]],zero
   6376 ; MIPS32: move [[T6:.*]],zero
   6377 ; MIPS32: move [[T7:.*]],zero
   6378 ; MIPS32: move [[T8:.*]],a0
   6379 ; MIPS32: andi [[T8]],[[T8]],0xff
   6380 ; MIPS32: andi [[T8]],[[T8]],0x1
   6381 ; MIPS32: move [[T9:.*]],[[T0]]
   6382 ; MIPS32: andi [[T9]],[[T9]],0xff
   6383 ; MIPS32: andi [[T9]],[[T9]],0x1
   6384 ; MIPS32: sll [[T8]],[[T8]],0x1f
   6385 ; MIPS32: sll [[T9]],[[T9]],0x1f
   6386 ; MIPS32: sltu [[T9]],[[T9]],[[T8]]
   6387 ; MIPS32: andi [[T9]],[[T9]],0xff
   6388 ; MIPS32: srl [[T4]],[[T4]],0x8
   6389 ; MIPS32: sll [[T4]],[[T4]],0x8
   6390 ; MIPS32: or [[T9]],[[T9]],[[T4]]
   6391 ; MIPS32: move [[T4]],a0
   6392 ; MIPS32: srl [[T4]],[[T4]],0x8
   6393 ; MIPS32: andi [[T4]],[[T4]],0xff
   6394 ; MIPS32: andi [[T4]],[[T4]],0x1
   6395 ; MIPS32: move [[T8]],[[T0]]
   6396 ; MIPS32: srl [[T8]],[[T8]],0x8
   6397 ; MIPS32: andi [[T8]],[[T8]],0xff
   6398 ; MIPS32: andi [[T8]],[[T8]],0x1
   6399 ; MIPS32: sll [[T4]],[[T4]],0x1f
   6400 ; MIPS32: sll [[T8]],[[T8]],0x1f
   6401 ; MIPS32: sltu [[T8]],[[T8]],[[T4]]
   6402 ; MIPS32: andi [[T8]],[[T8]],0xff
   6403 ; MIPS32: sll [[T8]],[[T8]],0x8
   6404 ; MIPS32: lui [[T4]],0xffff
   6405 ; MIPS32: ori [[T4]],[[T4]],0xff
   6406 ; MIPS32: and [[T9]],[[T9]],[[T4]]
   6407 ; MIPS32: or [[T8]],[[T8]],[[T9]]
   6408 ; MIPS32: move [[T4]],a0
   6409 ; MIPS32: srl [[T4]],[[T4]],0x10
   6410 ; MIPS32: andi [[T4]],[[T4]],0xff
   6411 ; MIPS32: andi [[T4]],[[T4]],0x1
   6412 ; MIPS32: move [[T9]],[[T0]]
   6413 ; MIPS32: srl [[T9]],[[T9]],0x10
   6414 ; MIPS32: andi [[T9]],[[T9]],0xff
   6415 ; MIPS32: andi [[T9]],[[T9]],0x1
   6416 ; MIPS32: sll [[T4]],[[T4]],0x1f
   6417 ; MIPS32: sll [[T9]],[[T9]],0x1f
   6418 ; MIPS32: sltu [[T9]],[[T9]],[[T4]]
   6419 ; MIPS32: andi [[T9]],[[T9]],0xff
   6420 ; MIPS32: sll [[T9]],[[T9]],0x10
   6421 ; MIPS32: lui [[T4]],0xff00
   6422 ; MIPS32: ori [[T4]],[[T4]],0xffff
   6423 ; MIPS32: and [[T8]],[[T8]],[[T4]]
   6424 ; MIPS32: or [[T9]],[[T9]],[[T8]]
   6425 ; MIPS32: srl [[T10:.*]],a0,0x18
   6426 ; MIPS32: andi [[T10]],[[T10]],0x1
   6427 ; MIPS32: srl [[T0]],[[T0]],0x18
   6428 ; MIPS32: andi [[T0]],[[T0]],0x1
   6429 ; MIPS32: sll [[T10]],[[T10]],0x1f
   6430 ; MIPS32: sll [[T0]],[[T0]],0x1f
   6431 ; MIPS32: sltu [[T0]],[[T0]],[[T10]]
   6432 ; MIPS32: sll [[T0]],[[T0]],0x18
   6433 ; MIPS32: sll [[T9]],[[T9]],0x8
   6434 ; MIPS32: srl [[T9]],[[T9]],0x8
   6435 ; MIPS32: or v0,[[T0]],[[T9]]
   6436 ; MIPS32: move [[T10]],a1
   6437 ; MIPS32: andi [[T10]],[[T10]],0xff
   6438 ; MIPS32: andi [[T10]],[[T10]],0x1
   6439 ; MIPS32: move [[T4]],[[T1]]
   6440 ; MIPS32: andi [[T4]],[[T4]],0xff
   6441 ; MIPS32: andi [[T4]],[[T4]],0x1
   6442 ; MIPS32: sll [[T10]],[[T10]],0x1f
   6443 ; MIPS32: sll [[T4]],[[T4]],0x1f
   6444 ; MIPS32: sltu [[T4]],[[T4]],[[T10]]
   6445 ; MIPS32: andi [[T4]],[[T4]],0xff
   6446 ; MIPS32: srl [[T5]],[[T5]],0x8
   6447 ; MIPS32: sll [[T5]],[[T5]],0x8
   6448 ; MIPS32: or [[T4]],[[T4]],[[T5]]
   6449 ; MIPS32: move [[T10]],a1
   6450 ; MIPS32: srl [[T10]],[[T10]],0x8
   6451 ; MIPS32: andi [[T10]],[[T10]],0xff
   6452 ; MIPS32: andi [[T10]],[[T10]],0x1
   6453 ; MIPS32: move [[T5]],[[T1]]
   6454 ; MIPS32: srl [[T5]],[[T5]],0x8
   6455 ; MIPS32: andi [[T5]],[[T5]],0xff
   6456 ; MIPS32: andi [[T5]],[[T5]],0x1
   6457 ; MIPS32: sll [[T10]],[[T10]],0x1f
   6458 ; MIPS32: sll [[T5]],[[T5]],0x1f
   6459 ; MIPS32: sltu [[T5]],[[T5]],[[T10]]
   6460 ; MIPS32: andi [[T5]],[[T5]],0xff
   6461 ; MIPS32: sll [[T5]],[[T5]],0x8
   6462 ; MIPS32: lui [[T10]],0xffff
   6463 ; MIPS32: ori [[T10]],[[T10]],0xff
   6464 ; MIPS32: and [[T4]],[[T4]],[[T10]]
   6465 ; MIPS32: or [[T5]],[[T5]],[[T4]]
   6466 ; MIPS32: move [[T10]],a1
   6467 ; MIPS32: srl [[T10]],[[T10]],0x10
   6468 ; MIPS32: andi [[T10]],[[T10]],0xff
   6469 ; MIPS32: andi [[T10]],[[T10]],0x1
   6470 ; MIPS32: move [[T4]],[[T1]]
   6471 ; MIPS32: srl [[T4]],[[T4]],0x10
   6472 ; MIPS32: andi [[T4]],[[T4]],0xff
   6473 ; MIPS32: andi [[T4]],[[T4]],0x1
   6474 ; MIPS32: sll [[T10]],[[T10]],0x1f
   6475 ; MIPS32: sll [[T4]],[[T4]],0x1f
   6476 ; MIPS32: sltu [[T4]],[[T4]],[[T10]]
   6477 ; MIPS32: andi [[T4]],[[T4]],0xff
   6478 ; MIPS32: sll [[T4]],[[T4]],0x10
   6479 ; MIPS32: lui [[T10]],0xff00
   6480 ; MIPS32: ori [[T10]],[[T10]],0xffff
   6481 ; MIPS32: and [[T5]],[[T5]],[[T10]]
   6482 ; MIPS32: or [[T4]],[[T4]],[[T5]]
   6483 ; MIPS32: srl [[T11:.*]],a1,0x18
   6484 ; MIPS32: andi [[T11]],[[T11]],0x1
   6485 ; MIPS32: srl [[T1]],[[T1]],0x18
   6486 ; MIPS32: andi [[T1]],[[T1]],0x1
   6487 ; MIPS32: sll [[T11]],[[T11]],0x1f
   6488 ; MIPS32: sll [[T1]],[[T1]],0x1f
   6489 ; MIPS32: sltu [[T1]],[[T1]],[[T11]]
   6490 ; MIPS32: sll [[T1]],[[T1]],0x18
   6491 ; MIPS32: sll [[T4]],[[T4]],0x8
   6492 ; MIPS32: srl [[T4]],[[T4]],0x8
   6493 ; MIPS32: or v1,[[T1]],[[T4]]
   6494 ; MIPS32: move [[T10]],a2
   6495 ; MIPS32: andi [[T10]],[[T10]],0xff
   6496 ; MIPS32: andi [[T10]],[[T10]],0x1
   6497 ; MIPS32: move [[T11]],[[T2]]
   6498 ; MIPS32: andi [[T11]],[[T11]],0xff
   6499 ; MIPS32: andi [[T11]],[[T11]],0x1
   6500 ; MIPS32: sll [[T10]],[[T10]],0x1f
   6501 ; MIPS32: sll [[T11]],[[T11]],0x1f
   6502 ; MIPS32: sltu [[T11]],[[T11]],[[T10]]
   6503 ; MIPS32: andi [[T11]],[[T11]],0xff
   6504 ; MIPS32: srl [[T6]],[[T6]],0x8
   6505 ; MIPS32: sll [[T6]],[[T6]],0x8
   6506 ; MIPS32: or [[T11]],[[T11]],[[T6]]
   6507 ; MIPS32: move [[T10]],a2
   6508 ; MIPS32: srl [[T10]],[[T10]],0x8
   6509 ; MIPS32: andi [[T10]],[[T10]],0xff
   6510 ; MIPS32: andi [[T10]],[[T10]],0x1
   6511 ; MIPS32: move [[T4]],[[T2]]
   6512 ; MIPS32: srl [[T4]],[[T4]],0x8
   6513 ; MIPS32: andi [[T4]],[[T4]],0xff
   6514 ; MIPS32: andi [[T4]],[[T4]],0x1
   6515 ; MIPS32: sll [[T10]],[[T10]],0x1f
   6516 ; MIPS32: sll [[T4]],[[T4]],0x1f
   6517 ; MIPS32: sltu [[T4]],[[T4]],[[T10]]
   6518 ; MIPS32: andi [[T4]],[[T4]],0xff
   6519 ; MIPS32: sll [[T4]],[[T4]],0x8
   6520 ; MIPS32: lui [[T10]],0xffff
   6521 ; MIPS32: ori [[T10]],[[T10]],0xff
   6522 ; MIPS32: and [[T11]],[[T11]],[[T10]]
   6523 ; MIPS32: or [[T4]],[[T4]],[[T11]]
   6524 ; MIPS32: move [[T10]],a2
   6525 ; MIPS32: srl [[T10]],[[T10]],0x10
   6526 ; MIPS32: andi [[T10]],[[T10]],0xff
   6527 ; MIPS32: andi [[T10]],[[T10]],0x1
   6528 ; MIPS32: move [[T11]],[[T2]]
   6529 ; MIPS32: srl [[T11]],[[T11]],0x10
   6530 ; MIPS32: andi [[T11]],[[T11]],0xff
   6531 ; MIPS32: andi [[T11]],[[T11]],0x1
   6532 ; MIPS32: sll [[T10]],[[T10]],0x1f
   6533 ; MIPS32: sll [[T11]],[[T11]],0x1f
   6534 ; MIPS32: sltu [[T11]],[[T11]],[[T10]]
   6535 ; MIPS32: andi [[T11]],[[T11]],0xff
   6536 ; MIPS32: sll [[T11]],[[T11]],0x10
   6537 ; MIPS32: lui [[T10]],0xff00
   6538 ; MIPS32: ori [[T10]],[[T10]],0xffff
   6539 ; MIPS32: and [[T4]],[[T4]],[[T10]]
   6540 ; MIPS32: or [[T11]],[[T11]],[[T4]]
   6541 ; MIPS32: srl [[T12:.*]],a2,0x18
   6542 ; MIPS32: andi [[T12]],[[T12]],0x1
   6543 ; MIPS32: srl [[T2]],[[T2]],0x18
   6544 ; MIPS32: andi [[T2]],[[T2]],0x1
   6545 ; MIPS32: sll [[T12]],[[T12]],0x1f
   6546 ; MIPS32: sll [[T2]],[[T2]],0x1f
   6547 ; MIPS32: sltu [[T2]],[[T2]],[[T12]]
   6548 ; MIPS32: sll [[T2]],[[T2]],0x18
   6549 ; MIPS32: sll [[T11]],[[T11]],0x8
   6550 ; MIPS32: srl [[T11]],[[T11]],0x8
   6551 ; MIPS32: or [[T2]],[[T2]],[[T11]]
   6552 ; MIPS32: move [[T10]],a3
   6553 ; MIPS32: andi [[T10]],[[T10]],0xff
   6554 ; MIPS32: andi [[T10]],[[T10]],0x1
   6555 ; MIPS32: move [[T11]],[[T3]]
   6556 ; MIPS32: andi [[T11]],[[T11]],0xff
   6557 ; MIPS32: andi [[T11]],[[T11]],0x1
   6558 ; MIPS32: sll [[T10]],[[T10]],0x1f
   6559 ; MIPS32: sll [[T11]],[[T11]],0x1f
   6560 ; MIPS32: sltu [[T11]],[[T11]],[[T10]]
   6561 ; MIPS32: andi [[T11]],[[T11]],0xff
   6562 ; MIPS32: srl [[T7]],[[T7]],0x8
   6563 ; MIPS32: sll [[T7]],[[T7]],0x8
   6564 ; MIPS32: or [[T11]],[[T11]],[[T7]]
   6565 ; MIPS32: move [[T10]],a3
   6566 ; MIPS32: srl [[T10]],[[T10]],0x8
   6567 ; MIPS32: andi [[T10]],[[T10]],0xff
   6568 ; MIPS32: andi [[T10]],[[T10]],0x1
   6569 ; MIPS32: move [[T12]],[[T3]]
   6570 ; MIPS32: srl [[T12]],[[T12]],0x8
   6571 ; MIPS32: andi [[T12]],[[T12]],0xff
   6572 ; MIPS32: andi [[T12]],[[T12]],0x1
   6573 ; MIPS32: sll [[T10]],[[T10]],0x1f
   6574 ; MIPS32: sll [[T12]],[[T12]],0x1f
   6575 ; MIPS32: sltu [[T12]],[[T12]],[[T10]]
   6576 ; MIPS32: andi [[T12]],[[T12]],0xff
   6577 ; MIPS32: sll [[T12]],[[T12]],0x8
   6578 ; MIPS32: lui [[T10]],0xffff
   6579 ; MIPS32: ori [[T10]],[[T10]],0xff
   6580 ; MIPS32: and [[T11]],[[T11]],[[T10]]
   6581 ; MIPS32: or [[T12]],[[T12]],[[T11]]
   6582 ; MIPS32: move [[T10]],a3
   6583 ; MIPS32: srl [[T10]],[[T10]],0x10
   6584 ; MIPS32: andi [[T10]],[[T10]],0xff
   6585 ; MIPS32: andi [[T10]],[[T10]],0x1
   6586 ; MIPS32: move [[T11]],[[T3]]
   6587 ; MIPS32: srl [[T11]],[[T11]],0x10
   6588 ; MIPS32: andi [[T11]],[[T11]],0xff
   6589 ; MIPS32: andi [[T11]],[[T11]],0x1
   6590 ; MIPS32: sll [[T10]],[[T10]],0x1f
   6591 ; MIPS32: sll [[T11]],[[T11]],0x1f
   6592 ; MIPS32: sltu [[T11]],[[T11]],[[T10]]
   6593 ; MIPS32: andi [[T11]],[[T11]],0xff
   6594 ; MIPS32: sll [[T11]],[[T11]],0x10
   6595 ; MIPS32: lui [[T10]],0xff00
   6596 ; MIPS32: ori [[T10]],[[T10]],0xffff
   6597 ; MIPS32: and [[T12]],[[T12]],[[T10]]
   6598 ; MIPS32: or [[T11]],[[T11]],[[T12]]
   6599 ; MIPS32: srl [[T13:.*]],a3,0x18
   6600 ; MIPS32: andi [[T13]],[[T13]],0x1
   6601 ; MIPS32: srl [[T3]],[[T3]],0x18
   6602 ; MIPS32: andi [[T3]],[[T3]],0x1
   6603 ; MIPS32: sll [[T13]],[[T13]],0x1f
   6604 ; MIPS32: sll [[T3]],[[T3]],0x1f
   6605 ; MIPS32: sltu [[T3]],[[T3]],[[T13]]
   6606 ; MIPS32: sll [[T3]],[[T3]],0x18
   6607 ; MIPS32: sll [[T11]],[[T11]],0x8
   6608 ; MIPS32: srl [[T11]],[[T11]],0x8
   6609 ; MIPS32: or [[T3]],[[T3]],[[T11]]
   6610 ; MIPS32: move a0,[[T2]]
   6611 ; MIPS32: move a1,[[T3]]
   6612 }
   6613 
   6614 define internal <16 x i1> @test_icmp_v16i1_ule(<16 x i1> %a, <16 x i1> %b) {
   6615 entry:
   6616   %res = icmp ule <16 x i1> %a, %b
   6617   ret <16 x i1> %res
   6618 ; CHECK-LABEL: test_icmp_v16i1_ule
   6619 ; CHECK: pxor
   6620 ; CHECK: pcmpgtb
   6621 ; CHECK: pxor
   6622 
   6623 ; MIPS32-LABEL: test_icmp_v16i1_ule
   6624 ; MIPS32: lw [[T0:.*]],
   6625 ; MIPS32: lw [[T1:.*]],
   6626 ; MIPS32: lw [[T2:.*]],
   6627 ; MIPS32: lw [[T3:.*]],
   6628 ; MIPS32: move [[T4:.*]],zero
   6629 ; MIPS32: move [[T5:.*]],zero
   6630 ; MIPS32: move [[T6:.*]],zero
   6631 ; MIPS32: move [[T7:.*]],zero
   6632 ; MIPS32: move [[T8:.*]],a0
   6633 ; MIPS32: andi [[T8]],[[T8]],0xff
   6634 ; MIPS32: andi [[T8]],[[T8]],0x1
   6635 ; MIPS32: move [[T9:.*]],[[T0]]
   6636 ; MIPS32: andi [[T9]],[[T9]],0xff
   6637 ; MIPS32: andi [[T9]],[[T9]],0x1
   6638 ; MIPS32: sll [[T8]],[[T8]],0x1f
   6639 ; MIPS32: sll [[T9]],[[T9]],0x1f
   6640 ; MIPS32: sltu [[T9]],[[T9]],[[T8]]
   6641 ; MIPS32: xori [[T9]],[[T9]],0x1
   6642 ; MIPS32: andi [[T9]],[[T9]],0xff
   6643 ; MIPS32: srl [[T4]],[[T4]],0x8
   6644 ; MIPS32: sll [[T4]],[[T4]],0x8
   6645 ; MIPS32: or [[T9]],[[T9]],[[T4]]
   6646 ; MIPS32: move [[T4]],a0
   6647 ; MIPS32: srl [[T4]],[[T4]],0x8
   6648 ; MIPS32: andi [[T4]],[[T4]],0xff
   6649 ; MIPS32: andi [[T4]],[[T4]],0x1
   6650 ; MIPS32: move [[T8]],[[T0]]
   6651 ; MIPS32: srl [[T8]],[[T8]],0x8
   6652 ; MIPS32: andi [[T8]],[[T8]],0xff
   6653 ; MIPS32: andi [[T8]],[[T8]],0x1
   6654 ; MIPS32: sll [[T4]],[[T4]],0x1f
   6655 ; MIPS32: sll [[T8]],[[T8]],0x1f
   6656 ; MIPS32: sltu [[T8]],[[T8]],[[T4]]
   6657 ; MIPS32: xori [[T8]],[[T8]],0x1
   6658 ; MIPS32: andi [[T8]],[[T8]],0xff
   6659 ; MIPS32: sll [[T8]],[[T8]],0x8
   6660 ; MIPS32: lui [[T4]],0xffff
   6661 ; MIPS32: ori [[T4]],[[T4]],0xff
   6662 ; MIPS32: and [[T9]],[[T9]],[[T4]]
   6663 ; MIPS32: or [[T8]],[[T8]],[[T9]]
   6664 ; MIPS32: move [[T4]],a0
   6665 ; MIPS32: srl [[T4]],[[T4]],0x10
   6666 ; MIPS32: andi [[T4]],[[T4]],0xff
   6667 ; MIPS32: andi [[T4]],[[T4]],0x1
   6668 ; MIPS32: move [[T9]],[[T0]]
   6669 ; MIPS32: srl [[T9]],[[T9]],0x10
   6670 ; MIPS32: andi [[T9]],[[T9]],0xff
   6671 ; MIPS32: andi [[T9]],[[T9]],0x1
   6672 ; MIPS32: sll [[T4]],[[T4]],0x1f
   6673 ; MIPS32: sll [[T9]],[[T9]],0x1f
   6674 ; MIPS32: sltu [[T9]],[[T9]],[[T4]]
   6675 ; MIPS32: xori [[T9]],[[T9]],0x1
   6676 ; MIPS32: andi [[T9]],[[T9]],0xff
   6677 ; MIPS32: sll [[T9]],[[T9]],0x10
   6678 ; MIPS32: lui [[T4]],0xff00
   6679 ; MIPS32: ori [[T4]],[[T4]],0xffff
   6680 ; MIPS32: and [[T8]],[[T8]],[[T4]]
   6681 ; MIPS32: or [[T9]],[[T9]],[[T8]]
   6682 ; MIPS32: srl [[T10:.*]],a0,0x18
   6683 ; MIPS32: andi [[T10]],[[T10]],0x1
   6684 ; MIPS32: srl [[T0]],[[T0]],0x18
   6685 ; MIPS32: andi [[T0]],[[T0]],0x1
   6686 ; MIPS32: sll [[T10]],[[T10]],0x1f
   6687 ; MIPS32: sll [[T0]],[[T0]],0x1f
   6688 ; MIPS32: sltu [[T0]],[[T0]],[[T10]]
   6689 ; MIPS32: xori [[T0]],[[T0]],0x1
   6690 ; MIPS32: sll [[T0]],[[T0]],0x18
   6691 ; MIPS32: sll [[T9]],[[T9]],0x8
   6692 ; MIPS32: srl [[T9]],[[T9]],0x8
   6693 ; MIPS32: or v0,[[T0]],[[T9]]
   6694 ; MIPS32: move [[T10]],a1
   6695 ; MIPS32: andi [[T10]],[[T10]],0xff
   6696 ; MIPS32: andi [[T10]],[[T10]],0x1
   6697 ; MIPS32: move [[T4]],[[T1]]
   6698 ; MIPS32: andi [[T4]],[[T4]],0xff
   6699 ; MIPS32: andi [[T4]],[[T4]],0x1
   6700 ; MIPS32: sll [[T10]],[[T10]],0x1f
   6701 ; MIPS32: sll [[T4]],[[T4]],0x1f
   6702 ; MIPS32: sltu [[T4]],[[T4]],[[T10]]
   6703 ; MIPS32: xori [[T4]],[[T4]],0x1
   6704 ; MIPS32: andi [[T4]],[[T4]],0xff
   6705 ; MIPS32: srl [[T5]],[[T5]],0x8
   6706 ; MIPS32: sll [[T5]],[[T5]],0x8
   6707 ; MIPS32: or [[T4]],[[T4]],[[T5]]
   6708 ; MIPS32: move [[T10]],a1
   6709 ; MIPS32: srl [[T10]],[[T10]],0x8
   6710 ; MIPS32: andi [[T10]],[[T10]],0xff
   6711 ; MIPS32: andi [[T10]],[[T10]],0x1
   6712 ; MIPS32: move [[T5]],[[T1]]
   6713 ; MIPS32: srl [[T5]],[[T5]],0x8
   6714 ; MIPS32: andi [[T5]],[[T5]],0xff
   6715 ; MIPS32: andi [[T5]],[[T5]],0x1
   6716 ; MIPS32: sll [[T10]],[[T10]],0x1f
   6717 ; MIPS32: sll [[T5]],[[T5]],0x1f
   6718 ; MIPS32: sltu [[T5]],[[T5]],[[T10]]
   6719 ; MIPS32: xori [[T5]],[[T5]],0x1
   6720 ; MIPS32: andi [[T5]],[[T5]],0xff
   6721 ; MIPS32: sll [[T5]],[[T5]],0x8
   6722 ; MIPS32: lui [[T10]],0xffff
   6723 ; MIPS32: ori [[T10]],[[T10]],0xff
   6724 ; MIPS32: and [[T4]],[[T4]],[[T10]]
   6725 ; MIPS32: or [[T5]],[[T5]],[[T4]]
   6726 ; MIPS32: move [[T10]],a1
   6727 ; MIPS32: srl [[T10]],[[T10]],0x10
   6728 ; MIPS32: andi [[T10]],[[T10]],0xff
   6729 ; MIPS32: andi [[T10]],[[T10]],0x1
   6730 ; MIPS32: move [[T4]],[[T1]]
   6731 ; MIPS32: srl [[T4]],[[T4]],0x10
   6732 ; MIPS32: andi [[T4]],[[T4]],0xff
   6733 ; MIPS32: andi [[T4]],[[T4]],0x1
   6734 ; MIPS32: sll [[T10]],[[T10]],0x1f
   6735 ; MIPS32: sll [[T4]],[[T4]],0x1f
   6736 ; MIPS32: sltu [[T4]],[[T4]],[[T10]]
   6737 ; MIPS32: xori [[T4]],[[T4]],0x1
   6738 ; MIPS32: andi [[T4]],[[T4]],0xff
   6739 ; MIPS32: sll [[T4]],[[T4]],0x10
   6740 ; MIPS32: lui [[T10]],0xff00
   6741 ; MIPS32: ori [[T10]],[[T10]],0xffff
   6742 ; MIPS32: and [[T5]],[[T5]],[[T10]]
   6743 ; MIPS32: or [[T4]],[[T4]],[[T5]]
   6744 ; MIPS32: srl [[T11:.*]],a1,0x18
   6745 ; MIPS32: andi [[T11]],[[T11]],0x1
   6746 ; MIPS32: srl [[T1]],[[T1]],0x18
   6747 ; MIPS32: andi [[T1]],[[T1]],0x1
   6748 ; MIPS32: sll [[T11]],[[T11]],0x1f
   6749 ; MIPS32: sll [[T1]],[[T1]],0x1f
   6750 ; MIPS32: sltu [[T1]],[[T1]],[[T11]]
   6751 ; MIPS32: xori [[T1]],[[T1]],0x1
   6752 ; MIPS32: sll [[T1]],[[T1]],0x18
   6753 ; MIPS32: sll [[T4]],[[T4]],0x8
   6754 ; MIPS32: srl [[T4]],[[T4]],0x8
   6755 ; MIPS32: or v1,[[T1]],[[T4]]
   6756 ; MIPS32: move [[T10]],a2
   6757 ; MIPS32: andi [[T10]],[[T10]],0xff
   6758 ; MIPS32: andi [[T10]],[[T10]],0x1
   6759 ; MIPS32: move [[T11]],[[T2]]
   6760 ; MIPS32: andi [[T11]],[[T11]],0xff
   6761 ; MIPS32: andi [[T11]],[[T11]],0x1
   6762 ; MIPS32: sll [[T10]],[[T10]],0x1f
   6763 ; MIPS32: sll [[T11]],[[T11]],0x1f
   6764 ; MIPS32: sltu [[T11]],[[T11]],[[T10]]
   6765 ; MIPS32: xori [[T11]],[[T11]],0x1
   6766 ; MIPS32: andi [[T11]],[[T11]],0xff
   6767 ; MIPS32: srl [[T6]],[[T6]],0x8
   6768 ; MIPS32: sll [[T6]],[[T6]],0x8
   6769 ; MIPS32: or [[T11]],[[T11]],[[T6]]
   6770 ; MIPS32: move [[T10]],a2
   6771 ; MIPS32: srl [[T10]],[[T10]],0x8
   6772 ; MIPS32: andi [[T10]],[[T10]],0xff
   6773 ; MIPS32: andi [[T10]],[[T10]],0x1
   6774 ; MIPS32: move [[T4]],[[T2]]
   6775 ; MIPS32: srl [[T4]],[[T4]],0x8
   6776 ; MIPS32: andi [[T4]],[[T4]],0xff
   6777 ; MIPS32: andi [[T4]],[[T4]],0x1
   6778 ; MIPS32: sll [[T10]],[[T10]],0x1f
   6779 ; MIPS32: sll [[T4]],[[T4]],0x1f
   6780 ; MIPS32: sltu [[T4]],[[T4]],[[T10]]
   6781 ; MIPS32: xori [[T4]],[[T4]],0x1
   6782 ; MIPS32: andi [[T4]],[[T4]],0xff
   6783 ; MIPS32: sll [[T4]],[[T4]],0x8
   6784 ; MIPS32: lui [[T10]],0xffff
   6785 ; MIPS32: ori [[T10]],[[T10]],0xff
   6786 ; MIPS32: and [[T11]],[[T11]],[[T10]]
   6787 ; MIPS32: or [[T4]],[[T4]],[[T11]]
   6788 ; MIPS32: move [[T10]],a2
   6789 ; MIPS32: srl [[T10]],[[T10]],0x10
   6790 ; MIPS32: andi [[T10]],[[T10]],0xff
   6791 ; MIPS32: andi [[T10]],[[T10]],0x1
   6792 ; MIPS32: move [[T11]],[[T2]]
   6793 ; MIPS32: srl [[T11]],[[T11]],0x10
   6794 ; MIPS32: andi [[T11]],[[T11]],0xff
   6795 ; MIPS32: andi [[T11]],[[T11]],0x1
   6796 ; MIPS32: sll [[T10]],[[T10]],0x1f
   6797 ; MIPS32: sll [[T11]],[[T11]],0x1f
   6798 ; MIPS32: sltu [[T11]],[[T11]],[[T10]]
   6799 ; MIPS32: xori [[T11]],[[T11]],0x1
   6800 ; MIPS32: andi [[T11]],[[T11]],0xff
   6801 ; MIPS32: sll [[T11]],[[T11]],0x10
   6802 ; MIPS32: lui [[T10]],0xff00
   6803 ; MIPS32: ori [[T10]],[[T10]],0xffff
   6804 ; MIPS32: and [[T4]],[[T4]],[[T10]]
   6805 ; MIPS32: or [[T11]],[[T11]],[[T4]]
   6806 ; MIPS32: srl [[T12:.*]],a2,0x18
   6807 ; MIPS32: andi [[T12]],[[T12]],0x1
   6808 ; MIPS32: srl [[T2]],[[T2]],0x18
   6809 ; MIPS32: andi [[T2]],[[T2]],0x1
   6810 ; MIPS32: sll [[T12]],[[T12]],0x1f
   6811 ; MIPS32: sll [[T2]],[[T2]],0x1f
   6812 ; MIPS32: sltu [[T2]],[[T2]],[[T12]]
   6813 ; MIPS32: xori [[T2]],[[T2]],0x1
   6814 ; MIPS32: sll [[T2]],[[T2]],0x18
   6815 ; MIPS32: sll [[T11]],[[T11]],0x8
   6816 ; MIPS32: srl [[T11]],[[T11]],0x8
   6817 ; MIPS32: or [[T2]],[[T2]],[[T11]]
   6818 ; MIPS32: move [[T10]],a3
   6819 ; MIPS32: andi [[T10]],[[T10]],0xff
   6820 ; MIPS32: andi [[T10]],[[T10]],0x1
   6821 ; MIPS32: move [[T11]],[[T3]]
   6822 ; MIPS32: andi [[T11]],[[T11]],0xff
   6823 ; MIPS32: andi [[T11]],[[T11]],0x1
   6824 ; MIPS32: sll [[T10]],[[T10]],0x1f
   6825 ; MIPS32: sll [[T11]],[[T11]],0x1f
   6826 ; MIPS32: sltu [[T11]],[[T11]],[[T10]]
   6827 ; MIPS32: xori [[T11]],[[T11]],0x1
   6828 ; MIPS32: andi [[T11]],[[T11]],0xff
   6829 ; MIPS32: srl [[T7]],[[T7]],0x8
   6830 ; MIPS32: sll [[T7]],[[T7]],0x8
   6831 ; MIPS32: or [[T11]],[[T11]],[[T7]]
   6832 ; MIPS32: move [[T10]],a3
   6833 ; MIPS32: srl [[T10]],[[T10]],0x8
   6834 ; MIPS32: andi [[T10]],[[T10]],0xff
   6835 ; MIPS32: andi [[T10]],[[T10]],0x1
   6836 ; MIPS32: move [[T12]],[[T3]]
   6837 ; MIPS32: srl [[T12]],[[T12]],0x8
   6838 ; MIPS32: andi [[T12]],[[T12]],0xff
   6839 ; MIPS32: andi [[T12]],[[T12]],0x1
   6840 ; MIPS32: sll [[T10]],[[T10]],0x1f
   6841 ; MIPS32: sll [[T12]],[[T12]],0x1f
   6842 ; MIPS32: sltu [[T12]],[[T12]],[[T10]]
   6843 ; MIPS32: xori [[T12]],[[T12]],0x1
   6844 ; MIPS32: andi [[T12]],[[T12]],0xff
   6845 ; MIPS32: sll [[T12]],[[T12]],0x8
   6846 ; MIPS32: lui [[T10]],0xffff
   6847 ; MIPS32: ori [[T10]],[[T10]],0xff
   6848 ; MIPS32: and [[T11]],[[T11]],[[T10]]
   6849 ; MIPS32: or [[T12]],[[T12]],[[T11]]
   6850 ; MIPS32: move [[T10]],a3
   6851 ; MIPS32: srl [[T10]],[[T10]],0x10
   6852 ; MIPS32: andi [[T10]],[[T10]],0xff
   6853 ; MIPS32: andi [[T10]],[[T10]],0x1
   6854 ; MIPS32: move [[T11]],[[T3]]
   6855 ; MIPS32: srl [[T11]],[[T11]],0x10
   6856 ; MIPS32: andi [[T11]],[[T11]],0xff
   6857 ; MIPS32: andi [[T11]],[[T11]],0x1
   6858 ; MIPS32: sll [[T10]],[[T10]],0x1f
   6859 ; MIPS32: sll [[T11]],[[T11]],0x1f
   6860 ; MIPS32: sltu [[T11]],[[T11]],[[T10]]
   6861 ; MIPS32: xori [[T11]],[[T11]],0x1
   6862 ; MIPS32: andi [[T11]],[[T11]],0xff
   6863 ; MIPS32: sll [[T11]],[[T11]],0x10
   6864 ; MIPS32: lui [[T10]],0xff00
   6865 ; MIPS32: ori [[T10]],[[T10]],0xffff
   6866 ; MIPS32: and [[T12]],[[T12]],[[T10]]
   6867 ; MIPS32: or [[T11]],[[T11]],[[T12]]
   6868 ; MIPS32: srl [[T13:.*]],a3,0x18
   6869 ; MIPS32: andi [[T13]],[[T13]],0x1
   6870 ; MIPS32: srl [[T3]],[[T3]],0x18
   6871 ; MIPS32: andi [[T3]],[[T3]],0x1
   6872 ; MIPS32: sll [[T13]],[[T13]],0x1f
   6873 ; MIPS32: sll [[T3]],[[T3]],0x1f
   6874 ; MIPS32: sltu [[T3]],[[T3]],[[T13]]
   6875 ; MIPS32: xori [[T3]],[[T3]],0x1
   6876 ; MIPS32: sll [[T3]],[[T3]],0x18
   6877 ; MIPS32: sll [[T11]],[[T11]],0x8
   6878 ; MIPS32: srl [[T11]],[[T11]],0x8
   6879 ; MIPS32: or [[T3]],[[T3]],[[T11]]
   6880 ; MIPS32: move a0,[[T2]]
   6881 ; MIPS32: move a1,[[T3]]
   6882 }
   6883 
   6884 define internal <16 x i1> @test_icmp_v16i1_ult(<16 x i1> %a, <16 x i1> %b) {
   6885 entry:
   6886   %res = icmp ult <16 x i1> %a, %b
   6887   ret <16 x i1> %res
   6888 ; CHECK-LABEL: test_icmp_v16i1_ult
   6889 ; CHECK: pxor
   6890 ; CHECK: pcmpgtb
   6891 
   6892 ; MIPS32-LABEL: test_icmp_v16i1_ult
   6893 ; MIPS32: lw [[T0:.*]],
   6894 ; MIPS32: lw [[T1:.*]],
   6895 ; MIPS32: lw [[T2:.*]],
   6896 ; MIPS32: lw [[T3:.*]],
   6897 ; MIPS32: move [[T4:.*]],zero
   6898 ; MIPS32: move [[T5:.*]],zero
   6899 ; MIPS32: move [[T6:.*]],zero
   6900 ; MIPS32: move [[T7:.*]],zero
   6901 ; MIPS32: move [[T8:.*]],a0
   6902 ; MIPS32: andi [[T8]],[[T8]],0xff
   6903 ; MIPS32: andi [[T8]],[[T8]],0x1
   6904 ; MIPS32: move [[T9:.*]],[[T0]]
   6905 ; MIPS32: andi [[T9]],[[T9]],0xff
   6906 ; MIPS32: andi [[T9]],[[T9]],0x1
   6907 ; MIPS32: sll [[T8]],[[T8]],0x1f
   6908 ; MIPS32: sll [[T9]],[[T9]],0x1f
   6909 ; MIPS32: sltu [[T8]],[[T8]],[[T9]]
   6910 ; MIPS32: andi [[T8]],[[T8]],0xff
   6911 ; MIPS32: srl [[T4]],[[T4]],0x8
   6912 ; MIPS32: sll [[T4]],[[T4]],0x8
   6913 ; MIPS32: or [[T8]],[[T8]],[[T4]]
   6914 ; MIPS32: move [[T4]],a0
   6915 ; MIPS32: srl [[T4]],[[T4]],0x8
   6916 ; MIPS32: andi [[T4]],[[T4]],0xff
   6917 ; MIPS32: andi [[T4]],[[T4]],0x1
   6918 ; MIPS32: move [[T9]],[[T0]]
   6919 ; MIPS32: srl [[T9]],[[T9]],0x8
   6920 ; MIPS32: andi [[T9]],[[T9]],0xff
   6921 ; MIPS32: andi [[T9]],[[T9]],0x1
   6922 ; MIPS32: sll [[T4]],[[T4]],0x1f
   6923 ; MIPS32: sll [[T9]],[[T9]],0x1f
   6924 ; MIPS32: sltu [[T4]],[[T4]],[[T9]]
   6925 ; MIPS32: andi [[T4]],[[T4]],0xff
   6926 ; MIPS32: sll [[T4]],[[T4]],0x8
   6927 ; MIPS32: lui [[T9]],0xffff
   6928 ; MIPS32: ori [[T9]],[[T9]],0xff
   6929 ; MIPS32: and [[T8]],[[T8]],[[T9]]
   6930 ; MIPS32: or [[T4]],[[T4]],[[T8]]
   6931 ; MIPS32: move [[T8]],a0
   6932 ; MIPS32: srl [[T8]],[[T8]],0x10
   6933 ; MIPS32: andi [[T8]],[[T8]],0xff
   6934 ; MIPS32: andi [[T8]],[[T8]],0x1
   6935 ; MIPS32: move [[T9]],[[T0]]
   6936 ; MIPS32: srl [[T9]],[[T9]],0x10
   6937 ; MIPS32: andi [[T9]],[[T9]],0xff
   6938 ; MIPS32: andi [[T9]],[[T9]],0x1
   6939 ; MIPS32: sll [[T8]],[[T8]],0x1f
   6940 ; MIPS32: sll [[T9]],[[T9]],0x1f
   6941 ; MIPS32: sltu [[T8]],[[T8]],[[T9]]
   6942 ; MIPS32: andi [[T8]],[[T8]],0xff
   6943 ; MIPS32: sll [[T8]],[[T8]],0x10
   6944 ; MIPS32: lui [[T9]],0xff00
   6945 ; MIPS32: ori [[T9]],[[T9]],0xffff
   6946 ; MIPS32: and [[T4]],[[T4]],[[T9]]
   6947 ; MIPS32: or [[T8]],[[T8]],[[T4]]
   6948 ; MIPS32: srl [[T10:.*]],a0,0x18
   6949 ; MIPS32: andi [[T10]],[[T10]],0x1
   6950 ; MIPS32: srl [[T0]],[[T0]],0x18
   6951 ; MIPS32: andi [[T0]],[[T0]],0x1
   6952 ; MIPS32: sll [[T10]],[[T10]],0x1f
   6953 ; MIPS32: sll [[T0]],[[T0]],0x1f
   6954 ; MIPS32: sltu [[T10]],[[T10]],[[T0]]
   6955 ; MIPS32: sll [[T10]],[[T10]],0x18
   6956 ; MIPS32: sll [[T8]],[[T8]],0x8
   6957 ; MIPS32: srl [[T8]],[[T8]],0x8
   6958 ; MIPS32: or [[T10]],[[T10]],[[T8]]
   6959 ; MIPS32: move [[T0]],a1
   6960 ; MIPS32: andi [[T0]],[[T0]],0xff
   6961 ; MIPS32: andi [[T0]],[[T0]],0x1
   6962 ; MIPS32: move [[T4]],[[T1]]
   6963 ; MIPS32: andi [[T4]],[[T4]],0xff
   6964 ; MIPS32: andi [[T4]],[[T4]],0x1
   6965 ; MIPS32: sll [[T0]],[[T0]],0x1f
   6966 ; MIPS32: sll [[T4]],[[T4]],0x1f
   6967 ; MIPS32: sltu [[T0]],[[T0]],[[T4]]
   6968 ; MIPS32: andi [[T0]],[[T0]],0xff
   6969 ; MIPS32: srl [[T5]],[[T5]],0x8
   6970 ; MIPS32: sll [[T5]],[[T5]],0x8
   6971 ; MIPS32: or [[T0]],[[T0]],[[T5]]
   6972 ; MIPS32: move [[T4]],a1
   6973 ; MIPS32: srl [[T4]],[[T4]],0x8
   6974 ; MIPS32: andi [[T4]],[[T4]],0xff
   6975 ; MIPS32: andi [[T4]],[[T4]],0x1
   6976 ; MIPS32: move [[T5]],[[T1]]
   6977 ; MIPS32: srl [[T5]],[[T5]],0x8
   6978 ; MIPS32: andi [[T5]],[[T5]],0xff
   6979 ; MIPS32: andi [[T5]],[[T5]],0x1
   6980 ; MIPS32: sll [[T4]],[[T4]],0x1f
   6981 ; MIPS32: sll [[T5]],[[T5]],0x1f
   6982 ; MIPS32: sltu [[T4]],[[T4]],[[T5]]
   6983 ; MIPS32: andi [[T4]],[[T4]],0xff
   6984 ; MIPS32: sll [[T4]],[[T4]],0x8
   6985 ; MIPS32: lui [[T5]],0xffff
   6986 ; MIPS32: ori [[T5]],[[T5]],0xff
   6987 ; MIPS32: and [[T0]],[[T0]],[[T5]]
   6988 ; MIPS32: or [[T4]],[[T4]],[[T0]]
   6989 ; MIPS32: move [[T0]],a1
   6990 ; MIPS32: srl [[T0]],[[T0]],0x10
   6991 ; MIPS32: andi [[T0]],[[T0]],0xff
   6992 ; MIPS32: andi [[T0]],[[T0]],0x1
   6993 ; MIPS32: move [[T5]],[[T1]]
   6994 ; MIPS32: srl [[T5]],[[T5]],0x10
   6995 ; MIPS32: andi [[T5]],[[T5]],0xff
   6996 ; MIPS32: andi [[T5]],[[T5]],0x1
   6997 ; MIPS32: sll [[T0]],[[T0]],0x1f
   6998 ; MIPS32: sll [[T5]],[[T5]],0x1f
   6999 ; MIPS32: sltu [[T0]],[[T0]],[[T5]]
   7000 ; MIPS32: andi [[T0]],[[T0]],0xff
   7001 ; MIPS32: sll [[T0]],[[T0]],0x10
   7002 ; MIPS32: lui [[T5]],0xff00
   7003 ; MIPS32: ori [[T5]],[[T5]],0xffff
   7004 ; MIPS32: and [[T4]],[[T4]],[[T5]]
   7005 ; MIPS32: or [[T0]],[[T0]],[[T4]]
   7006 ; MIPS32: srl [[T11:.*]],a1,0x18
   7007 ; MIPS32: andi [[T11]],[[T11]],0x1
   7008 ; MIPS32: srl [[T1]],[[T1]],0x18
   7009 ; MIPS32: andi [[T1]],[[T1]],0x1
   7010 ; MIPS32: sll [[T11]],[[T11]],0x1f
   7011 ; MIPS32: sll [[T1]],[[T1]],0x1f
   7012 ; MIPS32: sltu [[T11]],[[T11]],[[T1]]
   7013 ; MIPS32: sll [[T11]],[[T11]],0x18
   7014 ; MIPS32: sll [[T0]],[[T0]],0x8
   7015 ; MIPS32: srl [[T0]],[[T0]],0x8
   7016 ; MIPS32: or [[T11]],[[T11]],[[T0]]
   7017 ; MIPS32: move [[T0]],a2
   7018 ; MIPS32: andi [[T0]],[[T0]],0xff
   7019 ; MIPS32: andi [[T0]],[[T0]],0x1
   7020 ; MIPS32: move [[T1]],[[T2]]
   7021 ; MIPS32: andi [[T1]],[[T1]],0xff
   7022 ; MIPS32: andi [[T1]],[[T1]],0x1
   7023 ; MIPS32: sll [[T0]],[[T0]],0x1f
   7024 ; MIPS32: sll [[T1]],[[T1]],0x1f
   7025 ; MIPS32: sltu [[T0]],[[T0]],[[T1]]
   7026 ; MIPS32: andi [[T0]],[[T0]],0xff
   7027 ; MIPS32: srl [[T6]],[[T6]],0x8
   7028 ; MIPS32: sll [[T6]],[[T6]],0x8
   7029 ; MIPS32: or [[T0]],[[T0]],[[T6]]
   7030 ; MIPS32: move [[T1]],a2
   7031 ; MIPS32: srl [[T1]],[[T1]],0x8
   7032 ; MIPS32: andi [[T1]],[[T1]],0xff
   7033 ; MIPS32: andi [[T1]],[[T1]],0x1
   7034 ; MIPS32: move [[T4]],[[T2]]
   7035 ; MIPS32: srl [[T4]],[[T4]],0x8
   7036 ; MIPS32: andi [[T4]],[[T4]],0xff
   7037 ; MIPS32: andi [[T4]],[[T4]],0x1
   7038 ; MIPS32: sll [[T1]],[[T1]],0x1f
   7039 ; MIPS32: sll [[T4]],[[T4]],0x1f
   7040 ; MIPS32: sltu [[T1]],[[T1]],[[T4]]
   7041 ; MIPS32: andi [[T1]],[[T1]],0xff
   7042 ; MIPS32: sll [[T1]],[[T1]],0x8
   7043 ; MIPS32: lui [[T4]],0xffff
   7044 ; MIPS32: ori [[T4]],[[T4]],0xff
   7045 ; MIPS32: and [[T0]],[[T0]],[[T4]]
   7046 ; MIPS32: or [[T1]],[[T1]],[[T0]]
   7047 ; MIPS32: move [[T0]],a2
   7048 ; MIPS32: srl [[T0]],[[T0]],0x10
   7049 ; MIPS32: andi [[T0]],[[T0]],0xff
   7050 ; MIPS32: andi [[T0]],[[T0]],0x1
   7051 ; MIPS32: move [[T4]],[[T2]]
   7052 ; MIPS32: srl [[T4]],[[T4]],0x10
   7053 ; MIPS32: andi [[T4]],[[T4]],0xff
   7054 ; MIPS32: andi [[T4]],[[T4]],0x1
   7055 ; MIPS32: sll [[T0]],[[T0]],0x1f
   7056 ; MIPS32: sll [[T4]],[[T4]],0x1f
   7057 ; MIPS32: sltu [[T0]],[[T0]],[[T4]]
   7058 ; MIPS32: andi [[T0]],[[T0]],0xff
   7059 ; MIPS32: sll [[T0]],[[T0]],0x10
   7060 ; MIPS32: lui [[T4]],0xff00
   7061 ; MIPS32: ori [[T4]],[[T4]],0xffff
   7062 ; MIPS32: and [[T1]],[[T1]],[[T4]]
   7063 ; MIPS32: or [[T0]],[[T0]],[[T1]]
   7064 ; MIPS32: srl [[T12:.*]],a2,0x18
   7065 ; MIPS32: andi [[T12]],[[T12]],0x1
   7066 ; MIPS32: srl [[T2]],[[T2]],0x18
   7067 ; MIPS32: andi [[T2]],[[T2]],0x1
   7068 ; MIPS32: sll [[T12]],[[T12]],0x1f
   7069 ; MIPS32: sll [[T2]],[[T2]],0x1f
   7070 ; MIPS32: sltu [[T12]],[[T12]],[[T2]]
   7071 ; MIPS32: sll [[T12]],[[T12]],0x18
   7072 ; MIPS32: sll [[T0]],[[T0]],0x8
   7073 ; MIPS32: srl [[T0]],[[T0]],0x8
   7074 ; MIPS32: or [[T12]],[[T12]],[[T0]]
   7075 ; MIPS32: move [[T0]],a3
   7076 ; MIPS32: andi [[T0]],[[T0]],0xff
   7077 ; MIPS32: andi [[T0]],[[T0]],0x1
   7078 ; MIPS32: move [[T1]],[[T3]]
   7079 ; MIPS32: andi [[T1]],[[T1]],0xff
   7080 ; MIPS32: andi [[T1]],[[T1]],0x1
   7081 ; MIPS32: sll [[T0]],[[T0]],0x1f
   7082 ; MIPS32: sll [[T1]],[[T1]],0x1f
   7083 ; MIPS32: sltu [[T0]],[[T0]],[[T1]]
   7084 ; MIPS32: andi [[T0]],[[T0]],0xff
   7085 ; MIPS32: srl [[T7]],[[T7]],0x8
   7086 ; MIPS32: sll [[T7]],[[T7]],0x8
   7087 ; MIPS32: or [[T0]],[[T0]],[[T7]]
   7088 ; MIPS32: move [[T1]],a3
   7089 ; MIPS32: srl [[T1]],[[T1]],0x8
   7090 ; MIPS32: andi [[T1]],[[T1]],0xff
   7091 ; MIPS32: andi [[T1]],[[T1]],0x1
   7092 ; MIPS32: move [[T2]],[[T3]]
   7093 ; MIPS32: srl [[T2]],[[T2]],0x8
   7094 ; MIPS32: andi [[T2]],[[T2]],0xff
   7095 ; MIPS32: andi [[T2]],[[T2]],0x1
   7096 ; MIPS32: sll [[T1]],[[T1]],0x1f
   7097 ; MIPS32: sll [[T2]],[[T2]],0x1f
   7098 ; MIPS32: sltu [[T1]],[[T1]],[[T2]]
   7099 ; MIPS32: andi [[T1]],[[T1]],0xff
   7100 ; MIPS32: sll [[T1]],[[T1]],0x8
   7101 ; MIPS32: lui [[T2]],0xffff
   7102 ; MIPS32: ori [[T2]],[[T2]],0xff
   7103 ; MIPS32: and [[T0]],[[T0]],[[T2]]
   7104 ; MIPS32: or [[T1]],[[T1]],[[T0]]
   7105 ; MIPS32: move [[T0]],a3
   7106 ; MIPS32: srl [[T0]],[[T0]],0x10
   7107 ; MIPS32: andi [[T0]],[[T0]],0xff
   7108 ; MIPS32: andi [[T0]],[[T0]],0x1
   7109 ; MIPS32: move [[T2]],[[T3]]
   7110 ; MIPS32: srl [[T2]],[[T2]],0x10
   7111 ; MIPS32: andi [[T2]],[[T2]],0xff
   7112 ; MIPS32: andi [[T2]],[[T2]],0x1
   7113 ; MIPS32: sll [[T0]],[[T0]],0x1f
   7114 ; MIPS32: sll [[T2]],[[T2]],0x1f
   7115 ; MIPS32: sltu [[T0]],[[T0]],[[T2]]
   7116 ; MIPS32: andi [[T0]],[[T0]],0xff
   7117 ; MIPS32: sll [[T0]],[[T0]],0x10
   7118 ; MIPS32: lui [[T2]],0xff00
   7119 ; MIPS32: ori [[T2]],[[T2]],0xffff
   7120 ; MIPS32: and [[T1]],[[T1]],[[T2]]
   7121 ; MIPS32: or [[T0]],[[T0]],[[T1]]
   7122 ; MIPS32: srl [[T13:.*]],a3,0x18
   7123 ; MIPS32: andi [[T13]],[[T13]],0x1
   7124 ; MIPS32: srl [[T3]],[[T3]],0x18
   7125 ; MIPS32: andi [[T3]],[[T3]],0x1
   7126 ; MIPS32: sll [[T13]],[[T13]],0x1f
   7127 ; MIPS32: sll [[T3]],[[T3]],0x1f
   7128 ; MIPS32: sltu [[T13]],[[T13]],[[T3]]
   7129 ; MIPS32: sll [[T13]],[[T13]],0x18
   7130 ; MIPS32: sll [[T0]],[[T0]],0x8
   7131 ; MIPS32: srl [[T0]],[[T0]],0x8
   7132 ; MIPS32: or [[T13]],[[T13]],[[T0]]
   7133 ; MIPS32: move v0,[[T10]]
   7134 ; MIPS32: move v1,[[T11]]
   7135 ; MIPS32: move a0,[[T12]]
   7136 ; MIPS32: move a1,[[T13]]
   7137 }
   7138