147 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -run-pass=amdgpu-regbank-combiner %s -o - | FileCheck %s3 4---5name: lshr_zext_i166tracksRegLiveness: true7body: |8 bb.0:9 liveins: $sgpr0, $sgpr110 11 ; CHECK-LABEL: name: lshr_zext_i1612 ; CHECK: liveins: $sgpr0, $sgpr113 ; CHECK-NEXT: {{ $}}14 ; CHECK-NEXT: %src:sgpr(s32) = COPY $sgpr015 ; CHECK-NEXT: %regamt:sgpr(s32) = COPY $sgpr116 ; CHECK-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 6553517 ; CHECK-NEXT: [[AND:%[0-9]+]]:sgpr(s32) = G_AND %regamt, [[C]]18 ; CHECK-NEXT: %res:sgpr(s32) = G_LSHR %src, [[AND]](s32)19 ; CHECK-NEXT: $sgpr0 = COPY %res(s32)20 %src:sgpr(s32) = COPY $sgpr021 %regamt:sgpr(s32) = COPY $sgpr122 %amt:sgpr(s16) = G_TRUNC %regamt23 %zextamt:sgpr(s32) = G_ZEXT %amt24 %res:sgpr(s32) = G_LSHR %src, %zextamt25 $sgpr0 = COPY %res26...27 28---29name: ashr_zext_i1630tracksRegLiveness: true31body: |32 bb.0:33 liveins: $sgpr0, $sgpr134 35 ; CHECK-LABEL: name: ashr_zext_i1636 ; CHECK: liveins: $sgpr0, $sgpr137 ; CHECK-NEXT: {{ $}}38 ; CHECK-NEXT: %src:sgpr(s32) = COPY $sgpr039 ; CHECK-NEXT: %regamt:sgpr(s32) = COPY $sgpr140 ; CHECK-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 6553541 ; CHECK-NEXT: [[AND:%[0-9]+]]:sgpr(s32) = G_AND %regamt, [[C]]42 ; CHECK-NEXT: %res:sgpr(s32) = G_ASHR %src, [[AND]](s32)43 ; CHECK-NEXT: $sgpr0 = COPY %res(s32)44 %src:sgpr(s32) = COPY $sgpr045 %regamt:sgpr(s32) = COPY $sgpr146 %amt:sgpr(s16) = G_TRUNC %regamt47 %zextamt:sgpr(s32) = G_ZEXT %amt48 %res:sgpr(s32) = G_ASHR %src, %zextamt49 $sgpr0 = COPY %res50...51 52---53name: shl_zext_i1654tracksRegLiveness: true55body: |56 bb.0:57 liveins: $sgpr0, $sgpr158 59 ; CHECK-LABEL: name: shl_zext_i1660 ; CHECK: liveins: $sgpr0, $sgpr161 ; CHECK-NEXT: {{ $}}62 ; CHECK-NEXT: %src:sgpr(s32) = COPY $sgpr063 ; CHECK-NEXT: %regamt:sgpr(s32) = COPY $sgpr164 ; CHECK-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 6553565 ; CHECK-NEXT: [[AND:%[0-9]+]]:sgpr(s32) = G_AND %regamt, [[C]]66 ; CHECK-NEXT: %res:sgpr(s32) = G_SHL %src, [[AND]](s32)67 ; CHECK-NEXT: $sgpr0 = COPY %res(s32)68 %src:sgpr(s32) = COPY $sgpr069 %regamt:sgpr(s32) = COPY $sgpr170 %amt:sgpr(s16) = G_TRUNC %regamt71 %zextamt:sgpr(s32) = G_ZEXT %amt72 %res:sgpr(s32) = G_SHL %src, %zextamt73 $sgpr0 = COPY %res74...75 76---77name: lshr_zext_i878tracksRegLiveness: true79body: |80 bb.0:81 liveins: $sgpr0, $sgpr182 83 ; CHECK-LABEL: name: lshr_zext_i884 ; CHECK: liveins: $sgpr0, $sgpr185 ; CHECK-NEXT: {{ $}}86 ; CHECK-NEXT: %src:sgpr(s32) = COPY $sgpr087 ; CHECK-NEXT: %regamt:sgpr(s32) = COPY $sgpr188 ; CHECK-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 25589 ; CHECK-NEXT: [[AND:%[0-9]+]]:sgpr(s32) = G_AND %regamt, [[C]]90 ; CHECK-NEXT: %res:sgpr(s32) = G_LSHR %src, [[AND]](s32)91 ; CHECK-NEXT: $sgpr0 = COPY %res(s32)92 %src:sgpr(s32) = COPY $sgpr093 %regamt:sgpr(s32) = COPY $sgpr194 %amt:sgpr(s8) = G_TRUNC %regamt95 %zextamt:sgpr(s32) = G_ZEXT %amt96 %res:sgpr(s32) = G_LSHR %src, %zextamt97 $sgpr0 = COPY %res98...99 100---101name: ashr_zext_i8102tracksRegLiveness: true103body: |104 bb.0:105 liveins: $sgpr0, $sgpr1106 107 ; CHECK-LABEL: name: ashr_zext_i8108 ; CHECK: liveins: $sgpr0, $sgpr1109 ; CHECK-NEXT: {{ $}}110 ; CHECK-NEXT: %src:sgpr(s32) = COPY $sgpr0111 ; CHECK-NEXT: %regamt:sgpr(s32) = COPY $sgpr1112 ; CHECK-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 255113 ; CHECK-NEXT: [[AND:%[0-9]+]]:sgpr(s32) = G_AND %regamt, [[C]]114 ; CHECK-NEXT: %res:sgpr(s32) = G_ASHR %src, [[AND]](s32)115 ; CHECK-NEXT: $sgpr0 = COPY %res(s32)116 %src:sgpr(s32) = COPY $sgpr0117 %regamt:sgpr(s32) = COPY $sgpr1118 %amt:sgpr(s8) = G_TRUNC %regamt119 %zextamt:sgpr(s32) = G_ZEXT %amt120 %res:sgpr(s32) = G_ASHR %src, %zextamt121 $sgpr0 = COPY %res122...123 124---125name: shl_zext_i8126tracksRegLiveness: true127body: |128 bb.0:129 liveins: $sgpr0, $sgpr1130 131 ; CHECK-LABEL: name: shl_zext_i8132 ; CHECK: liveins: $sgpr0, $sgpr1133 ; CHECK-NEXT: {{ $}}134 ; CHECK-NEXT: %src:sgpr(s32) = COPY $sgpr0135 ; CHECK-NEXT: %regamt:sgpr(s32) = COPY $sgpr1136 ; CHECK-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 255137 ; CHECK-NEXT: [[AND:%[0-9]+]]:sgpr(s32) = G_AND %regamt, [[C]]138 ; CHECK-NEXT: %res:sgpr(s32) = G_SHL %src, [[AND]](s32)139 ; CHECK-NEXT: $sgpr0 = COPY %res(s32)140 %src:sgpr(s32) = COPY $sgpr0141 %regamt:sgpr(s32) = COPY $sgpr1142 %amt:sgpr(s8) = G_TRUNC %regamt143 %zextamt:sgpr(s32) = G_ZEXT %amt144 %res:sgpr(s32) = G_SHL %src, %zextamt145 $sgpr0 = COPY %res146...147