316 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=riscv32 -mattr=+m,+v -run-pass=regbankselect \3# RUN: -simplify-mir -verify-machineinstrs %s \4# RUN: -o - | FileCheck %s5# RUN: llc -mtriple=riscv64 -mattr=+m,+v -run-pass=regbankselect \6# RUN: -simplify-mir -verify-machineinstrs %s \7# RUN: -o - | FileCheck %s8---9name: implicitdef_nxv1i810legalized: true11tracksRegLiveness: true12body: |13 bb.0.entry:14 ; CHECK-LABEL: name: implicitdef_nxv1i815 ; CHECK: [[DEF:%[0-9]+]]:vrb(<vscale x 1 x s8>) = G_IMPLICIT_DEF16 ; CHECK-NEXT: $v8 = COPY [[DEF]](<vscale x 1 x s8>)17 ; CHECK-NEXT: PseudoRET implicit $v818 %0:_(<vscale x 1 x s8>) = G_IMPLICIT_DEF19 $v8 = COPY %0(<vscale x 1 x s8>)20 PseudoRET implicit $v821...22---23name: implicitdef_nxv2i824legalized: true25tracksRegLiveness: true26body: |27 bb.0.entry:28 ; CHECK-LABEL: name: implicitdef_nxv2i829 ; CHECK: [[DEF:%[0-9]+]]:vrb(<vscale x 2 x s8>) = G_IMPLICIT_DEF30 ; CHECK-NEXT: $v8 = COPY [[DEF]](<vscale x 2 x s8>)31 ; CHECK-NEXT: PseudoRET implicit $v832 %0:_(<vscale x 2 x s8>) = G_IMPLICIT_DEF33 $v8 = COPY %0(<vscale x 2 x s8>)34 PseudoRET implicit $v835...36---37name: implicitdef_nxv4i838legalized: true39tracksRegLiveness: true40body: |41 bb.0.entry:42 ; CHECK-LABEL: name: implicitdef_nxv4i843 ; CHECK: [[DEF:%[0-9]+]]:vrb(<vscale x 4 x s8>) = G_IMPLICIT_DEF44 ; CHECK-NEXT: $v8 = COPY [[DEF]](<vscale x 4 x s8>)45 ; CHECK-NEXT: PseudoRET implicit $v846 %0:_(<vscale x 4 x s8>) = G_IMPLICIT_DEF47 $v8 = COPY %0(<vscale x 4 x s8>)48 PseudoRET implicit $v849...50---51name: implicitdef_nxv8i852legalized: true53tracksRegLiveness: true54body: |55 bb.0.entry:56 ; CHECK-LABEL: name: implicitdef_nxv8i857 ; CHECK: [[DEF:%[0-9]+]]:vrb(<vscale x 8 x s8>) = G_IMPLICIT_DEF58 ; CHECK-NEXT: $v8 = COPY [[DEF]](<vscale x 8 x s8>)59 ; CHECK-NEXT: PseudoRET implicit $v860 %0:_(<vscale x 8 x s8>) = G_IMPLICIT_DEF61 $v8 = COPY %0(<vscale x 8 x s8>)62 PseudoRET implicit $v863...64---65name: implicitdef_nxv16i866legalized: true67tracksRegLiveness: true68body: |69 bb.0.entry:70 ; CHECK-LABEL: name: implicitdef_nxv16i871 ; CHECK: [[DEF:%[0-9]+]]:vrb(<vscale x 16 x s8>) = G_IMPLICIT_DEF72 ; CHECK-NEXT: $v8m2 = COPY [[DEF]](<vscale x 16 x s8>)73 ; CHECK-NEXT: PseudoRET implicit $v8m274 %0:_(<vscale x 16 x s8>) = G_IMPLICIT_DEF75 $v8m2 = COPY %0(<vscale x 16 x s8>)76 PseudoRET implicit $v8m277...78---79name: implicitdef_nxv32i880legalized: true81tracksRegLiveness: true82body: |83 bb.0.entry:84 ; CHECK-LABEL: name: implicitdef_nxv32i885 ; CHECK: [[DEF:%[0-9]+]]:vrb(<vscale x 32 x s8>) = G_IMPLICIT_DEF86 ; CHECK-NEXT: $v8m4 = COPY [[DEF]](<vscale x 32 x s8>)87 ; CHECK-NEXT: PseudoRET implicit $v8m488 %0:_(<vscale x 32 x s8>) = G_IMPLICIT_DEF89 $v8m4 = COPY %0(<vscale x 32 x s8>)90 PseudoRET implicit $v8m491...92---93name: implicitdef_nxv64i894legalized: true95tracksRegLiveness: true96body: |97 bb.0.entry:98 ; CHECK-LABEL: name: implicitdef_nxv64i899 ; CHECK: [[DEF:%[0-9]+]]:vrb(<vscale x 64 x s8>) = G_IMPLICIT_DEF100 ; CHECK-NEXT: $v8m8 = COPY [[DEF]](<vscale x 64 x s8>)101 ; CHECK-NEXT: PseudoRET implicit $v8m8102 %0:_(<vscale x 64 x s8>) = G_IMPLICIT_DEF103 $v8m8 = COPY %0(<vscale x 64 x s8>)104 PseudoRET implicit $v8m8105...106---107name: implicitdef_nxv1i16108legalized: true109tracksRegLiveness: true110body: |111 bb.0.entry:112 ; CHECK-LABEL: name: implicitdef_nxv1i16113 ; CHECK: [[DEF:%[0-9]+]]:vrb(<vscale x 1 x s16>) = G_IMPLICIT_DEF114 ; CHECK-NEXT: $v8 = COPY [[DEF]](<vscale x 1 x s16>)115 ; CHECK-NEXT: PseudoRET implicit $v8116 %0:_(<vscale x 1 x s16>) = G_IMPLICIT_DEF117 $v8 = COPY %0(<vscale x 1 x s16>)118 PseudoRET implicit $v8119...120---121name: implicitdef_nxv2i16122legalized: true123tracksRegLiveness: true124body: |125 bb.0.entry:126 ; CHECK-LABEL: name: implicitdef_nxv2i16127 ; CHECK: [[DEF:%[0-9]+]]:vrb(<vscale x 2 x s16>) = G_IMPLICIT_DEF128 ; CHECK-NEXT: $v8 = COPY [[DEF]](<vscale x 2 x s16>)129 ; CHECK-NEXT: PseudoRET implicit $v8130 %0:_(<vscale x 2 x s16>) = G_IMPLICIT_DEF131 $v8 = COPY %0(<vscale x 2 x s16>)132 PseudoRET implicit $v8133...134---135name: implicitdef_nxv4i16136legalized: true137tracksRegLiveness: true138body: |139 bb.0.entry:140 ; CHECK-LABEL: name: implicitdef_nxv4i16141 ; CHECK: [[DEF:%[0-9]+]]:vrb(<vscale x 4 x s16>) = G_IMPLICIT_DEF142 ; CHECK-NEXT: $v8 = COPY [[DEF]](<vscale x 4 x s16>)143 ; CHECK-NEXT: PseudoRET implicit $v8144 %0:_(<vscale x 4 x s16>) = G_IMPLICIT_DEF145 $v8 = COPY %0(<vscale x 4 x s16>)146 PseudoRET implicit $v8147...148---149name: implicitdef_nxv8i16150legalized: true151tracksRegLiveness: true152body: |153 bb.0.entry:154 ; CHECK-LABEL: name: implicitdef_nxv8i16155 ; CHECK: [[DEF:%[0-9]+]]:vrb(<vscale x 8 x s16>) = G_IMPLICIT_DEF156 ; CHECK-NEXT: $v8m2 = COPY [[DEF]](<vscale x 8 x s16>)157 ; CHECK-NEXT: PseudoRET implicit $v8m2158 %0:_(<vscale x 8 x s16>) = G_IMPLICIT_DEF159 $v8m2 = COPY %0(<vscale x 8 x s16>)160 PseudoRET implicit $v8m2161...162---163name: implicitdef_nxv16i16164legalized: true165tracksRegLiveness: true166body: |167 bb.0.entry:168 ; CHECK-LABEL: name: implicitdef_nxv16i16169 ; CHECK: [[DEF:%[0-9]+]]:vrb(<vscale x 16 x s16>) = G_IMPLICIT_DEF170 ; CHECK-NEXT: $v8m4 = COPY [[DEF]](<vscale x 16 x s16>)171 ; CHECK-NEXT: PseudoRET implicit $v8m4172 %0:_(<vscale x 16 x s16>) = G_IMPLICIT_DEF173 $v8m4 = COPY %0(<vscale x 16 x s16>)174 PseudoRET implicit $v8m4175...176---177name: implicitdef_nxv32i16178legalized: true179tracksRegLiveness: true180body: |181 bb.0.entry:182 ; CHECK-LABEL: name: implicitdef_nxv32i16183 ; CHECK: [[DEF:%[0-9]+]]:vrb(<vscale x 32 x s16>) = G_IMPLICIT_DEF184 ; CHECK-NEXT: $v8m8 = COPY [[DEF]](<vscale x 32 x s16>)185 ; CHECK-NEXT: PseudoRET implicit $v8m8186 %0:_(<vscale x 32 x s16>) = G_IMPLICIT_DEF187 $v8m8 = COPY %0(<vscale x 32 x s16>)188 PseudoRET implicit $v8m8189...190---191name: implicitdef_nxv1i32192legalized: true193tracksRegLiveness: true194body: |195 bb.0.entry:196 ; CHECK-LABEL: name: implicitdef_nxv1i32197 ; CHECK: [[DEF:%[0-9]+]]:vrb(<vscale x 1 x s32>) = G_IMPLICIT_DEF198 ; CHECK-NEXT: $v8 = COPY [[DEF]](<vscale x 1 x s32>)199 ; CHECK-NEXT: PseudoRET implicit $v8200 %0:_(<vscale x 1 x s32>) = G_IMPLICIT_DEF201 $v8 = COPY %0(<vscale x 1 x s32>)202 PseudoRET implicit $v8203...204---205name: implicitdef_nxv2i32206legalized: true207tracksRegLiveness: true208body: |209 bb.0.entry:210 ; CHECK-LABEL: name: implicitdef_nxv2i32211 ; CHECK: [[DEF:%[0-9]+]]:vrb(<vscale x 2 x s32>) = G_IMPLICIT_DEF212 ; CHECK-NEXT: $v8 = COPY [[DEF]](<vscale x 2 x s32>)213 ; CHECK-NEXT: PseudoRET implicit $v8214 %0:_(<vscale x 2 x s32>) = G_IMPLICIT_DEF215 $v8 = COPY %0(<vscale x 2 x s32>)216 PseudoRET implicit $v8217...218---219name: implicitdef_nxv4i32220legalized: true221tracksRegLiveness: true222body: |223 bb.0.entry:224 ; CHECK-LABEL: name: implicitdef_nxv4i32225 ; CHECK: [[DEF:%[0-9]+]]:vrb(<vscale x 4 x s32>) = G_IMPLICIT_DEF226 ; CHECK-NEXT: $v8m2 = COPY [[DEF]](<vscale x 4 x s32>)227 ; CHECK-NEXT: PseudoRET implicit $v8m2228 %0:_(<vscale x 4 x s32>) = G_IMPLICIT_DEF229 $v8m2 = COPY %0(<vscale x 4 x s32>)230 PseudoRET implicit $v8m2231...232---233name: implicitdef_nxv8i32234legalized: true235tracksRegLiveness: true236body: |237 bb.0.entry:238 ; CHECK-LABEL: name: implicitdef_nxv8i32239 ; CHECK: [[DEF:%[0-9]+]]:vrb(<vscale x 8 x s32>) = G_IMPLICIT_DEF240 ; CHECK-NEXT: $v8m4 = COPY [[DEF]](<vscale x 8 x s32>)241 ; CHECK-NEXT: PseudoRET implicit $v8m4242 %0:_(<vscale x 8 x s32>) = G_IMPLICIT_DEF243 $v8m4 = COPY %0(<vscale x 8 x s32>)244 PseudoRET implicit $v8m4245...246---247name: implicitdef_nxv16i32248legalized: true249tracksRegLiveness: true250body: |251 bb.0.entry:252 ; CHECK-LABEL: name: implicitdef_nxv16i32253 ; CHECK: [[DEF:%[0-9]+]]:vrb(<vscale x 16 x s32>) = G_IMPLICIT_DEF254 ; CHECK-NEXT: $v8m8 = COPY [[DEF]](<vscale x 16 x s32>)255 ; CHECK-NEXT: PseudoRET implicit $v8m8256 %0:_(<vscale x 16 x s32>) = G_IMPLICIT_DEF257 $v8m8 = COPY %0(<vscale x 16 x s32>)258 PseudoRET implicit $v8m8259...260---261name: implicitdef_nxv1i64262legalized: true263tracksRegLiveness: true264body: |265 bb.0.entry:266 ; CHECK-LABEL: name: implicitdef_nxv1i64267 ; CHECK: [[DEF:%[0-9]+]]:vrb(<vscale x 1 x s64>) = G_IMPLICIT_DEF268 ; CHECK-NEXT: $v8 = COPY [[DEF]](<vscale x 1 x s64>)269 ; CHECK-NEXT: PseudoRET implicit $v8270 %0:_(<vscale x 1 x s64>) = G_IMPLICIT_DEF271 $v8 = COPY %0(<vscale x 1 x s64>)272 PseudoRET implicit $v8273...274---275name: implicitdef_nxv2i64276legalized: true277tracksRegLiveness: true278body: |279 bb.0.entry:280 ; CHECK-LABEL: name: implicitdef_nxv2i64281 ; CHECK: [[DEF:%[0-9]+]]:vrb(<vscale x 2 x s64>) = G_IMPLICIT_DEF282 ; CHECK-NEXT: $v8m2 = COPY [[DEF]](<vscale x 2 x s64>)283 ; CHECK-NEXT: PseudoRET implicit $v8m2284 %0:_(<vscale x 2 x s64>) = G_IMPLICIT_DEF285 $v8m2 = COPY %0(<vscale x 2 x s64>)286 PseudoRET implicit $v8m2287...288---289name: implicitdef_nxv4i64290legalized: true291tracksRegLiveness: true292body: |293 bb.0.entry:294 ; CHECK-LABEL: name: implicitdef_nxv4i64295 ; CHECK: [[DEF:%[0-9]+]]:vrb(<vscale x 4 x s64>) = G_IMPLICIT_DEF296 ; CHECK-NEXT: $v8m4 = COPY [[DEF]](<vscale x 4 x s64>)297 ; CHECK-NEXT: PseudoRET implicit $v8m4298 %0:_(<vscale x 4 x s64>) = G_IMPLICIT_DEF299 $v8m4 = COPY %0(<vscale x 4 x s64>)300 PseudoRET implicit $v8m4301...302---303name: implicitdef_nxv8i64304legalized: true305tracksRegLiveness: true306body: |307 bb.0.entry:308 ; CHECK-LABEL: name: implicitdef_nxv8i64309 ; CHECK: [[DEF:%[0-9]+]]:vrb(<vscale x 8 x s64>) = G_IMPLICIT_DEF310 ; CHECK-NEXT: $v8m8 = COPY [[DEF]](<vscale x 8 x s64>)311 ; CHECK-NEXT: PseudoRET implicit $v8m8312 %0:_(<vscale x 8 x s64>) = G_IMPLICIT_DEF313 $v8m8 = COPY %0(<vscale x 8 x s64>)314 PseudoRET implicit $v8m8315...316