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