263 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 42# RUN: llc %s -mtriple=riscv64 -run-pass=riscv-opt-w-instrs -verify-machineinstrs \3# RUN: -mattr=+m -o - | FileCheck %s -check-prefixes=NO-PREFER-W-INST4# RUN: llc %s -mtriple=riscv64 -run-pass=riscv-opt-w-instrs -verify-machineinstrs \5# RUN: -mattr=+m,+prefer-w-inst -o - | FileCheck %s -check-prefixes=PREFER-W-INST6 7---8name: addi9body: |10 bb.0.entry:11 liveins: $x10, $x1112 ; NO-PREFER-W-INST-LABEL: name: addi13 ; NO-PREFER-W-INST: liveins: $x10, $x1114 ; NO-PREFER-W-INST-NEXT: {{ $}}15 ; NO-PREFER-W-INST-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x1016 ; NO-PREFER-W-INST-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x1117 ; NO-PREFER-W-INST-NEXT: [[ADDI:%[0-9]+]]:gpr = ADDI [[COPY]], 118 ; NO-PREFER-W-INST-NEXT: [[ADDIW:%[0-9]+]]:gpr = ADDIW [[ADDI]], 119 ; NO-PREFER-W-INST-NEXT: $x10 = COPY [[ADDIW]]20 ; NO-PREFER-W-INST-NEXT: PseudoRET21 ;22 ; PREFER-W-INST-LABEL: name: addi23 ; PREFER-W-INST: liveins: $x10, $x1124 ; PREFER-W-INST-NEXT: {{ $}}25 ; PREFER-W-INST-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x1026 ; PREFER-W-INST-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x1127 ; PREFER-W-INST-NEXT: [[ADDIW:%[0-9]+]]:gpr = ADDIW [[COPY]], 128 ; PREFER-W-INST-NEXT: [[ADDIW1:%[0-9]+]]:gpr = ADDIW [[ADDIW]], 129 ; PREFER-W-INST-NEXT: $x10 = COPY [[ADDIW1]]30 ; PREFER-W-INST-NEXT: PseudoRET31 %1:gpr = COPY $x1032 %2:gpr = COPY $x1133 %3:gpr = ADDI %1, 134 %4:gpr = ADDIW %3, 135 $x10 = COPY %436 PseudoRET37...38 39---40name: add41body: |42 bb.0.entry:43 liveins: $x10, $x1144 ; NO-PREFER-W-INST-LABEL: name: add45 ; NO-PREFER-W-INST: liveins: $x10, $x1146 ; NO-PREFER-W-INST-NEXT: {{ $}}47 ; NO-PREFER-W-INST-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x1048 ; NO-PREFER-W-INST-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x1149 ; NO-PREFER-W-INST-NEXT: [[ADD:%[0-9]+]]:gpr = ADD [[COPY]], [[COPY1]]50 ; NO-PREFER-W-INST-NEXT: [[ADDIW:%[0-9]+]]:gpr = ADDIW [[ADD]], 151 ; NO-PREFER-W-INST-NEXT: $x10 = COPY [[ADDIW]]52 ; NO-PREFER-W-INST-NEXT: PseudoRET53 ;54 ; PREFER-W-INST-LABEL: name: add55 ; PREFER-W-INST: liveins: $x10, $x1156 ; PREFER-W-INST-NEXT: {{ $}}57 ; PREFER-W-INST-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x1058 ; PREFER-W-INST-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x1159 ; PREFER-W-INST-NEXT: [[ADDW:%[0-9]+]]:gpr = ADDW [[COPY]], [[COPY1]]60 ; PREFER-W-INST-NEXT: [[ADDIW:%[0-9]+]]:gpr = ADDIW [[ADDW]], 161 ; PREFER-W-INST-NEXT: $x10 = COPY [[ADDIW]]62 ; PREFER-W-INST-NEXT: PseudoRET63 %1:gpr = COPY $x1064 %2:gpr = COPY $x1165 %3:gpr = ADD %1, %266 %4:gpr = ADDIW %3, 167 $x10 = COPY %468 PseudoRET69...70 71---72name: sub73body: |74 bb.0.entry:75 liveins: $x10, $x1176 ; NO-PREFER-W-INST-LABEL: name: sub77 ; NO-PREFER-W-INST: liveins: $x10, $x1178 ; NO-PREFER-W-INST-NEXT: {{ $}}79 ; NO-PREFER-W-INST-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x1080 ; NO-PREFER-W-INST-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x1181 ; NO-PREFER-W-INST-NEXT: [[SUB:%[0-9]+]]:gpr = SUB [[COPY]], [[COPY1]]82 ; NO-PREFER-W-INST-NEXT: [[ADDIW:%[0-9]+]]:gpr = ADDIW [[SUB]], 183 ; NO-PREFER-W-INST-NEXT: $x10 = COPY [[ADDIW]]84 ; NO-PREFER-W-INST-NEXT: PseudoRET85 ;86 ; PREFER-W-INST-LABEL: name: sub87 ; PREFER-W-INST: liveins: $x10, $x1188 ; PREFER-W-INST-NEXT: {{ $}}89 ; PREFER-W-INST-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x1090 ; PREFER-W-INST-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x1191 ; PREFER-W-INST-NEXT: [[SUBW:%[0-9]+]]:gpr = SUBW [[COPY]], [[COPY1]]92 ; PREFER-W-INST-NEXT: [[ADDIW:%[0-9]+]]:gpr = ADDIW [[SUBW]], 193 ; PREFER-W-INST-NEXT: $x10 = COPY [[ADDIW]]94 ; PREFER-W-INST-NEXT: PseudoRET95 %1:gpr = COPY $x1096 %2:gpr = COPY $x1197 %3:gpr = SUB %1, %298 %4:gpr = ADDIW %3, 199 $x10 = COPY %4100 PseudoRET101...102 103---104name: mul105body: |106 bb.0.entry:107 liveins: $x10, $x11108 ; NO-PREFER-W-INST-LABEL: name: mul109 ; NO-PREFER-W-INST: liveins: $x10, $x11110 ; NO-PREFER-W-INST-NEXT: {{ $}}111 ; NO-PREFER-W-INST-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10112 ; NO-PREFER-W-INST-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11113 ; NO-PREFER-W-INST-NEXT: [[MUL:%[0-9]+]]:gpr = MUL [[COPY]], [[COPY1]]114 ; NO-PREFER-W-INST-NEXT: [[ADDIW:%[0-9]+]]:gpr = ADDIW [[MUL]], 1115 ; NO-PREFER-W-INST-NEXT: $x10 = COPY [[ADDIW]]116 ; NO-PREFER-W-INST-NEXT: PseudoRET117 ;118 ; PREFER-W-INST-LABEL: name: mul119 ; PREFER-W-INST: liveins: $x10, $x11120 ; PREFER-W-INST-NEXT: {{ $}}121 ; PREFER-W-INST-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10122 ; PREFER-W-INST-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11123 ; PREFER-W-INST-NEXT: [[MULW:%[0-9]+]]:gpr = MULW [[COPY]], [[COPY1]]124 ; PREFER-W-INST-NEXT: [[ADDIW:%[0-9]+]]:gpr = ADDIW [[MULW]], 1125 ; PREFER-W-INST-NEXT: $x10 = COPY [[ADDIW]]126 ; PREFER-W-INST-NEXT: PseudoRET127 %1:gpr = COPY $x10128 %2:gpr = COPY $x11129 %3:gpr = MUL %1, %2130 %4:gpr = ADDIW %3, 1131 $x10 = COPY %4132 PseudoRET133...134 135 136---137name: slli_31138body: |139 bb.0.entry:140 liveins: $x10, $x11141 ; NO-PREFER-W-INST-LABEL: name: slli_31142 ; NO-PREFER-W-INST: liveins: $x10, $x11143 ; NO-PREFER-W-INST-NEXT: {{ $}}144 ; NO-PREFER-W-INST-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10145 ; NO-PREFER-W-INST-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11146 ; NO-PREFER-W-INST-NEXT: [[SLLI:%[0-9]+]]:gpr = SLLI [[COPY]], 31147 ; NO-PREFER-W-INST-NEXT: [[ADDIW:%[0-9]+]]:gpr = ADDIW [[SLLI]], 1148 ; NO-PREFER-W-INST-NEXT: $x10 = COPY [[ADDIW]]149 ; NO-PREFER-W-INST-NEXT: PseudoRET150 ;151 ; PREFER-W-INST-LABEL: name: slli_31152 ; PREFER-W-INST: liveins: $x10, $x11153 ; PREFER-W-INST-NEXT: {{ $}}154 ; PREFER-W-INST-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10155 ; PREFER-W-INST-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11156 ; PREFER-W-INST-NEXT: [[SLLIW:%[0-9]+]]:gpr = SLLIW [[COPY]], 31157 ; PREFER-W-INST-NEXT: [[ADDIW:%[0-9]+]]:gpr = ADDIW [[SLLIW]], 1158 ; PREFER-W-INST-NEXT: $x10 = COPY [[ADDIW]]159 ; PREFER-W-INST-NEXT: PseudoRET160 %1:gpr = COPY $x10161 %2:gpr = COPY $x11162 %3:gpr = SLLI %1, 31163 %4:gpr = ADDIW %3, 1164 $x10 = COPY %4165 PseudoRET166...167 168---169name: slli_32170body: |171 bb.0.entry:172 liveins: $x10, $x11173 ; NO-PREFER-W-INST-LABEL: name: slli_32174 ; NO-PREFER-W-INST: liveins: $x10, $x11175 ; NO-PREFER-W-INST-NEXT: {{ $}}176 ; NO-PREFER-W-INST-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10177 ; NO-PREFER-W-INST-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11178 ; NO-PREFER-W-INST-NEXT: [[SLLI:%[0-9]+]]:gpr = SLLI [[COPY]], 32179 ; NO-PREFER-W-INST-NEXT: [[ADDIW:%[0-9]+]]:gpr = ADDIW [[SLLI]], 1180 ; NO-PREFER-W-INST-NEXT: $x10 = COPY [[ADDIW]]181 ; NO-PREFER-W-INST-NEXT: PseudoRET182 ;183 ; PREFER-W-INST-LABEL: name: slli_32184 ; PREFER-W-INST: liveins: $x10, $x11185 ; PREFER-W-INST-NEXT: {{ $}}186 ; PREFER-W-INST-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10187 ; PREFER-W-INST-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11188 ; PREFER-W-INST-NEXT: [[SLLI:%[0-9]+]]:gpr = SLLI [[COPY]], 32189 ; PREFER-W-INST-NEXT: [[ADDIW:%[0-9]+]]:gpr = ADDIW [[SLLI]], 1190 ; PREFER-W-INST-NEXT: $x10 = COPY [[ADDIW]]191 ; PREFER-W-INST-NEXT: PseudoRET192 %1:gpr = COPY $x10193 %2:gpr = COPY $x11194 %3:gpr = SLLI %1, 32195 %4:gpr = ADDIW %3, 1196 $x10 = COPY %4197 PseudoRET198...199 200---201name: ld202body: |203 bb.0.entry:204 liveins: $x10, $x11205 ; NO-PREFER-W-INST-LABEL: name: ld206 ; NO-PREFER-W-INST: liveins: $x10, $x11207 ; NO-PREFER-W-INST-NEXT: {{ $}}208 ; NO-PREFER-W-INST-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10209 ; NO-PREFER-W-INST-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11210 ; NO-PREFER-W-INST-NEXT: [[LD:%[0-9]+]]:gpr = LD [[COPY]], 0211 ; NO-PREFER-W-INST-NEXT: [[ADDIW:%[0-9]+]]:gpr = ADDIW [[LD]], 1212 ; NO-PREFER-W-INST-NEXT: $x10 = COPY [[ADDIW]]213 ; NO-PREFER-W-INST-NEXT: PseudoRET214 ;215 ; PREFER-W-INST-LABEL: name: ld216 ; PREFER-W-INST: liveins: $x10, $x11217 ; PREFER-W-INST-NEXT: {{ $}}218 ; PREFER-W-INST-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10219 ; PREFER-W-INST-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11220 ; PREFER-W-INST-NEXT: [[LW:%[0-9]+]]:gpr = LW [[COPY]], 0221 ; PREFER-W-INST-NEXT: [[ADDIW:%[0-9]+]]:gpr = ADDIW [[LW]], 1222 ; PREFER-W-INST-NEXT: $x10 = COPY [[ADDIW]]223 ; PREFER-W-INST-NEXT: PseudoRET224 %1:gpr = COPY $x10225 %2:gpr = COPY $x11226 %3:gpr = LD %1, 0227 %4:gpr = ADDIW %3, 1228 $x10 = COPY %4229 PseudoRET230...231 232---233name: lwu234body: |235 bb.0.entry:236 liveins: $x10, $x11237 ; NO-PREFER-W-INST-LABEL: name: lwu238 ; NO-PREFER-W-INST: liveins: $x10, $x11239 ; NO-PREFER-W-INST-NEXT: {{ $}}240 ; NO-PREFER-W-INST-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10241 ; NO-PREFER-W-INST-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11242 ; NO-PREFER-W-INST-NEXT: [[LW:%[0-9]+]]:gpr = LW [[COPY]], 0243 ; NO-PREFER-W-INST-NEXT: [[ADDIW:%[0-9]+]]:gpr = ADDIW [[LW]], 1244 ; NO-PREFER-W-INST-NEXT: $x10 = COPY [[ADDIW]]245 ; NO-PREFER-W-INST-NEXT: PseudoRET246 ;247 ; PREFER-W-INST-LABEL: name: lwu248 ; PREFER-W-INST: liveins: $x10, $x11249 ; PREFER-W-INST-NEXT: {{ $}}250 ; PREFER-W-INST-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10251 ; PREFER-W-INST-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11252 ; PREFER-W-INST-NEXT: [[LW:%[0-9]+]]:gpr = LW [[COPY]], 0253 ; PREFER-W-INST-NEXT: [[ADDIW:%[0-9]+]]:gpr = ADDIW [[LW]], 1254 ; PREFER-W-INST-NEXT: $x10 = COPY [[ADDIW]]255 ; PREFER-W-INST-NEXT: PseudoRET256 %1:gpr = COPY $x10257 %2:gpr = COPY $x11258 %3:gpr = LWU %1, 0259 %4:gpr = ADDIW %3, 1260 $x10 = COPY %4261 PseudoRET262...263