brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.3 KiB · 59d7dce Raw
269 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: umax_s32_ss6legalized: true7 8body: |9  bb.0:10    liveins: $sgpr0, $sgpr111 12    ; CHECK-LABEL: name: umax_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: [[UMAX:%[0-9]+]]:sgpr(s32) = G_UMAX [[COPY]], [[COPY1]]18    ; CHECK-NEXT: $sgpr0 = COPY [[UMAX]](s32)19    %0:_(s32) = COPY $sgpr020    %1:_(s32) = COPY $sgpr121    %2:_(s32) = G_UMAX %0, %122    $sgpr0 = COPY %223...24 25---26name: umax_s32_sv27legalized: true28 29body: |30  bb.0:31    liveins: $sgpr0, $vgpr032 33    ; CHECK-LABEL: name: umax_s32_sv34    ; CHECK: liveins: $sgpr0, $vgpr035    ; CHECK-NEXT: {{  $}}36    ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr037    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr038    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)39    ; CHECK-NEXT: [[UMAX:%[0-9]+]]:vgpr(s32) = G_UMAX [[COPY2]], [[COPY1]]40    ; CHECK-NEXT: $vgpr0 = COPY [[UMAX]](s32)41    %0:_(s32) = COPY $sgpr042    %1:_(s32) = COPY $vgpr043    %2:_(s32) = G_UMAX %0, %144    $vgpr0 = COPY %245...46 47---48name: umax_s32_vs49legalized: true50 51body: |52  bb.0:53    liveins: $sgpr0, $vgpr054 55    ; CHECK-LABEL: name: umax_s32_vs56    ; CHECK: liveins: $sgpr0, $vgpr057    ; CHECK-NEXT: {{  $}}58    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr059    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr060    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)61    ; CHECK-NEXT: [[UMAX:%[0-9]+]]:vgpr(s32) = G_UMAX [[COPY]], [[COPY2]]62    ; CHECK-NEXT: $vgpr0 = COPY [[UMAX]](s32)63    %0:_(s32) = COPY $vgpr064    %1:_(s32) = COPY $sgpr065    %2:_(s32) = G_UMAX %0, %166    $vgpr0 = COPY %267...68 69---70name: umax_s32_vv71legalized: true72 73body: |74  bb.0:75    liveins: $vgpr0, $vgpr176 77    ; CHECK-LABEL: name: umax_s32_vv78    ; CHECK: liveins: $vgpr0, $vgpr179    ; CHECK-NEXT: {{  $}}80    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr081    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr182    ; CHECK-NEXT: [[UMAX:%[0-9]+]]:vgpr(s32) = G_UMAX [[COPY]], [[COPY1]]83    ; CHECK-NEXT: $vgpr0 = COPY [[UMAX]](s32)84    %0:_(s32) = COPY $vgpr085    %1:_(s32) = COPY $vgpr186    %2:_(s32) = G_UMAX %0, %187    $vgpr0 = COPY %288...89 90# FIXME: This should use VGPR instruction91---92name: umax_s32_ss_vgpr_use93legalized: true94 95body: |96  bb.0:97    liveins: $sgpr0, $sgpr198 99    ; CHECK-LABEL: name: umax_s32_ss_vgpr_use100    ; CHECK: liveins: $sgpr0, $sgpr1101    ; CHECK-NEXT: {{  $}}102    ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0103    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1104    ; CHECK-NEXT: [[UMAX:%[0-9]+]]:sgpr(s32) = G_UMAX [[COPY]], [[COPY1]]105    ; CHECK-NEXT: $vgpr0 = COPY [[UMAX]](s32)106    %0:_(s32) = COPY $sgpr0107    %1:_(s32) = COPY $sgpr1108    %2:_(s32) = G_UMAX %0, %1109    $vgpr0 = COPY %2110...111 112---113name: umax_s16_ss114legalized: true115 116body: |117  bb.0:118    liveins: $sgpr0, $sgpr1119 120    ; CHECK-LABEL: name: umax_s16_ss121    ; CHECK: liveins: $sgpr0, $sgpr1122    ; CHECK-NEXT: {{  $}}123    ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0124    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1125    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s16) = G_TRUNC [[COPY]](s32)126    ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s16) = G_TRUNC [[COPY1]](s32)127    ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s16)128    ; CHECK-NEXT: [[ZEXT1:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s16)129    ; CHECK-NEXT: [[UMAX:%[0-9]+]]:sgpr(s32) = G_UMAX [[ZEXT]], [[ZEXT1]]130    ; CHECK-NEXT: [[TRUNC2:%[0-9]+]]:sgpr(s16) = G_TRUNC [[UMAX]](s32)131    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC2]](s16)132    ; CHECK-NEXT: $sgpr0 = COPY [[ANYEXT]](s32)133    %0:_(s32) = COPY $sgpr0134    %1:_(s32) = COPY $sgpr1135    %2:_(s16) = G_TRUNC %0136    %3:_(s16) = G_TRUNC %1137    %4:_(s16) = G_UMAX %2, %3138    %5:_(s32) = G_ANYEXT %4139    $sgpr0 = COPY %5140 141...142 143---144name: umax_s16_ss_vgpr_use145legalized: true146 147body: |148  bb.0:149    liveins: $sgpr0, $sgpr1150 151    ; CHECK-LABEL: name: umax_s16_ss_vgpr_use152    ; CHECK: liveins: $sgpr0, $sgpr1153    ; CHECK-NEXT: {{  $}}154    ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0155    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1156    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s16) = G_TRUNC [[COPY]](s32)157    ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s16) = G_TRUNC [[COPY1]](s32)158    ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s16)159    ; CHECK-NEXT: [[ZEXT1:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s16)160    ; CHECK-NEXT: [[UMAX:%[0-9]+]]:sgpr(s32) = G_UMAX [[ZEXT]], [[ZEXT1]]161    ; CHECK-NEXT: [[TRUNC2:%[0-9]+]]:sgpr(s16) = G_TRUNC [[UMAX]](s32)162    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC2]](s16)163    ; CHECK-NEXT: $vgpr0 = COPY [[ANYEXT]](s32)164    %0:_(s32) = COPY $sgpr0165    %1:_(s32) = COPY $sgpr1166    %2:_(s16) = G_TRUNC %0167    %3:_(s16) = G_TRUNC %1168    %4:_(s16) = G_UMAX %2, %3169    %5:_(s32) = G_ANYEXT %4170    $vgpr0 = COPY %5171 172...173 174---175name: umax_v2s16_ss176legalized: true177 178body: |179  bb.0:180    liveins: $sgpr0, $sgpr1181 182    ; CHECK-LABEL: name: umax_v2s16_ss183    ; CHECK: liveins: $sgpr0, $sgpr1184    ; CHECK-NEXT: {{  $}}185    ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(<2 x s16>) = COPY $sgpr0186    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sgpr(<2 x s16>) = COPY $sgpr1187    ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:sgpr(s32) = G_BITCAST [[COPY]](<2 x s16>)188    ; CHECK-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 65535189    ; CHECK-NEXT: [[AND:%[0-9]+]]:sgpr(s32) = G_AND [[BITCAST]], [[C]]190    ; CHECK-NEXT: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 16191    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:sgpr(s32) = G_LSHR [[BITCAST]], [[C1]](s32)192    ; CHECK-NEXT: [[BITCAST1:%[0-9]+]]:sgpr(s32) = G_BITCAST [[COPY1]](<2 x s16>)193    ; CHECK-NEXT: [[AND1:%[0-9]+]]:sgpr(s32) = G_AND [[BITCAST1]], [[C]]194    ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:sgpr(s32) = G_LSHR [[BITCAST1]], [[C1]](s32)195    ; CHECK-NEXT: [[UMAX:%[0-9]+]]:sgpr(s32) = G_UMAX [[AND]], [[AND1]]196    ; CHECK-NEXT: [[UMAX1:%[0-9]+]]:sgpr(s32) = G_UMAX [[LSHR]], [[LSHR1]]197    ; CHECK-NEXT: [[BUILD_VECTOR_TRUNC:%[0-9]+]]:sgpr(<2 x s16>) = G_BUILD_VECTOR_TRUNC [[UMAX]](s32), [[UMAX1]](s32)198    ; CHECK-NEXT: $sgpr0 = COPY [[BUILD_VECTOR_TRUNC]](<2 x s16>)199    %0:_(<2 x s16>) = COPY $sgpr0200    %1:_(<2 x s16>) = COPY $sgpr1201    %2:_(<2 x s16>) = G_UMAX %0, %1202    $sgpr0 = COPY %2203...204 205---206name: umax_v2s16_sv207legalized: true208 209body: |210  bb.0:211    liveins: $sgpr0, $vgpr0212 213    ; CHECK-LABEL: name: umax_v2s16_sv214    ; CHECK: liveins: $sgpr0, $vgpr0215    ; CHECK-NEXT: {{  $}}216    ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(<2 x s16>) = COPY $sgpr0217    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr(<2 x s16>) = COPY $vgpr0218    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:vgpr(<2 x s16>) = COPY [[COPY]](<2 x s16>)219    ; CHECK-NEXT: [[UMAX:%[0-9]+]]:vgpr(<2 x s16>) = G_UMAX [[COPY2]], [[COPY1]]220    ; CHECK-NEXT: $vgpr0 = COPY [[UMAX]](<2 x s16>)221    %0:_(<2 x s16>) = COPY $sgpr0222    %1:_(<2 x s16>) = COPY $vgpr0223    %2:_(<2 x s16>) = G_UMAX %0, %1224    $vgpr0 = COPY %2225...226 227---228name: umax_v2s16_vs229legalized: true230 231body: |232  bb.0:233    liveins: $sgpr0, $vgpr0234 235    ; CHECK-LABEL: name: umax_v2s16_vs236    ; CHECK: liveins: $sgpr0, $vgpr0237    ; CHECK-NEXT: {{  $}}238    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(<2 x s16>) = COPY $vgpr0239    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sgpr(<2 x s16>) = COPY $sgpr0240    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:vgpr(<2 x s16>) = COPY [[COPY1]](<2 x s16>)241    ; CHECK-NEXT: [[UMAX:%[0-9]+]]:vgpr(<2 x s16>) = G_UMAX [[COPY]], [[COPY2]]242    ; CHECK-NEXT: $vgpr0 = COPY [[UMAX]](<2 x s16>)243    %0:_(<2 x s16>) = COPY $vgpr0244    %1:_(<2 x s16>) = COPY $sgpr0245    %2:_(<2 x s16>) = G_UMAX %0, %1246    $vgpr0 = COPY %2247...248 249---250name: umax_v2s16_vv251legalized: true252 253body: |254  bb.0:255    liveins: $vgpr0, $vgpr1256 257    ; CHECK-LABEL: name: umax_v2s16_vv258    ; CHECK: liveins: $vgpr0, $vgpr1259    ; CHECK-NEXT: {{  $}}260    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(<2 x s16>) = COPY $vgpr0261    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr(<2 x s16>) = COPY $vgpr1262    ; CHECK-NEXT: [[UMAX:%[0-9]+]]:vgpr(<2 x s16>) = G_UMAX [[COPY]], [[COPY1]]263    ; CHECK-NEXT: $vgpr0 = COPY [[UMAX]](<2 x s16>)264    %0:_(<2 x s16>) = COPY $vgpr0265    %1:_(<2 x s16>) = COPY $vgpr1266    %2:_(<2 x s16>) = G_UMAX %0, %1267    $vgpr0 = COPY %2268...269