187 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=aarch64 -run-pass=regbankselect -verify-machineinstrs %s -o - | FileCheck %s3#4# Verify register banks for G_DUP.5#6 7...8---9name: v4s32_gpr10alignment: 411legalized: true12tracksRegLiveness: true13body: |14 bb.0.entry:15 liveins: $w016 17 ; CHECK-LABEL: name: v4s32_gpr18 ; CHECK: liveins: $w019 ; CHECK-NEXT: {{ $}}20 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr(s32) = COPY $w021 ; CHECK-NEXT: [[DUP:%[0-9]+]]:fpr(<4 x s32>) = G_DUP [[COPY]](s32)22 ; CHECK-NEXT: $q0 = COPY [[DUP]](<4 x s32>)23 ; CHECK-NEXT: RET_ReallyLR implicit $q024 %0:_(s32) = COPY $w025 %4:_(<4 x s32>) = G_DUP %0(s32)26 $q0 = COPY %4(<4 x s32>)27 RET_ReallyLR implicit $q028 29...30---31name: v4s64_gpr32alignment: 433legalized: true34tracksRegLiveness: true35body: |36 bb.0.entry:37 liveins: $x038 39 ; CHECK-LABEL: name: v4s64_gpr40 ; CHECK: liveins: $x041 ; CHECK-NEXT: {{ $}}42 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr(s64) = COPY $x043 ; CHECK-NEXT: [[DUP:%[0-9]+]]:fpr(<2 x s64>) = G_DUP [[COPY]](s64)44 ; CHECK-NEXT: $q0 = COPY [[DUP]](<2 x s64>)45 ; CHECK-NEXT: RET_ReallyLR implicit $q046 %0:_(s64) = COPY $x047 %4:_(<2 x s64>) = G_DUP %0(s64)48 $q0 = COPY %4(<2 x s64>)49 RET_ReallyLR implicit $q050 51...52---53name: v2s32_gpr54alignment: 455legalized: true56tracksRegLiveness: true57body: |58 bb.0.entry:59 liveins: $w060 61 ; CHECK-LABEL: name: v2s32_gpr62 ; CHECK: liveins: $w063 ; CHECK-NEXT: {{ $}}64 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr(s32) = COPY $w065 ; CHECK-NEXT: [[DUP:%[0-9]+]]:fpr(<2 x s32>) = G_DUP [[COPY]](s32)66 ; CHECK-NEXT: $d0 = COPY [[DUP]](<2 x s32>)67 ; CHECK-NEXT: RET_ReallyLR implicit $d068 %0:_(s32) = COPY $w069 %4:_(<2 x s32>) = G_DUP %0(s32)70 $d0 = COPY %4(<2 x s32>)71 RET_ReallyLR implicit $d072 73...74---75name: v4s32_fpr76alignment: 477legalized: true78tracksRegLiveness: true79body: |80 bb.0.entry:81 liveins: $s082 83 ; CHECK-LABEL: name: v4s32_fpr84 ; CHECK: liveins: $s085 ; CHECK-NEXT: {{ $}}86 ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr(s32) = COPY $s087 ; CHECK-NEXT: [[DUP:%[0-9]+]]:fpr(<4 x s32>) = G_DUP [[COPY]](s32)88 ; CHECK-NEXT: $q0 = COPY [[DUP]](<4 x s32>)89 ; CHECK-NEXT: RET_ReallyLR implicit $q090 %0:_(s32) = COPY $s091 %4:_(<4 x s32>) = G_DUP %0(s32)92 $q0 = COPY %4(<4 x s32>)93 RET_ReallyLR implicit $q094 95...96---97name: v2s64_fpr98alignment: 499legalized: true100tracksRegLiveness: true101body: |102 bb.0.entry:103 liveins: $d0104 105 ; CHECK-LABEL: name: v2s64_fpr106 ; CHECK: liveins: $d0107 ; CHECK-NEXT: {{ $}}108 ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr(s64) = COPY $d0109 ; CHECK-NEXT: [[DUP:%[0-9]+]]:fpr(<2 x s64>) = G_DUP [[COPY]](s64)110 ; CHECK-NEXT: $q0 = COPY [[DUP]](<2 x s64>)111 ; CHECK-NEXT: RET_ReallyLR implicit $q0112 %0:_(s64) = COPY $d0113 %4:_(<2 x s64>) = G_DUP %0(s64)114 $q0 = COPY %4(<2 x s64>)115 RET_ReallyLR implicit $q0116 117...118---119name: v2s32_fpr120alignment: 4121legalized: true122tracksRegLiveness: true123body: |124 bb.0.entry:125 liveins: $s0126 127 ; CHECK-LABEL: name: v2s32_fpr128 ; CHECK: liveins: $s0129 ; CHECK-NEXT: {{ $}}130 ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr(s32) = COPY $s0131 ; CHECK-NEXT: [[DUP:%[0-9]+]]:fpr(<2 x s32>) = G_DUP [[COPY]](s32)132 ; CHECK-NEXT: $d0 = COPY [[DUP]](<2 x s32>)133 ; CHECK-NEXT: RET_ReallyLR implicit $d0134 %0:_(s32) = COPY $s0135 %4:_(<2 x s32>) = G_DUP %0(s32)136 $d0 = COPY %4(<2 x s32>)137 RET_ReallyLR implicit $d0138 139...140---141name: v2s64_fpr_copy142alignment: 4143legalized: true144tracksRegLiveness: true145body: |146 bb.0.entry:147 liveins: $d0148 149 ; CHECK-LABEL: name: v2s64_fpr_copy150 ; CHECK: liveins: $d0151 ; CHECK-NEXT: {{ $}}152 ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr(s64) = COPY $d0153 ; CHECK-NEXT: [[DUP:%[0-9]+]]:fpr(<2 x s64>) = G_DUP [[COPY]](s64)154 ; CHECK-NEXT: $q0 = COPY [[DUP]](<2 x s64>)155 ; CHECK-NEXT: RET_ReallyLR implicit $q0156 %0:_(s64) = COPY $d0157 %6:_(<2 x s64>) = G_DUP %0(s64)158 $q0 = COPY %6(<2 x s64>)159 RET_ReallyLR implicit $q0160 161...162---163name: v416s8_gpr164alignment: 4165legalized: true166tracksRegLiveness: true167body: |168 bb.0.entry:169 liveins: $w0170 171 ; CHECK-LABEL: name: v416s8_gpr172 ; CHECK: liveins: $w0173 ; CHECK-NEXT: {{ $}}174 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr(s32) = COPY $w0175 ; CHECK-NEXT: %trunc:gpr(s8) = G_TRUNC [[COPY]](s32)176 ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:gpr(s32) = G_ANYEXT %trunc(s8)177 ; CHECK-NEXT: [[DUP:%[0-9]+]]:fpr(<16 x s8>) = G_DUP [[ANYEXT]](s32)178 ; CHECK-NEXT: $q0 = COPY [[DUP]](<16 x s8>)179 ; CHECK-NEXT: RET_ReallyLR implicit $q0180 %0:_(s32) = COPY $w0181 %trunc:_(s8) = G_TRUNC %0(s32)182 %1:_(<16 x s8>) = G_DUP %trunc(s8)183 $q0 = COPY %1(<16 x s8>)184 RET_ReallyLR implicit $q0185 186...187