1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -O0 -mtriple=mipsel-linux-gnu -run-pass=legalizer -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=MIPS32 3--- | 4 5 define void @ne_i32() {entry: ret void} 6 define void @eq_ptr() {entry: ret void} 7 define void @ult_i8() {entry: ret void} 8 define void @slt_i16() {entry: ret void} 9 define void @eq_i64() {entry: ret void} 10 define void @ne_i64() {entry: ret void} 11 define void @sgt_i64() {entry: ret void} 12 define void @sge_i64() {entry: ret void} 13 define void @slt_i64() {entry: ret void} 14 define void @sle_i64() {entry: ret void} 15 define void @ugt_i64() {entry: ret void} 16 define void @uge_i64() {entry: ret void} 17 define void @ult_i64() {entry: ret void} 18 define void @ule_i64() {entry: ret void} 19 20... 21--- 22name: ne_i32 23alignment: 4 24tracksRegLiveness: true 25body: | 26 bb.1.entry: 27 liveins: $a0, $a1 28 29 ; MIPS32-LABEL: name: ne_i32 30 ; MIPS32: liveins: $a0, $a1 31 ; MIPS32-NEXT: {{ $}} 32 ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $a0 33 ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1 34 ; MIPS32-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY1]] 35 ; MIPS32-NEXT: $v0 = COPY [[ICMP]](s32) 36 ; MIPS32-NEXT: RetRA implicit $v0 37 %0:_(s32) = COPY $a0 38 %1:_(s32) = COPY $a1 39 %2:_(s1) = G_ICMP intpred(ne), %0(s32), %1 40 %3:_(s32) = G_ANYEXT %2(s1) 41 $v0 = COPY %3(s32) 42 RetRA implicit $v0 43 44... 45--- 46name: eq_ptr 47alignment: 4 48tracksRegLiveness: true 49body: | 50 bb.1.entry: 51 liveins: $a0, $a1 52 53 ; MIPS32-LABEL: name: eq_ptr 54 ; MIPS32: liveins: $a0, $a1 55 ; MIPS32-NEXT: {{ $}} 56 ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $a0 57 ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1 58 ; MIPS32-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY]](p0), [[COPY1]] 59 ; MIPS32-NEXT: $v0 = COPY [[ICMP]](s32) 60 ; MIPS32-NEXT: RetRA implicit $v0 61 %0:_(p0) = COPY $a0 62 %1:_(p0) = COPY $a1 63 %2:_(s1) = G_ICMP intpred(eq), %0(p0), %1 64 %3:_(s32) = G_ANYEXT %2(s1) 65 $v0 = COPY %3(s32) 66 RetRA implicit $v0 67 68... 69--- 70name: ult_i8 71alignment: 4 72tracksRegLiveness: true 73body: | 74 bb.1.entry: 75 liveins: $a0, $a1 76 77 ; MIPS32-LABEL: name: ult_i8 78 ; MIPS32: liveins: $a0, $a1 79 ; MIPS32-NEXT: {{ $}} 80 ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $a0 81 ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1 82 ; MIPS32-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 255 83 ; MIPS32-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]] 84 ; MIPS32-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]] 85 ; MIPS32-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[AND]](s32), [[AND1]] 86 ; MIPS32-NEXT: $v0 = COPY [[ICMP]](s32) 87 ; MIPS32-NEXT: RetRA implicit $v0 88 %2:_(s32) = COPY $a0 89 %0:_(s8) = G_TRUNC %2(s32) 90 %3:_(s32) = COPY $a1 91 %1:_(s8) = G_TRUNC %3(s32) 92 %4:_(s1) = G_ICMP intpred(ult), %0(s8), %1 93 %5:_(s32) = G_ANYEXT %4(s1) 94 $v0 = COPY %5(s32) 95 RetRA implicit $v0 96 97... 98--- 99name: slt_i16 100alignment: 4 101tracksRegLiveness: true 102body: | 103 bb.1.entry: 104 liveins: $a0, $a1 105 106 ; MIPS32-LABEL: name: slt_i16 107 ; MIPS32: liveins: $a0, $a1 108 ; MIPS32-NEXT: {{ $}} 109 ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $a0 110 ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1 111 ; MIPS32-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16 112 ; MIPS32-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[C]](s32) 113 ; MIPS32-NEXT: [[ASHR:%[0-9]+]]:_(s32) = G_ASHR [[SHL]], [[C]](s32) 114 ; MIPS32-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[COPY1]], [[C]](s32) 115 ; MIPS32-NEXT: [[ASHR1:%[0-9]+]]:_(s32) = G_ASHR [[SHL1]], [[C]](s32) 116 ; MIPS32-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(slt), [[ASHR]](s32), [[ASHR1]] 117 ; MIPS32-NEXT: $v0 = COPY [[ICMP]](s32) 118 ; MIPS32-NEXT: RetRA implicit $v0 119 %2:_(s32) = COPY $a0 120 %0:_(s16) = G_TRUNC %2(s32) 121 %3:_(s32) = COPY $a1 122 %1:_(s16) = G_TRUNC %3(s32) 123 %4:_(s1) = G_ICMP intpred(slt), %0(s16), %1 124 %5:_(s32) = G_ANYEXT %4(s1) 125 $v0 = COPY %5(s32) 126 RetRA implicit $v0 127 128... 129--- 130name: eq_i64 131alignment: 4 132tracksRegLiveness: true 133body: | 134 bb.1.entry: 135 liveins: $a0, $a1, $a2, $a3 136 137 ; MIPS32-LABEL: name: eq_i64 138 ; MIPS32: liveins: $a0, $a1, $a2, $a3 139 ; MIPS32-NEXT: {{ $}} 140 ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $a0 141 ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1 142 ; MIPS32-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2 143 ; MIPS32-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $a3 144 ; MIPS32-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0 145 ; MIPS32-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[COPY]], [[COPY2]] 146 ; MIPS32-NEXT: [[XOR1:%[0-9]+]]:_(s32) = G_XOR [[COPY1]], [[COPY3]] 147 ; MIPS32-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[XOR]], [[XOR1]] 148 ; MIPS32-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[OR]](s32), [[C]] 149 ; MIPS32-NEXT: $v0 = COPY [[ICMP]](s32) 150 ; MIPS32-NEXT: RetRA implicit $v0 151 %2:_(s32) = COPY $a0 152 %3:_(s32) = COPY $a1 153 %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32) 154 %4:_(s32) = COPY $a2 155 %5:_(s32) = COPY $a3 156 %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32) 157 %6:_(s1) = G_ICMP intpred(eq), %0(s64), %1 158 %7:_(s32) = G_ANYEXT %6(s1) 159 $v0 = COPY %7(s32) 160 RetRA implicit $v0 161 162... 163--- 164name: ne_i64 165alignment: 4 166tracksRegLiveness: true 167body: | 168 bb.1.entry: 169 liveins: $a0, $a1, $a2, $a3 170 171 ; MIPS32-LABEL: name: ne_i64 172 ; MIPS32: liveins: $a0, $a1, $a2, $a3 173 ; MIPS32-NEXT: {{ $}} 174 ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $a0 175 ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1 176 ; MIPS32-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2 177 ; MIPS32-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $a3 178 ; MIPS32-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0 179 ; MIPS32-NEXT: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[COPY]], [[COPY2]] 180 ; MIPS32-NEXT: [[XOR1:%[0-9]+]]:_(s32) = G_XOR [[COPY1]], [[COPY3]] 181 ; MIPS32-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[XOR]], [[XOR1]] 182 ; MIPS32-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ne), [[OR]](s32), [[C]] 183 ; MIPS32-NEXT: $v0 = COPY [[ICMP]](s32) 184 ; MIPS32-NEXT: RetRA implicit $v0 185 %2:_(s32) = COPY $a0 186 %3:_(s32) = COPY $a1 187 %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32) 188 %4:_(s32) = COPY $a2 189 %5:_(s32) = COPY $a3 190 %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32) 191 %6:_(s1) = G_ICMP intpred(ne), %0(s64), %1 192 %7:_(s32) = G_ANYEXT %6(s1) 193 $v0 = COPY %7(s32) 194 RetRA implicit $v0 195 196... 197--- 198name: sgt_i64 199alignment: 4 200tracksRegLiveness: true 201body: | 202 bb.1.entry: 203 liveins: $a0, $a1, $a2, $a3 204 205 ; MIPS32-LABEL: name: sgt_i64 206 ; MIPS32: liveins: $a0, $a1, $a2, $a3 207 ; MIPS32-NEXT: {{ $}} 208 ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $a0 209 ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1 210 ; MIPS32-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2 211 ; MIPS32-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $a3 212 ; MIPS32-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ugt), [[COPY]](s32), [[COPY2]] 213 ; MIPS32-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(sgt), [[COPY1]](s32), [[COPY3]] 214 ; MIPS32-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY3]] 215 ; MIPS32-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[ICMP]], [[ICMP1]] 216 ; MIPS32-NEXT: $v0 = COPY [[SELECT]](s32) 217 ; MIPS32-NEXT: RetRA implicit $v0 218 %2:_(s32) = COPY $a0 219 %3:_(s32) = COPY $a1 220 %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32) 221 %4:_(s32) = COPY $a2 222 %5:_(s32) = COPY $a3 223 %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32) 224 %6:_(s1) = G_ICMP intpred(sgt), %0(s64), %1 225 %7:_(s32) = G_ANYEXT %6(s1) 226 $v0 = COPY %7(s32) 227 RetRA implicit $v0 228 229... 230--- 231name: sge_i64 232alignment: 4 233tracksRegLiveness: true 234body: | 235 bb.1.entry: 236 liveins: $a0, $a1, $a2, $a3 237 238 ; MIPS32-LABEL: name: sge_i64 239 ; MIPS32: liveins: $a0, $a1, $a2, $a3 240 ; MIPS32-NEXT: {{ $}} 241 ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $a0 242 ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1 243 ; MIPS32-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2 244 ; MIPS32-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $a3 245 ; MIPS32-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(uge), [[COPY]](s32), [[COPY2]] 246 ; MIPS32-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(sge), [[COPY1]](s32), [[COPY3]] 247 ; MIPS32-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY3]] 248 ; MIPS32-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[ICMP]], [[ICMP1]] 249 ; MIPS32-NEXT: $v0 = COPY [[SELECT]](s32) 250 ; MIPS32-NEXT: RetRA implicit $v0 251 %2:_(s32) = COPY $a0 252 %3:_(s32) = COPY $a1 253 %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32) 254 %4:_(s32) = COPY $a2 255 %5:_(s32) = COPY $a3 256 %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32) 257 %6:_(s1) = G_ICMP intpred(sge), %0(s64), %1 258 %7:_(s32) = G_ANYEXT %6(s1) 259 $v0 = COPY %7(s32) 260 RetRA implicit $v0 261 262... 263--- 264name: slt_i64 265alignment: 4 266tracksRegLiveness: true 267body: | 268 bb.1.entry: 269 liveins: $a0, $a1, $a2, $a3 270 271 ; MIPS32-LABEL: name: slt_i64 272 ; MIPS32: liveins: $a0, $a1, $a2, $a3 273 ; MIPS32-NEXT: {{ $}} 274 ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $a0 275 ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1 276 ; MIPS32-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2 277 ; MIPS32-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $a3 278 ; MIPS32-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY]](s32), [[COPY2]] 279 ; MIPS32-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(slt), [[COPY1]](s32), [[COPY3]] 280 ; MIPS32-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY3]] 281 ; MIPS32-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[ICMP]], [[ICMP1]] 282 ; MIPS32-NEXT: $v0 = COPY [[SELECT]](s32) 283 ; MIPS32-NEXT: RetRA implicit $v0 284 %2:_(s32) = COPY $a0 285 %3:_(s32) = COPY $a1 286 %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32) 287 %4:_(s32) = COPY $a2 288 %5:_(s32) = COPY $a3 289 %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32) 290 %6:_(s1) = G_ICMP intpred(slt), %0(s64), %1 291 %7:_(s32) = G_ANYEXT %6(s1) 292 $v0 = COPY %7(s32) 293 RetRA implicit $v0 294 295... 296--- 297name: sle_i64 298alignment: 4 299tracksRegLiveness: true 300body: | 301 bb.1.entry: 302 liveins: $a0, $a1, $a2, $a3 303 304 ; MIPS32-LABEL: name: sle_i64 305 ; MIPS32: liveins: $a0, $a1, $a2, $a3 306 ; MIPS32-NEXT: {{ $}} 307 ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $a0 308 ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1 309 ; MIPS32-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2 310 ; MIPS32-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $a3 311 ; MIPS32-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ule), [[COPY]](s32), [[COPY2]] 312 ; MIPS32-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(sle), [[COPY1]](s32), [[COPY3]] 313 ; MIPS32-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY3]] 314 ; MIPS32-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[ICMP]], [[ICMP1]] 315 ; MIPS32-NEXT: $v0 = COPY [[SELECT]](s32) 316 ; MIPS32-NEXT: RetRA implicit $v0 317 %2:_(s32) = COPY $a0 318 %3:_(s32) = COPY $a1 319 %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32) 320 %4:_(s32) = COPY $a2 321 %5:_(s32) = COPY $a3 322 %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32) 323 %6:_(s1) = G_ICMP intpred(sle), %0(s64), %1 324 %7:_(s32) = G_ANYEXT %6(s1) 325 $v0 = COPY %7(s32) 326 RetRA implicit $v0 327 328... 329--- 330name: ugt_i64 331alignment: 4 332tracksRegLiveness: true 333body: | 334 bb.1.entry: 335 liveins: $a0, $a1, $a2, $a3 336 337 ; MIPS32-LABEL: name: ugt_i64 338 ; MIPS32: liveins: $a0, $a1, $a2, $a3 339 ; MIPS32-NEXT: {{ $}} 340 ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $a0 341 ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1 342 ; MIPS32-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2 343 ; MIPS32-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $a3 344 ; MIPS32-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ugt), [[COPY]](s32), [[COPY2]] 345 ; MIPS32-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(ugt), [[COPY1]](s32), [[COPY3]] 346 ; MIPS32-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY3]] 347 ; MIPS32-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[ICMP]], [[ICMP1]] 348 ; MIPS32-NEXT: $v0 = COPY [[SELECT]](s32) 349 ; MIPS32-NEXT: RetRA implicit $v0 350 %2:_(s32) = COPY $a0 351 %3:_(s32) = COPY $a1 352 %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32) 353 %4:_(s32) = COPY $a2 354 %5:_(s32) = COPY $a3 355 %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32) 356 %6:_(s1) = G_ICMP intpred(ugt), %0(s64), %1 357 %7:_(s32) = G_ANYEXT %6(s1) 358 $v0 = COPY %7(s32) 359 RetRA implicit $v0 360 361... 362--- 363name: uge_i64 364alignment: 4 365tracksRegLiveness: true 366body: | 367 bb.1.entry: 368 liveins: $a0, $a1, $a2, $a3 369 370 ; MIPS32-LABEL: name: uge_i64 371 ; MIPS32: liveins: $a0, $a1, $a2, $a3 372 ; MIPS32-NEXT: {{ $}} 373 ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $a0 374 ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1 375 ; MIPS32-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2 376 ; MIPS32-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $a3 377 ; MIPS32-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(uge), [[COPY]](s32), [[COPY2]] 378 ; MIPS32-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(uge), [[COPY1]](s32), [[COPY3]] 379 ; MIPS32-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY3]] 380 ; MIPS32-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[ICMP]], [[ICMP1]] 381 ; MIPS32-NEXT: $v0 = COPY [[SELECT]](s32) 382 ; MIPS32-NEXT: RetRA implicit $v0 383 %2:_(s32) = COPY $a0 384 %3:_(s32) = COPY $a1 385 %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32) 386 %4:_(s32) = COPY $a2 387 %5:_(s32) = COPY $a3 388 %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32) 389 %6:_(s1) = G_ICMP intpred(uge), %0(s64), %1 390 %7:_(s32) = G_ANYEXT %6(s1) 391 $v0 = COPY %7(s32) 392 RetRA implicit $v0 393 394... 395--- 396name: ult_i64 397alignment: 4 398tracksRegLiveness: true 399body: | 400 bb.1.entry: 401 liveins: $a0, $a1, $a2, $a3 402 403 ; MIPS32-LABEL: name: ult_i64 404 ; MIPS32: liveins: $a0, $a1, $a2, $a3 405 ; MIPS32-NEXT: {{ $}} 406 ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $a0 407 ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1 408 ; MIPS32-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2 409 ; MIPS32-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $a3 410 ; MIPS32-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY]](s32), [[COPY2]] 411 ; MIPS32-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(ult), [[COPY1]](s32), [[COPY3]] 412 ; MIPS32-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY3]] 413 ; MIPS32-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[ICMP]], [[ICMP1]] 414 ; MIPS32-NEXT: $v0 = COPY [[SELECT]](s32) 415 ; MIPS32-NEXT: RetRA implicit $v0 416 %2:_(s32) = COPY $a0 417 %3:_(s32) = COPY $a1 418 %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32) 419 %4:_(s32) = COPY $a2 420 %5:_(s32) = COPY $a3 421 %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32) 422 %6:_(s1) = G_ICMP intpred(ult), %0(s64), %1 423 %7:_(s32) = G_ANYEXT %6(s1) 424 $v0 = COPY %7(s32) 425 RetRA implicit $v0 426 427... 428--- 429name: ule_i64 430alignment: 4 431tracksRegLiveness: true 432body: | 433 bb.1.entry: 434 liveins: $a0, $a1, $a2, $a3 435 436 ; MIPS32-LABEL: name: ule_i64 437 ; MIPS32: liveins: $a0, $a1, $a2, $a3 438 ; MIPS32-NEXT: {{ $}} 439 ; MIPS32-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $a0 440 ; MIPS32-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $a1 441 ; MIPS32-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $a2 442 ; MIPS32-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $a3 443 ; MIPS32-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(ule), [[COPY]](s32), [[COPY2]] 444 ; MIPS32-NEXT: [[ICMP1:%[0-9]+]]:_(s32) = G_ICMP intpred(ule), [[COPY1]](s32), [[COPY3]] 445 ; MIPS32-NEXT: [[ICMP2:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY3]] 446 ; MIPS32-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s32), [[ICMP]], [[ICMP1]] 447 ; MIPS32-NEXT: $v0 = COPY [[SELECT]](s32) 448 ; MIPS32-NEXT: RetRA implicit $v0 449 %2:_(s32) = COPY $a0 450 %3:_(s32) = COPY $a1 451 %0:_(s64) = G_MERGE_VALUES %2(s32), %3(s32) 452 %4:_(s32) = COPY $a2 453 %5:_(s32) = COPY $a3 454 %1:_(s64) = G_MERGE_VALUES %4(s32), %5(s32) 455 %6:_(s1) = G_ICMP intpred(ule), %0(s64), %1 456 %7:_(s32) = G_ANYEXT %6(s1) 457 $v0 = COPY %7(s32) 458 RetRA implicit $v0 459 460... 461