brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.2 KiB · 600cefb Raw
174 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -run-pass=amdgpu-postlegalizer-combiner -verify-machineinstrs -o - %s | FileCheck %s3 4---5name: s16_trunc_v2s16_buildvector6tracksRegLiveness: true7body: |8  bb.0:9    liveins: $vgpr0, $vgpr110    ; CHECK-LABEL: name: s16_trunc_v2s16_buildvector11    ; CHECK: liveins: $vgpr0, $vgpr112    ; CHECK-NEXT: {{  $}}13    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr014    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)15    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s16) = G_CONSTANT i16 4216    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s16) = G_OR [[TRUNC]], [[C]]17    ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)18    ; CHECK-NEXT: $vgpr0 = COPY [[ZEXT]](s32)19    %0:_(s32) = COPY $vgpr020    %1:_(s32) = COPY $vgpr121    %2:_(s16) = G_TRUNC %022    %3:_(s16) = G_TRUNC %123    %4:_(<2 x s16>) = G_BUILD_VECTOR %2, %324    %5:_(s32) = G_BITCAST %425    %6:_(s16) = G_TRUNC %526    %7:_(s16) = G_CONSTANT i16 4227    %8:_(s16) = G_OR %7, %628    %9:_(s32) = G_ZEXT %829    $vgpr0 = COPY %930...31 32---33name: s16_trunc_v2s16_buildvector_shift8_nofold34tracksRegLiveness: true35body: |36  bb.0:37    liveins: $vgpr0, $vgpr138    ; CHECK-LABEL: name: s16_trunc_v2s16_buildvector_shift8_nofold39    ; CHECK: liveins: $vgpr0, $vgpr140    ; CHECK-NEXT: {{  $}}41    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr042    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr143    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)44    ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY1]](s32)45    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)46    ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:_(s32) = G_BITCAST [[BUILD_VECTOR]](<2 x s16>)47    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 848    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[BITCAST]], [[C]](s32)49    ; CHECK-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[LSHR]](s32)50    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s16) = G_CONSTANT i16 4251    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s16) = G_OR [[TRUNC2]], [[C1]]52    ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)53    ; CHECK-NEXT: $vgpr0 = COPY [[ZEXT]](s32)54    %0:_(s32) = COPY $vgpr055    %1:_(s32) = COPY $vgpr156    %2:_(s16) = G_TRUNC %057    %3:_(s16) = G_TRUNC %158    %4:_(<2 x s16>) = G_BUILD_VECTOR %2, %359    %5:_(s32) = G_BITCAST %460    %6:_(s32) = G_CONSTANT i32 861    %7:_(s32) = G_LSHR %5, %662    %8:_(s16) = G_TRUNC %763    %9:_(s16) = G_CONSTANT i16 4264    %10:_(s16) = G_OR %9, %865    %11:_(s32) = G_ZEXT %1066    $vgpr0 = COPY %1167...68 69---70name: s16_trunc_v2s16_buildvector_shift1671tracksRegLiveness: true72body: |73  bb.0:74    liveins: $vgpr0, $vgpr175    ; CHECK-LABEL: name: s16_trunc_v2s16_buildvector_shift1676    ; CHECK: liveins: $vgpr0, $vgpr177    ; CHECK-NEXT: {{  $}}78    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr179    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)80    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s16) = G_CONSTANT i16 4281    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s16) = G_OR [[TRUNC]], [[C]]82    ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)83    ; CHECK-NEXT: $vgpr0 = COPY [[ZEXT]](s32)84    %0:_(s32) = COPY $vgpr085    %1:_(s32) = COPY $vgpr186    %2:_(s16) = G_TRUNC %087    %3:_(s16) = G_TRUNC %188    %4:_(<2 x s16>) = G_BUILD_VECTOR %2, %389    %5:_(s32) = G_BITCAST %490    %6:_(s32) = G_CONSTANT i32 1691    %7:_(s32) = G_LSHR %5, %692    %8:_(s16) = G_TRUNC %793    %9:_(s16) = G_CONSTANT i16 4294    %10:_(s16) = G_OR %9, %895    %11:_(s32) = G_ZEXT %1096    $vgpr0 = COPY %1197...98 99---100name: s16_trunc_v2s32_buildvector_nofold101tracksRegLiveness: true102body: |103  bb.0:104    liveins: $vgpr0, $vgpr1105    ; CHECK-LABEL: name: s16_trunc_v2s32_buildvector_nofold106    ; CHECK: liveins: $vgpr0, $vgpr1107    ; CHECK-NEXT: {{  $}}108    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0109    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1110    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32)111    ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:_(s64) = G_BITCAST [[BUILD_VECTOR]](<2 x s32>)112    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[BITCAST]](s64)113    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s16) = G_CONSTANT i16 42114    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s16) = G_OR [[TRUNC]], [[C]]115    ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[OR]](s16)116    ; CHECK-NEXT: $vgpr0 = COPY [[ZEXT]](s32)117    %0:_(s32) = COPY $vgpr0118    %1:_(s32) = COPY $vgpr1119    %2:_(<2 x s32>) = G_BUILD_VECTOR %0, %1120    %3:_(s64) = G_BITCAST %2121    %4:_(s16) = G_TRUNC %3122    %5:_(s16) = G_CONSTANT i16 42123    %6:_(s16) = G_OR %5, %4124    %7:_(s32) = G_ZEXT %6125    $vgpr0 = COPY %7126...127 128---129name: s32_trunc_v2s32_buildvector130tracksRegLiveness: true131body: |132  bb.0:133    liveins: $vgpr0, $vgpr1134    ; CHECK-LABEL: name: s32_trunc_v2s32_buildvector135    ; CHECK: liveins: $vgpr0, $vgpr1136    ; CHECK-NEXT: {{  $}}137    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0138    ; CHECK-NEXT: $vgpr0 = COPY [[COPY]](s32)139    %0:_(s32) = COPY $vgpr0140    %1:_(s32) = COPY $vgpr1141    %2:_(<2 x s32>) = G_BUILD_VECTOR %0, %1142    %3:_(s64) = G_BITCAST %2143    %4:_(s32) = G_TRUNC %3144    $vgpr0 = COPY %4145...146 147---148name: s32_trunc_v2s32_buildvector_multiple_users149tracksRegLiveness: true150body: |151  bb.0:152    liveins: $vgpr0, $vgpr1153    ; CHECK-LABEL: name: s32_trunc_v2s32_buildvector_multiple_users154    ; CHECK: liveins: $vgpr0, $vgpr1155    ; CHECK-NEXT: {{  $}}156    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0157    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1158    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32)159    ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:_(s64) = G_BITCAST [[BUILD_VECTOR]](<2 x s32>)160    ; CHECK-NEXT: [[EVEC:%[0-9]+]]:_(s32) = G_EXTRACT_VECTOR_ELT [[BUILD_VECTOR]](<2 x s32>), [[COPY1]](s32)161    ; CHECK-NEXT: $vgpr0 = COPY [[COPY]](s32)162    ; CHECK-NEXT: $vgpr1 = COPY [[EVEC]](s32)163    ; CHECK-NEXT: $vgpr2_vgpr3 = COPY [[BITCAST]](s64)164    %0:_(s32) = COPY $vgpr0165    %1:_(s32) = COPY $vgpr1166    %2:_(<2 x s32>) = G_BUILD_VECTOR %0, %1167    %3:_(s64) = G_BITCAST %2168    %4:_(s32) = G_TRUNC %3169    %5:_(s32) = G_EXTRACT_VECTOR_ELT %2, %1170    $vgpr0 = COPY %4171    $vgpr1 = COPY %5172    $vgpr2_vgpr3 = COPY %3173...174