brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.1 KiB · a7023d0 Raw
265 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=gfx900 -run-pass='amdgpu-regbankselect,amdgpu-regbanklegalize' -o - %s | FileCheck %s3 4---5name: smax_s32_ss6legalized: true7 8body: |9  bb.0:10    liveins: $sgpr0, $sgpr111 12    ; CHECK-LABEL: name: smax_s32_ss13    ; CHECK: liveins: $sgpr0, $sgpr114    ; CHECK-NEXT: {{  $}}15    ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr016    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr117    ; CHECK-NEXT: [[SMAX:%[0-9]+]]:sgpr(s32) = G_SMAX [[COPY]], [[COPY1]]18    %0:_(s32) = COPY $sgpr019    %1:_(s32) = COPY $sgpr120    %2:_(s32) = G_SMAX %0, %121...22 23---24name: smax_s32_sv25legalized: true26 27body: |28  bb.0:29    liveins: $sgpr0, $vgpr030 31    ; CHECK-LABEL: name: smax_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: [[SMAX:%[0-9]+]]:vgpr(s32) = G_SMAX [[COPY2]], [[COPY1]]38    %0:_(s32) = COPY $sgpr039    %1:_(s32) = COPY $vgpr040    %2:_(s32) = G_SMAX %0, %141...42 43---44name: smax_s32_vs45legalized: true46 47body: |48  bb.0:49    liveins: $sgpr0, $vgpr050 51    ; CHECK-LABEL: name: smax_s32_vs52    ; CHECK: liveins: $sgpr0, $vgpr053    ; CHECK-NEXT: {{  $}}54    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr055    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr056    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)57    ; CHECK-NEXT: [[SMAX:%[0-9]+]]:vgpr(s32) = G_SMAX [[COPY]], [[COPY2]]58    ; CHECK-NEXT: $vgpr0 = COPY [[SMAX]](s32)59    %0:_(s32) = COPY $vgpr060    %1:_(s32) = COPY $sgpr061    %2:_(s32) = G_SMAX %0, %162    $vgpr0 = COPY %263 64...65 66---67name: smax_s32_vv68legalized: true69 70body: |71  bb.0:72    liveins: $vgpr0, $vgpr173 74    ; CHECK-LABEL: name: smax_s32_vv75    ; CHECK: liveins: $vgpr0, $vgpr176    ; CHECK-NEXT: {{  $}}77    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr078    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr179    ; CHECK-NEXT: [[SMAX:%[0-9]+]]:vgpr(s32) = G_SMAX [[COPY]], [[COPY1]]80    ; CHECK-NEXT: $vgpr0 = COPY [[SMAX]](s32)81    %0:_(s32) = COPY $vgpr082    %1:_(s32) = COPY $vgpr183    %2:_(s32) = G_SMAX %0, %184    $vgpr0 = COPY %285...86 87# FIXME: This should use VGPR instruction88---89name: smax_s32_ss_vgpr_use90legalized: true91 92body: |93  bb.0:94    liveins: $sgpr0, $sgpr195 96    ; CHECK-LABEL: name: smax_s32_ss_vgpr_use97    ; CHECK: liveins: $sgpr0, $sgpr198    ; CHECK-NEXT: {{  $}}99    ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0100    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1101    ; CHECK-NEXT: [[SMAX:%[0-9]+]]:sgpr(s32) = G_SMAX [[COPY]], [[COPY1]]102    ; CHECK-NEXT: $vgpr0 = COPY [[SMAX]](s32)103    %0:_(s32) = COPY $sgpr0104    %1:_(s32) = COPY $sgpr1105    %2:_(s32) = G_SMAX %0, %1106    $vgpr0 = COPY %2107...108 109---110name: smax_s16_ss111legalized: true112 113body: |114  bb.0:115    liveins: $sgpr0, $sgpr1116 117    ; CHECK-LABEL: name: smax_s16_ss118    ; CHECK: liveins: $sgpr0, $sgpr1119    ; CHECK-NEXT: {{  $}}120    ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0121    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1122    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s16) = G_TRUNC [[COPY]](s32)123    ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s16) = G_TRUNC [[COPY1]](s32)124    ; CHECK-NEXT: [[SEXT:%[0-9]+]]:sgpr(s32) = G_SEXT [[TRUNC]](s16)125    ; CHECK-NEXT: [[SEXT1:%[0-9]+]]:sgpr(s32) = G_SEXT [[TRUNC1]](s16)126    ; CHECK-NEXT: [[SMAX:%[0-9]+]]:sgpr(s32) = G_SMAX [[SEXT]], [[SEXT1]]127    ; CHECK-NEXT: [[TRUNC2:%[0-9]+]]:sgpr(s16) = G_TRUNC [[SMAX]](s32)128    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC2]](s16)129    ; CHECK-NEXT: $sgpr0 = COPY [[ANYEXT]](s32)130    %0:_(s32) = COPY $sgpr0131    %1:_(s32) = COPY $sgpr1132    %2:_(s16) = G_TRUNC %0133    %3:_(s16) = G_TRUNC %1134    %4:_(s16) = G_SMAX %2, %3135    %5:_(s32) = G_ANYEXT %4136    $sgpr0 = COPY %5137 138...139 140---141name: smax_s16_ss_vgpr_use142legalized: true143 144body: |145  bb.0:146    liveins: $sgpr0, $sgpr1147 148    ; CHECK-LABEL: name: smax_s16_ss_vgpr_use149    ; CHECK: liveins: $sgpr0, $sgpr1150    ; CHECK-NEXT: {{  $}}151    ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0152    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1153    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s16) = G_TRUNC [[COPY]](s32)154    ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s16) = G_TRUNC [[COPY1]](s32)155    ; CHECK-NEXT: [[SEXT:%[0-9]+]]:sgpr(s32) = G_SEXT [[TRUNC]](s16)156    ; CHECK-NEXT: [[SEXT1:%[0-9]+]]:sgpr(s32) = G_SEXT [[TRUNC1]](s16)157    ; CHECK-NEXT: [[SMAX:%[0-9]+]]:sgpr(s32) = G_SMAX [[SEXT]], [[SEXT1]]158    ; CHECK-NEXT: [[TRUNC2:%[0-9]+]]:sgpr(s16) = G_TRUNC [[SMAX]](s32)159    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC2]](s16)160    ; CHECK-NEXT: $vgpr0 = COPY [[ANYEXT]](s32)161    %0:_(s32) = COPY $sgpr0162    %1:_(s32) = COPY $sgpr1163    %2:_(s16) = G_TRUNC %0164    %3:_(s16) = G_TRUNC %1165    %4:_(s16) = G_SMAX %2, %3166    %5:_(s32) = G_ANYEXT %4167    $vgpr0 = COPY %5168 169...170 171---172name: smax_v2s16_ss173legalized: true174 175body: |176  bb.0:177    liveins: $sgpr0, $sgpr1178 179    ; CHECK-LABEL: name: smax_v2s16_ss180    ; CHECK: liveins: $sgpr0, $sgpr1181    ; CHECK-NEXT: {{  $}}182    ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(<2 x s16>) = COPY $sgpr0183    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sgpr(<2 x s16>) = COPY $sgpr1184    ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:sgpr(s32) = G_BITCAST [[COPY]](<2 x s16>)185    ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:sgpr(s32) = G_SEXT_INREG [[BITCAST]], 16186    ; CHECK-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 16187    ; CHECK-NEXT: [[ASHR:%[0-9]+]]:sgpr(s32) = G_ASHR [[BITCAST]], [[C]](s32)188    ; CHECK-NEXT: [[BITCAST1:%[0-9]+]]:sgpr(s32) = G_BITCAST [[COPY1]](<2 x s16>)189    ; CHECK-NEXT: [[SEXT_INREG1:%[0-9]+]]:sgpr(s32) = G_SEXT_INREG [[BITCAST1]], 16190    ; CHECK-NEXT: [[ASHR1:%[0-9]+]]:sgpr(s32) = G_ASHR [[BITCAST1]], [[C]](s32)191    ; CHECK-NEXT: [[SMAX:%[0-9]+]]:sgpr(s32) = G_SMAX [[SEXT_INREG]], [[SEXT_INREG1]]192    ; CHECK-NEXT: [[SMAX1:%[0-9]+]]:sgpr(s32) = G_SMAX [[ASHR]], [[ASHR1]]193    ; CHECK-NEXT: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:sgpr(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[SMAX]](s32), [[SMAX1]](s32)194    ; CHECK-NEXT: $sgpr0 = COPY [[BUILD_VECTOR_TRUNC]](<2 x s16>)195    %0:_(<2 x s16>) = COPY $sgpr0196    %1:_(<2 x s16>) = COPY $sgpr1197    %2:_(<2 x s16>) = G_SMAX %0, %1198    $sgpr0 = COPY %2199...200 201---202name: smax_v2s16_sv203legalized: true204 205body: |206  bb.0:207    liveins: $sgpr0, $vgpr0208 209    ; CHECK-LABEL: name: smax_v2s16_sv210    ; CHECK: liveins: $sgpr0, $vgpr0211    ; CHECK-NEXT: {{  $}}212    ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(<2 x s16>) = COPY $sgpr0213    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr(<2 x s16>) = COPY $vgpr0214    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:vgpr(<2 x s16>) = COPY [[COPY]](<2 x s16>)215    ; CHECK-NEXT: [[SMAX:%[0-9]+]]:vgpr(<2 x s16>) = G_SMAX [[COPY2]], [[COPY1]]216    ; CHECK-NEXT: $vgpr0 = COPY [[SMAX]](<2 x s16>)217    %0:_(<2 x s16>) = COPY $sgpr0218    %1:_(<2 x s16>) = COPY $vgpr0219    %2:_(<2 x s16>) = G_SMAX %0, %1220    $vgpr0 = COPY %2221...222 223---224name: smax_v2s16_vs225legalized: true226 227body: |228  bb.0:229    liveins: $sgpr0, $vgpr0230 231    ; CHECK-LABEL: name: smax_v2s16_vs232    ; CHECK: liveins: $sgpr0, $vgpr0233    ; CHECK-NEXT: {{  $}}234    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(<2 x s16>) = COPY $vgpr0235    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sgpr(<2 x s16>) = COPY $sgpr0236    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:vgpr(<2 x s16>) = COPY [[COPY1]](<2 x s16>)237    ; CHECK-NEXT: [[SMAX:%[0-9]+]]:vgpr(<2 x s16>) = G_SMAX [[COPY]], [[COPY2]]238    ; CHECK-NEXT: $vgpr0 = COPY [[SMAX]](<2 x s16>)239    %0:_(<2 x s16>) = COPY $vgpr0240    %1:_(<2 x s16>) = COPY $sgpr0241    %2:_(<2 x s16>) = G_SMAX %0, %1242    $vgpr0 = COPY %2243...244 245---246name: smax_v2s16_vv247legalized: true248 249body: |250  bb.0:251    liveins: $vgpr0, $vgpr1252 253    ; CHECK-LABEL: name: smax_v2s16_vv254    ; CHECK: liveins: $vgpr0, $vgpr1255    ; CHECK-NEXT: {{  $}}256    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(<2 x s16>) = COPY $vgpr0257    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr(<2 x s16>) = COPY $vgpr1258    ; CHECK-NEXT: [[SMAX:%[0-9]+]]:vgpr(<2 x s16>) = G_SMAX [[COPY]], [[COPY1]]259    ; CHECK-NEXT: $vgpr0 = COPY [[SMAX]](<2 x s16>)260    %0:_(<2 x s16>) = COPY $vgpr0261    %1:_(<2 x s16>) = COPY $vgpr1262    %2:_(<2 x s16>) = G_SMAX %0, %1263    $vgpr0 = COPY %2264...265