135 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti -run-pass=amdgpu-prelegalizer-combiner %s -o - | FileCheck -check-prefixes=GCN,PRELEGAL %s3# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti -run-pass=amdgpu-regbank-combiner %s -o - | FileCheck -check-prefixes=GCN,RBCOMB %s4 5---6name: trunc_sext_i32_i167tracksRegLiveness: true8body: |9 bb.0:10 liveins: $vgpr011 12 ; GCN-LABEL: name: trunc_sext_i32_i1613 ; GCN: liveins: $vgpr014 ; GCN-NEXT: {{ $}}15 ; GCN-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr016 ; GCN-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s32) = G_SEXT_INREG [[COPY]], 1617 ; GCN-NEXT: $vgpr0 = COPY [[SEXT_INREG]](s32)18 %0:_(s32) = COPY $vgpr019 %1:_(s16) = G_TRUNC %020 %2:_(s32) = G_SEXT %121 $vgpr0 = COPY %222...23 24---25name: trunc_sext_i32_i826tracksRegLiveness: true27body: |28 bb.0:29 liveins: $vgpr030 31 ; GCN-LABEL: name: trunc_sext_i32_i832 ; GCN: liveins: $vgpr033 ; GCN-NEXT: {{ $}}34 ; GCN-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr035 ; GCN-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s32) = G_SEXT_INREG [[COPY]], 836 ; GCN-NEXT: $vgpr0 = COPY [[SEXT_INREG]](s32)37 %0:_(s32) = COPY $vgpr038 %1:_(s8) = G_TRUNC %039 %2:_(s32) = G_SEXT %140 $vgpr0 = COPY %241...42 43---44name: trunc_sext_i64_i3245tracksRegLiveness: true46body: |47 bb.0:48 liveins: $vgpr0_vgpr149 50 ; GCN-LABEL: name: trunc_sext_i64_i3251 ; GCN: liveins: $vgpr0_vgpr152 ; GCN-NEXT: {{ $}}53 ; GCN-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr154 ; GCN-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY]], 3255 ; GCN-NEXT: $vgpr0_vgpr1 = COPY [[SEXT_INREG]](s64)56 %0:_(s64) = COPY $vgpr0_vgpr157 %1:_(s32) = G_TRUNC %058 %2:_(s64) = G_SEXT %159 $vgpr0_vgpr1 = COPY %260...61 62---63name: trunc_sext_v4i32_v4i1664tracksRegLiveness: true65body: |66 bb.0:67 liveins: $vgpr0_vgpr1_vgpr2_vgpr368 69 ; PRELEGAL-LABEL: name: trunc_sext_v4i32_v4i1670 ; PRELEGAL: liveins: $vgpr0_vgpr1_vgpr2_vgpr371 ; PRELEGAL-NEXT: {{ $}}72 ; PRELEGAL-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr373 ; PRELEGAL-NEXT: [[SEXT_INREG:%[0-9]+]]:_(<4 x s32>) = G_SEXT_INREG [[COPY]], 1674 ; PRELEGAL-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[SEXT_INREG]](<4 x s32>)75 ;76 ; RBCOMB-LABEL: name: trunc_sext_v4i32_v4i1677 ; RBCOMB: liveins: $vgpr0_vgpr1_vgpr2_vgpr378 ; RBCOMB-NEXT: {{ $}}79 ; RBCOMB-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr380 ; RBCOMB-NEXT: [[TRUNC:%[0-9]+]]:_(<4 x s16>) = G_TRUNC [[COPY]](<4 x s32>)81 ; RBCOMB-NEXT: [[SEXT:%[0-9]+]]:_(<4 x s32>) = G_SEXT [[TRUNC]](<4 x s16>)82 ; RBCOMB-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[SEXT]](<4 x s32>)83 %0:_(<4 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr384 %1:_(<4 x s16>) = G_TRUNC %085 %2:_(<4 x s32>) = G_SEXT %186 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %287...88 89---90name: trunc_sext_v4i16_v4i891tracksRegLiveness: true92body: |93 bb.0:94 liveins: $vgpr0_vgpr195 96 ; PRELEGAL-LABEL: name: trunc_sext_v4i16_v4i897 ; PRELEGAL: liveins: $vgpr0_vgpr198 ; PRELEGAL-NEXT: {{ $}}99 ; PRELEGAL-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $vgpr0_vgpr1100 ; PRELEGAL-NEXT: [[SEXT_INREG:%[0-9]+]]:_(<4 x s16>) = G_SEXT_INREG [[COPY]], 8101 ; PRELEGAL-NEXT: $vgpr0_vgpr1 = COPY [[SEXT_INREG]](<4 x s16>)102 ;103 ; RBCOMB-LABEL: name: trunc_sext_v4i16_v4i8104 ; RBCOMB: liveins: $vgpr0_vgpr1105 ; RBCOMB-NEXT: {{ $}}106 ; RBCOMB-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $vgpr0_vgpr1107 ; RBCOMB-NEXT: [[TRUNC:%[0-9]+]]:_(<4 x s8>) = G_TRUNC [[COPY]](<4 x s16>)108 ; RBCOMB-NEXT: [[SEXT:%[0-9]+]]:_(<4 x s16>) = G_SEXT [[TRUNC]](<4 x s8>)109 ; RBCOMB-NEXT: $vgpr0_vgpr1 = COPY [[SEXT]](<4 x s16>)110 %0:_(<4 x s16>) = COPY $vgpr0_vgpr1111 %1:_(<4 x s8>) = G_TRUNC %0112 %2:_(<4 x s16>) = G_SEXT %1113 $vgpr0_vgpr1 = COPY %2114...115 116---117name: trunc_sext_mismatching_types118tracksRegLiveness: true119body: |120 bb.0:121 liveins: $vgpr0_vgpr1122 123 ; GCN-LABEL: name: trunc_sext_mismatching_types124 ; GCN: liveins: $vgpr0_vgpr1125 ; GCN-NEXT: {{ $}}126 ; GCN-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1127 ; GCN-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s64)128 ; GCN-NEXT: [[SEXT:%[0-9]+]]:_(s32) = G_SEXT [[TRUNC]](s16)129 ; GCN-NEXT: $vgpr0 = COPY [[SEXT]](s32)130 %0:_(s64) = COPY $vgpr0_vgpr1131 %1:_(s16) = G_TRUNC %0132 %2:_(s32) = G_SEXT %1133 $vgpr0 = COPY %2134...135