166 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -O0 -run-pass=legalizer %s -o - | FileCheck %s3 4---5name: bitreverse_s86 7body: |8 bb.0:9 liveins: $vgpr010 ; CHECK-LABEL: name: bitreverse_s811 ; CHECK: liveins: $vgpr012 ; CHECK-NEXT: {{ $}}13 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr014 ; CHECK-NEXT: [[BITREVERSE:%[0-9]+]]:_(s32) = G_BITREVERSE [[COPY]]15 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 2416 ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[BITREVERSE]], [[C]](s32)17 ; CHECK-NEXT: $vgpr0 = COPY [[LSHR]](s32)18 %0:_(s32) = COPY $vgpr019 %1:_(s8) = G_TRUNC %020 %2:_(s8) = G_BITREVERSE %121 %3:_(s32) = G_ANYEXT %222 $vgpr0 = COPY %323...24 25---26name: bitreverse_s1627 28body: |29 bb.0:30 liveins: $vgpr031 ; CHECK-LABEL: name: bitreverse_s1632 ; CHECK: liveins: $vgpr033 ; CHECK-NEXT: {{ $}}34 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr035 ; CHECK-NEXT: [[BITREVERSE:%[0-9]+]]:_(s32) = G_BITREVERSE [[COPY]]36 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1637 ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[BITREVERSE]], [[C]](s32)38 ; CHECK-NEXT: $vgpr0 = COPY [[LSHR]](s32)39 %0:_(s32) = COPY $vgpr040 %1:_(s16) = G_TRUNC %041 %2:_(s16) = G_BITREVERSE %142 %3:_(s32) = G_ANYEXT %243 $vgpr0 = COPY %344...45 46---47name: bitreverse_s2448 49body: |50 bb.0:51 liveins: $vgpr052 ; CHECK-LABEL: name: bitreverse_s2453 ; CHECK: liveins: $vgpr054 ; CHECK-NEXT: {{ $}}55 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr056 ; CHECK-NEXT: [[BITREVERSE:%[0-9]+]]:_(s32) = G_BITREVERSE [[COPY]]57 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 858 ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[BITREVERSE]], [[C]](s32)59 ; CHECK-NEXT: $vgpr0 = COPY [[LSHR]](s32)60 %0:_(s32) = COPY $vgpr061 %1:_(s24) = G_TRUNC %062 %2:_(s24) = G_BITREVERSE %163 %3:_(s32) = G_ANYEXT %264 $vgpr0 = COPY %365...66 67---68name: bitreverse_s3269 70body: |71 bb.0:72 liveins: $vgpr073 ; CHECK-LABEL: name: bitreverse_s3274 ; CHECK: liveins: $vgpr075 ; CHECK-NEXT: {{ $}}76 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr077 ; CHECK-NEXT: [[BITREVERSE:%[0-9]+]]:_(s32) = G_BITREVERSE [[COPY]]78 ; CHECK-NEXT: $vgpr0 = COPY [[BITREVERSE]](s32)79 %0:_(s32) = COPY $vgpr080 %1:_(s32) = G_BITREVERSE %081 $vgpr0 = COPY %182...83 84---85name: bitreverse_v2s1686 87body: |88 bb.0:89 liveins: $vgpr090 ; CHECK-LABEL: name: bitreverse_v2s1691 ; CHECK: liveins: $vgpr092 ; CHECK-NEXT: {{ $}}93 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s16>) = COPY $vgpr094 ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:_(s32) = G_BITCAST [[COPY]](<2 x s16>)95 ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1696 ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[BITCAST]], [[C]](s32)97 ; CHECK-NEXT: [[BITREVERSE:%[0-9]+]]:_(s32) = G_BITREVERSE [[BITCAST]]98 ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[BITREVERSE]], [[C]](s32)99 ; CHECK-NEXT: [[BITREVERSE1:%[0-9]+]]:_(s32) = G_BITREVERSE [[LSHR]]100 ; CHECK-NEXT: [[LSHR2:%[0-9]+]]:_(s32) = G_LSHR [[BITREVERSE1]], [[C]](s32)101 ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[LSHR2]], [[C]](s32)102 ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[LSHR1]], [[SHL]]103 ; CHECK-NEXT: [[BITCAST1:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[OR]](s32)104 ; CHECK-NEXT: $vgpr0 = COPY [[BITCAST1]](<2 x s16>)105 %0:_(<2 x s16>) = COPY $vgpr0106 %1:_(<2 x s16>) = G_BITREVERSE %0107 $vgpr0 = COPY %1108...109 110---111name: bitreverse_v2s32112 113body: |114 bb.0:115 liveins: $vgpr0_vgpr1116 ; CHECK-LABEL: name: bitreverse_v2s32117 ; CHECK: liveins: $vgpr0_vgpr1118 ; CHECK-NEXT: {{ $}}119 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr0_vgpr1120 ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<2 x s32>)121 ; CHECK-NEXT: [[BITREVERSE:%[0-9]+]]:_(s32) = G_BITREVERSE [[UV]]122 ; CHECK-NEXT: [[BITREVERSE1:%[0-9]+]]:_(s32) = G_BITREVERSE [[UV1]]123 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[BITREVERSE]](s32), [[BITREVERSE1]](s32)124 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)125 %0:_(<2 x s32>) = COPY $vgpr0_vgpr1126 %1:_(<2 x s32>) = G_BITREVERSE %0127 $vgpr0_vgpr1 = COPY %1128...129 130---131name: bitreverse_s64132 133body: |134 bb.0:135 liveins: $vgpr0_vgpr1136 ; CHECK-LABEL: name: bitreverse_s64137 ; CHECK: liveins: $vgpr0_vgpr1138 ; CHECK-NEXT: {{ $}}139 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1140 ; CHECK-NEXT: [[BITREVERSE:%[0-9]+]]:_(s64) = G_BITREVERSE [[COPY]]141 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[BITREVERSE]](s64)142 %0:_(s64) = COPY $vgpr0_vgpr1143 %1:_(s64) = G_BITREVERSE %0144 $vgpr0_vgpr1 = COPY %1145...146 147---148name: bitreverse_v2s64149 150body: |151 bb.0:152 liveins: $vgpr0_vgpr1_vgpr2_vgpr3153 ; CHECK-LABEL: name: bitreverse_v2s64154 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3155 ; CHECK-NEXT: {{ $}}156 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3157 ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s64), [[UV1:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[COPY]](<2 x s64>)158 ; CHECK-NEXT: [[BITREVERSE:%[0-9]+]]:_(s64) = G_BITREVERSE [[UV]]159 ; CHECK-NEXT: [[BITREVERSE1:%[0-9]+]]:_(s64) = G_BITREVERSE [[UV1]]160 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s64>) = G_BUILD_VECTOR [[BITREVERSE]](s64), [[BITREVERSE1]](s64)161 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<2 x s64>)162 %0:_(<2 x s64>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3163 %1:_(<2 x s64>) = G_BITREVERSE %0164 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1165...166