243 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=riscv64 -run-pass=regbankselect \3# RUN: -simplify-mir -verify-machineinstrs %s \4# RUN: -o - | FileCheck -check-prefix=RV64I %s5 6---7name: load_i88legalized: true9tracksRegLiveness: true10body: |11 bb.0:12 liveins: $x1013 14 ; RV64I-LABEL: name: load_i815 ; RV64I: liveins: $x1016 ; RV64I-NEXT: {{ $}}17 ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x1018 ; RV64I-NEXT: [[LOAD:%[0-9]+]]:gprb(s32) = G_LOAD [[COPY]](p0) :: (load (s8))19 ; RV64I-NEXT: [[ANYEXT:%[0-9]+]]:gprb(s64) = G_ANYEXT [[LOAD]](s32)20 ; RV64I-NEXT: $x10 = COPY [[ANYEXT]](s64)21 ; RV64I-NEXT: PseudoRET implicit $x1022 %0:_(p0) = COPY $x1023 %3:_(s32) = G_LOAD %0(p0) :: (load (s8))24 %2:_(s64) = G_ANYEXT %3(s32)25 $x10 = COPY %2(s64)26 PseudoRET implicit $x1027 28...29---30name: load_i1631legalized: true32tracksRegLiveness: true33body: |34 bb.0:35 liveins: $x1036 37 ; RV64I-LABEL: name: load_i1638 ; RV64I: liveins: $x1039 ; RV64I-NEXT: {{ $}}40 ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x1041 ; RV64I-NEXT: [[LOAD:%[0-9]+]]:gprb(s32) = G_LOAD [[COPY]](p0) :: (load (s16))42 ; RV64I-NEXT: [[ANYEXT:%[0-9]+]]:gprb(s64) = G_ANYEXT [[LOAD]](s32)43 ; RV64I-NEXT: $x10 = COPY [[ANYEXT]](s64)44 ; RV64I-NEXT: PseudoRET implicit $x1045 %0:_(p0) = COPY $x1046 %3:_(s32) = G_LOAD %0(p0) :: (load (s16))47 %2:_(s64) = G_ANYEXT %3(s32)48 $x10 = COPY %2(s64)49 PseudoRET implicit $x1050 51...52---53name: load_i3254legalized: true55tracksRegLiveness: true56body: |57 bb.0:58 liveins: $x1059 60 ; RV64I-LABEL: name: load_i3261 ; RV64I: liveins: $x1062 ; RV64I-NEXT: {{ $}}63 ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x1064 ; RV64I-NEXT: [[LOAD:%[0-9]+]]:gprb(s32) = G_LOAD [[COPY]](p0) :: (load (s32))65 ; RV64I-NEXT: [[ANYEXT:%[0-9]+]]:gprb(s64) = G_ANYEXT [[LOAD]](s32)66 ; RV64I-NEXT: $x10 = COPY [[ANYEXT]](s64)67 ; RV64I-NEXT: PseudoRET implicit $x1068 %0:_(p0) = COPY $x1069 %1:_(s32) = G_LOAD %0(p0) :: (load (s32))70 %2:_(s64) = G_ANYEXT %1(s32)71 $x10 = COPY %2(s64)72 PseudoRET implicit $x1073 74...75---76name: load_i6477legalized: true78tracksRegLiveness: true79body: |80 bb.0:81 liveins: $x1082 83 ; RV64I-LABEL: name: load_i6484 ; RV64I: liveins: $x1085 ; RV64I-NEXT: {{ $}}86 ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x1087 ; RV64I-NEXT: [[LOAD:%[0-9]+]]:gprb(s64) = G_LOAD [[COPY]](p0) :: (load (s64))88 ; RV64I-NEXT: $x10 = COPY [[LOAD]](s64)89 ; RV64I-NEXT: PseudoRET implicit $x1090 %0:_(p0) = COPY $x1091 %1:_(s64) = G_LOAD %0(p0) :: (load (s64))92 $x10 = COPY %1(s64)93 PseudoRET implicit $x1094 95...96---97name: load_ptr98legalized: true99tracksRegLiveness: true100body: |101 bb.0:102 liveins: $x10103 104 ; RV64I-LABEL: name: load_ptr105 ; RV64I: liveins: $x10106 ; RV64I-NEXT: {{ $}}107 ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10108 ; RV64I-NEXT: [[LOAD:%[0-9]+]]:gprb(p0) = G_LOAD [[COPY]](p0) :: (load (p0))109 ; RV64I-NEXT: $x10 = COPY [[LOAD]](p0)110 ; RV64I-NEXT: PseudoRET implicit $x10111 %0:_(p0) = COPY $x10112 %1:_(p0) = G_LOAD %0(p0) :: (load (p0))113 $x10 = COPY %1(p0)114 PseudoRET implicit $x10115 116...117---118name: zextload_i8119legalized: true120tracksRegLiveness: true121body: |122 bb.0:123 liveins: $x10124 125 ; RV64I-LABEL: name: zextload_i8126 ; RV64I: liveins: $x10127 ; RV64I-NEXT: {{ $}}128 ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10129 ; RV64I-NEXT: [[ZEXTLOAD:%[0-9]+]]:gprb(s64) = G_ZEXTLOAD [[COPY]](p0) :: (load (s8))130 ; RV64I-NEXT: $x10 = COPY [[ZEXTLOAD]](s64)131 ; RV64I-NEXT: PseudoRET implicit $x10132 %0:_(p0) = COPY $x10133 %3:_(s64) = G_ZEXTLOAD %0(p0) :: (load (s8))134 $x10 = COPY %3(s64)135 PseudoRET implicit $x10136 137...138---139name: zextload_i16140legalized: true141tracksRegLiveness: true142body: |143 bb.0:144 liveins: $x10145 146 ; RV64I-LABEL: name: zextload_i16147 ; RV64I: liveins: $x10148 ; RV64I-NEXT: {{ $}}149 ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10150 ; RV64I-NEXT: [[ZEXTLOAD:%[0-9]+]]:gprb(s64) = G_ZEXTLOAD [[COPY]](p0) :: (load (s16))151 ; RV64I-NEXT: $x10 = COPY [[ZEXTLOAD]](s64)152 ; RV64I-NEXT: PseudoRET implicit $x10153 %0:_(p0) = COPY $x10154 %3:_(s64) = G_ZEXTLOAD %0(p0) :: (load (s16))155 $x10 = COPY %3(s64)156 PseudoRET implicit $x10157 158...159---160name: zextload_i32161legalized: true162tracksRegLiveness: true163body: |164 bb.0:165 liveins: $x10166 167 ; RV64I-LABEL: name: zextload_i32168 ; RV64I: liveins: $x10169 ; RV64I-NEXT: {{ $}}170 ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10171 ; RV64I-NEXT: [[ZEXTLOAD:%[0-9]+]]:gprb(s64) = G_ZEXTLOAD [[COPY]](p0) :: (load (s32))172 ; RV64I-NEXT: $x10 = COPY [[ZEXTLOAD]](s64)173 ; RV64I-NEXT: PseudoRET implicit $x10174 %0:_(p0) = COPY $x10175 %1:_(s64) = G_ZEXTLOAD %0(p0) :: (load (s32))176 $x10 = COPY %1(s64)177 PseudoRET implicit $x10178 179...180---181name: sextload_i8182legalized: true183tracksRegLiveness: true184body: |185 bb.0:186 liveins: $x10187 188 ; RV64I-LABEL: name: sextload_i8189 ; RV64I: liveins: $x10190 ; RV64I-NEXT: {{ $}}191 ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10192 ; RV64I-NEXT: [[SEXTLOAD:%[0-9]+]]:gprb(s64) = G_SEXTLOAD [[COPY]](p0) :: (load (s8))193 ; RV64I-NEXT: $x10 = COPY [[SEXTLOAD]](s64)194 ; RV64I-NEXT: PseudoRET implicit $x10195 %0:_(p0) = COPY $x10196 %3:_(s64) = G_SEXTLOAD %0(p0) :: (load (s8))197 $x10 = COPY %3(s64)198 PseudoRET implicit $x10199 200...201---202name: sextload_i16203legalized: true204tracksRegLiveness: true205body: |206 bb.0:207 liveins: $x10208 209 ; RV64I-LABEL: name: sextload_i16210 ; RV64I: liveins: $x10211 ; RV64I-NEXT: {{ $}}212 ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10213 ; RV64I-NEXT: [[SEXTLOAD:%[0-9]+]]:gprb(s64) = G_SEXTLOAD [[COPY]](p0) :: (load (s16))214 ; RV64I-NEXT: $x10 = COPY [[SEXTLOAD]](s64)215 ; RV64I-NEXT: PseudoRET implicit $x10216 %0:_(p0) = COPY $x10217 %3:_(s64) = G_SEXTLOAD %0(p0) :: (load (s16))218 $x10 = COPY %3(s64)219 PseudoRET implicit $x10220 221...222---223name: sextload_i32224legalized: true225tracksRegLiveness: true226body: |227 bb.0:228 liveins: $x10229 230 ; RV64I-LABEL: name: sextload_i32231 ; RV64I: liveins: $x10232 ; RV64I-NEXT: {{ $}}233 ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10234 ; RV64I-NEXT: [[SEXTLOAD:%[0-9]+]]:gprb(s64) = G_SEXTLOAD [[COPY]](p0) :: (load (s32))235 ; RV64I-NEXT: $x10 = COPY [[SEXTLOAD]](s64)236 ; RV64I-NEXT: PseudoRET implicit $x10237 %0:_(p0) = COPY $x10238 %1:_(s64) = G_SEXTLOAD %0(p0) :: (load (s32))239 $x10 = COPY %1(s64)240 PseudoRET implicit $x10241 242...243