1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -march=amdgcn -mcpu=gfx900 -run-pass=peephole-opt --verify-machineinstrs -o - %s | FileCheck -check-prefix=GCN %s 3 4--- 5name: and_1_cmp_eq_u32_1 6body: | 7 ; GCN-LABEL: name: and_1_cmp_eq_u32_1 8 ; GCN: bb.0: 9 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 10 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 11 ; GCN-NEXT: {{ $}} 12 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 13 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 14 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 15 ; GCN-NEXT: S_BRANCH %bb.1 16 ; GCN-NEXT: {{ $}} 17 ; GCN-NEXT: bb.1: 18 ; GCN-NEXT: successors: %bb.2(0x80000000) 19 ; GCN-NEXT: {{ $}} 20 ; GCN-NEXT: {{ $}} 21 ; GCN-NEXT: bb.2: 22 ; GCN-NEXT: S_ENDPGM 0 23 bb.0: 24 successors: %bb.1(0x40000000), %bb.2(0x40000000) 25 liveins: $sgpr0, $vgpr0_vgpr1 26 27 %0:sreg_32 = COPY $sgpr0 28 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc 29 S_CMP_EQ_U32 killed %1:sreg_32, 1, implicit-def $scc 30 S_CBRANCH_SCC0 %bb.2, implicit $scc 31 S_BRANCH %bb.1 32 33 bb.1: 34 successors: %bb.2(0x80000000) 35 36 bb.2: 37 S_ENDPGM 0 38 39... 40 41--- 42name: and_1_cmp_eq_u32_1_used_and 43body: | 44 ; GCN-LABEL: name: and_1_cmp_eq_u32_1_used_and 45 ; GCN: bb.0: 46 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 47 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 48 ; GCN-NEXT: {{ $}} 49 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 50 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def $scc 51 ; GCN-NEXT: S_NOP 0, implicit [[S_AND_B32_]] 52 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 53 ; GCN-NEXT: S_BRANCH %bb.1 54 ; GCN-NEXT: {{ $}} 55 ; GCN-NEXT: bb.1: 56 ; GCN-NEXT: successors: %bb.2(0x80000000) 57 ; GCN-NEXT: {{ $}} 58 ; GCN-NEXT: {{ $}} 59 ; GCN-NEXT: bb.2: 60 ; GCN-NEXT: S_ENDPGM 0 61 bb.0: 62 successors: %bb.1(0x40000000), %bb.2(0x40000000) 63 liveins: $sgpr0, $vgpr0_vgpr1 64 65 %0:sreg_32 = COPY $sgpr0 66 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc 67 S_NOP 0, implicit %1 68 S_CMP_EQ_U32 killed %1:sreg_32, 1, implicit-def $scc 69 S_CBRANCH_SCC0 %bb.2, implicit $scc 70 S_BRANCH %bb.1 71 72 bb.1: 73 successors: %bb.2(0x80000000) 74 75 bb.2: 76 S_ENDPGM 0 77 78... 79 80--- 81name: and_1_cmp_eq_i32_1 82body: | 83 ; GCN-LABEL: name: and_1_cmp_eq_i32_1 84 ; GCN: bb.0: 85 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 86 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 87 ; GCN-NEXT: {{ $}} 88 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 89 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 90 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 91 ; GCN-NEXT: S_BRANCH %bb.1 92 ; GCN-NEXT: {{ $}} 93 ; GCN-NEXT: bb.1: 94 ; GCN-NEXT: successors: %bb.2(0x80000000) 95 ; GCN-NEXT: {{ $}} 96 ; GCN-NEXT: {{ $}} 97 ; GCN-NEXT: bb.2: 98 ; GCN-NEXT: S_ENDPGM 0 99 bb.0: 100 successors: %bb.1(0x40000000), %bb.2(0x40000000) 101 liveins: $sgpr0, $vgpr0_vgpr1 102 103 %0:sreg_32 = COPY $sgpr0 104 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc 105 S_CMP_EQ_I32 killed %1:sreg_32, 1, implicit-def $scc 106 S_CBRANCH_SCC0 %bb.2, implicit $scc 107 S_BRANCH %bb.1 108 109 bb.1: 110 successors: %bb.2(0x80000000) 111 112 bb.2: 113 S_ENDPGM 0 114 115... 116 117--- 118name: and_1_cmp_eq_i32_1_phys 119body: | 120 ; GCN-LABEL: name: and_1_cmp_eq_i32_1_phys 121 ; GCN: bb.0: 122 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 123 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 124 ; GCN-NEXT: {{ $}} 125 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 126 ; GCN-NEXT: $sgpr2 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc 127 ; GCN-NEXT: S_CMP_EQ_I32 killed $sgpr2, 1, implicit-def $scc 128 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 129 ; GCN-NEXT: S_BRANCH %bb.1 130 ; GCN-NEXT: {{ $}} 131 ; GCN-NEXT: bb.1: 132 ; GCN-NEXT: successors: %bb.2(0x80000000) 133 ; GCN-NEXT: {{ $}} 134 ; GCN-NEXT: {{ $}} 135 ; GCN-NEXT: bb.2: 136 ; GCN-NEXT: S_ENDPGM 0 137 bb.0: 138 successors: %bb.1(0x40000000), %bb.2(0x40000000) 139 liveins: $sgpr0, $vgpr0_vgpr1 140 141 %0:sreg_32 = COPY $sgpr0 142 $sgpr2 = S_AND_B32 1, killed %0, implicit-def dead $scc 143 S_CMP_EQ_I32 killed $sgpr2, 1, implicit-def $scc 144 S_CBRANCH_SCC0 %bb.2, implicit $scc 145 S_BRANCH %bb.1 146 147 bb.1: 148 successors: %bb.2(0x80000000) 149 150 bb.2: 151 S_ENDPGM 0 152 153... 154 155--- 156name: and_1_cmp_eq_i32_1_different_blocks 157body: | 158 ; GCN-LABEL: name: and_1_cmp_eq_i32_1_different_blocks 159 ; GCN: bb.0: 160 ; GCN-NEXT: successors: %bb.1(0x80000000) 161 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 162 ; GCN-NEXT: {{ $}} 163 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 164 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc 165 ; GCN-NEXT: {{ $}} 166 ; GCN-NEXT: bb.1: 167 ; GCN-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000) 168 ; GCN-NEXT: {{ $}} 169 ; GCN-NEXT: S_CMP_EQ_I32 [[S_AND_B32_]], 1, implicit-def $scc 170 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 171 ; GCN-NEXT: S_BRANCH %bb.1 172 ; GCN-NEXT: {{ $}} 173 ; GCN-NEXT: bb.2: 174 ; GCN-NEXT: successors: %bb.3(0x80000000) 175 ; GCN-NEXT: {{ $}} 176 ; GCN-NEXT: {{ $}} 177 ; GCN-NEXT: bb.3: 178 ; GCN-NEXT: S_ENDPGM 0 179 bb.0: 180 liveins: $sgpr0, $vgpr0_vgpr1 181 successors: %bb.1(0x80000000) 182 183 %0:sreg_32 = COPY $sgpr0 184 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc 185 186 bb.1: 187 successors: %bb.2(0x40000000), %bb.1(0x40000000) 188 189 S_CMP_EQ_I32 %1:sreg_32, 1, implicit-def $scc 190 S_CBRANCH_SCC0 %bb.2, implicit $scc 191 S_BRANCH %bb.1 192 193 bb.2: 194 successors: %bb.3(0x80000000) 195 196 bb.3: 197 S_ENDPGM 0 198 199... 200 201--- 202name: and_3_cmp_eq_1 203body: | 204 ; GCN-LABEL: name: and_3_cmp_eq_1 205 ; GCN: bb.0: 206 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 207 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 208 ; GCN-NEXT: {{ $}} 209 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 210 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 3, killed [[COPY]], implicit-def dead $scc 211 ; GCN-NEXT: S_CMP_EQ_U32 killed [[S_AND_B32_]], 1, implicit-def $scc 212 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 213 ; GCN-NEXT: S_BRANCH %bb.1 214 ; GCN-NEXT: {{ $}} 215 ; GCN-NEXT: bb.1: 216 ; GCN-NEXT: successors: %bb.2(0x80000000) 217 ; GCN-NEXT: {{ $}} 218 ; GCN-NEXT: {{ $}} 219 ; GCN-NEXT: bb.2: 220 ; GCN-NEXT: S_ENDPGM 0 221 bb.0: 222 successors: %bb.1(0x40000000), %bb.2(0x40000000) 223 liveins: $sgpr0, $vgpr0_vgpr1 224 225 %0:sreg_32 = COPY $sgpr0 226 %1:sreg_32 = S_AND_B32 3, killed %0, implicit-def dead $scc 227 S_CMP_EQ_U32 killed %1:sreg_32, 1, implicit-def $scc 228 S_CBRANCH_SCC0 %bb.2, implicit $scc 229 S_BRANCH %bb.1 230 231 bb.1: 232 successors: %bb.2(0x80000000) 233 234 bb.2: 235 S_ENDPGM 0 236 237... 238 239--- 240name: commuted_and_1_cmp_eq_1 241body: | 242 ; GCN-LABEL: name: commuted_and_1_cmp_eq_1 243 ; GCN: bb.0: 244 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 245 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 246 ; GCN-NEXT: {{ $}} 247 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 248 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 249 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 250 ; GCN-NEXT: S_BRANCH %bb.1 251 ; GCN-NEXT: {{ $}} 252 ; GCN-NEXT: bb.1: 253 ; GCN-NEXT: successors: %bb.2(0x80000000) 254 ; GCN-NEXT: {{ $}} 255 ; GCN-NEXT: {{ $}} 256 ; GCN-NEXT: bb.2: 257 ; GCN-NEXT: S_ENDPGM 0 258 bb.0: 259 successors: %bb.1(0x40000000), %bb.2(0x40000000) 260 liveins: $sgpr0, $vgpr0_vgpr1 261 262 %0:sreg_32 = COPY $sgpr0 263 %1:sreg_32 = S_AND_B32 killed %0, 1, implicit-def dead $scc 264 S_CMP_EQ_U32 killed %1:sreg_32, 1, implicit-def $scc 265 S_CBRANCH_SCC0 %bb.2, implicit $scc 266 S_BRANCH %bb.1 267 268 bb.1: 269 successors: %bb.2(0x80000000) 270 271 bb.2: 272 S_ENDPGM 0 273 274... 275 276--- 277name: cmp_eq_1_undef_src 278body: | 279 ; GCN-LABEL: name: cmp_eq_1_undef_src 280 ; GCN: bb.0: 281 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 282 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 283 ; GCN-NEXT: {{ $}} 284 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 285 ; GCN-NEXT: S_CMP_EQ_U32 undef %1:sreg_32, 1, implicit-def $scc 286 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 287 ; GCN-NEXT: S_BRANCH %bb.1 288 ; GCN-NEXT: {{ $}} 289 ; GCN-NEXT: bb.1: 290 ; GCN-NEXT: successors: %bb.2(0x80000000) 291 ; GCN-NEXT: {{ $}} 292 ; GCN-NEXT: {{ $}} 293 ; GCN-NEXT: bb.2: 294 ; GCN-NEXT: S_ENDPGM 0 295 bb.0: 296 successors: %bb.1(0x40000000), %bb.2(0x40000000) 297 liveins: $sgpr0, $vgpr0_vgpr1 298 299 %0:sreg_32 = COPY $sgpr0 300 S_CMP_EQ_U32 undef %1:sreg_32, 1, implicit-def $scc 301 S_CBRANCH_SCC0 %bb.2, implicit $scc 302 S_BRANCH %bb.1 303 304 bb.1: 305 successors: %bb.2(0x80000000) 306 307 bb.2: 308 S_ENDPGM 0 309 310... 311 312--- 313name: and_1_cmp_subreg0_eq_1 314body: | 315 ; GCN-LABEL: name: and_1_cmp_subreg0_eq_1 316 ; GCN: bb.0: 317 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 318 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 319 ; GCN-NEXT: {{ $}} 320 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 321 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc 322 ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sreg_64 = REG_SEQUENCE [[S_AND_B32_]], %subreg.sub0, [[S_AND_B32_]], %subreg.sub1 323 ; GCN-NEXT: S_CMP_EQ_U32 killed [[REG_SEQUENCE]].sub0, 1, implicit-def $scc 324 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 325 ; GCN-NEXT: S_BRANCH %bb.1 326 ; GCN-NEXT: {{ $}} 327 ; GCN-NEXT: bb.1: 328 ; GCN-NEXT: successors: %bb.2(0x80000000) 329 ; GCN-NEXT: {{ $}} 330 ; GCN-NEXT: {{ $}} 331 ; GCN-NEXT: bb.2: 332 ; GCN-NEXT: S_ENDPGM 0 333 bb.0: 334 successors: %bb.1(0x40000000), %bb.2(0x40000000) 335 liveins: $sgpr0, $vgpr0_vgpr1 336 337 %0:sreg_32 = COPY $sgpr0 338 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc 339 %2:sreg_64 = REG_SEQUENCE %1, %subreg.sub0, %1, %subreg.sub1 340 S_CMP_EQ_U32 killed %2.sub0:sreg_64, 1, implicit-def $scc 341 S_CBRANCH_SCC0 %bb.2, implicit $scc 342 S_BRANCH %bb.1 343 344 bb.1: 345 successors: %bb.2(0x80000000) 346 347 bb.2: 348 S_ENDPGM 0 349 350... 351 352--- 353name: and_reg_cmp_eq_1 354body: | 355 ; GCN-LABEL: name: and_reg_cmp_eq_1 356 ; GCN: bb.0: 357 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 358 ; GCN-NEXT: liveins: $sgpr0, $sgpr1, $vgpr0_vgpr1 359 ; GCN-NEXT: {{ $}} 360 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 361 ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1 362 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 killed [[COPY]], killed [[COPY1]], implicit-def dead $scc 363 ; GCN-NEXT: S_CMP_EQ_U32 killed [[S_AND_B32_]], 1, implicit-def $scc 364 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 365 ; GCN-NEXT: S_BRANCH %bb.1 366 ; GCN-NEXT: {{ $}} 367 ; GCN-NEXT: bb.1: 368 ; GCN-NEXT: successors: %bb.2(0x80000000) 369 ; GCN-NEXT: {{ $}} 370 ; GCN-NEXT: {{ $}} 371 ; GCN-NEXT: bb.2: 372 ; GCN-NEXT: S_ENDPGM 0 373 bb.0: 374 successors: %bb.1(0x40000000), %bb.2(0x40000000) 375 liveins: $sgpr0, $sgpr1, $vgpr0_vgpr1 376 377 %0:sreg_32 = COPY $sgpr0 378 %1:sreg_32 = COPY $sgpr1 379 %2:sreg_32 = S_AND_B32 killed %0, killed %1, implicit-def dead $scc 380 S_CMP_EQ_U32 killed %2:sreg_32, 1, implicit-def $scc 381 S_CBRANCH_SCC0 %bb.2, implicit $scc 382 S_BRANCH %bb.1 383 384 bb.1: 385 successors: %bb.2(0x80000000) 386 387 bb.2: 388 S_ENDPGM 0 389 390... 391 392--- 393name: and_1_cmp_eq_1_killed_scc 394body: | 395 ; GCN-LABEL: name: and_1_cmp_eq_1_killed_scc 396 ; GCN: bb.0: 397 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 398 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 399 ; GCN-NEXT: {{ $}} 400 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 401 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def $scc 402 ; GCN-NEXT: S_NOP 0, implicit killed $scc 403 ; GCN-NEXT: S_CMP_EQ_U32 killed [[S_AND_B32_]], 1, implicit-def $scc 404 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 405 ; GCN-NEXT: S_BRANCH %bb.1 406 ; GCN-NEXT: {{ $}} 407 ; GCN-NEXT: bb.1: 408 ; GCN-NEXT: successors: %bb.2(0x80000000) 409 ; GCN-NEXT: {{ $}} 410 ; GCN-NEXT: {{ $}} 411 ; GCN-NEXT: bb.2: 412 ; GCN-NEXT: S_ENDPGM 0 413 bb.0: 414 successors: %bb.1(0x40000000), %bb.2(0x40000000) 415 liveins: $sgpr0, $vgpr0_vgpr1 416 417 %0:sreg_32 = COPY $sgpr0 418 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def $scc 419 S_NOP 0, implicit killed $scc 420 S_CMP_EQ_U32 killed %1:sreg_32, 1, implicit-def $scc 421 S_CBRANCH_SCC0 %bb.2, implicit $scc 422 S_BRANCH %bb.1 423 424 bb.1: 425 successors: %bb.2(0x80000000) 426 427 bb.2: 428 S_ENDPGM 0 429 430... 431 432--- 433name: and_1_cmp_eq_1_clobbered_scc 434body: | 435 ; GCN-LABEL: name: and_1_cmp_eq_1_clobbered_scc 436 ; GCN: bb.0: 437 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 438 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 439 ; GCN-NEXT: {{ $}} 440 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 441 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def $scc 442 ; GCN-NEXT: S_NOP 0, implicit-def $scc 443 ; GCN-NEXT: S_CMP_EQ_U32 killed [[S_AND_B32_]], 1, implicit-def $scc 444 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 445 ; GCN-NEXT: S_BRANCH %bb.1 446 ; GCN-NEXT: {{ $}} 447 ; GCN-NEXT: bb.1: 448 ; GCN-NEXT: successors: %bb.2(0x80000000) 449 ; GCN-NEXT: {{ $}} 450 ; GCN-NEXT: {{ $}} 451 ; GCN-NEXT: bb.2: 452 ; GCN-NEXT: S_ENDPGM 0 453 bb.0: 454 successors: %bb.1(0x40000000), %bb.2(0x40000000) 455 liveins: $sgpr0, $vgpr0_vgpr1 456 457 %0:sreg_32 = COPY $sgpr0 458 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def $scc 459 S_NOP 0, implicit-def $scc 460 S_CMP_EQ_U32 killed %1:sreg_32, 1, implicit-def $scc 461 S_CBRANCH_SCC0 %bb.2, implicit $scc 462 S_BRANCH %bb.1 463 464 bb.1: 465 successors: %bb.2(0x80000000) 466 467 bb.2: 468 S_ENDPGM 0 469 470... 471 472--- 473name: and_1_cmp_eq_2 474body: | 475 ; GCN-LABEL: name: and_1_cmp_eq_2 476 ; GCN: bb.0: 477 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 478 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 479 ; GCN-NEXT: {{ $}} 480 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 481 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc 482 ; GCN-NEXT: S_CMP_EQ_U32 killed [[S_AND_B32_]], 2, implicit-def $scc 483 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 484 ; GCN-NEXT: S_BRANCH %bb.1 485 ; GCN-NEXT: {{ $}} 486 ; GCN-NEXT: bb.1: 487 ; GCN-NEXT: successors: %bb.2(0x80000000) 488 ; GCN-NEXT: {{ $}} 489 ; GCN-NEXT: {{ $}} 490 ; GCN-NEXT: bb.2: 491 ; GCN-NEXT: S_ENDPGM 0 492 bb.0: 493 successors: %bb.1(0x40000000), %bb.2(0x40000000) 494 liveins: $sgpr0, $vgpr0_vgpr1 495 496 %0:sreg_32 = COPY $sgpr0 497 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc 498 S_CMP_EQ_U32 killed %1:sreg_32, 2, implicit-def $scc 499 S_CBRANCH_SCC0 %bb.2, implicit $scc 500 S_BRANCH %bb.1 501 502 bb.1: 503 successors: %bb.2(0x80000000) 504 505 bb.2: 506 S_ENDPGM 0 507 508... 509 510--- 511name: or_1_cmp_eq_u32_1 512body: | 513 ; GCN-LABEL: name: or_1_cmp_eq_u32_1 514 ; GCN: bb.0: 515 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 516 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 517 ; GCN-NEXT: {{ $}} 518 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 519 ; GCN-NEXT: [[S_OR_B32_:%[0-9]+]]:sreg_32 = S_OR_B32 1, killed [[COPY]], implicit-def dead $scc 520 ; GCN-NEXT: S_CMP_EQ_U32 killed [[S_OR_B32_]], 1, implicit-def $scc 521 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 522 ; GCN-NEXT: S_BRANCH %bb.1 523 ; GCN-NEXT: {{ $}} 524 ; GCN-NEXT: bb.1: 525 ; GCN-NEXT: successors: %bb.2(0x80000000) 526 ; GCN-NEXT: {{ $}} 527 ; GCN-NEXT: {{ $}} 528 ; GCN-NEXT: bb.2: 529 ; GCN-NEXT: S_ENDPGM 0 530 bb.0: 531 successors: %bb.1(0x40000000), %bb.2(0x40000000) 532 liveins: $sgpr0, $vgpr0_vgpr1 533 534 %0:sreg_32 = COPY $sgpr0 535 %1:sreg_32 = S_OR_B32 1, killed %0, implicit-def dead $scc 536 S_CMP_EQ_U32 killed %1:sreg_32, 1, implicit-def $scc 537 S_CBRANCH_SCC0 %bb.2, implicit $scc 538 S_BRANCH %bb.1 539 540 bb.1: 541 successors: %bb.2(0x80000000) 542 543 bb.2: 544 S_ENDPGM 0 545 546... 547 548--- 549name: and_1_cmp_ge_u32_1 550body: | 551 ; GCN-LABEL: name: and_1_cmp_ge_u32_1 552 ; GCN: bb.0: 553 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 554 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 555 ; GCN-NEXT: {{ $}} 556 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 557 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 558 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 559 ; GCN-NEXT: S_BRANCH %bb.1 560 ; GCN-NEXT: {{ $}} 561 ; GCN-NEXT: bb.1: 562 ; GCN-NEXT: successors: %bb.2(0x80000000) 563 ; GCN-NEXT: {{ $}} 564 ; GCN-NEXT: {{ $}} 565 ; GCN-NEXT: bb.2: 566 ; GCN-NEXT: S_ENDPGM 0 567 bb.0: 568 successors: %bb.1(0x40000000), %bb.2(0x40000000) 569 liveins: $sgpr0, $vgpr0_vgpr1 570 571 %0:sreg_32 = COPY $sgpr0 572 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc 573 S_CMP_GE_U32 killed %1:sreg_32, 1, implicit-def $scc 574 S_CBRANCH_SCC0 %bb.2, implicit $scc 575 S_BRANCH %bb.1 576 577 bb.1: 578 successors: %bb.2(0x80000000) 579 580 bb.2: 581 S_ENDPGM 0 582 583... 584 585--- 586name: and_1_cmp_ge_i32_1 587body: | 588 ; GCN-LABEL: name: and_1_cmp_ge_i32_1 589 ; GCN: bb.0: 590 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 591 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 592 ; GCN-NEXT: {{ $}} 593 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 594 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 595 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 596 ; GCN-NEXT: S_BRANCH %bb.1 597 ; GCN-NEXT: {{ $}} 598 ; GCN-NEXT: bb.1: 599 ; GCN-NEXT: successors: %bb.2(0x80000000) 600 ; GCN-NEXT: {{ $}} 601 ; GCN-NEXT: {{ $}} 602 ; GCN-NEXT: bb.2: 603 ; GCN-NEXT: S_ENDPGM 0 604 bb.0: 605 successors: %bb.1(0x40000000), %bb.2(0x40000000) 606 liveins: $sgpr0, $vgpr0_vgpr1 607 608 %0:sreg_32 = COPY $sgpr0 609 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc 610 S_CMP_GE_I32 killed %1:sreg_32, 1, implicit-def $scc 611 S_CBRANCH_SCC0 %bb.2, implicit $scc 612 S_BRANCH %bb.1 613 614 bb.1: 615 successors: %bb.2(0x80000000) 616 617 bb.2: 618 S_ENDPGM 0 619 620... 621 622--- 623name: and_1_cmp_gt_u32_0 624body: | 625 ; GCN-LABEL: name: and_1_cmp_gt_u32_0 626 ; GCN: bb.0: 627 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 628 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 629 ; GCN-NEXT: {{ $}} 630 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 631 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 632 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 633 ; GCN-NEXT: S_BRANCH %bb.1 634 ; GCN-NEXT: {{ $}} 635 ; GCN-NEXT: bb.1: 636 ; GCN-NEXT: successors: %bb.2(0x80000000) 637 ; GCN-NEXT: {{ $}} 638 ; GCN-NEXT: {{ $}} 639 ; GCN-NEXT: bb.2: 640 ; GCN-NEXT: S_ENDPGM 0 641 bb.0: 642 successors: %bb.1(0x40000000), %bb.2(0x40000000) 643 liveins: $sgpr0, $vgpr0_vgpr1 644 645 %0:sreg_32 = COPY $sgpr0 646 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc 647 S_CMP_GT_U32 killed %1:sreg_32, 0, implicit-def $scc 648 S_CBRANCH_SCC0 %bb.2, implicit $scc 649 S_BRANCH %bb.1 650 651 bb.1: 652 successors: %bb.2(0x80000000) 653 654 bb.2: 655 S_ENDPGM 0 656 657... 658 659--- 660name: and_1_cmp_gt_i32_0 661body: | 662 ; GCN-LABEL: name: and_1_cmp_gt_i32_0 663 ; GCN: bb.0: 664 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 665 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 666 ; GCN-NEXT: {{ $}} 667 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 668 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 669 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 670 ; GCN-NEXT: S_BRANCH %bb.1 671 ; GCN-NEXT: {{ $}} 672 ; GCN-NEXT: bb.1: 673 ; GCN-NEXT: successors: %bb.2(0x80000000) 674 ; GCN-NEXT: {{ $}} 675 ; GCN-NEXT: {{ $}} 676 ; GCN-NEXT: bb.2: 677 ; GCN-NEXT: S_ENDPGM 0 678 bb.0: 679 successors: %bb.1(0x40000000), %bb.2(0x40000000) 680 liveins: $sgpr0, $vgpr0_vgpr1 681 682 %0:sreg_32 = COPY $sgpr0 683 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc 684 S_CMP_GT_U32 killed %1:sreg_32, 0, implicit-def $scc 685 S_CBRANCH_SCC0 %bb.2, implicit $scc 686 S_BRANCH %bb.1 687 688 bb.1: 689 successors: %bb.2(0x80000000) 690 691 bb.2: 692 S_ENDPGM 0 693 694... 695 696--- 697name: and_1_cmp_gt_1 698body: | 699 ; GCN-LABEL: name: and_1_cmp_gt_1 700 ; GCN: bb.0: 701 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 702 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 703 ; GCN-NEXT: {{ $}} 704 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 705 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc 706 ; GCN-NEXT: S_CMP_GT_U32 killed [[S_AND_B32_]], 1, implicit-def $scc 707 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 708 ; GCN-NEXT: S_BRANCH %bb.1 709 ; GCN-NEXT: {{ $}} 710 ; GCN-NEXT: bb.1: 711 ; GCN-NEXT: successors: %bb.2(0x80000000) 712 ; GCN-NEXT: {{ $}} 713 ; GCN-NEXT: {{ $}} 714 ; GCN-NEXT: bb.2: 715 ; GCN-NEXT: S_ENDPGM 0 716 bb.0: 717 successors: %bb.1(0x40000000), %bb.2(0x40000000) 718 liveins: $sgpr0, $vgpr0_vgpr1 719 720 %0:sreg_32 = COPY $sgpr0 721 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc 722 S_CMP_GT_U32 killed %1:sreg_32, 1, implicit-def $scc 723 S_CBRANCH_SCC0 %bb.2, implicit $scc 724 S_BRANCH %bb.1 725 726 bb.1: 727 successors: %bb.2(0x80000000) 728 729 bb.2: 730 S_ENDPGM 0 731 732... 733 734--- 735name: and_1_cmp_lg_u32_0 736body: | 737 ; GCN-LABEL: name: and_1_cmp_lg_u32_0 738 ; GCN: bb.0: 739 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 740 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 741 ; GCN-NEXT: {{ $}} 742 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 743 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 744 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 745 ; GCN-NEXT: S_BRANCH %bb.1 746 ; GCN-NEXT: {{ $}} 747 ; GCN-NEXT: bb.1: 748 ; GCN-NEXT: successors: %bb.2(0x80000000) 749 ; GCN-NEXT: {{ $}} 750 ; GCN-NEXT: {{ $}} 751 ; GCN-NEXT: bb.2: 752 ; GCN-NEXT: S_ENDPGM 0 753 bb.0: 754 successors: %bb.1(0x40000000), %bb.2(0x40000000) 755 liveins: $sgpr0, $vgpr0_vgpr1 756 757 %0:sreg_32 = COPY $sgpr0 758 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc 759 S_CMP_LG_U32 killed %1:sreg_32, 0, implicit-def $scc 760 S_CBRANCH_SCC0 %bb.2, implicit $scc 761 S_BRANCH %bb.1 762 763 bb.1: 764 successors: %bb.2(0x80000000) 765 766 bb.2: 767 S_ENDPGM 0 768 769... 770 771--- 772name: and_1_cmp_lg_i32_0 773body: | 774 ; GCN-LABEL: name: and_1_cmp_lg_i32_0 775 ; GCN: bb.0: 776 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 777 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 778 ; GCN-NEXT: {{ $}} 779 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 780 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 781 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 782 ; GCN-NEXT: S_BRANCH %bb.1 783 ; GCN-NEXT: {{ $}} 784 ; GCN-NEXT: bb.1: 785 ; GCN-NEXT: successors: %bb.2(0x80000000) 786 ; GCN-NEXT: {{ $}} 787 ; GCN-NEXT: {{ $}} 788 ; GCN-NEXT: bb.2: 789 ; GCN-NEXT: S_ENDPGM 0 790 bb.0: 791 successors: %bb.1(0x40000000), %bb.2(0x40000000) 792 liveins: $sgpr0, $vgpr0_vgpr1 793 794 %0:sreg_32 = COPY $sgpr0 795 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc 796 S_CMP_LG_I32 killed %1:sreg_32, 0, implicit-def $scc 797 S_CBRANCH_SCC0 %bb.2, implicit $scc 798 S_BRANCH %bb.1 799 800 bb.1: 801 successors: %bb.2(0x80000000) 802 803 bb.2: 804 S_ENDPGM 0 805 806... 807 808--- 809name: and_1_cmp_eq_u64_1 810body: | 811 ; GCN-LABEL: name: and_1_cmp_eq_u64_1 812 ; GCN: bb.0: 813 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 814 ; GCN-NEXT: liveins: $sgpr0_sgpr1, $vgpr0_vgpr1 815 ; GCN-NEXT: {{ $}} 816 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1 817 ; GCN-NEXT: S_BITCMP1_B64 killed [[COPY]], 0, implicit-def $scc 818 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 819 ; GCN-NEXT: S_BRANCH %bb.1 820 ; GCN-NEXT: {{ $}} 821 ; GCN-NEXT: bb.1: 822 ; GCN-NEXT: successors: %bb.2(0x80000000) 823 ; GCN-NEXT: {{ $}} 824 ; GCN-NEXT: {{ $}} 825 ; GCN-NEXT: bb.2: 826 ; GCN-NEXT: S_ENDPGM 0 827 bb.0: 828 successors: %bb.1(0x40000000), %bb.2(0x40000000) 829 liveins: $sgpr0_sgpr1, $vgpr0_vgpr1 830 831 %0:sreg_64 = COPY $sgpr0_sgpr1 832 %1:sreg_64 = S_AND_B64 1, killed %0, implicit-def dead $scc 833 S_CMP_EQ_U64 killed %1:sreg_64, 1, implicit-def $scc 834 S_CBRANCH_SCC0 %bb.2, implicit $scc 835 S_BRANCH %bb.1 836 837 bb.1: 838 successors: %bb.2(0x80000000) 839 840 bb.2: 841 S_ENDPGM 0 842 843... 844 845--- 846name: and_1_cmp_lg_u64_0 847body: | 848 ; GCN-LABEL: name: and_1_cmp_lg_u64_0 849 ; GCN: bb.0: 850 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 851 ; GCN-NEXT: liveins: $sgpr0_sgpr1, $vgpr0_vgpr1 852 ; GCN-NEXT: {{ $}} 853 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1 854 ; GCN-NEXT: S_BITCMP1_B64 killed [[COPY]], 0, implicit-def $scc 855 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 856 ; GCN-NEXT: S_BRANCH %bb.1 857 ; GCN-NEXT: {{ $}} 858 ; GCN-NEXT: bb.1: 859 ; GCN-NEXT: successors: %bb.2(0x80000000) 860 ; GCN-NEXT: {{ $}} 861 ; GCN-NEXT: {{ $}} 862 ; GCN-NEXT: bb.2: 863 ; GCN-NEXT: S_ENDPGM 0 864 bb.0: 865 successors: %bb.1(0x40000000), %bb.2(0x40000000) 866 liveins: $sgpr0_sgpr1, $vgpr0_vgpr1 867 868 %0:sreg_64 = COPY $sgpr0_sgpr1 869 %1:sreg_64 = S_AND_B64 1, killed %0, implicit-def dead $scc 870 S_CMP_LG_U64 killed %1:sreg_64, 0, implicit-def $scc 871 S_CBRANCH_SCC0 %bb.2, implicit $scc 872 S_BRANCH %bb.1 873 874 bb.1: 875 successors: %bb.2(0x80000000) 876 877 bb.2: 878 S_ENDPGM 0 879 880... 881 882--- 883name: and_1_cmpk_eq_u32_1 884body: | 885 ; GCN-LABEL: name: and_1_cmpk_eq_u32_1 886 ; GCN: bb.0: 887 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 888 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 889 ; GCN-NEXT: {{ $}} 890 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 891 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 892 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 893 ; GCN-NEXT: S_BRANCH %bb.1 894 ; GCN-NEXT: {{ $}} 895 ; GCN-NEXT: bb.1: 896 ; GCN-NEXT: successors: %bb.2(0x80000000) 897 ; GCN-NEXT: {{ $}} 898 ; GCN-NEXT: {{ $}} 899 ; GCN-NEXT: bb.2: 900 ; GCN-NEXT: S_ENDPGM 0 901 bb.0: 902 successors: %bb.1(0x40000000), %bb.2(0x40000000) 903 liveins: $sgpr0, $vgpr0_vgpr1 904 905 %0:sreg_32 = COPY $sgpr0 906 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc 907 S_CMPK_EQ_U32 killed %1:sreg_32, 1, implicit-def $scc 908 S_CBRANCH_SCC0 %bb.2, implicit $scc 909 S_BRANCH %bb.1 910 911 bb.1: 912 successors: %bb.2(0x80000000) 913 914 bb.2: 915 S_ENDPGM 0 916 917... 918 919--- 920name: and_1_cmpk_eq_i32_1 921body: | 922 ; GCN-LABEL: name: and_1_cmpk_eq_i32_1 923 ; GCN: bb.0: 924 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 925 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 926 ; GCN-NEXT: {{ $}} 927 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 928 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 929 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 930 ; GCN-NEXT: S_BRANCH %bb.1 931 ; GCN-NEXT: {{ $}} 932 ; GCN-NEXT: bb.1: 933 ; GCN-NEXT: successors: %bb.2(0x80000000) 934 ; GCN-NEXT: {{ $}} 935 ; GCN-NEXT: {{ $}} 936 ; GCN-NEXT: bb.2: 937 ; GCN-NEXT: S_ENDPGM 0 938 bb.0: 939 successors: %bb.1(0x40000000), %bb.2(0x40000000) 940 liveins: $sgpr0, $vgpr0_vgpr1 941 942 %0:sreg_32 = COPY $sgpr0 943 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc 944 S_CMPK_EQ_I32 killed %1:sreg_32, 1, implicit-def $scc 945 S_CBRANCH_SCC0 %bb.2, implicit $scc 946 S_BRANCH %bb.1 947 948 bb.1: 949 successors: %bb.2(0x80000000) 950 951 bb.2: 952 S_ENDPGM 0 953 954... 955 956--- 957name: and_1_cmpk_ge_u32_1 958body: | 959 ; GCN-LABEL: name: and_1_cmpk_ge_u32_1 960 ; GCN: bb.0: 961 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 962 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 963 ; GCN-NEXT: {{ $}} 964 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 965 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 966 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 967 ; GCN-NEXT: S_BRANCH %bb.1 968 ; GCN-NEXT: {{ $}} 969 ; GCN-NEXT: bb.1: 970 ; GCN-NEXT: successors: %bb.2(0x80000000) 971 ; GCN-NEXT: {{ $}} 972 ; GCN-NEXT: {{ $}} 973 ; GCN-NEXT: bb.2: 974 ; GCN-NEXT: S_ENDPGM 0 975 bb.0: 976 successors: %bb.1(0x40000000), %bb.2(0x40000000) 977 liveins: $sgpr0, $vgpr0_vgpr1 978 979 %0:sreg_32 = COPY $sgpr0 980 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc 981 S_CMPK_GE_U32 killed %1:sreg_32, 1, implicit-def $scc 982 S_CBRANCH_SCC0 %bb.2, implicit $scc 983 S_BRANCH %bb.1 984 985 bb.1: 986 successors: %bb.2(0x80000000) 987 988 bb.2: 989 S_ENDPGM 0 990 991... 992 993--- 994name: and_1_cmpk_ge_i32_1 995body: | 996 ; GCN-LABEL: name: and_1_cmpk_ge_i32_1 997 ; GCN: bb.0: 998 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 999 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 1000 ; GCN-NEXT: {{ $}} 1001 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1002 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 1003 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1004 ; GCN-NEXT: S_BRANCH %bb.1 1005 ; GCN-NEXT: {{ $}} 1006 ; GCN-NEXT: bb.1: 1007 ; GCN-NEXT: successors: %bb.2(0x80000000) 1008 ; GCN-NEXT: {{ $}} 1009 ; GCN-NEXT: {{ $}} 1010 ; GCN-NEXT: bb.2: 1011 ; GCN-NEXT: S_ENDPGM 0 1012 bb.0: 1013 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1014 liveins: $sgpr0, $vgpr0_vgpr1 1015 1016 %0:sreg_32 = COPY $sgpr0 1017 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc 1018 S_CMPK_GE_I32 killed %1:sreg_32, 1, implicit-def $scc 1019 S_CBRANCH_SCC0 %bb.2, implicit $scc 1020 S_BRANCH %bb.1 1021 1022 bb.1: 1023 successors: %bb.2(0x80000000) 1024 1025 bb.2: 1026 S_ENDPGM 0 1027 1028... 1029 1030--- 1031name: and_1_cmpk_lg_u32_0 1032body: | 1033 ; GCN-LABEL: name: and_1_cmpk_lg_u32_0 1034 ; GCN: bb.0: 1035 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1036 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 1037 ; GCN-NEXT: {{ $}} 1038 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1039 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 1040 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1041 ; GCN-NEXT: S_BRANCH %bb.1 1042 ; GCN-NEXT: {{ $}} 1043 ; GCN-NEXT: bb.1: 1044 ; GCN-NEXT: successors: %bb.2(0x80000000) 1045 ; GCN-NEXT: {{ $}} 1046 ; GCN-NEXT: {{ $}} 1047 ; GCN-NEXT: bb.2: 1048 ; GCN-NEXT: S_ENDPGM 0 1049 bb.0: 1050 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1051 liveins: $sgpr0, $vgpr0_vgpr1 1052 1053 %0:sreg_32 = COPY $sgpr0 1054 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc 1055 S_CMPK_LG_U32 killed %1:sreg_32, 0, implicit-def $scc 1056 S_CBRANCH_SCC0 %bb.2, implicit $scc 1057 S_BRANCH %bb.1 1058 1059 bb.1: 1060 successors: %bb.2(0x80000000) 1061 1062 bb.2: 1063 S_ENDPGM 0 1064 1065... 1066 1067--- 1068name: and_1_cmpk_lg_i32_0 1069body: | 1070 ; GCN-LABEL: name: and_1_cmpk_lg_i32_0 1071 ; GCN: bb.0: 1072 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1073 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 1074 ; GCN-NEXT: {{ $}} 1075 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1076 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 1077 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1078 ; GCN-NEXT: S_BRANCH %bb.1 1079 ; GCN-NEXT: {{ $}} 1080 ; GCN-NEXT: bb.1: 1081 ; GCN-NEXT: successors: %bb.2(0x80000000) 1082 ; GCN-NEXT: {{ $}} 1083 ; GCN-NEXT: {{ $}} 1084 ; GCN-NEXT: bb.2: 1085 ; GCN-NEXT: S_ENDPGM 0 1086 bb.0: 1087 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1088 liveins: $sgpr0, $vgpr0_vgpr1 1089 1090 %0:sreg_32 = COPY $sgpr0 1091 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc 1092 S_CMPK_LG_I32 killed %1:sreg_32, 0, implicit-def $scc 1093 S_CBRANCH_SCC0 %bb.2, implicit $scc 1094 S_BRANCH %bb.1 1095 1096 bb.1: 1097 successors: %bb.2(0x80000000) 1098 1099 bb.2: 1100 S_ENDPGM 0 1101 1102... 1103 1104--- 1105name: and_1_cmpk_gt_u32_0 1106body: | 1107 ; GCN-LABEL: name: and_1_cmpk_gt_u32_0 1108 ; GCN: bb.0: 1109 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1110 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 1111 ; GCN-NEXT: {{ $}} 1112 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1113 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 1114 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1115 ; GCN-NEXT: S_BRANCH %bb.1 1116 ; GCN-NEXT: {{ $}} 1117 ; GCN-NEXT: bb.1: 1118 ; GCN-NEXT: successors: %bb.2(0x80000000) 1119 ; GCN-NEXT: {{ $}} 1120 ; GCN-NEXT: {{ $}} 1121 ; GCN-NEXT: bb.2: 1122 ; GCN-NEXT: S_ENDPGM 0 1123 bb.0: 1124 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1125 liveins: $sgpr0, $vgpr0_vgpr1 1126 1127 %0:sreg_32 = COPY $sgpr0 1128 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc 1129 S_CMPK_GT_U32 killed %1:sreg_32, 0, implicit-def $scc 1130 S_CBRANCH_SCC0 %bb.2, implicit $scc 1131 S_BRANCH %bb.1 1132 1133 bb.1: 1134 successors: %bb.2(0x80000000) 1135 1136 bb.2: 1137 S_ENDPGM 0 1138 1139... 1140 1141--- 1142name: and_1_cmpk_gt_i32_0 1143body: | 1144 ; GCN-LABEL: name: and_1_cmpk_gt_i32_0 1145 ; GCN: bb.0: 1146 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1147 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 1148 ; GCN-NEXT: {{ $}} 1149 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1150 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 1151 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1152 ; GCN-NEXT: S_BRANCH %bb.1 1153 ; GCN-NEXT: {{ $}} 1154 ; GCN-NEXT: bb.1: 1155 ; GCN-NEXT: successors: %bb.2(0x80000000) 1156 ; GCN-NEXT: {{ $}} 1157 ; GCN-NEXT: {{ $}} 1158 ; GCN-NEXT: bb.2: 1159 ; GCN-NEXT: S_ENDPGM 0 1160 bb.0: 1161 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1162 liveins: $sgpr0, $vgpr0_vgpr1 1163 1164 %0:sreg_32 = COPY $sgpr0 1165 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc 1166 S_CMPK_GT_I32 killed %1:sreg_32, 0, implicit-def $scc 1167 S_CBRANCH_SCC0 %bb.2, implicit $scc 1168 S_BRANCH %bb.1 1169 1170 bb.1: 1171 successors: %bb.2(0x80000000) 1172 1173 bb.2: 1174 S_ENDPGM 0 1175 1176... 1177 1178--- 1179name: and_1_cmp_eq_u32_1_imm_src 1180body: | 1181 ; GCN-LABEL: name: and_1_cmp_eq_u32_1_imm_src 1182 ; GCN: bb.0: 1183 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1184 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 1185 ; GCN-NEXT: {{ $}} 1186 ; GCN-NEXT: S_BITCMP1_B32 11, 0, implicit-def $scc 1187 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1188 ; GCN-NEXT: S_BRANCH %bb.1 1189 ; GCN-NEXT: {{ $}} 1190 ; GCN-NEXT: bb.1: 1191 ; GCN-NEXT: successors: %bb.2(0x80000000) 1192 ; GCN-NEXT: {{ $}} 1193 ; GCN-NEXT: {{ $}} 1194 ; GCN-NEXT: bb.2: 1195 ; GCN-NEXT: S_ENDPGM 0 1196 bb.0: 1197 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1198 liveins: $sgpr0, $vgpr0_vgpr1 1199 1200 %0:sreg_32 = S_AND_B32 1, 11, implicit-def dead $scc 1201 S_CMP_EQ_U32 killed %0:sreg_32, 1, implicit-def $scc 1202 S_CBRANCH_SCC0 %bb.2, implicit $scc 1203 S_BRANCH %bb.1 1204 1205 bb.1: 1206 successors: %bb.2(0x80000000) 1207 1208 bb.2: 1209 S_ENDPGM 0 1210 1211... 1212 1213--- 1214name: and_1_cmp_eq_u32_0 1215body: | 1216 ; GCN-LABEL: name: and_1_cmp_eq_u32_0 1217 ; GCN: bb.0: 1218 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1219 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 1220 ; GCN-NEXT: {{ $}} 1221 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1222 ; GCN-NEXT: S_BITCMP0_B32 killed [[COPY]], 0, implicit-def $scc 1223 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1224 ; GCN-NEXT: S_BRANCH %bb.1 1225 ; GCN-NEXT: {{ $}} 1226 ; GCN-NEXT: bb.1: 1227 ; GCN-NEXT: successors: %bb.2(0x80000000) 1228 ; GCN-NEXT: {{ $}} 1229 ; GCN-NEXT: {{ $}} 1230 ; GCN-NEXT: bb.2: 1231 ; GCN-NEXT: S_ENDPGM 0 1232 bb.0: 1233 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1234 liveins: $sgpr0, $vgpr0_vgpr1 1235 1236 %0:sreg_32 = COPY $sgpr0 1237 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc 1238 S_CMP_EQ_U32 killed %1:sreg_32, 0, implicit-def $scc 1239 S_CBRANCH_SCC0 %bb.2, implicit $scc 1240 S_BRANCH %bb.1 1241 1242 bb.1: 1243 successors: %bb.2(0x80000000) 1244 1245 bb.2: 1246 S_ENDPGM 0 1247 1248... 1249 1250--- 1251name: and_1_cmp_eq_i32_0 1252body: | 1253 ; GCN-LABEL: name: and_1_cmp_eq_i32_0 1254 ; GCN: bb.0: 1255 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1256 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 1257 ; GCN-NEXT: {{ $}} 1258 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1259 ; GCN-NEXT: S_BITCMP0_B32 killed [[COPY]], 0, implicit-def $scc 1260 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1261 ; GCN-NEXT: S_BRANCH %bb.1 1262 ; GCN-NEXT: {{ $}} 1263 ; GCN-NEXT: bb.1: 1264 ; GCN-NEXT: successors: %bb.2(0x80000000) 1265 ; GCN-NEXT: {{ $}} 1266 ; GCN-NEXT: {{ $}} 1267 ; GCN-NEXT: bb.2: 1268 ; GCN-NEXT: S_ENDPGM 0 1269 bb.0: 1270 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1271 liveins: $sgpr0, $vgpr0_vgpr1 1272 1273 %0:sreg_32 = COPY $sgpr0 1274 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc 1275 S_CMP_EQ_I32 killed %1:sreg_32, 0, implicit-def $scc 1276 S_CBRANCH_SCC0 %bb.2, implicit $scc 1277 S_BRANCH %bb.1 1278 1279 bb.1: 1280 successors: %bb.2(0x80000000) 1281 1282 bb.2: 1283 S_ENDPGM 0 1284 1285... 1286 1287--- 1288name: and_1_cmp_eq_u64_0 1289body: | 1290 ; GCN-LABEL: name: and_1_cmp_eq_u64_0 1291 ; GCN: bb.0: 1292 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1293 ; GCN-NEXT: liveins: $sgpr0_sgpr1, $vgpr0_vgpr1 1294 ; GCN-NEXT: {{ $}} 1295 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1 1296 ; GCN-NEXT: S_BITCMP0_B64 killed [[COPY]], 0, implicit-def $scc 1297 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1298 ; GCN-NEXT: S_BRANCH %bb.1 1299 ; GCN-NEXT: {{ $}} 1300 ; GCN-NEXT: bb.1: 1301 ; GCN-NEXT: successors: %bb.2(0x80000000) 1302 ; GCN-NEXT: {{ $}} 1303 ; GCN-NEXT: {{ $}} 1304 ; GCN-NEXT: bb.2: 1305 ; GCN-NEXT: S_ENDPGM 0 1306 bb.0: 1307 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1308 liveins: $sgpr0_sgpr1, $vgpr0_vgpr1 1309 1310 %0:sreg_64 = COPY $sgpr0_sgpr1 1311 %1:sreg_64 = S_AND_B64 1, killed %0, implicit-def dead $scc 1312 S_CMP_EQ_U64 killed %1:sreg_64, 0, implicit-def $scc 1313 S_CBRANCH_SCC0 %bb.2, implicit $scc 1314 S_BRANCH %bb.1 1315 1316 bb.1: 1317 successors: %bb.2(0x80000000) 1318 1319 bb.2: 1320 S_ENDPGM 0 1321 1322... 1323 1324--- 1325name: and_1_cmp_lg_u32_1 1326body: | 1327 ; GCN-LABEL: name: and_1_cmp_lg_u32_1 1328 ; GCN: bb.0: 1329 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1330 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 1331 ; GCN-NEXT: {{ $}} 1332 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1333 ; GCN-NEXT: S_BITCMP0_B32 killed [[COPY]], 0, implicit-def $scc 1334 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1335 ; GCN-NEXT: S_BRANCH %bb.1 1336 ; GCN-NEXT: {{ $}} 1337 ; GCN-NEXT: bb.1: 1338 ; GCN-NEXT: successors: %bb.2(0x80000000) 1339 ; GCN-NEXT: {{ $}} 1340 ; GCN-NEXT: {{ $}} 1341 ; GCN-NEXT: bb.2: 1342 ; GCN-NEXT: S_ENDPGM 0 1343 bb.0: 1344 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1345 liveins: $sgpr0, $vgpr0_vgpr1 1346 1347 %0:sreg_32 = COPY $sgpr0 1348 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc 1349 S_CMP_LG_U32 killed %1:sreg_32, 1, implicit-def $scc 1350 S_CBRANCH_SCC0 %bb.2, implicit $scc 1351 S_BRANCH %bb.1 1352 1353 bb.1: 1354 successors: %bb.2(0x80000000) 1355 1356 bb.2: 1357 S_ENDPGM 0 1358 1359... 1360 1361--- 1362name: and_1_cmp_lg_i32_1 1363body: | 1364 ; GCN-LABEL: name: and_1_cmp_lg_i32_1 1365 ; GCN: bb.0: 1366 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1367 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 1368 ; GCN-NEXT: {{ $}} 1369 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1370 ; GCN-NEXT: S_BITCMP0_B32 killed [[COPY]], 0, implicit-def $scc 1371 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1372 ; GCN-NEXT: S_BRANCH %bb.1 1373 ; GCN-NEXT: {{ $}} 1374 ; GCN-NEXT: bb.1: 1375 ; GCN-NEXT: successors: %bb.2(0x80000000) 1376 ; GCN-NEXT: {{ $}} 1377 ; GCN-NEXT: {{ $}} 1378 ; GCN-NEXT: bb.2: 1379 ; GCN-NEXT: S_ENDPGM 0 1380 bb.0: 1381 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1382 liveins: $sgpr0, $vgpr0_vgpr1 1383 1384 %0:sreg_32 = COPY $sgpr0 1385 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc 1386 S_CMP_LG_I32 killed %1:sreg_32, 1, implicit-def $scc 1387 S_CBRANCH_SCC0 %bb.2, implicit $scc 1388 S_BRANCH %bb.1 1389 1390 bb.1: 1391 successors: %bb.2(0x80000000) 1392 1393 bb.2: 1394 S_ENDPGM 0 1395 1396... 1397 1398--- 1399name: and_1_cmp_lg_u64_1 1400body: | 1401 ; GCN-LABEL: name: and_1_cmp_lg_u64_1 1402 ; GCN: bb.0: 1403 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1404 ; GCN-NEXT: liveins: $sgpr0_sgpr1, $vgpr0_vgpr1 1405 ; GCN-NEXT: {{ $}} 1406 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1 1407 ; GCN-NEXT: S_BITCMP0_B64 killed [[COPY]], 0, implicit-def $scc 1408 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1409 ; GCN-NEXT: S_BRANCH %bb.1 1410 ; GCN-NEXT: {{ $}} 1411 ; GCN-NEXT: bb.1: 1412 ; GCN-NEXT: successors: %bb.2(0x80000000) 1413 ; GCN-NEXT: {{ $}} 1414 ; GCN-NEXT: {{ $}} 1415 ; GCN-NEXT: bb.2: 1416 ; GCN-NEXT: S_ENDPGM 0 1417 bb.0: 1418 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1419 liveins: $sgpr0_sgpr1, $vgpr0_vgpr1 1420 1421 %0:sreg_64 = COPY $sgpr0_sgpr1 1422 %1:sreg_64 = S_AND_B64 1, killed %0, implicit-def dead $scc 1423 S_CMP_LG_U64 killed %1:sreg_64, 1, implicit-def $scc 1424 S_CBRANCH_SCC0 %bb.2, implicit $scc 1425 S_BRANCH %bb.1 1426 1427 bb.1: 1428 successors: %bb.2(0x80000000) 1429 1430 bb.2: 1431 S_ENDPGM 0 1432 1433... 1434 1435--- 1436name: and_1_cmp_eq_u32_0_used_and 1437body: | 1438 ; GCN-LABEL: name: and_1_cmp_eq_u32_0_used_and 1439 ; GCN: bb.0: 1440 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1441 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 1442 ; GCN-NEXT: {{ $}} 1443 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1444 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc 1445 ; GCN-NEXT: S_CMP_EQ_U32 [[S_AND_B32_]], 0, implicit-def $scc 1446 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1447 ; GCN-NEXT: S_BRANCH %bb.1 1448 ; GCN-NEXT: {{ $}} 1449 ; GCN-NEXT: bb.1: 1450 ; GCN-NEXT: successors: %bb.2(0x80000000) 1451 ; GCN-NEXT: {{ $}} 1452 ; GCN-NEXT: S_NOP 0, implicit [[S_AND_B32_]] 1453 ; GCN-NEXT: {{ $}} 1454 ; GCN-NEXT: bb.2: 1455 ; GCN-NEXT: S_ENDPGM 0 1456 bb.0: 1457 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1458 liveins: $sgpr0, $vgpr0_vgpr1 1459 1460 %0:sreg_32 = COPY $sgpr0 1461 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc 1462 S_CMP_EQ_U32 %1:sreg_32, 0, implicit-def $scc 1463 S_CBRANCH_SCC0 %bb.2, implicit $scc 1464 S_BRANCH %bb.1 1465 1466 bb.1: 1467 successors: %bb.2(0x80000000) 1468 1469 S_NOP 0, implicit %1 1470 bb.2: 1471 S_ENDPGM 0 1472 1473... 1474 1475--- 1476name: and_1_cmp_ge_u32_0 1477body: | 1478 ; GCN-LABEL: name: and_1_cmp_ge_u32_0 1479 ; GCN: bb.0: 1480 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1481 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 1482 ; GCN-NEXT: {{ $}} 1483 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1484 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc 1485 ; GCN-NEXT: S_CMP_GE_U32 killed [[S_AND_B32_]], 0, implicit-def $scc 1486 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1487 ; GCN-NEXT: S_BRANCH %bb.1 1488 ; GCN-NEXT: {{ $}} 1489 ; GCN-NEXT: bb.1: 1490 ; GCN-NEXT: successors: %bb.2(0x80000000) 1491 ; GCN-NEXT: {{ $}} 1492 ; GCN-NEXT: {{ $}} 1493 ; GCN-NEXT: bb.2: 1494 ; GCN-NEXT: S_ENDPGM 0 1495 bb.0: 1496 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1497 liveins: $sgpr0, $vgpr0_vgpr1 1498 1499 %0:sreg_32 = COPY $sgpr0 1500 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc 1501 S_CMP_GE_U32 killed %1:sreg_32, 0, implicit-def $scc 1502 S_CBRANCH_SCC0 %bb.2, implicit $scc 1503 S_BRANCH %bb.1 1504 1505 bb.1: 1506 successors: %bb.2(0x80000000) 1507 1508 bb.2: 1509 S_ENDPGM 0 1510 1511... 1512 1513--- 1514name: and_1_cmp_gt_u32_1 1515body: | 1516 ; GCN-LABEL: name: and_1_cmp_gt_u32_1 1517 ; GCN: bb.0: 1518 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1519 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 1520 ; GCN-NEXT: {{ $}} 1521 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1522 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc 1523 ; GCN-NEXT: S_CMP_GT_U32 killed [[S_AND_B32_]], 1, implicit-def $scc 1524 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1525 ; GCN-NEXT: S_BRANCH %bb.1 1526 ; GCN-NEXT: {{ $}} 1527 ; GCN-NEXT: bb.1: 1528 ; GCN-NEXT: successors: %bb.2(0x80000000) 1529 ; GCN-NEXT: {{ $}} 1530 ; GCN-NEXT: {{ $}} 1531 ; GCN-NEXT: bb.2: 1532 ; GCN-NEXT: S_ENDPGM 0 1533 bb.0: 1534 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1535 liveins: $sgpr0, $vgpr0_vgpr1 1536 1537 %0:sreg_32 = COPY $sgpr0 1538 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc 1539 S_CMP_GT_U32 killed %1:sreg_32, 1, implicit-def $scc 1540 S_CBRANCH_SCC0 %bb.2, implicit $scc 1541 S_BRANCH %bb.1 1542 1543 bb.1: 1544 successors: %bb.2(0x80000000) 1545 1546 bb.2: 1547 S_ENDPGM 0 1548 1549... 1550 1551--- 1552name: and_1_folded_src0_cmp_eq_u32_1_folded_src2 1553body: | 1554 ; GCN-LABEL: name: and_1_folded_src0_cmp_eq_u32_1_folded_src2 1555 ; GCN: bb.0: 1556 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1557 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 1558 ; GCN-NEXT: {{ $}} 1559 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1560 ; GCN-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 1 1561 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 1562 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1563 ; GCN-NEXT: S_BRANCH %bb.1 1564 ; GCN-NEXT: {{ $}} 1565 ; GCN-NEXT: bb.1: 1566 ; GCN-NEXT: successors: %bb.2(0x80000000) 1567 ; GCN-NEXT: {{ $}} 1568 ; GCN-NEXT: {{ $}} 1569 ; GCN-NEXT: bb.2: 1570 ; GCN-NEXT: S_ENDPGM 0 1571 bb.0: 1572 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1573 liveins: $sgpr0, $vgpr0_vgpr1 1574 1575 %0:sreg_32 = COPY $sgpr0 1576 %1:sreg_32 = S_MOV_B32 1 1577 %2:sreg_32 = S_AND_B32 %1, killed %0, implicit-def dead $scc 1578 S_CMP_EQ_U32 killed %2:sreg_32, %1, implicit-def $scc 1579 S_CBRANCH_SCC0 %bb.2, implicit $scc 1580 S_BRANCH %bb.1 1581 1582 bb.1: 1583 successors: %bb.2(0x80000000) 1584 1585 bb.2: 1586 S_ENDPGM 0 1587 1588... 1589 1590--- 1591name: and_1_folded_src1_cmp_eq_u32_1_folded_src2 1592body: | 1593 ; GCN-LABEL: name: and_1_folded_src1_cmp_eq_u32_1_folded_src2 1594 ; GCN: bb.0: 1595 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1596 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 1597 ; GCN-NEXT: {{ $}} 1598 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1599 ; GCN-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 1 1600 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 1601 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1602 ; GCN-NEXT: S_BRANCH %bb.1 1603 ; GCN-NEXT: {{ $}} 1604 ; GCN-NEXT: bb.1: 1605 ; GCN-NEXT: successors: %bb.2(0x80000000) 1606 ; GCN-NEXT: {{ $}} 1607 ; GCN-NEXT: {{ $}} 1608 ; GCN-NEXT: bb.2: 1609 ; GCN-NEXT: S_ENDPGM 0 1610 bb.0: 1611 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1612 liveins: $sgpr0, $vgpr0_vgpr1 1613 1614 %0:sreg_32 = COPY $sgpr0 1615 %1:sreg_32 = S_MOV_B32 1 1616 %2:sreg_32 = S_AND_B32 killed %0, %1, implicit-def dead $scc 1617 S_CMP_EQ_U32 killed %2:sreg_32, %1, implicit-def $scc 1618 S_CBRANCH_SCC0 %bb.2, implicit $scc 1619 S_BRANCH %bb.1 1620 1621 bb.1: 1622 successors: %bb.2(0x80000000) 1623 1624 bb.2: 1625 S_ENDPGM 0 1626 1627... 1628 1629--- 1630name: and_1_folded_src1_cmp_eq_u64_1_folded_src2 1631body: | 1632 ; GCN-LABEL: name: and_1_folded_src1_cmp_eq_u64_1_folded_src2 1633 ; GCN: bb.0: 1634 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1635 ; GCN-NEXT: liveins: $sgpr0_sgpr1, $vgpr0_vgpr1 1636 ; GCN-NEXT: {{ $}} 1637 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1 1638 ; GCN-NEXT: [[S_MOV_B64_:%[0-9]+]]:sreg_64 = S_MOV_B64 1 1639 ; GCN-NEXT: S_BITCMP1_B64 killed [[COPY]], 0, implicit-def $scc 1640 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1641 ; GCN-NEXT: S_BRANCH %bb.1 1642 ; GCN-NEXT: {{ $}} 1643 ; GCN-NEXT: bb.1: 1644 ; GCN-NEXT: successors: %bb.2(0x80000000) 1645 ; GCN-NEXT: {{ $}} 1646 ; GCN-NEXT: {{ $}} 1647 ; GCN-NEXT: bb.2: 1648 ; GCN-NEXT: S_ENDPGM 0 1649 bb.0: 1650 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1651 liveins: $sgpr0_sgpr1, $vgpr0_vgpr1 1652 1653 %0:sreg_64 = COPY $sgpr0_sgpr1 1654 %1:sreg_64 = S_MOV_B64 1 1655 %2:sreg_64 = S_AND_B64 killed %0, %1, implicit-def dead $scc 1656 S_CMP_EQ_U64 killed %2:sreg_64, %1, implicit-def $scc 1657 S_CBRANCH_SCC0 %bb.2, implicit $scc 1658 S_BRANCH %bb.1 1659 1660 bb.1: 1661 successors: %bb.2(0x80000000) 1662 1663 bb.2: 1664 S_ENDPGM 0 1665 1666... 1667 1668--- 1669name: and_1024_cmp_eq_u32_1024 1670body: | 1671 ; GCN-LABEL: name: and_1024_cmp_eq_u32_1024 1672 ; GCN: bb.0: 1673 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1674 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 1675 ; GCN-NEXT: {{ $}} 1676 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1677 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 10, implicit-def $scc 1678 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1679 ; GCN-NEXT: S_BRANCH %bb.1 1680 ; GCN-NEXT: {{ $}} 1681 ; GCN-NEXT: bb.1: 1682 ; GCN-NEXT: successors: %bb.2(0x80000000) 1683 ; GCN-NEXT: {{ $}} 1684 ; GCN-NEXT: {{ $}} 1685 ; GCN-NEXT: bb.2: 1686 ; GCN-NEXT: S_ENDPGM 0 1687 bb.0: 1688 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1689 liveins: $sgpr0, $vgpr0_vgpr1 1690 1691 %0:sreg_32 = COPY $sgpr0 1692 %1:sreg_32 = S_AND_B32 1024, killed %0, implicit-def dead $scc 1693 S_CMP_EQ_U32 killed %1:sreg_32, 1024, implicit-def $scc 1694 S_CBRANCH_SCC0 %bb.2, implicit $scc 1695 S_BRANCH %bb.1 1696 1697 bb.1: 1698 successors: %bb.2(0x80000000) 1699 1700 bb.2: 1701 S_ENDPGM 0 1702 1703... 1704 1705--- 1706name: and_0x80000000_cmp_eq_u32_0x80000000 1707body: | 1708 ; GCN-LABEL: name: and_0x80000000_cmp_eq_u32_0x80000000 1709 ; GCN: bb.0: 1710 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1711 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 1712 ; GCN-NEXT: {{ $}} 1713 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1714 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 31, implicit-def $scc 1715 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1716 ; GCN-NEXT: S_BRANCH %bb.1 1717 ; GCN-NEXT: {{ $}} 1718 ; GCN-NEXT: bb.1: 1719 ; GCN-NEXT: successors: %bb.2(0x80000000) 1720 ; GCN-NEXT: {{ $}} 1721 ; GCN-NEXT: {{ $}} 1722 ; GCN-NEXT: bb.2: 1723 ; GCN-NEXT: S_ENDPGM 0 1724 bb.0: 1725 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1726 liveins: $sgpr0, $vgpr0_vgpr1 1727 1728 %0:sreg_32 = COPY $sgpr0 1729 %1:sreg_32 = S_AND_B32 2147483648, killed %0, implicit-def dead $scc 1730 S_CMP_EQ_U32 killed %1:sreg_32, 2147483648, implicit-def $scc 1731 S_CBRANCH_SCC0 %bb.2, implicit $scc 1732 S_BRANCH %bb.1 1733 1734 bb.1: 1735 successors: %bb.2(0x80000000) 1736 1737 bb.2: 1738 S_ENDPGM 0 1739 1740... 1741 1742--- 1743name: and_0x80000000_cmp_ge_u32_0x80000000 1744body: | 1745 ; GCN-LABEL: name: and_0x80000000_cmp_ge_u32_0x80000000 1746 ; GCN: bb.0: 1747 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1748 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 1749 ; GCN-NEXT: {{ $}} 1750 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1751 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 31, implicit-def $scc 1752 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1753 ; GCN-NEXT: S_BRANCH %bb.1 1754 ; GCN-NEXT: {{ $}} 1755 ; GCN-NEXT: bb.1: 1756 ; GCN-NEXT: successors: %bb.2(0x80000000) 1757 ; GCN-NEXT: {{ $}} 1758 ; GCN-NEXT: {{ $}} 1759 ; GCN-NEXT: bb.2: 1760 ; GCN-NEXT: S_ENDPGM 0 1761 bb.0: 1762 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1763 liveins: $sgpr0, $vgpr0_vgpr1 1764 1765 %0:sreg_32 = COPY $sgpr0 1766 %1:sreg_32 = S_AND_B32 2147483648, killed %0, implicit-def dead $scc 1767 S_CMP_GE_U32 killed %1:sreg_32, 2147483648, implicit-def $scc 1768 S_CBRANCH_SCC0 %bb.2, implicit $scc 1769 S_BRANCH %bb.1 1770 1771 bb.1: 1772 successors: %bb.2(0x80000000) 1773 1774 bb.2: 1775 S_ENDPGM 0 1776 1777... 1778 1779--- 1780name: and_0x80000000_cmp_ge_i32_0x80000000 1781body: | 1782 ; GCN-LABEL: name: and_0x80000000_cmp_ge_i32_0x80000000 1783 ; GCN: bb.0: 1784 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1785 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 1786 ; GCN-NEXT: {{ $}} 1787 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1788 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 2147483648, killed [[COPY]], implicit-def dead $scc 1789 ; GCN-NEXT: S_CMP_GE_I32 killed [[S_AND_B32_]], 2147483648, implicit-def $scc 1790 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1791 ; GCN-NEXT: S_BRANCH %bb.1 1792 ; GCN-NEXT: {{ $}} 1793 ; GCN-NEXT: bb.1: 1794 ; GCN-NEXT: successors: %bb.2(0x80000000) 1795 ; GCN-NEXT: {{ $}} 1796 ; GCN-NEXT: {{ $}} 1797 ; GCN-NEXT: bb.2: 1798 ; GCN-NEXT: S_ENDPGM 0 1799 bb.0: 1800 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1801 liveins: $sgpr0, $vgpr0_vgpr1 1802 1803 %0:sreg_32 = COPY $sgpr0 1804 %1:sreg_32 = S_AND_B32 2147483648, killed %0, implicit-def dead $scc 1805 S_CMP_GE_I32 killed %1:sreg_32, 2147483648, implicit-def $scc 1806 S_CBRANCH_SCC0 %bb.2, implicit $scc 1807 S_BRANCH %bb.1 1808 1809 bb.1: 1810 successors: %bb.2(0x80000000) 1811 1812 bb.2: 1813 S_ENDPGM 0 1814 1815... 1816 1817--- 1818name: and_1024_cmp_ge_i32_1024 1819body: | 1820 ; GCN-LABEL: name: and_1024_cmp_ge_i32_1024 1821 ; GCN: bb.0: 1822 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1823 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 1824 ; GCN-NEXT: {{ $}} 1825 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1826 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 10, implicit-def $scc 1827 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1828 ; GCN-NEXT: S_BRANCH %bb.1 1829 ; GCN-NEXT: {{ $}} 1830 ; GCN-NEXT: bb.1: 1831 ; GCN-NEXT: successors: %bb.2(0x80000000) 1832 ; GCN-NEXT: {{ $}} 1833 ; GCN-NEXT: {{ $}} 1834 ; GCN-NEXT: bb.2: 1835 ; GCN-NEXT: S_ENDPGM 0 1836 bb.0: 1837 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1838 liveins: $sgpr0, $vgpr0_vgpr1 1839 1840 %0:sreg_32 = COPY $sgpr0 1841 %1:sreg_32 = S_AND_B32 1024, killed %0, implicit-def dead $scc 1842 S_CMP_GE_I32 killed %1:sreg_32, 1024, implicit-def $scc 1843 S_CBRANCH_SCC0 %bb.2, implicit $scc 1844 S_BRANCH %bb.1 1845 1846 bb.1: 1847 successors: %bb.2(0x80000000) 1848 1849 bb.2: 1850 S_ENDPGM 0 1851 1852... 1853 1854--- 1855name: and_0x80000000_cmp_lg_i32_0 1856body: | 1857 ; GCN-LABEL: name: and_0x80000000_cmp_lg_i32_0 1858 ; GCN: bb.0: 1859 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1860 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 1861 ; GCN-NEXT: {{ $}} 1862 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1863 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 31, implicit-def $scc 1864 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1865 ; GCN-NEXT: S_BRANCH %bb.1 1866 ; GCN-NEXT: {{ $}} 1867 ; GCN-NEXT: bb.1: 1868 ; GCN-NEXT: successors: %bb.2(0x80000000) 1869 ; GCN-NEXT: {{ $}} 1870 ; GCN-NEXT: {{ $}} 1871 ; GCN-NEXT: bb.2: 1872 ; GCN-NEXT: S_ENDPGM 0 1873 bb.0: 1874 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1875 liveins: $sgpr0, $vgpr0_vgpr1 1876 1877 %0:sreg_32 = COPY $sgpr0 1878 %1:sreg_32 = S_AND_B32 2147483648, killed %0, implicit-def dead $scc 1879 S_CMP_LG_I32 killed %1:sreg_32, 0, implicit-def $scc 1880 S_CBRANCH_SCC0 %bb.2, implicit $scc 1881 S_BRANCH %bb.1 1882 1883 bb.1: 1884 successors: %bb.2(0x80000000) 1885 1886 bb.2: 1887 S_ENDPGM 0 1888 1889... 1890 1891--- 1892name: and_0x80000000_cmp_gt_i32_0 1893body: | 1894 ; GCN-LABEL: name: and_0x80000000_cmp_gt_i32_0 1895 ; GCN: bb.0: 1896 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1897 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 1898 ; GCN-NEXT: {{ $}} 1899 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1900 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 2147483648, killed [[COPY]], implicit-def dead $scc 1901 ; GCN-NEXT: S_CMP_GT_I32 killed [[S_AND_B32_]], 0, implicit-def $scc 1902 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1903 ; GCN-NEXT: S_BRANCH %bb.1 1904 ; GCN-NEXT: {{ $}} 1905 ; GCN-NEXT: bb.1: 1906 ; GCN-NEXT: successors: %bb.2(0x80000000) 1907 ; GCN-NEXT: {{ $}} 1908 ; GCN-NEXT: {{ $}} 1909 ; GCN-NEXT: bb.2: 1910 ; GCN-NEXT: S_ENDPGM 0 1911 bb.0: 1912 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1913 liveins: $sgpr0, $vgpr0_vgpr1 1914 1915 %0:sreg_32 = COPY $sgpr0 1916 %1:sreg_32 = S_AND_B32 2147483648, killed %0, implicit-def dead $scc 1917 S_CMP_GT_I32 killed %1:sreg_32, 0, implicit-def $scc 1918 S_CBRANCH_SCC0 %bb.2, implicit $scc 1919 S_BRANCH %bb.1 1920 1921 bb.1: 1922 successors: %bb.2(0x80000000) 1923 1924 bb.2: 1925 S_ENDPGM 0 1926 1927... 1928 1929--- 1930name: and_0x80000000_cmp_gt_u32_0 1931body: | 1932 ; GCN-LABEL: name: and_0x80000000_cmp_gt_u32_0 1933 ; GCN: bb.0: 1934 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1935 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 1936 ; GCN-NEXT: {{ $}} 1937 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1938 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 31, implicit-def $scc 1939 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1940 ; GCN-NEXT: S_BRANCH %bb.1 1941 ; GCN-NEXT: {{ $}} 1942 ; GCN-NEXT: bb.1: 1943 ; GCN-NEXT: successors: %bb.2(0x80000000) 1944 ; GCN-NEXT: {{ $}} 1945 ; GCN-NEXT: {{ $}} 1946 ; GCN-NEXT: bb.2: 1947 ; GCN-NEXT: S_ENDPGM 0 1948 bb.0: 1949 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1950 liveins: $sgpr0, $vgpr0_vgpr1 1951 1952 %0:sreg_32 = COPY $sgpr0 1953 %1:sreg_32 = S_AND_B32 2147483648, killed %0, implicit-def dead $scc 1954 S_CMP_GT_U32 killed %1:sreg_32, 0, implicit-def $scc 1955 S_CBRANCH_SCC0 %bb.2, implicit $scc 1956 S_BRANCH %bb.1 1957 1958 bb.1: 1959 successors: %bb.2(0x80000000) 1960 1961 bb.2: 1962 S_ENDPGM 0 1963 1964... 1965 1966--- 1967name: and_0x80000000_cmp_eq_u64_0x80000000 1968body: | 1969 ; GCN-LABEL: name: and_0x80000000_cmp_eq_u64_0x80000000 1970 ; GCN: bb.0: 1971 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1972 ; GCN-NEXT: liveins: $sgpr0_sgpr1, $vgpr0_vgpr1 1973 ; GCN-NEXT: {{ $}} 1974 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1 1975 ; GCN-NEXT: S_BITCMP1_B64 killed [[COPY]], 35, implicit-def $scc 1976 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1977 ; GCN-NEXT: S_BRANCH %bb.1 1978 ; GCN-NEXT: {{ $}} 1979 ; GCN-NEXT: bb.1: 1980 ; GCN-NEXT: successors: %bb.2(0x80000000) 1981 ; GCN-NEXT: {{ $}} 1982 ; GCN-NEXT: {{ $}} 1983 ; GCN-NEXT: bb.2: 1984 ; GCN-NEXT: S_ENDPGM 0 1985 bb.0: 1986 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1987 liveins: $sgpr0_sgpr1, $vgpr0_vgpr1 1988 1989 %0:sreg_64 = COPY $sgpr0_sgpr1 1990 %1:sreg_64 = S_AND_B64 34359738368, killed %0, implicit-def dead $scc 1991 S_CMP_EQ_U64 killed %1:sreg_64, 34359738368, implicit-def $scc 1992 S_CBRANCH_SCC0 %bb.2, implicit $scc 1993 S_BRANCH %bb.1 1994 1995 bb.1: 1996 successors: %bb.2(0x80000000) 1997 1998 bb.2: 1999 S_ENDPGM 0 2000 2001... 2002 2003--- 2004name: and_0x8000000000000000_cmp_eq_u64_0x8000000000000000 2005body: | 2006 ; GCN-LABEL: name: and_0x8000000000000000_cmp_eq_u64_0x8000000000000000 2007 ; GCN: bb.0: 2008 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 2009 ; GCN-NEXT: liveins: $sgpr0_sgpr1, $vgpr0_vgpr1 2010 ; GCN-NEXT: {{ $}} 2011 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1 2012 ; GCN-NEXT: S_BITCMP1_B64 killed [[COPY]], 63, implicit-def $scc 2013 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 2014 ; GCN-NEXT: S_BRANCH %bb.1 2015 ; GCN-NEXT: {{ $}} 2016 ; GCN-NEXT: bb.1: 2017 ; GCN-NEXT: successors: %bb.2(0x80000000) 2018 ; GCN-NEXT: {{ $}} 2019 ; GCN-NEXT: {{ $}} 2020 ; GCN-NEXT: bb.2: 2021 ; GCN-NEXT: S_ENDPGM 0 2022 bb.0: 2023 successors: %bb.1(0x40000000), %bb.2(0x40000000) 2024 liveins: $sgpr0_sgpr1, $vgpr0_vgpr1 2025 2026 %0:sreg_64 = COPY $sgpr0_sgpr1 2027 %1:sreg_64 = S_AND_B64 9223372036854775808, killed %0, implicit-def dead $scc 2028 S_CMP_EQ_U64 killed %1:sreg_64, 9223372036854775808, implicit-def $scc 2029 S_CBRANCH_SCC0 %bb.2, implicit $scc 2030 S_BRANCH %bb.1 2031 2032 bb.1: 2033 successors: %bb.2(0x80000000) 2034 2035 bb.2: 2036 S_ENDPGM 0 2037 2038... 2039 2040--- 2041name: and_2_cmp_eq_u32_2_used_and 2042body: | 2043 ; GCN-LABEL: name: and_2_cmp_eq_u32_2_used_and 2044 ; GCN: bb.0: 2045 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 2046 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 2047 ; GCN-NEXT: {{ $}} 2048 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 2049 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 2, killed [[COPY]], implicit-def $scc 2050 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 2051 ; GCN-NEXT: S_BRANCH %bb.1 2052 ; GCN-NEXT: {{ $}} 2053 ; GCN-NEXT: bb.1: 2054 ; GCN-NEXT: successors: %bb.2(0x80000000) 2055 ; GCN-NEXT: {{ $}} 2056 ; GCN-NEXT: S_NOP 0, implicit [[S_AND_B32_]] 2057 ; GCN-NEXT: {{ $}} 2058 ; GCN-NEXT: bb.2: 2059 ; GCN-NEXT: S_ENDPGM 0 2060 bb.0: 2061 successors: %bb.1(0x40000000), %bb.2(0x40000000) 2062 liveins: $sgpr0, $vgpr0_vgpr1 2063 2064 %0:sreg_32 = COPY $sgpr0 2065 %1:sreg_32 = S_AND_B32 2, killed %0, implicit-def dead $scc 2066 S_CMP_EQ_U32 %1:sreg_32, 2, implicit-def $scc 2067 S_CBRANCH_SCC0 %bb.2, implicit $scc 2068 S_BRANCH %bb.1 2069 2070 bb.1: 2071 successors: %bb.2(0x80000000) 2072 2073 S_NOP 0, implicit %1 2074 2075 bb.2: 2076 S_ENDPGM 0 2077 2078... 2079 2080--- 2081name: and_3_cmp_eq_u32_3 2082body: | 2083 ; GCN-LABEL: name: and_3_cmp_eq_u32_3 2084 ; GCN: bb.0: 2085 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 2086 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 2087 ; GCN-NEXT: {{ $}} 2088 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 2089 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 3, killed [[COPY]], implicit-def dead $scc 2090 ; GCN-NEXT: S_CMP_EQ_U32 killed [[S_AND_B32_]], 3, implicit-def $scc 2091 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 2092 ; GCN-NEXT: S_BRANCH %bb.1 2093 ; GCN-NEXT: {{ $}} 2094 ; GCN-NEXT: bb.1: 2095 ; GCN-NEXT: successors: %bb.2(0x80000000) 2096 ; GCN-NEXT: {{ $}} 2097 ; GCN-NEXT: {{ $}} 2098 ; GCN-NEXT: bb.2: 2099 ; GCN-NEXT: S_ENDPGM 0 2100 bb.0: 2101 successors: %bb.1(0x40000000), %bb.2(0x40000000) 2102 liveins: $sgpr0, $vgpr0_vgpr1 2103 2104 %0:sreg_32 = COPY $sgpr0 2105 %1:sreg_32 = S_AND_B32 3, killed %0, implicit-def dead $scc 2106 S_CMP_EQ_U32 killed %1:sreg_32, 3, implicit-def $scc 2107 S_CBRANCH_SCC0 %bb.2, implicit $scc 2108 S_BRANCH %bb.1 2109 2110 bb.1: 2111 successors: %bb.2(0x80000000) 2112 2113 bb.2: 2114 S_ENDPGM 0 2115 2116... 2117 2118--- 2119name: and_3_cmp_lg_u32_0 2120body: | 2121 ; GCN-LABEL: name: and_3_cmp_lg_u32_0 2122 ; GCN: bb.0: 2123 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 2124 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 2125 ; GCN-NEXT: {{ $}} 2126 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 2127 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 3, killed [[COPY]], implicit-def dead $scc 2128 ; GCN-NEXT: S_CMP_LG_U32 killed [[S_AND_B32_]], 0, implicit-def $scc 2129 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 2130 ; GCN-NEXT: S_BRANCH %bb.1 2131 ; GCN-NEXT: {{ $}} 2132 ; GCN-NEXT: bb.1: 2133 ; GCN-NEXT: successors: %bb.2(0x80000000) 2134 ; GCN-NEXT: {{ $}} 2135 ; GCN-NEXT: {{ $}} 2136 ; GCN-NEXT: bb.2: 2137 ; GCN-NEXT: S_ENDPGM 0 2138 bb.0: 2139 successors: %bb.1(0x40000000), %bb.2(0x40000000) 2140 liveins: $sgpr0, $vgpr0_vgpr1 2141 2142 %0:sreg_32 = COPY $sgpr0 2143 %1:sreg_32 = S_AND_B32 3, killed %0, implicit-def dead $scc 2144 S_CMP_LG_U32 killed %1:sreg_32, 0, implicit-def $scc 2145 S_CBRANCH_SCC0 %bb.2, implicit $scc 2146 S_BRANCH %bb.1 2147 2148 bb.1: 2149 successors: %bb.2(0x80000000) 2150 2151 bb.2: 2152 S_ENDPGM 0 2153 2154... 2155 2156--- 2157name: and_4_cmp_lg_u32_0 2158body: | 2159 ; GCN-LABEL: name: and_4_cmp_lg_u32_0 2160 ; GCN: bb.0: 2161 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 2162 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 2163 ; GCN-NEXT: {{ $}} 2164 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 2165 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 2, implicit-def $scc 2166 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 2167 ; GCN-NEXT: S_BRANCH %bb.1 2168 ; GCN-NEXT: {{ $}} 2169 ; GCN-NEXT: bb.1: 2170 ; GCN-NEXT: successors: %bb.2(0x80000000) 2171 ; GCN-NEXT: {{ $}} 2172 ; GCN-NEXT: {{ $}} 2173 ; GCN-NEXT: bb.2: 2174 ; GCN-NEXT: S_ENDPGM 0 2175 bb.0: 2176 successors: %bb.1(0x40000000), %bb.2(0x40000000) 2177 liveins: $sgpr0, $vgpr0_vgpr1 2178 2179 %0:sreg_32 = COPY $sgpr0 2180 %1:sreg_32 = S_AND_B32 4, killed %0, implicit-def dead $scc 2181 S_CMP_LG_U32 killed %1:sreg_32, 0, implicit-def $scc 2182 S_CBRANCH_SCC0 %bb.2, implicit $scc 2183 S_BRANCH %bb.1 2184 2185 bb.1: 2186 successors: %bb.2(0x80000000) 2187 2188 bb.2: 2189 S_ENDPGM 0 2190 2191... 2192 2193--- 2194name: and_0x80000000_cmp_eq_u32_0 2195body: | 2196 ; GCN-LABEL: name: and_0x80000000_cmp_eq_u32_0 2197 ; GCN: bb.0: 2198 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 2199 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1 2200 ; GCN-NEXT: {{ $}} 2201 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 2202 ; GCN-NEXT: S_BITCMP0_B32 killed [[COPY]], 31, implicit-def $scc 2203 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 2204 ; GCN-NEXT: S_BRANCH %bb.1 2205 ; GCN-NEXT: {{ $}} 2206 ; GCN-NEXT: bb.1: 2207 ; GCN-NEXT: successors: %bb.2(0x80000000) 2208 ; GCN-NEXT: {{ $}} 2209 ; GCN-NEXT: {{ $}} 2210 ; GCN-NEXT: bb.2: 2211 ; GCN-NEXT: S_ENDPGM 0 2212 bb.0: 2213 successors: %bb.1(0x40000000), %bb.2(0x40000000) 2214 liveins: $sgpr0, $vgpr0_vgpr1 2215 2216 %0:sreg_32 = COPY $sgpr0 2217 %1:sreg_32 = S_AND_B32 2147483648, killed %0, implicit-def dead $scc 2218 S_CMP_EQ_U32 killed %1:sreg_32, 0, implicit-def $scc 2219 S_CBRANCH_SCC0 %bb.2, implicit $scc 2220 S_BRANCH %bb.1 2221 2222 bb.1: 2223 successors: %bb.2(0x80000000) 2224 2225 bb.2: 2226 S_ENDPGM 0 2227 2228... 2229 2230--- 2231name: and_0x8000000000000000_cmp_lg_u64_0x8000000000000000 2232body: | 2233 ; GCN-LABEL: name: and_0x8000000000000000_cmp_lg_u64_0x8000000000000000 2234 ; GCN: bb.0: 2235 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 2236 ; GCN-NEXT: liveins: $sgpr0_sgpr1, $vgpr0_vgpr1 2237 ; GCN-NEXT: {{ $}} 2238 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1 2239 ; GCN-NEXT: S_BITCMP0_B64 killed [[COPY]], 63, implicit-def $scc 2240 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 2241 ; GCN-NEXT: S_BRANCH %bb.1 2242 ; GCN-NEXT: {{ $}} 2243 ; GCN-NEXT: bb.1: 2244 ; GCN-NEXT: successors: %bb.2(0x80000000) 2245 ; GCN-NEXT: {{ $}} 2246 ; GCN-NEXT: {{ $}} 2247 ; GCN-NEXT: bb.2: 2248 ; GCN-NEXT: S_ENDPGM 0 2249 bb.0: 2250 successors: %bb.1(0x40000000), %bb.2(0x40000000) 2251 liveins: $sgpr0_sgpr1, $vgpr0_vgpr1 2252 2253 %0:sreg_64 = COPY $sgpr0_sgpr1 2254 %1:sreg_64 = S_AND_B64 9223372036854775808, killed %0, implicit-def dead $scc 2255 S_CMP_LG_U64 killed %1:sreg_64, 9223372036854775808, implicit-def $scc 2256 S_CBRANCH_SCC0 %bb.2, implicit $scc 2257 S_BRANCH %bb.1 2258 2259 bb.1: 2260 successors: %bb.2(0x80000000) 2261 2262 bb.2: 2263 S_ENDPGM 0 2264 2265... 2266