brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.1 KiB · 60b89bf Raw
284 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=gfx900 -verify-machineinstrs -run-pass="amdgpu-regbankselect,amdgpu-regbanklegalize" -o - %s | FileCheck %s3 4---5name: lshr_s32_ss6legalized: true7 8body: |9  bb.0:10    liveins: $sgpr0, $sgpr111    ; CHECK-LABEL: name: lshr_s32_ss12    ; CHECK: liveins: $sgpr0, $sgpr113    ; CHECK-NEXT: {{  $}}14    ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr015    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr116    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:sgpr(s32) = G_LSHR [[COPY]], [[COPY1]](s32)17    ; CHECK-NEXT: S_ENDPGM 0, implicit [[LSHR]](s32)18    %0:_(s32) = COPY $sgpr019    %1:_(s32) = COPY $sgpr120    %2:_(s32) = G_LSHR %0, %121    S_ENDPGM 0, implicit %222...23 24---25name: lshr_s32_sv26legalized: true27 28body: |29  bb.0:30    liveins: $sgpr0, $vgpr031    ; CHECK-LABEL: name: lshr_s32_sv32    ; CHECK: liveins: $sgpr0, $vgpr033    ; CHECK-NEXT: {{  $}}34    ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr035    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr036    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)37    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:vgpr(s32) = G_LSHR [[COPY2]], [[COPY1]](s32)38    ; CHECK-NEXT: S_ENDPGM 0, implicit [[LSHR]](s32)39    %0:_(s32) = COPY $sgpr040    %1:_(s32) = COPY $vgpr041    %2:_(s32) = G_LSHR %0, %142    S_ENDPGM 0, implicit %243...44 45---46name: lshr_s32_vs47legalized: true48 49body: |50  bb.0:51    liveins: $sgpr0, $vgpr052    ; CHECK-LABEL: name: lshr_s32_vs53    ; CHECK: liveins: $sgpr0, $vgpr054    ; CHECK-NEXT: {{  $}}55    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr056    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr057    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)58    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:vgpr(s32) = G_LSHR [[COPY]], [[COPY2]](s32)59    ; CHECK-NEXT: S_ENDPGM 0, implicit [[LSHR]](s32)60    %0:_(s32) = COPY $vgpr061    %1:_(s32) = COPY $sgpr062    %2:_(s32) = G_LSHR %0, %163    S_ENDPGM 0, implicit %264...65 66---67name: lshr_s32_vv68legalized: true69 70body: |71  bb.0:72    liveins: $vgpr0, $vgpr173    ; CHECK-LABEL: name: lshr_s32_vv74    ; CHECK: liveins: $vgpr0, $vgpr175    ; CHECK-NEXT: {{  $}}76    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr077    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr178    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:vgpr(s32) = G_LSHR [[COPY]], [[COPY1]](s32)79    ; CHECK-NEXT: S_ENDPGM 0, implicit [[LSHR]](s32)80    %0:_(s32) = COPY $vgpr081    %1:_(s32) = COPY $vgpr182    %2:_(s32) = G_LSHR %0, %183    S_ENDPGM 0, implicit %284...85 86---87name: lshr_s16_ss88legalized: true89 90body: |91  bb.0:92    liveins: $sgpr0, $sgpr193    ; CHECK-LABEL: name: lshr_s16_ss94    ; CHECK: liveins: $sgpr0, $sgpr195    ; CHECK-NEXT: {{  $}}96    ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr097    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr198    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s16) = G_TRUNC [[COPY]](s32)99    ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s16) = G_TRUNC [[COPY1]](s32)100    ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s16)101    ; CHECK-NEXT: [[ZEXT1:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s16)102    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:sgpr(s32) = G_LSHR [[ZEXT]], [[ZEXT1]](s32)103    ; CHECK-NEXT: [[TRUNC2:%[0-9]+]]:sgpr(s16) = G_TRUNC [[LSHR]](s32)104    ; CHECK-NEXT: S_ENDPGM 0, implicit [[TRUNC2]](s16)105    %0:_(s32) = COPY $sgpr0106    %1:_(s32) = COPY $sgpr1107    %2:_(s16) = G_TRUNC %0108    %3:_(s16) = G_TRUNC %1109    %4:_(s16) = G_LSHR %2, %3110    S_ENDPGM 0, implicit %4111...112 113---114name: lshr_s16_sv115legalized: true116 117body: |118  bb.0:119    liveins: $sgpr0, $vgpr0120 121    ; CHECK-LABEL: name: lshr_s16_sv122    ; CHECK: liveins: $sgpr0, $vgpr0123    ; CHECK-NEXT: {{  $}}124    ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0125    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0126    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s16) = G_TRUNC [[COPY]](s32)127    ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY1]](s32)128    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:vgpr(s16) = COPY [[TRUNC]](s16)129    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:vgpr(s16) = G_LSHR [[COPY2]], [[TRUNC1]](s16)130    ; CHECK-NEXT: S_ENDPGM 0, implicit [[LSHR]](s16)131    %0:_(s32) = COPY $sgpr0132    %1:_(s32) = COPY $vgpr0133    %2:_(s16) = G_TRUNC %0134    %3:_(s16) = G_TRUNC %1135    %4:_(s16) = G_LSHR %2, %3136    S_ENDPGM 0, implicit %4137...138 139---140name: lshr_s16_vs141legalized: true142 143body: |144  bb.0:145    liveins: $sgpr0, $vgpr0146    ; CHECK-LABEL: name: lshr_s16_vs147    ; CHECK: liveins: $sgpr0, $vgpr0148    ; CHECK-NEXT: {{  $}}149    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0150    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr0151    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY]](s32)152    ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s16) = G_TRUNC [[COPY1]](s32)153    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:vgpr(s16) = COPY [[TRUNC1]](s16)154    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:vgpr(s16) = G_LSHR [[TRUNC]], [[COPY2]](s16)155    ; CHECK-NEXT: S_ENDPGM 0, implicit [[LSHR]](s16)156    %0:_(s32) = COPY $vgpr0157    %1:_(s32) = COPY $sgpr0158    %2:_(s16) = G_TRUNC %0159    %3:_(s16) = G_TRUNC %1160    %4:_(s16) = G_LSHR %2, %3161    S_ENDPGM 0, implicit %4162 163...164 165---166name: lshr_s16_vv167legalized: true168 169body: |170  bb.0:171    liveins: $vgpr0, $vgpr1172    ; CHECK-LABEL: name: lshr_s16_vv173    ; CHECK: liveins: $vgpr0, $vgpr1174    ; CHECK-NEXT: {{  $}}175    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0176    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1177    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY]](s32)178    ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY1]](s32)179    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:vgpr(s16) = G_LSHR [[TRUNC]], [[TRUNC1]](s16)180    ; CHECK-NEXT: S_ENDPGM 0, implicit [[LSHR]](s16)181    %0:_(s32) = COPY $vgpr0182    %1:_(s32) = COPY $vgpr1183    %2:_(s16) = G_TRUNC %0184    %3:_(s16) = G_TRUNC %1185    %4:_(s16) = G_LSHR %2, %3186    S_ENDPGM 0, implicit %4187 188...189 190---191name: lshr_v2s16_ss192legalized: true193 194body: |195  bb.0:196    liveins: $sgpr0, $sgpr1197    ; CHECK-LABEL: name: lshr_v2s16_ss198    ; CHECK: liveins: $sgpr0, $sgpr1199    ; CHECK-NEXT: {{  $}}200    ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(<2 x s16>) = COPY $sgpr0201    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sgpr(<2 x s16>) = COPY $sgpr1202    ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:sgpr(s32) = G_BITCAST [[COPY]](<2 x s16>)203    ; CHECK-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 65535204    ; CHECK-NEXT: [[AND:%[0-9]+]]:sgpr(s32) = G_AND [[BITCAST]], [[C]]205    ; CHECK-NEXT: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 16206    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:sgpr(s32) = G_LSHR [[BITCAST]], [[C1]](s32)207    ; CHECK-NEXT: [[BITCAST1:%[0-9]+]]:sgpr(s32) = G_BITCAST [[COPY1]](<2 x s16>)208    ; CHECK-NEXT: [[AND1:%[0-9]+]]:sgpr(s32) = G_AND [[BITCAST1]], [[C]]209    ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:sgpr(s32) = G_LSHR [[BITCAST1]], [[C1]](s32)210    ; CHECK-NEXT: [[LSHR2:%[0-9]+]]:sgpr(s32) = G_LSHR [[AND]], [[AND1]](s32)211    ; CHECK-NEXT: [[LSHR3:%[0-9]+]]:sgpr(s32) = G_LSHR [[LSHR]], [[LSHR1]](s32)212    ; CHECK-NEXT: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:sgpr(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[LSHR2]](s32), [[LSHR3]](s32)213    ; CHECK-NEXT: S_ENDPGM 0, implicit [[BUILD_VECTOR_TRUNC]](<2 x s16>)214    %0:_(<2 x s16>) = COPY $sgpr0215    %1:_(<2 x s16>) = COPY $sgpr1216    %2:_(<2 x s16>) = G_LSHR %0, %1217    S_ENDPGM 0, implicit %2218 219...220 221---222name: lshr_v2s16_sv223legalized: true224 225body: |226  bb.0:227    liveins: $sgpr0, $vgpr0228    ; CHECK-LABEL: name: lshr_v2s16_sv229    ; CHECK: liveins: $sgpr0, $vgpr0230    ; CHECK-NEXT: {{  $}}231    ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(<2 x s16>) = COPY $sgpr0232    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr(<2 x s16>) = COPY $vgpr0233    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:vgpr(<2 x s16>) = COPY [[COPY]](<2 x s16>)234    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:vgpr(<2 x s16>) = G_LSHR [[COPY2]], [[COPY1]](<2 x s16>)235    ; CHECK-NEXT: S_ENDPGM 0, implicit [[LSHR]](<2 x s16>)236    %0:_(<2 x s16>) = COPY $sgpr0237    %1:_(<2 x s16>) = COPY $vgpr0238    %2:_(<2 x s16>) = G_LSHR %0, %1239    S_ENDPGM 0, implicit %2240...241 242---243name: lshr_v2s16_vs244legalized: true245 246body: |247  bb.0:248    liveins: $sgpr0, $vgpr0249    ; CHECK-LABEL: name: lshr_v2s16_vs250    ; CHECK: liveins: $sgpr0, $vgpr0251    ; CHECK-NEXT: {{  $}}252    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(<2 x s16>) = COPY $vgpr0253    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sgpr(<2 x s16>) = COPY $sgpr0254    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:vgpr(<2 x s16>) = COPY [[COPY1]](<2 x s16>)255    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:vgpr(<2 x s16>) = G_LSHR [[COPY]], [[COPY2]](<2 x s16>)256    ; CHECK-NEXT: S_ENDPGM 0, implicit [[LSHR]](<2 x s16>)257    %0:_(<2 x s16>) = COPY $vgpr0258    %1:_(<2 x s16>) = COPY $sgpr0259    %2:_(<2 x s16>) = G_LSHR %0, %1260    S_ENDPGM 0, implicit %2261 262...263 264---265name: lshr_v2s16_vv266legalized: true267 268body: |269  bb.0:270    liveins: $vgpr0, $vgpr1271    ; CHECK-LABEL: name: lshr_v2s16_vv272    ; CHECK: liveins: $vgpr0, $vgpr1273    ; CHECK-NEXT: {{  $}}274    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(<2 x s16>) = COPY $vgpr0275    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr(<2 x s16>) = COPY $vgpr1276    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:vgpr(<2 x s16>) = G_LSHR [[COPY]], [[COPY1]](<2 x s16>)277    ; CHECK-NEXT: S_ENDPGM 0, implicit [[LSHR]](<2 x s16>)278    %0:_(<2 x s16>) = COPY $vgpr0279    %1:_(<2 x s16>) = COPY $vgpr1280    %2:_(<2 x s16>) = G_LSHR %0, %1281    S_ENDPGM 0, implicit %2282 283...284