103 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=fiji -run-pass=amdgpu-regbankselect,amdgpu-regbanklegalize %s -verify-machineinstrs -o - | FileCheck %s3---4name: add_s16_ss5legalized: true6 7body: |8 bb.0:9 liveins: $sgpr0, $sgpr110 ; CHECK-LABEL: name: add_s16_ss11 ; CHECK: liveins: $sgpr0, $sgpr112 ; CHECK-NEXT: {{ $}}13 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr014 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr115 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s16) = G_TRUNC [[COPY]](s32)16 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s16) = G_TRUNC [[COPY1]](s32)17 ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC]](s16)18 ; CHECK-NEXT: [[ANYEXT1:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC1]](s16)19 ; CHECK-NEXT: [[ADD:%[0-9]+]]:sgpr(s32) = G_ADD [[ANYEXT]], [[ANYEXT1]]20 ; CHECK-NEXT: [[TRUNC2:%[0-9]+]]:sgpr(s16) = G_TRUNC [[ADD]](s32)21 ; CHECK-NEXT: [[AND:%[0-9]+]]:sgpr(s16) = G_AND [[TRUNC2]], [[TRUNC2]]22 %0:_(s32) = COPY $sgpr023 %1:_(s32) = COPY $sgpr124 %2:_(s16) = G_TRUNC %025 %3:_(s16) = G_TRUNC %126 %4:_(s16) = G_ADD %2, %327 %5:_(s16) = G_AND %4, %428...29 30---31name: add_s16_sv32legalized: true33 34body: |35 bb.0:36 liveins: $sgpr0, $vgpr037 ; CHECK-LABEL: name: add_s16_sv38 ; CHECK: liveins: $sgpr0, $vgpr039 ; CHECK-NEXT: {{ $}}40 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr041 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr042 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s16) = G_TRUNC [[COPY]](s32)43 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY1]](s32)44 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:vgpr(s16) = COPY [[TRUNC]](s16)45 ; CHECK-NEXT: [[ADD:%[0-9]+]]:vgpr(s16) = G_ADD [[COPY2]], [[TRUNC1]]46 ; CHECK-NEXT: [[AND:%[0-9]+]]:vgpr(s16) = G_AND [[ADD]], [[ADD]]47 %0:_(s32) = COPY $sgpr048 %1:_(s32) = COPY $vgpr049 %2:_(s16) = G_TRUNC %050 %3:_(s16) = G_TRUNC %151 %4:_(s16) = G_ADD %2, %352 %5:_(s16) = G_AND %4, %453...54 55---56name: add_s16_vs57legalized: true58 59body: |60 bb.0:61 liveins: $sgpr0, $vgpr062 ; CHECK-LABEL: name: add_s16_vs63 ; CHECK: liveins: $sgpr0, $vgpr064 ; CHECK-NEXT: {{ $}}65 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr066 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr067 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY]](s32)68 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s16) = G_TRUNC [[COPY1]](s32)69 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:vgpr(s16) = COPY [[TRUNC1]](s16)70 ; CHECK-NEXT: [[ADD:%[0-9]+]]:vgpr(s16) = G_ADD [[TRUNC]], [[COPY2]]71 ; CHECK-NEXT: [[AND:%[0-9]+]]:vgpr(s16) = G_AND [[ADD]], [[ADD]]72 %0:_(s32) = COPY $vgpr073 %1:_(s32) = COPY $sgpr074 %2:_(s16) = G_TRUNC %075 %3:_(s16) = G_TRUNC %176 %4:_(s16) = G_ADD %2, %377 %5:_(s16) = G_AND %4, %478...79 80---81name: add_s16_vv82legalized: true83 84body: |85 bb.0:86 liveins: $vgpr0, $vgpr187 ; CHECK-LABEL: name: add_s16_vv88 ; CHECK: liveins: $vgpr0, $vgpr189 ; CHECK-NEXT: {{ $}}90 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr091 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr192 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY]](s32)93 ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY1]](s32)94 ; CHECK-NEXT: [[ADD:%[0-9]+]]:vgpr(s16) = G_ADD [[TRUNC]], [[TRUNC1]]95 ; CHECK-NEXT: [[AND:%[0-9]+]]:vgpr(s16) = G_AND [[ADD]], [[ADD]]96 %0:_(s32) = COPY $vgpr097 %1:_(s32) = COPY $vgpr198 %2:_(s16) = G_TRUNC %099 %3:_(s16) = G_TRUNC %1100 %4:_(s16) = G_ADD %2, %3101 %5:_(s16) = G_AND %4, %4102...103