295 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=riscv32 -run-pass=instruction-select %s -o - \3# RUN: -disable-gisel-legality-check | FileCheck %s4 5---6name: load_i87legalized: true8regBankSelected: true9tracksRegLiveness: true10body: |11 bb.0:12 liveins: $x1013 14 ; CHECK-LABEL: name: load_i815 ; CHECK: liveins: $x1016 ; CHECK-NEXT: {{ $}}17 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x1018 ; CHECK-NEXT: [[LBU:%[0-9]+]]:gpr = LBU [[COPY]], 0 :: (load (s8))19 ; CHECK-NEXT: $x10 = COPY [[LBU]]20 ; CHECK-NEXT: PseudoRET implicit $x1021 %0:gprb(p0) = COPY $x1022 %1:gprb(s32) = G_LOAD %0(p0) :: (load (s8))23 $x10 = COPY %1(s32)24 PseudoRET implicit $x1025 26...27---28name: load_i1629legalized: true30regBankSelected: true31tracksRegLiveness: true32body: |33 bb.0:34 liveins: $x1035 36 ; CHECK-LABEL: name: load_i1637 ; CHECK: liveins: $x1038 ; CHECK-NEXT: {{ $}}39 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x1040 ; CHECK-NEXT: [[LH:%[0-9]+]]:gpr = LH [[COPY]], 0 :: (load (s16))41 ; CHECK-NEXT: $x10 = COPY [[LH]]42 ; CHECK-NEXT: PseudoRET implicit $x1043 %0:gprb(p0) = COPY $x1044 %1:gprb(s32) = G_LOAD %0(p0) :: (load (s16))45 $x10 = COPY %1(s32)46 PseudoRET implicit $x1047 48...49---50name: load_i8_i1651legalized: true52regBankSelected: true53tracksRegLiveness: true54body: |55 bb.0:56 liveins: $x1057 58 ; CHECK-LABEL: name: load_i8_i1659 ; CHECK: liveins: $x1060 ; CHECK-NEXT: {{ $}}61 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x1062 ; CHECK-NEXT: [[LBU:%[0-9]+]]:gpr = LBU [[COPY]], 0 :: (load (s8))63 ; CHECK-NEXT: $x10 = COPY [[LBU]]64 ; CHECK-NEXT: PseudoRET implicit $x1065 %0:gprb(p0) = COPY $x1066 %1:gprb(s16) = G_LOAD %0(p0) :: (load (s8))67 %2:gprb(s32) = G_ANYEXT %168 $x10 = COPY %2(s32)69 PseudoRET implicit $x1070 71...72---73name: load_i16_i1674legalized: true75regBankSelected: true76tracksRegLiveness: true77body: |78 bb.0:79 liveins: $x1080 81 ; CHECK-LABEL: name: load_i16_i1682 ; CHECK: liveins: $x1083 ; CHECK-NEXT: {{ $}}84 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x1085 ; CHECK-NEXT: [[LH:%[0-9]+]]:gpr = LH [[COPY]], 0 :: (load (s16))86 ; CHECK-NEXT: $x10 = COPY [[LH]]87 ; CHECK-NEXT: PseudoRET implicit $x1088 %0:gprb(p0) = COPY $x1089 %1:gprb(s16) = G_LOAD %0(p0) :: (load (s16))90 %2:gprb(s32) = G_ANYEXT %191 $x10 = COPY %2(s32)92 PseudoRET implicit $x1093 94...95---96name: load_i3297legalized: true98regBankSelected: true99tracksRegLiveness: true100body: |101 bb.0:102 liveins: $x10103 104 ; CHECK-LABEL: name: load_i32105 ; CHECK: liveins: $x10106 ; CHECK-NEXT: {{ $}}107 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10108 ; CHECK-NEXT: [[LW:%[0-9]+]]:gpr = LW [[COPY]], 0 :: (load (s32))109 ; CHECK-NEXT: $x10 = COPY [[LW]]110 ; CHECK-NEXT: PseudoRET implicit $x10111 %0:gprb(p0) = COPY $x10112 %1:gprb(s32) = G_LOAD %0(p0) :: (load (s32))113 $x10 = COPY %1(s32)114 PseudoRET implicit $x10115 116...117---118name: zextload_i8119legalized: true120regBankSelected: true121tracksRegLiveness: true122body: |123 bb.0:124 liveins: $x10125 126 ; CHECK-LABEL: name: zextload_i8127 ; CHECK: liveins: $x10128 ; CHECK-NEXT: {{ $}}129 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10130 ; CHECK-NEXT: [[LBU:%[0-9]+]]:gpr = LBU [[COPY]], 0 :: (load (s8))131 ; CHECK-NEXT: $x10 = COPY [[LBU]]132 ; CHECK-NEXT: PseudoRET implicit $x10133 %0:gprb(p0) = COPY $x10134 %1:gprb(s32) = G_ZEXTLOAD %0(p0) :: (load (s8))135 $x10 = COPY %1(s32)136 PseudoRET implicit $x10137 138...139---140name: zextload_i16141legalized: true142regBankSelected: true143tracksRegLiveness: true144body: |145 bb.0:146 liveins: $x10147 148 ; CHECK-LABEL: name: zextload_i16149 ; CHECK: liveins: $x10150 ; CHECK-NEXT: {{ $}}151 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10152 ; CHECK-NEXT: [[LHU:%[0-9]+]]:gpr = LHU [[COPY]], 0 :: (load (s16))153 ; CHECK-NEXT: $x10 = COPY [[LHU]]154 ; CHECK-NEXT: PseudoRET implicit $x10155 %0:gprb(p0) = COPY $x10156 %1:gprb(s32) = G_ZEXTLOAD %0(p0) :: (load (s16))157 $x10 = COPY %1(s32)158 PseudoRET implicit $x10159 160...161---162name: sextload_i8163legalized: true164regBankSelected: true165tracksRegLiveness: true166body: |167 bb.0:168 liveins: $x10169 170 ; CHECK-LABEL: name: sextload_i8171 ; CHECK: liveins: $x10172 ; CHECK-NEXT: {{ $}}173 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10174 ; CHECK-NEXT: [[LB:%[0-9]+]]:gpr = LB [[COPY]], 0 :: (load (s8))175 ; CHECK-NEXT: $x10 = COPY [[LB]]176 ; CHECK-NEXT: PseudoRET implicit $x10177 %0:gprb(p0) = COPY $x10178 %1:gprb(s32) = G_SEXTLOAD %0(p0) :: (load (s8))179 $x10 = COPY %1(s32)180 PseudoRET implicit $x10181 182...183---184name: sextload_i16185legalized: true186regBankSelected: true187tracksRegLiveness: true188body: |189 bb.0:190 liveins: $x10191 192 ; CHECK-LABEL: name: sextload_i16193 ; CHECK: liveins: $x10194 ; CHECK-NEXT: {{ $}}195 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10196 ; CHECK-NEXT: [[LH:%[0-9]+]]:gpr = LH [[COPY]], 0 :: (load (s16))197 ; CHECK-NEXT: $x10 = COPY [[LH]]198 ; CHECK-NEXT: PseudoRET implicit $x10199 %0:gprb(p0) = COPY $x10200 %1:gprb(s32) = G_SEXTLOAD %0(p0) :: (load (s16))201 $x10 = COPY %1(s32)202 PseudoRET implicit $x10203 204...205---206name: load_p0207legalized: true208regBankSelected: true209tracksRegLiveness: true210body: |211 bb.0:212 liveins: $x10213 214 ; CHECK-LABEL: name: load_p0215 ; CHECK: liveins: $x10216 ; CHECK-NEXT: {{ $}}217 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10218 ; CHECK-NEXT: [[LW:%[0-9]+]]:gpr = LW [[COPY]], 0 :: (load (p0))219 ; CHECK-NEXT: $x10 = COPY [[LW]]220 ; CHECK-NEXT: PseudoRET implicit $x10221 %0:gprb(p0) = COPY $x10222 %1:gprb(p0) = G_LOAD %0(p0) :: (load (p0))223 $x10 = COPY %1(p0)224 PseudoRET implicit $x10225 226...227---228name: load_fi_i32229legalized: true230regBankSelected: true231tracksRegLiveness: true232 233stack:234 - { id: 0, offset: 0, size: 4, alignment: 4 }235 236body: |237 bb.0:238 ; CHECK-LABEL: name: load_fi_i32239 ; CHECK: [[LW:%[0-9]+]]:gpr = LW %stack.0, 0 :: (load (s32))240 ; CHECK-NEXT: $x10 = COPY [[LW]]241 ; CHECK-NEXT: PseudoRET implicit $x10242 %0:gprb(p0) = G_FRAME_INDEX %stack.0243 %1:gprb(s32) = G_LOAD %0(p0) :: (load (s32))244 $x10 = COPY %1(s32)245 PseudoRET implicit $x10246 247...248---249name: load_fi_gep_i32250legalized: true251regBankSelected: true252tracksRegLiveness: true253 254stack:255 - { id: 0, offset: 0, size: 8, alignment: 4 }256 257body: |258 bb.0:259 ; CHECK-LABEL: name: load_fi_gep_i32260 ; CHECK: [[LW:%[0-9]+]]:gpr = LW %stack.0, 4 :: (load (s32))261 ; CHECK-NEXT: $x10 = COPY [[LW]]262 ; CHECK-NEXT: PseudoRET implicit $x10263 %0:gprb(p0) = G_FRAME_INDEX %stack.0264 %1:gprb(s32) = G_CONSTANT i32 4265 %2:gprb(p0) = G_PTR_ADD %0(p0), %1(s32)266 %3:gprb(s32) = G_LOAD %2(p0) :: (load (s32))267 $x10 = COPY %3(s32)268 PseudoRET implicit $x10269 270...271---272name: load_gep_i32273legalized: true274regBankSelected: true275tracksRegLiveness: true276body: |277 bb.0:278 liveins: $x10279 280 ; CHECK-LABEL: name: load_gep_i32281 ; CHECK: liveins: $x10282 ; CHECK-NEXT: {{ $}}283 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10284 ; CHECK-NEXT: [[LW:%[0-9]+]]:gpr = LW [[COPY]], 4 :: (load (s32))285 ; CHECK-NEXT: $x10 = COPY [[LW]]286 ; CHECK-NEXT: PseudoRET implicit $x10287 %0:gprb(p0) = COPY $x10288 %1:gprb(s32) = G_CONSTANT i32 4289 %2:gprb(p0) = G_PTR_ADD %0(p0), %1(s32)290 %3:gprb(s32) = G_LOAD %2(p0) :: (load (s32))291 $x10 = COPY %3(s32)292 PseudoRET implicit $x10293 294...295