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: {{ $}} 11 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 12 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 13 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 14 ; GCN-NEXT: S_BRANCH %bb.1 15 ; GCN-NEXT: {{ $}} 16 ; GCN-NEXT: bb.1: 17 ; GCN-NEXT: successors: %bb.2(0x80000000) 18 ; GCN-NEXT: {{ $}} 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: {{ $}} 47 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 48 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def $scc 49 ; GCN-NEXT: S_NOP 0, implicit [[S_AND_B32_]] 50 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 51 ; GCN-NEXT: S_BRANCH %bb.1 52 ; GCN-NEXT: {{ $}} 53 ; GCN-NEXT: bb.1: 54 ; GCN-NEXT: successors: %bb.2(0x80000000) 55 ; GCN-NEXT: {{ $}} 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: {{ $}} 85 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 86 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 87 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 88 ; GCN-NEXT: S_BRANCH %bb.1 89 ; GCN-NEXT: {{ $}} 90 ; GCN-NEXT: bb.1: 91 ; GCN-NEXT: successors: %bb.2(0x80000000) 92 ; GCN-NEXT: {{ $}} 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: {{ $}} 121 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 122 ; GCN-NEXT: $sgpr2 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc 123 ; GCN-NEXT: S_CMP_EQ_I32 killed $sgpr2, 1, implicit-def $scc 124 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 125 ; GCN-NEXT: S_BRANCH %bb.1 126 ; GCN-NEXT: {{ $}} 127 ; GCN-NEXT: bb.1: 128 ; GCN-NEXT: successors: %bb.2(0x80000000) 129 ; GCN-NEXT: {{ $}} 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: {{ $}} 158 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 159 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc 160 ; GCN-NEXT: {{ $}} 161 ; GCN-NEXT: bb.1: 162 ; GCN-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000) 163 ; GCN-NEXT: {{ $}} 164 ; GCN-NEXT: S_CMP_EQ_I32 [[S_AND_B32_]], 1, implicit-def $scc 165 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 166 ; GCN-NEXT: S_BRANCH %bb.1 167 ; GCN-NEXT: {{ $}} 168 ; GCN-NEXT: bb.2: 169 ; GCN-NEXT: successors: %bb.3(0x80000000) 170 ; GCN-NEXT: {{ $}} 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: {{ $}} 203 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 204 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 3, killed [[COPY]], implicit-def dead $scc 205 ; GCN-NEXT: S_CMP_EQ_U32 killed [[S_AND_B32_]], 1, implicit-def $scc 206 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 207 ; GCN-NEXT: S_BRANCH %bb.1 208 ; GCN-NEXT: {{ $}} 209 ; GCN-NEXT: bb.1: 210 ; GCN-NEXT: successors: %bb.2(0x80000000) 211 ; GCN-NEXT: {{ $}} 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: {{ $}} 240 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 241 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 242 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 243 ; GCN-NEXT: S_BRANCH %bb.1 244 ; GCN-NEXT: {{ $}} 245 ; GCN-NEXT: bb.1: 246 ; GCN-NEXT: successors: %bb.2(0x80000000) 247 ; GCN-NEXT: {{ $}} 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: {{ $}} 276 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 277 ; GCN-NEXT: S_CMP_EQ_U32 undef %1:sreg_32, 1, implicit-def $scc 278 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 279 ; GCN-NEXT: S_BRANCH %bb.1 280 ; GCN-NEXT: {{ $}} 281 ; GCN-NEXT: bb.1: 282 ; GCN-NEXT: successors: %bb.2(0x80000000) 283 ; GCN-NEXT: {{ $}} 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: {{ $}} 311 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 312 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc 313 ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sreg_64 = REG_SEQUENCE [[S_AND_B32_]], %subreg.sub0, [[S_AND_B32_]], %subreg.sub1 314 ; GCN-NEXT: S_CMP_EQ_U32 killed [[REG_SEQUENCE]].sub0, 1, implicit-def $scc 315 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 316 ; GCN-NEXT: S_BRANCH %bb.1 317 ; GCN-NEXT: {{ $}} 318 ; GCN-NEXT: bb.1: 319 ; GCN-NEXT: successors: %bb.2(0x80000000) 320 ; GCN-NEXT: {{ $}} 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: {{ $}} 350 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 351 ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1 352 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 killed [[COPY]], killed [[COPY1]], implicit-def dead $scc 353 ; GCN-NEXT: S_CMP_EQ_U32 killed [[S_AND_B32_]], 1, implicit-def $scc 354 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 355 ; GCN-NEXT: S_BRANCH %bb.1 356 ; GCN-NEXT: {{ $}} 357 ; GCN-NEXT: bb.1: 358 ; GCN-NEXT: successors: %bb.2(0x80000000) 359 ; GCN-NEXT: {{ $}} 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: {{ $}} 389 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 390 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def $scc 391 ; GCN-NEXT: S_NOP 0, implicit killed $scc 392 ; GCN-NEXT: S_CMP_EQ_U32 killed [[S_AND_B32_]], 1, implicit-def $scc 393 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 394 ; GCN-NEXT: S_BRANCH %bb.1 395 ; GCN-NEXT: {{ $}} 396 ; GCN-NEXT: bb.1: 397 ; GCN-NEXT: successors: %bb.2(0x80000000) 398 ; GCN-NEXT: {{ $}} 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: {{ $}} 428 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 429 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def $scc 430 ; GCN-NEXT: S_NOP 0, implicit-def $scc 431 ; GCN-NEXT: S_CMP_EQ_U32 killed [[S_AND_B32_]], 1, implicit-def $scc 432 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 433 ; GCN-NEXT: S_BRANCH %bb.1 434 ; GCN-NEXT: {{ $}} 435 ; GCN-NEXT: bb.1: 436 ; GCN-NEXT: successors: %bb.2(0x80000000) 437 ; GCN-NEXT: {{ $}} 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: {{ $}} 467 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 468 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc 469 ; GCN-NEXT: S_CMP_EQ_U32 killed [[S_AND_B32_]], 2, implicit-def $scc 470 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 471 ; GCN-NEXT: S_BRANCH %bb.1 472 ; GCN-NEXT: {{ $}} 473 ; GCN-NEXT: bb.1: 474 ; GCN-NEXT: successors: %bb.2(0x80000000) 475 ; GCN-NEXT: {{ $}} 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: {{ $}} 504 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 505 ; GCN-NEXT: [[S_OR_B32_:%[0-9]+]]:sreg_32 = S_OR_B32 1, killed [[COPY]], implicit-def dead $scc 506 ; GCN-NEXT: S_CMP_EQ_U32 killed [[S_OR_B32_]], 1, implicit-def $scc 507 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 508 ; GCN-NEXT: S_BRANCH %bb.1 509 ; GCN-NEXT: {{ $}} 510 ; GCN-NEXT: bb.1: 511 ; GCN-NEXT: successors: %bb.2(0x80000000) 512 ; GCN-NEXT: {{ $}} 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: {{ $}} 541 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 542 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 543 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 544 ; GCN-NEXT: S_BRANCH %bb.1 545 ; GCN-NEXT: {{ $}} 546 ; GCN-NEXT: bb.1: 547 ; GCN-NEXT: successors: %bb.2(0x80000000) 548 ; GCN-NEXT: {{ $}} 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: {{ $}} 577 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 578 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 579 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 580 ; GCN-NEXT: S_BRANCH %bb.1 581 ; GCN-NEXT: {{ $}} 582 ; GCN-NEXT: bb.1: 583 ; GCN-NEXT: successors: %bb.2(0x80000000) 584 ; GCN-NEXT: {{ $}} 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: {{ $}} 613 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 614 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 615 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 616 ; GCN-NEXT: S_BRANCH %bb.1 617 ; GCN-NEXT: {{ $}} 618 ; GCN-NEXT: bb.1: 619 ; GCN-NEXT: successors: %bb.2(0x80000000) 620 ; GCN-NEXT: {{ $}} 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: {{ $}} 649 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 650 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 651 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 652 ; GCN-NEXT: S_BRANCH %bb.1 653 ; GCN-NEXT: {{ $}} 654 ; GCN-NEXT: bb.1: 655 ; GCN-NEXT: successors: %bb.2(0x80000000) 656 ; GCN-NEXT: {{ $}} 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: {{ $}} 685 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 686 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc 687 ; GCN-NEXT: S_CMP_GT_U32 killed [[S_AND_B32_]], 1, implicit-def $scc 688 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 689 ; GCN-NEXT: S_BRANCH %bb.1 690 ; GCN-NEXT: {{ $}} 691 ; GCN-NEXT: bb.1: 692 ; GCN-NEXT: successors: %bb.2(0x80000000) 693 ; GCN-NEXT: {{ $}} 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: {{ $}} 722 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 723 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 724 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 725 ; GCN-NEXT: S_BRANCH %bb.1 726 ; GCN-NEXT: {{ $}} 727 ; GCN-NEXT: bb.1: 728 ; GCN-NEXT: successors: %bb.2(0x80000000) 729 ; GCN-NEXT: {{ $}} 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: {{ $}} 758 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 759 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 760 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 761 ; GCN-NEXT: S_BRANCH %bb.1 762 ; GCN-NEXT: {{ $}} 763 ; GCN-NEXT: bb.1: 764 ; GCN-NEXT: successors: %bb.2(0x80000000) 765 ; GCN-NEXT: {{ $}} 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: {{ $}} 794 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1 795 ; GCN-NEXT: S_BITCMP1_B64 killed [[COPY]], 0, implicit-def $scc 796 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 797 ; GCN-NEXT: S_BRANCH %bb.1 798 ; GCN-NEXT: {{ $}} 799 ; GCN-NEXT: bb.1: 800 ; GCN-NEXT: successors: %bb.2(0x80000000) 801 ; GCN-NEXT: {{ $}} 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: {{ $}} 830 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1 831 ; GCN-NEXT: S_BITCMP1_B64 killed [[COPY]], 0, implicit-def $scc 832 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 833 ; GCN-NEXT: S_BRANCH %bb.1 834 ; GCN-NEXT: {{ $}} 835 ; GCN-NEXT: bb.1: 836 ; GCN-NEXT: successors: %bb.2(0x80000000) 837 ; GCN-NEXT: {{ $}} 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: {{ $}} 866 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 867 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 868 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 869 ; GCN-NEXT: S_BRANCH %bb.1 870 ; GCN-NEXT: {{ $}} 871 ; GCN-NEXT: bb.1: 872 ; GCN-NEXT: successors: %bb.2(0x80000000) 873 ; GCN-NEXT: {{ $}} 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: {{ $}} 902 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 903 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 904 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 905 ; GCN-NEXT: S_BRANCH %bb.1 906 ; GCN-NEXT: {{ $}} 907 ; GCN-NEXT: bb.1: 908 ; GCN-NEXT: successors: %bb.2(0x80000000) 909 ; GCN-NEXT: {{ $}} 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: {{ $}} 938 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 939 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 940 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 941 ; GCN-NEXT: S_BRANCH %bb.1 942 ; GCN-NEXT: {{ $}} 943 ; GCN-NEXT: bb.1: 944 ; GCN-NEXT: successors: %bb.2(0x80000000) 945 ; GCN-NEXT: {{ $}} 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: {{ $}} 974 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 975 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 976 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 977 ; GCN-NEXT: S_BRANCH %bb.1 978 ; GCN-NEXT: {{ $}} 979 ; GCN-NEXT: bb.1: 980 ; GCN-NEXT: successors: %bb.2(0x80000000) 981 ; GCN-NEXT: {{ $}} 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: {{ $}} 1010 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1011 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 1012 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1013 ; GCN-NEXT: S_BRANCH %bb.1 1014 ; GCN-NEXT: {{ $}} 1015 ; GCN-NEXT: bb.1: 1016 ; GCN-NEXT: successors: %bb.2(0x80000000) 1017 ; GCN-NEXT: {{ $}} 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: {{ $}} 1046 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1047 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 1048 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1049 ; GCN-NEXT: S_BRANCH %bb.1 1050 ; GCN-NEXT: {{ $}} 1051 ; GCN-NEXT: bb.1: 1052 ; GCN-NEXT: successors: %bb.2(0x80000000) 1053 ; GCN-NEXT: {{ $}} 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: {{ $}} 1082 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1083 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 1084 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1085 ; GCN-NEXT: S_BRANCH %bb.1 1086 ; GCN-NEXT: {{ $}} 1087 ; GCN-NEXT: bb.1: 1088 ; GCN-NEXT: successors: %bb.2(0x80000000) 1089 ; GCN-NEXT: {{ $}} 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: {{ $}} 1118 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1119 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 1120 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1121 ; GCN-NEXT: S_BRANCH %bb.1 1122 ; GCN-NEXT: {{ $}} 1123 ; GCN-NEXT: bb.1: 1124 ; GCN-NEXT: successors: %bb.2(0x80000000) 1125 ; GCN-NEXT: {{ $}} 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: {{ $}} 1154 ; GCN-NEXT: S_BITCMP1_B32 11, 0, implicit-def $scc 1155 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1156 ; GCN-NEXT: S_BRANCH %bb.1 1157 ; GCN-NEXT: {{ $}} 1158 ; GCN-NEXT: bb.1: 1159 ; GCN-NEXT: successors: %bb.2(0x80000000) 1160 ; GCN-NEXT: {{ $}} 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: {{ $}} 1188 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1189 ; GCN-NEXT: S_BITCMP0_B32 killed [[COPY]], 0, implicit-def $scc 1190 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1191 ; GCN-NEXT: S_BRANCH %bb.1 1192 ; GCN-NEXT: {{ $}} 1193 ; GCN-NEXT: bb.1: 1194 ; GCN-NEXT: successors: %bb.2(0x80000000) 1195 ; GCN-NEXT: {{ $}} 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: {{ $}} 1224 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1225 ; GCN-NEXT: S_BITCMP0_B32 killed [[COPY]], 0, implicit-def $scc 1226 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1227 ; GCN-NEXT: S_BRANCH %bb.1 1228 ; GCN-NEXT: {{ $}} 1229 ; GCN-NEXT: bb.1: 1230 ; GCN-NEXT: successors: %bb.2(0x80000000) 1231 ; GCN-NEXT: {{ $}} 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: {{ $}} 1260 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1 1261 ; GCN-NEXT: S_BITCMP0_B64 killed [[COPY]], 0, implicit-def $scc 1262 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1263 ; GCN-NEXT: S_BRANCH %bb.1 1264 ; GCN-NEXT: {{ $}} 1265 ; GCN-NEXT: bb.1: 1266 ; GCN-NEXT: successors: %bb.2(0x80000000) 1267 ; GCN-NEXT: {{ $}} 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: {{ $}} 1296 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1297 ; GCN-NEXT: S_BITCMP0_B32 killed [[COPY]], 0, implicit-def $scc 1298 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1299 ; GCN-NEXT: S_BRANCH %bb.1 1300 ; GCN-NEXT: {{ $}} 1301 ; GCN-NEXT: bb.1: 1302 ; GCN-NEXT: successors: %bb.2(0x80000000) 1303 ; GCN-NEXT: {{ $}} 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: {{ $}} 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_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: {{ $}} 1368 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1 1369 ; GCN-NEXT: S_BITCMP0_B64 killed [[COPY]], 0, implicit-def $scc 1370 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1371 ; GCN-NEXT: S_BRANCH %bb.1 1372 ; GCN-NEXT: {{ $}} 1373 ; GCN-NEXT: bb.1: 1374 ; GCN-NEXT: successors: %bb.2(0x80000000) 1375 ; GCN-NEXT: {{ $}} 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: {{ $}} 1404 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1405 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc 1406 ; GCN-NEXT: S_CMP_EQ_U32 [[S_AND_B32_]], 0, implicit-def $scc 1407 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1408 ; GCN-NEXT: S_BRANCH %bb.1 1409 ; GCN-NEXT: {{ $}} 1410 ; GCN-NEXT: bb.1: 1411 ; GCN-NEXT: successors: %bb.2(0x80000000) 1412 ; GCN-NEXT: {{ $}} 1413 ; GCN-NEXT: S_NOP 0, implicit [[S_AND_B32_]] 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, $vgpr0_vgpr1 1420 1421 %0:sreg_32 = COPY $sgpr0 1422 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc 1423 S_CMP_EQ_U32 %1:sreg_32, 0, 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 S_NOP 0, implicit %1 1431 bb.2: 1432 S_ENDPGM 0 1433 1434... 1435 1436--- 1437name: and_1_cmp_ge_u32_0 1438body: | 1439 ; GCN-LABEL: name: and_1_cmp_ge_u32_0 1440 ; GCN: bb.0: 1441 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 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_GE_U32 killed [[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: {{ $}} 1453 ; GCN-NEXT: bb.2: 1454 ; GCN-NEXT: S_ENDPGM 0 1455 bb.0: 1456 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1457 liveins: $sgpr0, $vgpr0_vgpr1 1458 1459 %0:sreg_32 = COPY $sgpr0 1460 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc 1461 S_CMP_GE_U32 killed %1:sreg_32, 0, implicit-def $scc 1462 S_CBRANCH_SCC0 %bb.2, implicit $scc 1463 S_BRANCH %bb.1 1464 1465 bb.1: 1466 successors: %bb.2(0x80000000) 1467 1468 bb.2: 1469 S_ENDPGM 0 1470 1471... 1472 1473--- 1474name: and_1_cmp_gt_u32_1 1475body: | 1476 ; GCN-LABEL: name: and_1_cmp_gt_u32_1 1477 ; GCN: bb.0: 1478 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1479 ; GCN-NEXT: {{ $}} 1480 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1481 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc 1482 ; GCN-NEXT: S_CMP_GT_U32 killed [[S_AND_B32_]], 1, implicit-def $scc 1483 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1484 ; GCN-NEXT: S_BRANCH %bb.1 1485 ; GCN-NEXT: {{ $}} 1486 ; GCN-NEXT: bb.1: 1487 ; GCN-NEXT: successors: %bb.2(0x80000000) 1488 ; GCN-NEXT: {{ $}} 1489 ; GCN-NEXT: {{ $}} 1490 ; GCN-NEXT: bb.2: 1491 ; GCN-NEXT: S_ENDPGM 0 1492 bb.0: 1493 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1494 liveins: $sgpr0, $vgpr0_vgpr1 1495 1496 %0:sreg_32 = COPY $sgpr0 1497 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc 1498 S_CMP_GT_U32 killed %1:sreg_32, 1, implicit-def $scc 1499 S_CBRANCH_SCC0 %bb.2, implicit $scc 1500 S_BRANCH %bb.1 1501 1502 bb.1: 1503 successors: %bb.2(0x80000000) 1504 1505 bb.2: 1506 S_ENDPGM 0 1507 1508... 1509 1510--- 1511name: and_1_folded_src0_cmp_eq_u32_1_folded_src2 1512body: | 1513 ; GCN-LABEL: name: and_1_folded_src0_cmp_eq_u32_1_folded_src2 1514 ; GCN: bb.0: 1515 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1516 ; GCN-NEXT: {{ $}} 1517 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1518 ; GCN-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 1 1519 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 1520 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1521 ; GCN-NEXT: S_BRANCH %bb.1 1522 ; GCN-NEXT: {{ $}} 1523 ; GCN-NEXT: bb.1: 1524 ; GCN-NEXT: successors: %bb.2(0x80000000) 1525 ; GCN-NEXT: {{ $}} 1526 ; GCN-NEXT: {{ $}} 1527 ; GCN-NEXT: bb.2: 1528 ; GCN-NEXT: S_ENDPGM 0 1529 bb.0: 1530 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1531 liveins: $sgpr0, $vgpr0_vgpr1 1532 1533 %0:sreg_32 = COPY $sgpr0 1534 %1:sreg_32 = S_MOV_B32 1 1535 %2:sreg_32 = S_AND_B32 %1, killed %0, implicit-def dead $scc 1536 S_CMP_EQ_U32 killed %2:sreg_32, %1, implicit-def $scc 1537 S_CBRANCH_SCC0 %bb.2, implicit $scc 1538 S_BRANCH %bb.1 1539 1540 bb.1: 1541 successors: %bb.2(0x80000000) 1542 1543 bb.2: 1544 S_ENDPGM 0 1545 1546... 1547 1548--- 1549name: and_1_folded_src1_cmp_eq_u32_1_folded_src2 1550body: | 1551 ; GCN-LABEL: name: and_1_folded_src1_cmp_eq_u32_1_folded_src2 1552 ; GCN: bb.0: 1553 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1554 ; GCN-NEXT: {{ $}} 1555 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1556 ; GCN-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 1 1557 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc 1558 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1559 ; GCN-NEXT: S_BRANCH %bb.1 1560 ; GCN-NEXT: {{ $}} 1561 ; GCN-NEXT: bb.1: 1562 ; GCN-NEXT: successors: %bb.2(0x80000000) 1563 ; GCN-NEXT: {{ $}} 1564 ; GCN-NEXT: {{ $}} 1565 ; GCN-NEXT: bb.2: 1566 ; GCN-NEXT: S_ENDPGM 0 1567 bb.0: 1568 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1569 liveins: $sgpr0, $vgpr0_vgpr1 1570 1571 %0:sreg_32 = COPY $sgpr0 1572 %1:sreg_32 = S_MOV_B32 1 1573 %2:sreg_32 = S_AND_B32 killed %0, %1, implicit-def dead $scc 1574 S_CMP_EQ_U32 killed %2:sreg_32, %1, implicit-def $scc 1575 S_CBRANCH_SCC0 %bb.2, implicit $scc 1576 S_BRANCH %bb.1 1577 1578 bb.1: 1579 successors: %bb.2(0x80000000) 1580 1581 bb.2: 1582 S_ENDPGM 0 1583 1584... 1585 1586--- 1587name: and_1_folded_src1_cmp_eq_u64_1_folded_src2 1588body: | 1589 ; GCN-LABEL: name: and_1_folded_src1_cmp_eq_u64_1_folded_src2 1590 ; GCN: bb.0: 1591 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1592 ; GCN-NEXT: {{ $}} 1593 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1 1594 ; GCN-NEXT: [[S_MOV_B64_:%[0-9]+]]:sreg_64 = S_MOV_B64 1 1595 ; GCN-NEXT: S_BITCMP1_B64 killed [[COPY]], 0, implicit-def $scc 1596 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1597 ; GCN-NEXT: S_BRANCH %bb.1 1598 ; GCN-NEXT: {{ $}} 1599 ; GCN-NEXT: bb.1: 1600 ; GCN-NEXT: successors: %bb.2(0x80000000) 1601 ; GCN-NEXT: {{ $}} 1602 ; GCN-NEXT: {{ $}} 1603 ; GCN-NEXT: bb.2: 1604 ; GCN-NEXT: S_ENDPGM 0 1605 bb.0: 1606 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1607 liveins: $sgpr0_sgpr1, $vgpr0_vgpr1 1608 1609 %0:sreg_64 = COPY $sgpr0_sgpr1 1610 %1:sreg_64 = S_MOV_B64 1 1611 %2:sreg_64 = S_AND_B64 killed %0, %1, implicit-def dead $scc 1612 S_CMP_EQ_U64 killed %2:sreg_64, %1, implicit-def $scc 1613 S_CBRANCH_SCC0 %bb.2, implicit $scc 1614 S_BRANCH %bb.1 1615 1616 bb.1: 1617 successors: %bb.2(0x80000000) 1618 1619 bb.2: 1620 S_ENDPGM 0 1621 1622... 1623 1624--- 1625name: and_1024_cmp_eq_u32_1024 1626body: | 1627 ; GCN-LABEL: name: and_1024_cmp_eq_u32_1024 1628 ; GCN: bb.0: 1629 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1630 ; GCN-NEXT: {{ $}} 1631 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1632 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 10, implicit-def $scc 1633 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1634 ; GCN-NEXT: S_BRANCH %bb.1 1635 ; GCN-NEXT: {{ $}} 1636 ; GCN-NEXT: bb.1: 1637 ; GCN-NEXT: successors: %bb.2(0x80000000) 1638 ; GCN-NEXT: {{ $}} 1639 ; GCN-NEXT: {{ $}} 1640 ; GCN-NEXT: bb.2: 1641 ; GCN-NEXT: S_ENDPGM 0 1642 bb.0: 1643 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1644 liveins: $sgpr0, $vgpr0_vgpr1 1645 1646 %0:sreg_32 = COPY $sgpr0 1647 %1:sreg_32 = S_AND_B32 1024, killed %0, implicit-def dead $scc 1648 S_CMP_EQ_U32 killed %1:sreg_32, 1024, implicit-def $scc 1649 S_CBRANCH_SCC0 %bb.2, implicit $scc 1650 S_BRANCH %bb.1 1651 1652 bb.1: 1653 successors: %bb.2(0x80000000) 1654 1655 bb.2: 1656 S_ENDPGM 0 1657 1658... 1659 1660--- 1661name: and_0x80000000_cmp_eq_u32_0x80000000 1662body: | 1663 ; GCN-LABEL: name: and_0x80000000_cmp_eq_u32_0x80000000 1664 ; GCN: bb.0: 1665 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1666 ; GCN-NEXT: {{ $}} 1667 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1668 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 31, implicit-def $scc 1669 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1670 ; GCN-NEXT: S_BRANCH %bb.1 1671 ; GCN-NEXT: {{ $}} 1672 ; GCN-NEXT: bb.1: 1673 ; GCN-NEXT: successors: %bb.2(0x80000000) 1674 ; GCN-NEXT: {{ $}} 1675 ; GCN-NEXT: {{ $}} 1676 ; GCN-NEXT: bb.2: 1677 ; GCN-NEXT: S_ENDPGM 0 1678 bb.0: 1679 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1680 liveins: $sgpr0, $vgpr0_vgpr1 1681 1682 %0:sreg_32 = COPY $sgpr0 1683 %1:sreg_32 = S_AND_B32 2147483648, killed %0, implicit-def dead $scc 1684 S_CMP_EQ_U32 killed %1:sreg_32, 2147483648, implicit-def $scc 1685 S_CBRANCH_SCC0 %bb.2, implicit $scc 1686 S_BRANCH %bb.1 1687 1688 bb.1: 1689 successors: %bb.2(0x80000000) 1690 1691 bb.2: 1692 S_ENDPGM 0 1693 1694... 1695 1696--- 1697name: and_0x80000000_cmp_ge_u32_0x80000000 1698body: | 1699 ; GCN-LABEL: name: and_0x80000000_cmp_ge_u32_0x80000000 1700 ; GCN: bb.0: 1701 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1702 ; GCN-NEXT: {{ $}} 1703 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1704 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 31, implicit-def $scc 1705 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1706 ; GCN-NEXT: S_BRANCH %bb.1 1707 ; GCN-NEXT: {{ $}} 1708 ; GCN-NEXT: bb.1: 1709 ; GCN-NEXT: successors: %bb.2(0x80000000) 1710 ; GCN-NEXT: {{ $}} 1711 ; GCN-NEXT: {{ $}} 1712 ; GCN-NEXT: bb.2: 1713 ; GCN-NEXT: S_ENDPGM 0 1714 bb.0: 1715 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1716 liveins: $sgpr0, $vgpr0_vgpr1 1717 1718 %0:sreg_32 = COPY $sgpr0 1719 %1:sreg_32 = S_AND_B32 2147483648, killed %0, implicit-def dead $scc 1720 S_CMP_GE_U32 killed %1:sreg_32, 2147483648, implicit-def $scc 1721 S_CBRANCH_SCC0 %bb.2, implicit $scc 1722 S_BRANCH %bb.1 1723 1724 bb.1: 1725 successors: %bb.2(0x80000000) 1726 1727 bb.2: 1728 S_ENDPGM 0 1729 1730... 1731 1732--- 1733name: and_0x80000000_cmp_ge_i32_0x80000000 1734body: | 1735 ; GCN-LABEL: name: and_0x80000000_cmp_ge_i32_0x80000000 1736 ; GCN: bb.0: 1737 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1738 ; GCN-NEXT: {{ $}} 1739 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1740 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 2147483648, killed [[COPY]], implicit-def dead $scc 1741 ; GCN-NEXT: S_CMP_GE_I32 killed [[S_AND_B32_]], 2147483648, implicit-def $scc 1742 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1743 ; GCN-NEXT: S_BRANCH %bb.1 1744 ; GCN-NEXT: {{ $}} 1745 ; GCN-NEXT: bb.1: 1746 ; GCN-NEXT: successors: %bb.2(0x80000000) 1747 ; GCN-NEXT: {{ $}} 1748 ; GCN-NEXT: {{ $}} 1749 ; GCN-NEXT: bb.2: 1750 ; GCN-NEXT: S_ENDPGM 0 1751 bb.0: 1752 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1753 liveins: $sgpr0, $vgpr0_vgpr1 1754 1755 %0:sreg_32 = COPY $sgpr0 1756 %1:sreg_32 = S_AND_B32 2147483648, killed %0, implicit-def dead $scc 1757 S_CMP_GE_I32 killed %1:sreg_32, 2147483648, implicit-def $scc 1758 S_CBRANCH_SCC0 %bb.2, implicit $scc 1759 S_BRANCH %bb.1 1760 1761 bb.1: 1762 successors: %bb.2(0x80000000) 1763 1764 bb.2: 1765 S_ENDPGM 0 1766 1767... 1768 1769--- 1770name: and_1024_cmp_ge_i32_1024 1771body: | 1772 ; GCN-LABEL: name: and_1024_cmp_ge_i32_1024 1773 ; GCN: bb.0: 1774 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1775 ; GCN-NEXT: {{ $}} 1776 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1777 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 10, implicit-def $scc 1778 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1779 ; GCN-NEXT: S_BRANCH %bb.1 1780 ; GCN-NEXT: {{ $}} 1781 ; GCN-NEXT: bb.1: 1782 ; GCN-NEXT: successors: %bb.2(0x80000000) 1783 ; GCN-NEXT: {{ $}} 1784 ; GCN-NEXT: {{ $}} 1785 ; GCN-NEXT: bb.2: 1786 ; GCN-NEXT: S_ENDPGM 0 1787 bb.0: 1788 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1789 liveins: $sgpr0, $vgpr0_vgpr1 1790 1791 %0:sreg_32 = COPY $sgpr0 1792 %1:sreg_32 = S_AND_B32 1024, killed %0, implicit-def dead $scc 1793 S_CMP_GE_I32 killed %1:sreg_32, 1024, implicit-def $scc 1794 S_CBRANCH_SCC0 %bb.2, implicit $scc 1795 S_BRANCH %bb.1 1796 1797 bb.1: 1798 successors: %bb.2(0x80000000) 1799 1800 bb.2: 1801 S_ENDPGM 0 1802 1803... 1804 1805--- 1806name: and_0x80000000_cmp_lg_i32_0 1807body: | 1808 ; GCN-LABEL: name: and_0x80000000_cmp_lg_i32_0 1809 ; GCN: bb.0: 1810 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1811 ; GCN-NEXT: {{ $}} 1812 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1813 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 31, implicit-def $scc 1814 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1815 ; GCN-NEXT: S_BRANCH %bb.1 1816 ; GCN-NEXT: {{ $}} 1817 ; GCN-NEXT: bb.1: 1818 ; GCN-NEXT: successors: %bb.2(0x80000000) 1819 ; GCN-NEXT: {{ $}} 1820 ; GCN-NEXT: {{ $}} 1821 ; GCN-NEXT: bb.2: 1822 ; GCN-NEXT: S_ENDPGM 0 1823 bb.0: 1824 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1825 liveins: $sgpr0, $vgpr0_vgpr1 1826 1827 %0:sreg_32 = COPY $sgpr0 1828 %1:sreg_32 = S_AND_B32 2147483648, killed %0, implicit-def dead $scc 1829 S_CMP_LG_I32 killed %1:sreg_32, 0, implicit-def $scc 1830 S_CBRANCH_SCC0 %bb.2, implicit $scc 1831 S_BRANCH %bb.1 1832 1833 bb.1: 1834 successors: %bb.2(0x80000000) 1835 1836 bb.2: 1837 S_ENDPGM 0 1838 1839... 1840 1841--- 1842name: and_0x80000000_cmp_gt_i32_0 1843body: | 1844 ; GCN-LABEL: name: and_0x80000000_cmp_gt_i32_0 1845 ; GCN: bb.0: 1846 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1847 ; GCN-NEXT: {{ $}} 1848 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1849 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 2147483648, killed [[COPY]], implicit-def dead $scc 1850 ; GCN-NEXT: S_CMP_GT_I32 killed [[S_AND_B32_]], 0, implicit-def $scc 1851 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1852 ; GCN-NEXT: S_BRANCH %bb.1 1853 ; GCN-NEXT: {{ $}} 1854 ; GCN-NEXT: bb.1: 1855 ; GCN-NEXT: successors: %bb.2(0x80000000) 1856 ; GCN-NEXT: {{ $}} 1857 ; GCN-NEXT: {{ $}} 1858 ; GCN-NEXT: bb.2: 1859 ; GCN-NEXT: S_ENDPGM 0 1860 bb.0: 1861 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1862 liveins: $sgpr0, $vgpr0_vgpr1 1863 1864 %0:sreg_32 = COPY $sgpr0 1865 %1:sreg_32 = S_AND_B32 2147483648, killed %0, implicit-def dead $scc 1866 S_CMP_GT_I32 killed %1:sreg_32, 0, implicit-def $scc 1867 S_CBRANCH_SCC0 %bb.2, implicit $scc 1868 S_BRANCH %bb.1 1869 1870 bb.1: 1871 successors: %bb.2(0x80000000) 1872 1873 bb.2: 1874 S_ENDPGM 0 1875 1876... 1877 1878--- 1879name: and_0x80000000_cmp_gt_u32_0 1880body: | 1881 ; GCN-LABEL: name: and_0x80000000_cmp_gt_u32_0 1882 ; GCN: bb.0: 1883 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1884 ; GCN-NEXT: {{ $}} 1885 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1886 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 31, implicit-def $scc 1887 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1888 ; GCN-NEXT: S_BRANCH %bb.1 1889 ; GCN-NEXT: {{ $}} 1890 ; GCN-NEXT: bb.1: 1891 ; GCN-NEXT: successors: %bb.2(0x80000000) 1892 ; GCN-NEXT: {{ $}} 1893 ; GCN-NEXT: {{ $}} 1894 ; GCN-NEXT: bb.2: 1895 ; GCN-NEXT: S_ENDPGM 0 1896 bb.0: 1897 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1898 liveins: $sgpr0, $vgpr0_vgpr1 1899 1900 %0:sreg_32 = COPY $sgpr0 1901 %1:sreg_32 = S_AND_B32 2147483648, killed %0, implicit-def dead $scc 1902 S_CMP_GT_U32 killed %1:sreg_32, 0, implicit-def $scc 1903 S_CBRANCH_SCC0 %bb.2, implicit $scc 1904 S_BRANCH %bb.1 1905 1906 bb.1: 1907 successors: %bb.2(0x80000000) 1908 1909 bb.2: 1910 S_ENDPGM 0 1911 1912... 1913 1914--- 1915name: and_0x80000000_cmp_eq_u64_0x80000000 1916body: | 1917 ; GCN-LABEL: name: and_0x80000000_cmp_eq_u64_0x80000000 1918 ; GCN: bb.0: 1919 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1920 ; GCN-NEXT: {{ $}} 1921 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1 1922 ; GCN-NEXT: S_BITCMP1_B64 killed [[COPY]], 35, implicit-def $scc 1923 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1924 ; GCN-NEXT: S_BRANCH %bb.1 1925 ; GCN-NEXT: {{ $}} 1926 ; GCN-NEXT: bb.1: 1927 ; GCN-NEXT: successors: %bb.2(0x80000000) 1928 ; GCN-NEXT: {{ $}} 1929 ; GCN-NEXT: {{ $}} 1930 ; GCN-NEXT: bb.2: 1931 ; GCN-NEXT: S_ENDPGM 0 1932 bb.0: 1933 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1934 liveins: $sgpr0_sgpr1, $vgpr0_vgpr1 1935 1936 %0:sreg_64 = COPY $sgpr0_sgpr1 1937 %1:sreg_64 = S_AND_B64 34359738368, killed %0, implicit-def dead $scc 1938 S_CMP_EQ_U64 killed %1:sreg_64, 34359738368, implicit-def $scc 1939 S_CBRANCH_SCC0 %bb.2, implicit $scc 1940 S_BRANCH %bb.1 1941 1942 bb.1: 1943 successors: %bb.2(0x80000000) 1944 1945 bb.2: 1946 S_ENDPGM 0 1947 1948... 1949 1950--- 1951name: and_0x8000000000000000_cmp_eq_u64_0x8000000000000000 1952body: | 1953 ; GCN-LABEL: name: and_0x8000000000000000_cmp_eq_u64_0x8000000000000000 1954 ; GCN: bb.0: 1955 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1956 ; GCN-NEXT: {{ $}} 1957 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1 1958 ; GCN-NEXT: S_BITCMP1_B64 killed [[COPY]], 63, implicit-def $scc 1959 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1960 ; GCN-NEXT: S_BRANCH %bb.1 1961 ; GCN-NEXT: {{ $}} 1962 ; GCN-NEXT: bb.1: 1963 ; GCN-NEXT: successors: %bb.2(0x80000000) 1964 ; GCN-NEXT: {{ $}} 1965 ; GCN-NEXT: {{ $}} 1966 ; GCN-NEXT: bb.2: 1967 ; GCN-NEXT: S_ENDPGM 0 1968 bb.0: 1969 successors: %bb.1(0x40000000), %bb.2(0x40000000) 1970 liveins: $sgpr0_sgpr1, $vgpr0_vgpr1 1971 1972 %0:sreg_64 = COPY $sgpr0_sgpr1 1973 %1:sreg_64 = S_AND_B64 9223372036854775808, killed %0, implicit-def dead $scc 1974 S_CMP_EQ_U64 killed %1:sreg_64, 9223372036854775808, implicit-def $scc 1975 S_CBRANCH_SCC0 %bb.2, implicit $scc 1976 S_BRANCH %bb.1 1977 1978 bb.1: 1979 successors: %bb.2(0x80000000) 1980 1981 bb.2: 1982 S_ENDPGM 0 1983 1984... 1985 1986--- 1987name: and_2_cmp_eq_u32_2_used_and 1988body: | 1989 ; GCN-LABEL: name: and_2_cmp_eq_u32_2_used_and 1990 ; GCN: bb.0: 1991 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 1992 ; GCN-NEXT: {{ $}} 1993 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 1994 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 2, killed [[COPY]], implicit-def $scc 1995 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 1996 ; GCN-NEXT: S_BRANCH %bb.1 1997 ; GCN-NEXT: {{ $}} 1998 ; GCN-NEXT: bb.1: 1999 ; GCN-NEXT: successors: %bb.2(0x80000000) 2000 ; GCN-NEXT: {{ $}} 2001 ; GCN-NEXT: S_NOP 0, implicit [[S_AND_B32_]] 2002 ; GCN-NEXT: {{ $}} 2003 ; GCN-NEXT: bb.2: 2004 ; GCN-NEXT: S_ENDPGM 0 2005 bb.0: 2006 successors: %bb.1(0x40000000), %bb.2(0x40000000) 2007 liveins: $sgpr0, $vgpr0_vgpr1 2008 2009 %0:sreg_32 = COPY $sgpr0 2010 %1:sreg_32 = S_AND_B32 2, killed %0, implicit-def dead $scc 2011 S_CMP_EQ_U32 %1:sreg_32, 2, implicit-def $scc 2012 S_CBRANCH_SCC0 %bb.2, implicit $scc 2013 S_BRANCH %bb.1 2014 2015 bb.1: 2016 successors: %bb.2(0x80000000) 2017 2018 S_NOP 0, implicit %1 2019 2020 bb.2: 2021 S_ENDPGM 0 2022 2023... 2024 2025--- 2026name: and_3_cmp_eq_u32_3 2027body: | 2028 ; GCN-LABEL: name: and_3_cmp_eq_u32_3 2029 ; GCN: bb.0: 2030 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 2031 ; GCN-NEXT: {{ $}} 2032 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 2033 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 3, killed [[COPY]], implicit-def dead $scc 2034 ; GCN-NEXT: S_CMP_EQ_U32 killed [[S_AND_B32_]], 3, implicit-def $scc 2035 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 2036 ; GCN-NEXT: S_BRANCH %bb.1 2037 ; GCN-NEXT: {{ $}} 2038 ; GCN-NEXT: bb.1: 2039 ; GCN-NEXT: successors: %bb.2(0x80000000) 2040 ; GCN-NEXT: {{ $}} 2041 ; GCN-NEXT: {{ $}} 2042 ; GCN-NEXT: bb.2: 2043 ; GCN-NEXT: S_ENDPGM 0 2044 bb.0: 2045 successors: %bb.1(0x40000000), %bb.2(0x40000000) 2046 liveins: $sgpr0, $vgpr0_vgpr1 2047 2048 %0:sreg_32 = COPY $sgpr0 2049 %1:sreg_32 = S_AND_B32 3, killed %0, implicit-def dead $scc 2050 S_CMP_EQ_U32 killed %1:sreg_32, 3, implicit-def $scc 2051 S_CBRANCH_SCC0 %bb.2, implicit $scc 2052 S_BRANCH %bb.1 2053 2054 bb.1: 2055 successors: %bb.2(0x80000000) 2056 2057 bb.2: 2058 S_ENDPGM 0 2059 2060... 2061 2062--- 2063name: and_3_cmp_lg_u32_0 2064body: | 2065 ; GCN-LABEL: name: and_3_cmp_lg_u32_0 2066 ; GCN: bb.0: 2067 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 2068 ; GCN-NEXT: {{ $}} 2069 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 2070 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 3, killed [[COPY]], implicit-def dead $scc 2071 ; GCN-NEXT: S_CMP_LG_U32 killed [[S_AND_B32_]], 0, implicit-def $scc 2072 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 2073 ; GCN-NEXT: S_BRANCH %bb.1 2074 ; GCN-NEXT: {{ $}} 2075 ; GCN-NEXT: bb.1: 2076 ; GCN-NEXT: successors: %bb.2(0x80000000) 2077 ; GCN-NEXT: {{ $}} 2078 ; GCN-NEXT: {{ $}} 2079 ; GCN-NEXT: bb.2: 2080 ; GCN-NEXT: S_ENDPGM 0 2081 bb.0: 2082 successors: %bb.1(0x40000000), %bb.2(0x40000000) 2083 liveins: $sgpr0, $vgpr0_vgpr1 2084 2085 %0:sreg_32 = COPY $sgpr0 2086 %1:sreg_32 = S_AND_B32 3, killed %0, implicit-def dead $scc 2087 S_CMP_LG_U32 killed %1:sreg_32, 0, implicit-def $scc 2088 S_CBRANCH_SCC0 %bb.2, implicit $scc 2089 S_BRANCH %bb.1 2090 2091 bb.1: 2092 successors: %bb.2(0x80000000) 2093 2094 bb.2: 2095 S_ENDPGM 0 2096 2097... 2098 2099--- 2100name: and_4_cmp_lg_u32_0 2101body: | 2102 ; GCN-LABEL: name: and_4_cmp_lg_u32_0 2103 ; GCN: bb.0: 2104 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 2105 ; GCN-NEXT: {{ $}} 2106 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 2107 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 2, implicit-def $scc 2108 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 2109 ; GCN-NEXT: S_BRANCH %bb.1 2110 ; GCN-NEXT: {{ $}} 2111 ; GCN-NEXT: bb.1: 2112 ; GCN-NEXT: successors: %bb.2(0x80000000) 2113 ; GCN-NEXT: {{ $}} 2114 ; GCN-NEXT: {{ $}} 2115 ; GCN-NEXT: bb.2: 2116 ; GCN-NEXT: S_ENDPGM 0 2117 bb.0: 2118 successors: %bb.1(0x40000000), %bb.2(0x40000000) 2119 liveins: $sgpr0, $vgpr0_vgpr1 2120 2121 %0:sreg_32 = COPY $sgpr0 2122 %1:sreg_32 = S_AND_B32 4, killed %0, implicit-def dead $scc 2123 S_CMP_LG_U32 killed %1:sreg_32, 0, implicit-def $scc 2124 S_CBRANCH_SCC0 %bb.2, implicit $scc 2125 S_BRANCH %bb.1 2126 2127 bb.1: 2128 successors: %bb.2(0x80000000) 2129 2130 bb.2: 2131 S_ENDPGM 0 2132 2133... 2134 2135--- 2136name: and_0x80000000_cmp_eq_u32_0 2137body: | 2138 ; GCN-LABEL: name: and_0x80000000_cmp_eq_u32_0 2139 ; GCN: bb.0: 2140 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 2141 ; GCN-NEXT: {{ $}} 2142 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 2143 ; GCN-NEXT: S_BITCMP0_B32 killed [[COPY]], 31, implicit-def $scc 2144 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 2145 ; GCN-NEXT: S_BRANCH %bb.1 2146 ; GCN-NEXT: {{ $}} 2147 ; GCN-NEXT: bb.1: 2148 ; GCN-NEXT: successors: %bb.2(0x80000000) 2149 ; GCN-NEXT: {{ $}} 2150 ; GCN-NEXT: {{ $}} 2151 ; GCN-NEXT: bb.2: 2152 ; GCN-NEXT: S_ENDPGM 0 2153 bb.0: 2154 successors: %bb.1(0x40000000), %bb.2(0x40000000) 2155 liveins: $sgpr0, $vgpr0_vgpr1 2156 2157 %0:sreg_32 = COPY $sgpr0 2158 %1:sreg_32 = S_AND_B32 2147483648, killed %0, implicit-def dead $scc 2159 S_CMP_EQ_U32 killed %1:sreg_32, 0, implicit-def $scc 2160 S_CBRANCH_SCC0 %bb.2, implicit $scc 2161 S_BRANCH %bb.1 2162 2163 bb.1: 2164 successors: %bb.2(0x80000000) 2165 2166 bb.2: 2167 S_ENDPGM 0 2168 2169... 2170 2171--- 2172name: and_0x8000000000000000_cmp_lg_u64_0x8000000000000000 2173body: | 2174 ; GCN-LABEL: name: and_0x8000000000000000_cmp_lg_u64_0x8000000000000000 2175 ; GCN: bb.0: 2176 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000) 2177 ; GCN-NEXT: {{ $}} 2178 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1 2179 ; GCN-NEXT: S_BITCMP0_B64 killed [[COPY]], 63, implicit-def $scc 2180 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc 2181 ; GCN-NEXT: S_BRANCH %bb.1 2182 ; GCN-NEXT: {{ $}} 2183 ; GCN-NEXT: bb.1: 2184 ; GCN-NEXT: successors: %bb.2(0x80000000) 2185 ; GCN-NEXT: {{ $}} 2186 ; GCN-NEXT: {{ $}} 2187 ; GCN-NEXT: bb.2: 2188 ; GCN-NEXT: S_ENDPGM 0 2189 bb.0: 2190 successors: %bb.1(0x40000000), %bb.2(0x40000000) 2191 liveins: $sgpr0_sgpr1, $vgpr0_vgpr1 2192 2193 %0:sreg_64 = COPY $sgpr0_sgpr1 2194 %1:sreg_64 = S_AND_B64 9223372036854775808, killed %0, implicit-def dead $scc 2195 S_CMP_LG_U64 killed %1:sreg_64, 9223372036854775808, implicit-def $scc 2196 S_CBRANCH_SCC0 %bb.2, implicit $scc 2197 S_BRANCH %bb.1 2198 2199 bb.1: 2200 successors: %bb.2(0x80000000) 2201 2202 bb.2: 2203 S_ENDPGM 0 2204 2205... 2206