1381 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -o - %s -mtriple=riscv32 -mattr=+c,+f,+d -simplify-mir \3# RUN: -run-pass=riscv-make-compressible | FileCheck --check-prefixes=RV32,RV32C %s4# RUN: llc -o - %s -mtriple=riscv64 -mattr=+c,+f,+d -simplify-mir \5# RUN: -run-pass=riscv-make-compressible | FileCheck --check-prefixes=RV64,RV64C %s6# RUN: llc -o - %s -mtriple=riscv32 -mattr=+d,+zcf -simplify-mir \7# RUN: -run-pass=riscv-make-compressible | FileCheck --check-prefixes=RV32,RV32ZCF %s8# RUN: llc -o - %s -mtriple=riscv32 -mattr=+d,+zca -simplify-mir \9# RUN: -run-pass=riscv-make-compressible | FileCheck --check-prefixes=RV32,RV32ZCA %s10# RUN: llc -o - %s -mtriple=riscv64 -mattr=+d,+zca -simplify-mir \11# RUN: -run-pass=riscv-make-compressible | FileCheck --check-prefixes=RV64,RV64ZCA %s12--- |13 14 define void @store_common_value(ptr %a, ptr %b, ptr %c) #0 {15 entry:16 store i32 0, ptr %a, align 417 store i32 0, ptr %b, align 418 store i32 0, ptr %c, align 419 ret void20 }21 22 define void @store_common_value_float(ptr %a, ptr %b, ptr %c, float %d, float %e, float %f, float %g, float %h, float %i, float %j) #0 {23 entry:24 store float %j, ptr %a, align 425 store float %j, ptr %b, align 426 store float %j, ptr %c, align 427 ret void28 }29 30 define void @store_common_value_double(ptr %a, ptr %b, ptr %c, double %d, double %e, double %f, double %g, double %h, double %i, double %j) #0 {31 entry:32 store double %j, ptr %a, align 833 store double %j, ptr %b, align 834 store double %j, ptr %c, align 835 ret void36 }37 38 define void @store_common_ptr(i32 %a, i32 %b, i32 %c, i32 %d, i32 %e, i32 %f, ptr %p) #0 {39 entry:40 store volatile i32 1, ptr %p, align 441 store volatile i32 3, ptr %p, align 442 store volatile i32 5, ptr %p, align 443 ret void44 }45 46 define void @store_common_ptr_self(i32 %a, i32 %b, i32 %c, i32 %d, i32 %e, i32 %f, ptr %p) #0 {47 entry:48 %q = bitcast ptr %p to ptr49 store volatile i32 1, ptr %p, align 450 store volatile i32 3, ptr %p, align 451 store volatile ptr %p, ptr %q, align 452 ret void53 }54 55 define void @store_common_ptr_float(float %a, float %b, float %c, i32 %d, i32 %e, i32 %f, i32 %g, i32 %h, i32 %i, ptr %p) #0 {56 entry:57 store volatile float %a, ptr %p, align 458 store volatile float %b, ptr %p, align 459 store volatile float %c, ptr %p, align 460 ret void61 }62 63 define void @store_common_ptr_double(double %a, double %b, double %c, i32 %d, i32 %e, i32 %f, i32 %g, i32 %h, i32 %i, ptr %p) #0 {64 entry:65 store volatile double %a, ptr %p, align 866 store volatile double %b, ptr %p, align 867 store volatile double %c, ptr %p, align 868 ret void69 }70 71 define void @load_common_ptr(i32 %a, i32 %b, i32 %c, i32 %d, i32 %e, i32 %f, ptr %p) #0 {72 entry:73 %g = load volatile i32, ptr %p, align 474 %h = load volatile i32, ptr %p, align 475 %i = load volatile i32, ptr %p, align 476 ret void77 }78 79 define void @load_common_ptr_float(i32 %a, i32 %b, i32 %c, i32 %d, i32 %e, i32 %f, ptr %g) #0 {80 entry:81 %0 = load float, ptr %g, align 482 %arrayidx1 = getelementptr inbounds float, ptr %g, i32 183 %1 = load float, ptr %arrayidx1, align 484 %arrayidx2 = getelementptr inbounds float, ptr %g, i32 285 %2 = load float, ptr %arrayidx2, align 486 tail call void @load_common_ptr_float_1(float %0, float %1, float %2)87 ret void88 }89 90 declare void @load_common_ptr_float_1(float, float, float) #091 92 define void @load_common_ptr_double(i32 %a, i32 %b, i32 %c, i32 %d, i32 %e, i32 %f, ptr %g) #0 {93 entry:94 %0 = load double, ptr %g, align 895 %arrayidx1 = getelementptr inbounds double, ptr %g, i32 196 %1 = load double, ptr %arrayidx1, align 897 %arrayidx2 = getelementptr inbounds double, ptr %g, i32 298 %2 = load double, ptr %arrayidx2, align 899 tail call void @load_common_ptr_double_1(double %0, double %1, double %2)100 ret void101 }102 103 declare void @load_common_ptr_double_1(double, double, double) #0104 105 define void @store_large_offset(ptr %p) #0 {106 entry:107 %0 = getelementptr inbounds i32, ptr %p, i32 100108 store volatile i32 1, ptr %0, align 4109 %1 = getelementptr inbounds i32, ptr %p, i32 101110 store volatile i32 3, ptr %1, align 4111 %2 = getelementptr inbounds i32, ptr %p, i32 102112 store volatile i32 5, ptr %2, align 4113 %3 = getelementptr inbounds i32, ptr %p, i32 103114 store volatile i32 7, ptr %3, align 4115 ret void116 }117 118 define void @store_large_offset_float(ptr %p, float %a, float %b, float %c, float %d) #0 {119 entry:120 %0 = getelementptr inbounds float, ptr %p, i32 100121 store volatile float %a, ptr %0, align 4122 %1 = getelementptr inbounds float, ptr %p, i32 101123 store volatile float %b, ptr %1, align 4124 %2 = getelementptr inbounds float, ptr %p, i32 102125 store volatile float %c, ptr %2, align 4126 %3 = getelementptr inbounds float, ptr %p, i32 103127 store volatile float %d, ptr %3, align 4128 ret void129 }130 131 define void @store_large_offset_double(ptr %p, double %a, double %b, double %c, double %d) #0 {132 entry:133 %0 = getelementptr inbounds double, ptr %p, i32 100134 store volatile double %a, ptr %0, align 8135 %1 = getelementptr inbounds double, ptr %p, i32 101136 store volatile double %b, ptr %1, align 8137 %2 = getelementptr inbounds double, ptr %p, i32 102138 store volatile double %c, ptr %2, align 8139 %3 = getelementptr inbounds double, ptr %p, i32 103140 store volatile double %d, ptr %3, align 8141 ret void142 }143 144 define void @load_large_offset(ptr %p) #0 {145 entry:146 %0 = getelementptr inbounds i32, ptr %p, i32 100147 %a = load volatile i32, ptr %0, align 4148 %1 = getelementptr inbounds i32, ptr %p, i32 101149 %b = load volatile i32, ptr %1, align 4150 %2 = getelementptr inbounds i32, ptr %p, i32 102151 %c = load volatile i32, ptr %2, align 4152 %3 = getelementptr inbounds i32, ptr %p, i32 103153 %d = load volatile i32, ptr %3, align 4154 ret void155 }156 157 define void @load_large_offset_float(ptr %p) #0 {158 entry:159 %arrayidx = getelementptr inbounds float, ptr %p, i32 100160 %0 = load float, ptr %arrayidx, align 4161 %arrayidx1 = getelementptr inbounds float, ptr %p, i32 101162 %1 = load float, ptr %arrayidx1, align 4163 %arrayidx2 = getelementptr inbounds float, ptr %p, i32 102164 %2 = load float, ptr %arrayidx2, align 4165 tail call void @load_large_offset_float_1(float %0, float %1, float %2)166 ret void167 }168 169 declare void @load_large_offset_float_1(float, float, float) #0170 171 define void @load_large_offset_double(ptr %p) #0 {172 entry:173 %arrayidx = getelementptr inbounds double, ptr %p, i32 100174 %0 = load double, ptr %arrayidx, align 8175 %arrayidx1 = getelementptr inbounds double, ptr %p, i32 101176 %1 = load double, ptr %arrayidx1, align 8177 %arrayidx2 = getelementptr inbounds double, ptr %p, i32 102178 %2 = load double, ptr %arrayidx2, align 8179 tail call void @load_large_offset_double_1(double %0, double %1, double %2)180 ret void181 }182 183 declare void @load_large_offset_double_1(double, double, double) #0184 185 define void @store_common_value_no_opt(ptr %a) #0 {186 entry:187 store i32 0, ptr %a, align 4188 ret void189 }190 191 define void @store_common_value_float_no_opt(ptr %a, float %b, float %c, float %d, float %e, float %f, float %g, float %h) #0 {192 entry:193 store float %h, ptr %a, align 4194 ret void195 }196 197 define void @store_common_value_double_no_opt(ptr %a, double %b, double %c, double %d, double %e, double %f, double %g, double %h) #0 {198 entry:199 store double %h, ptr %a, align 8200 ret void201 }202 203 define void @store_common_ptr_no_opt(i32 %a, i32 %b, i32 %c, i32 %d, i32 %e, i32 %f, ptr %p) #0 {204 entry:205 store volatile i32 1, ptr %p, align 4206 ret void207 }208 209 define void @store_common_ptr_float_no_opt(float %a, i32 %b, i32 %c, i32 %d, i32 %e, i32 %f, i32 %g, ptr %p) #0 {210 entry:211 store volatile float %a, ptr %p, align 4212 ret void213 }214 215 define void @store_common_ptr_double_no_opt(double %a, i32 %b, i32 %c, i32 %d, i32 %e, i32 %f, i32 %g, ptr %p) #0 {216 entry:217 store volatile double %a, ptr %p, align 8218 ret void219 }220 221 define void @load_common_ptr_no_opt(i32 %a, i32 %b, i32 %c, i32 %d, i32 %e, i32 %f, ptr %p) #0 {222 entry:223 %g = load volatile i32, ptr %p, align 4224 ret void225 }226 227 define float @load_common_ptr_float_no_opt(i32 %a, i32 %b, i32 %c, i32 %d, i32 %e, i32 %f, ptr %g) #0 {228 entry:229 %0 = load float, ptr %g, align 4230 ret float %0231 }232 233 define double @load_common_ptr_double_no_opt(i32 %a, i32 %b, i32 %c, i32 %d, i32 %e, i32 %f, ptr %g) #0 {234 entry:235 %0 = load double, ptr %g, align 8236 ret double %0237 }238 239 define void @store_large_offset_no_opt(ptr %p) #0 {240 entry:241 %0 = getelementptr inbounds i32, ptr %p, i32 100242 store volatile i32 1, ptr %0, align 4243 %1 = getelementptr inbounds i32, ptr %p, i32 101244 store volatile i32 3, ptr %1, align 4245 ret void246 }247 248 define void @store_large_offset_float_no_opt(ptr %p, float %a, float %b) #0 {249 entry:250 %0 = getelementptr inbounds float, ptr %p, i32 100251 store volatile float %a, ptr %0, align 4252 %1 = getelementptr inbounds float, ptr %p, i32 101253 store volatile float %b, ptr %1, align 4254 ret void255 }256 257 define void @store_large_offset_double_no_opt(ptr %p, double %a, double %b) #0 {258 entry:259 %0 = getelementptr inbounds double, ptr %p, i32 100260 store volatile double %a, ptr %0, align 8261 %1 = getelementptr inbounds double, ptr %p, i32 101262 store volatile double %b, ptr %1, align 8263 ret void264 }265 266 define void @load_large_offset_no_opt(ptr %p) #0 {267 entry:268 %0 = getelementptr inbounds i32, ptr %p, i32 100269 %a = load volatile i32, ptr %0, align 4270 %1 = getelementptr inbounds i32, ptr %p, i32 101271 %b = load volatile i32, ptr %1, align 4272 ret void273 }274 275 define { float, float } @load_large_offset_float_no_opt(ptr %p) #0 {276 entry:277 %arrayidx = getelementptr inbounds float, ptr %p, i32 100278 %0 = load float, ptr %arrayidx, align 4279 %arrayidx1 = getelementptr inbounds float, ptr %p, i32 101280 %1 = load float, ptr %arrayidx1, align 4281 %2 = insertvalue { float, float } undef, float %0, 0282 %3 = insertvalue { float, float } %2, float %1, 1283 ret { float, float } %3284 }285 286 define { double, double } @load_large_offset_double_no_opt(ptr %p) #0 {287 entry:288 %arrayidx = getelementptr inbounds double, ptr %p, i32 100289 %0 = load double, ptr %arrayidx, align 8290 %arrayidx1 = getelementptr inbounds double, ptr %p, i32 101291 %1 = load double, ptr %arrayidx1, align 8292 %2 = insertvalue { double, double } undef, double %0, 0293 %3 = insertvalue { double, double } %2, double %1, 1294 ret { double, double } %3295 }296 297 attributes #0 = { minsize }298 299...300---301name: store_common_value302tracksRegLiveness: true303body: |304 bb.0.entry:305 liveins: $x10, $x11, $x12306 307 ; RV32-LABEL: name: store_common_value308 ; RV32: liveins: $x10, $x11, $x12309 ; RV32-NEXT: {{ $}}310 ; RV32-NEXT: $x13 = ADDI $x0, 0311 ; RV32-NEXT: SW $x13, killed renamable $x10, 0 :: (store (s32) into %ir.a)312 ; RV32-NEXT: SW $x13, killed renamable $x11, 0 :: (store (s32) into %ir.b)313 ; RV32-NEXT: SW $x13, killed renamable $x12, 0 :: (store (s32) into %ir.c)314 ; RV32-NEXT: PseudoRET315 ;316 ; RV64-LABEL: name: store_common_value317 ; RV64: liveins: $x10, $x11, $x12318 ; RV64-NEXT: {{ $}}319 ; RV64-NEXT: $x13 = ADDI $x0, 0320 ; RV64-NEXT: SW $x13, killed renamable $x10, 0 :: (store (s32) into %ir.a)321 ; RV64-NEXT: SW $x13, killed renamable $x11, 0 :: (store (s32) into %ir.b)322 ; RV64-NEXT: SW $x13, killed renamable $x12, 0 :: (store (s32) into %ir.c)323 ; RV64-NEXT: PseudoRET324 SW $x0, killed renamable $x10, 0 :: (store (s32) into %ir.a)325 SW $x0, killed renamable $x11, 0 :: (store (s32) into %ir.b)326 SW $x0, killed renamable $x12, 0 :: (store (s32) into %ir.c)327 PseudoRET328 329...330---331name: store_common_value_float332tracksRegLiveness: true333body: |334 bb.0.entry:335 liveins: $x10, $x11, $x12, $f16_f336 337 ; RV32C-LABEL: name: store_common_value_float338 ; RV32C: liveins: $x10, $x11, $x12, $f16_f339 ; RV32C-NEXT: {{ $}}340 ; RV32C-NEXT: $f15_f = FSGNJ_S $f16_f, $f16_f341 ; RV32C-NEXT: FSW $f15_f, killed renamable $x10, 0 :: (store (s32) into %ir.a)342 ; RV32C-NEXT: FSW $f15_f, killed renamable $x11, 0 :: (store (s32) into %ir.b)343 ; RV32C-NEXT: FSW killed $f15_f, killed renamable $x12, 0 :: (store (s32) into %ir.c)344 ; RV32C-NEXT: PseudoRET345 ;346 ; RV64-LABEL: name: store_common_value_float347 ; RV64: liveins: $x10, $x11, $x12, $f16_f348 ; RV64-NEXT: {{ $}}349 ; RV64-NEXT: FSW renamable $f16_f, killed renamable $x10, 0 :: (store (s32) into %ir.a)350 ; RV64-NEXT: FSW renamable $f16_f, killed renamable $x11, 0 :: (store (s32) into %ir.b)351 ; RV64-NEXT: FSW killed renamable $f16_f, killed renamable $x12, 0 :: (store (s32) into %ir.c)352 ; RV64-NEXT: PseudoRET353 ;354 ; RV32ZCF-LABEL: name: store_common_value_float355 ; RV32ZCF: liveins: $x10, $x11, $x12, $f16_f356 ; RV32ZCF-NEXT: {{ $}}357 ; RV32ZCF-NEXT: $f15_f = FSGNJ_S $f16_f, $f16_f358 ; RV32ZCF-NEXT: FSW $f15_f, killed renamable $x10, 0 :: (store (s32) into %ir.a)359 ; RV32ZCF-NEXT: FSW $f15_f, killed renamable $x11, 0 :: (store (s32) into %ir.b)360 ; RV32ZCF-NEXT: FSW killed $f15_f, killed renamable $x12, 0 :: (store (s32) into %ir.c)361 ; RV32ZCF-NEXT: PseudoRET362 ;363 ; RV32ZCA-LABEL: name: store_common_value_float364 ; RV32ZCA: liveins: $x10, $x11, $x12, $f16_f365 ; RV32ZCA-NEXT: {{ $}}366 ; RV32ZCA-NEXT: FSW renamable $f16_f, killed renamable $x10, 0 :: (store (s32) into %ir.a)367 ; RV32ZCA-NEXT: FSW renamable $f16_f, killed renamable $x11, 0 :: (store (s32) into %ir.b)368 ; RV32ZCA-NEXT: FSW killed renamable $f16_f, killed renamable $x12, 0 :: (store (s32) into %ir.c)369 ; RV32ZCA-NEXT: PseudoRET370 FSW renamable $f16_f, killed renamable $x10, 0 :: (store (s32) into %ir.a)371 FSW renamable $f16_f, killed renamable $x11, 0 :: (store (s32) into %ir.b)372 FSW killed renamable $f16_f, killed renamable $x12, 0 :: (store (s32) into %ir.c)373 PseudoRET374 375...376---377name: store_common_value_double378tracksRegLiveness: true379body: |380 bb.0.entry:381 liveins: $x10, $x11, $x12, $f16_d382 383 ; RV32C-LABEL: name: store_common_value_double384 ; RV32C: liveins: $x10, $x11, $x12, $f16_d385 ; RV32C-NEXT: {{ $}}386 ; RV32C-NEXT: $f15_d = FSGNJ_D $f16_d, $f16_d387 ; RV32C-NEXT: FSD $f15_d, killed renamable $x10, 0 :: (store (s64) into %ir.a)388 ; RV32C-NEXT: FSD $f15_d, killed renamable $x11, 0 :: (store (s64) into %ir.b)389 ; RV32C-NEXT: FSD killed $f15_d, killed renamable $x12, 0 :: (store (s64) into %ir.c)390 ; RV32C-NEXT: PseudoRET391 ;392 ; RV64C-LABEL: name: store_common_value_double393 ; RV64C: liveins: $x10, $x11, $x12, $f16_d394 ; RV64C-NEXT: {{ $}}395 ; RV64C-NEXT: $f15_d = FSGNJ_D $f16_d, $f16_d396 ; RV64C-NEXT: FSD $f15_d, killed renamable $x10, 0 :: (store (s64) into %ir.a)397 ; RV64C-NEXT: FSD $f15_d, killed renamable $x11, 0 :: (store (s64) into %ir.b)398 ; RV64C-NEXT: FSD killed $f15_d, killed renamable $x12, 0 :: (store (s64) into %ir.c)399 ; RV64C-NEXT: PseudoRET400 ;401 ; RV32ZCF-LABEL: name: store_common_value_double402 ; RV32ZCF: liveins: $x10, $x11, $x12, $f16_d403 ; RV32ZCF-NEXT: {{ $}}404 ; RV32ZCF-NEXT: FSD renamable $f16_d, killed renamable $x10, 0 :: (store (s64) into %ir.a)405 ; RV32ZCF-NEXT: FSD renamable $f16_d, killed renamable $x11, 0 :: (store (s64) into %ir.b)406 ; RV32ZCF-NEXT: FSD killed renamable $f16_d, killed renamable $x12, 0 :: (store (s64) into %ir.c)407 ; RV32ZCF-NEXT: PseudoRET408 ;409 ; RV32ZCA-LABEL: name: store_common_value_double410 ; RV32ZCA: liveins: $x10, $x11, $x12, $f16_d411 ; RV32ZCA-NEXT: {{ $}}412 ; RV32ZCA-NEXT: FSD renamable $f16_d, killed renamable $x10, 0 :: (store (s64) into %ir.a)413 ; RV32ZCA-NEXT: FSD renamable $f16_d, killed renamable $x11, 0 :: (store (s64) into %ir.b)414 ; RV32ZCA-NEXT: FSD killed renamable $f16_d, killed renamable $x12, 0 :: (store (s64) into %ir.c)415 ; RV32ZCA-NEXT: PseudoRET416 ;417 ; RV64ZCA-LABEL: name: store_common_value_double418 ; RV64ZCA: liveins: $x10, $x11, $x12, $f16_d419 ; RV64ZCA-NEXT: {{ $}}420 ; RV64ZCA-NEXT: FSD renamable $f16_d, killed renamable $x10, 0 :: (store (s64) into %ir.a)421 ; RV64ZCA-NEXT: FSD renamable $f16_d, killed renamable $x11, 0 :: (store (s64) into %ir.b)422 ; RV64ZCA-NEXT: FSD killed renamable $f16_d, killed renamable $x12, 0 :: (store (s64) into %ir.c)423 ; RV64ZCA-NEXT: PseudoRET424 FSD renamable $f16_d, killed renamable $x10, 0 :: (store (s64) into %ir.a)425 FSD renamable $f16_d, killed renamable $x11, 0 :: (store (s64) into %ir.b)426 FSD killed renamable $f16_d, killed renamable $x12, 0 :: (store (s64) into %ir.c)427 PseudoRET428 429...430---431name: store_common_ptr432tracksRegLiveness: true433body: |434 bb.0.entry:435 liveins: $x16436 437 ; RV32-LABEL: name: store_common_ptr438 ; RV32: liveins: $x16439 ; RV32-NEXT: {{ $}}440 ; RV32-NEXT: renamable $x10 = ADDI $x0, 1441 ; RV32-NEXT: $x11 = ADDI $x16, 0442 ; RV32-NEXT: SW killed renamable $x10, $x11, 0 :: (volatile store (s32) into %ir.p)443 ; RV32-NEXT: renamable $x10 = ADDI $x0, 3444 ; RV32-NEXT: SW killed renamable $x10, $x11, 0 :: (volatile store (s32) into %ir.p)445 ; RV32-NEXT: renamable $x10 = ADDI $x0, 5446 ; RV32-NEXT: SW killed renamable $x10, killed $x11, 0 :: (volatile store (s32) into %ir.p)447 ; RV32-NEXT: PseudoRET448 ;449 ; RV64-LABEL: name: store_common_ptr450 ; RV64: liveins: $x16451 ; RV64-NEXT: {{ $}}452 ; RV64-NEXT: renamable $x10 = ADDI $x0, 1453 ; RV64-NEXT: $x11 = ADDI $x16, 0454 ; RV64-NEXT: SW killed renamable $x10, $x11, 0 :: (volatile store (s32) into %ir.p)455 ; RV64-NEXT: renamable $x10 = ADDI $x0, 3456 ; RV64-NEXT: SW killed renamable $x10, $x11, 0 :: (volatile store (s32) into %ir.p)457 ; RV64-NEXT: renamable $x10 = ADDI $x0, 5458 ; RV64-NEXT: SW killed renamable $x10, killed $x11, 0 :: (volatile store (s32) into %ir.p)459 ; RV64-NEXT: PseudoRET460 renamable $x10 = ADDI $x0, 1461 SW killed renamable $x10, renamable $x16, 0 :: (volatile store (s32) into %ir.p)462 renamable $x10 = ADDI $x0, 3463 SW killed renamable $x10, renamable $x16, 0 :: (volatile store (s32) into %ir.p)464 renamable $x10 = ADDI $x0, 5465 SW killed renamable $x10, killed renamable $x16, 0 :: (volatile store (s32) into %ir.p)466 PseudoRET467 468...469---470name: store_common_ptr_self471tracksRegLiveness: true472body: |473 bb.0.entry:474 liveins: $x16475 476 ; RV32-LABEL: name: store_common_ptr_self477 ; RV32: liveins: $x16478 ; RV32-NEXT: {{ $}}479 ; RV32-NEXT: renamable $x10 = ADDI $x0, 1480 ; RV32-NEXT: $x11 = ADDI $x16, 0481 ; RV32-NEXT: SW killed renamable $x10, $x11, 0 :: (volatile store (s32) into %ir.p)482 ; RV32-NEXT: renamable $x10 = ADDI $x0, 3483 ; RV32-NEXT: SW killed renamable $x10, $x11, 0 :: (volatile store (s32) into %ir.p)484 ; RV32-NEXT: SW killed $x11, $x11, 0 :: (volatile store (s32) into %ir.q)485 ; RV32-NEXT: PseudoRET486 ;487 ; RV64-LABEL: name: store_common_ptr_self488 ; RV64: liveins: $x16489 ; RV64-NEXT: {{ $}}490 ; RV64-NEXT: renamable $x10 = ADDI $x0, 1491 ; RV64-NEXT: $x11 = ADDI $x16, 0492 ; RV64-NEXT: SW killed renamable $x10, $x11, 0 :: (volatile store (s32) into %ir.p)493 ; RV64-NEXT: renamable $x10 = ADDI $x0, 3494 ; RV64-NEXT: SW killed renamable $x10, $x11, 0 :: (volatile store (s32) into %ir.p)495 ; RV64-NEXT: SW killed $x11, $x11, 0 :: (volatile store (s32) into %ir.q)496 ; RV64-NEXT: PseudoRET497 renamable $x10 = ADDI $x0, 1498 SW killed renamable $x10, renamable $x16, 0 :: (volatile store (s32) into %ir.p)499 renamable $x10 = ADDI $x0, 3500 SW killed renamable $x10, renamable $x16, 0 :: (volatile store (s32) into %ir.p)501 SW killed renamable $x16, renamable $x16, 0 :: (volatile store (s32) into %ir.q)502 PseudoRET503 504...505---506name: store_common_ptr_float507tracksRegLiveness: true508body: |509 bb.0.entry:510 liveins: $x16, $f10_f, $f11_f, $f12_f511 512 ; RV32C-LABEL: name: store_common_ptr_float513 ; RV32C: liveins: $x16, $f10_f, $f11_f, $f12_f514 ; RV32C-NEXT: {{ $}}515 ; RV32C-NEXT: $x10 = ADDI $x16, 0516 ; RV32C-NEXT: FSW killed renamable $f10_f, $x10, 0 :: (volatile store (s32) into %ir.p)517 ; RV32C-NEXT: FSW killed renamable $f11_f, $x10, 0 :: (volatile store (s32) into %ir.p)518 ; RV32C-NEXT: FSW killed renamable $f12_f, killed $x10, 0 :: (volatile store (s32) into %ir.p)519 ; RV32C-NEXT: PseudoRET520 ;521 ; RV64-LABEL: name: store_common_ptr_float522 ; RV64: liveins: $x16, $f10_f, $f11_f, $f12_f523 ; RV64-NEXT: {{ $}}524 ; RV64-NEXT: FSW killed renamable $f10_f, renamable $x16, 0 :: (volatile store (s32) into %ir.p)525 ; RV64-NEXT: FSW killed renamable $f11_f, renamable $x16, 0 :: (volatile store (s32) into %ir.p)526 ; RV64-NEXT: FSW killed renamable $f12_f, killed renamable $x16, 0 :: (volatile store (s32) into %ir.p)527 ; RV64-NEXT: PseudoRET528 ;529 ; RV32ZCF-LABEL: name: store_common_ptr_float530 ; RV32ZCF: liveins: $x16, $f10_f, $f11_f, $f12_f531 ; RV32ZCF-NEXT: {{ $}}532 ; RV32ZCF-NEXT: $x10 = ADDI $x16, 0533 ; RV32ZCF-NEXT: FSW killed renamable $f10_f, $x10, 0 :: (volatile store (s32) into %ir.p)534 ; RV32ZCF-NEXT: FSW killed renamable $f11_f, $x10, 0 :: (volatile store (s32) into %ir.p)535 ; RV32ZCF-NEXT: FSW killed renamable $f12_f, killed $x10, 0 :: (volatile store (s32) into %ir.p)536 ; RV32ZCF-NEXT: PseudoRET537 ;538 ; RV32ZCA-LABEL: name: store_common_ptr_float539 ; RV32ZCA: liveins: $x16, $f10_f, $f11_f, $f12_f540 ; RV32ZCA-NEXT: {{ $}}541 ; RV32ZCA-NEXT: FSW killed renamable $f10_f, renamable $x16, 0 :: (volatile store (s32) into %ir.p)542 ; RV32ZCA-NEXT: FSW killed renamable $f11_f, renamable $x16, 0 :: (volatile store (s32) into %ir.p)543 ; RV32ZCA-NEXT: FSW killed renamable $f12_f, killed renamable $x16, 0 :: (volatile store (s32) into %ir.p)544 ; RV32ZCA-NEXT: PseudoRET545 FSW killed renamable $f10_f, renamable $x16, 0 :: (volatile store (s32) into %ir.p)546 FSW killed renamable $f11_f, renamable $x16, 0 :: (volatile store (s32) into %ir.p)547 FSW killed renamable $f12_f, killed renamable $x16, 0 :: (volatile store (s32) into %ir.p)548 PseudoRET549 550...551---552name: store_common_ptr_double553tracksRegLiveness: true554body: |555 bb.0.entry:556 liveins: $x16, $f10_d, $f11_d, $f12_d557 558 ; RV32C-LABEL: name: store_common_ptr_double559 ; RV32C: liveins: $x16, $f10_d, $f11_d, $f12_d560 ; RV32C-NEXT: {{ $}}561 ; RV32C-NEXT: $x10 = ADDI $x16, 0562 ; RV32C-NEXT: FSD killed renamable $f10_d, $x10, 0 :: (volatile store (s64) into %ir.p)563 ; RV32C-NEXT: FSD killed renamable $f11_d, $x10, 0 :: (volatile store (s64) into %ir.p)564 ; RV32C-NEXT: FSD killed renamable $f12_d, killed $x10, 0 :: (volatile store (s64) into %ir.p)565 ; RV32C-NEXT: PseudoRET566 ;567 ; RV64C-LABEL: name: store_common_ptr_double568 ; RV64C: liveins: $x16, $f10_d, $f11_d, $f12_d569 ; RV64C-NEXT: {{ $}}570 ; RV64C-NEXT: $x10 = ADDI $x16, 0571 ; RV64C-NEXT: FSD killed renamable $f10_d, $x10, 0 :: (volatile store (s64) into %ir.p)572 ; RV64C-NEXT: FSD killed renamable $f11_d, $x10, 0 :: (volatile store (s64) into %ir.p)573 ; RV64C-NEXT: FSD killed renamable $f12_d, killed $x10, 0 :: (volatile store (s64) into %ir.p)574 ; RV64C-NEXT: PseudoRET575 ;576 ; RV32ZCF-LABEL: name: store_common_ptr_double577 ; RV32ZCF: liveins: $x16, $f10_d, $f11_d, $f12_d578 ; RV32ZCF-NEXT: {{ $}}579 ; RV32ZCF-NEXT: FSD killed renamable $f10_d, renamable $x16, 0 :: (volatile store (s64) into %ir.p)580 ; RV32ZCF-NEXT: FSD killed renamable $f11_d, renamable $x16, 0 :: (volatile store (s64) into %ir.p)581 ; RV32ZCF-NEXT: FSD killed renamable $f12_d, killed renamable $x16, 0 :: (volatile store (s64) into %ir.p)582 ; RV32ZCF-NEXT: PseudoRET583 ;584 ; RV32ZCA-LABEL: name: store_common_ptr_double585 ; RV32ZCA: liveins: $x16, $f10_d, $f11_d, $f12_d586 ; RV32ZCA-NEXT: {{ $}}587 ; RV32ZCA-NEXT: FSD killed renamable $f10_d, renamable $x16, 0 :: (volatile store (s64) into %ir.p)588 ; RV32ZCA-NEXT: FSD killed renamable $f11_d, renamable $x16, 0 :: (volatile store (s64) into %ir.p)589 ; RV32ZCA-NEXT: FSD killed renamable $f12_d, killed renamable $x16, 0 :: (volatile store (s64) into %ir.p)590 ; RV32ZCA-NEXT: PseudoRET591 ;592 ; RV64ZCA-LABEL: name: store_common_ptr_double593 ; RV64ZCA: liveins: $x16, $f10_d, $f11_d, $f12_d594 ; RV64ZCA-NEXT: {{ $}}595 ; RV64ZCA-NEXT: FSD killed renamable $f10_d, renamable $x16, 0 :: (volatile store (s64) into %ir.p)596 ; RV64ZCA-NEXT: FSD killed renamable $f11_d, renamable $x16, 0 :: (volatile store (s64) into %ir.p)597 ; RV64ZCA-NEXT: FSD killed renamable $f12_d, killed renamable $x16, 0 :: (volatile store (s64) into %ir.p)598 ; RV64ZCA-NEXT: PseudoRET599 FSD killed renamable $f10_d, renamable $x16, 0 :: (volatile store (s64) into %ir.p)600 FSD killed renamable $f11_d, renamable $x16, 0 :: (volatile store (s64) into %ir.p)601 FSD killed renamable $f12_d, killed renamable $x16, 0 :: (volatile store (s64) into %ir.p)602 PseudoRET603 604...605---606name: load_common_ptr607tracksRegLiveness: true608body: |609 bb.0.entry:610 liveins: $x16611 612 ; RV32-LABEL: name: load_common_ptr613 ; RV32: liveins: $x16614 ; RV32-NEXT: {{ $}}615 ; RV32-NEXT: $x11 = ADDI $x16, 0616 ; RV32-NEXT: dead renamable $x10 = LW $x11, 0 :: (volatile load (s32) from %ir.p)617 ; RV32-NEXT: dead renamable $x10 = LW $x11, 0 :: (volatile load (s32) from %ir.p)618 ; RV32-NEXT: dead renamable $x10 = LW killed $x11, 0 :: (volatile load (s32) from %ir.p)619 ; RV32-NEXT: PseudoRET620 ;621 ; RV64-LABEL: name: load_common_ptr622 ; RV64: liveins: $x16623 ; RV64-NEXT: {{ $}}624 ; RV64-NEXT: $x11 = ADDI $x16, 0625 ; RV64-NEXT: dead renamable $x10 = LW $x11, 0 :: (volatile load (s32) from %ir.p)626 ; RV64-NEXT: dead renamable $x10 = LW $x11, 0 :: (volatile load (s32) from %ir.p)627 ; RV64-NEXT: dead renamable $x10 = LW killed $x11, 0 :: (volatile load (s32) from %ir.p)628 ; RV64-NEXT: PseudoRET629 dead renamable $x10 = LW renamable $x16, 0 :: (volatile load (s32) from %ir.p)630 dead renamable $x10 = LW renamable $x16, 0 :: (volatile load (s32) from %ir.p)631 dead renamable $x10 = LW killed renamable $x16, 0 :: (volatile load (s32) from %ir.p)632 PseudoRET633 634...635---636name: load_common_ptr_float637tracksRegLiveness: true638body: |639 bb.0.entry:640 liveins: $x16641 642 ; RV32C-LABEL: name: load_common_ptr_float643 ; RV32C: liveins: $x16644 ; RV32C-NEXT: {{ $}}645 ; RV32C-NEXT: $x10 = ADDI $x16, 0646 ; RV32C-NEXT: renamable $f10_f = FLW $x10, 0 :: (load (s32) from %ir.g)647 ; RV32C-NEXT: renamable $f11_f = FLW $x10, 4 :: (load (s32) from %ir.arrayidx1)648 ; RV32C-NEXT: renamable $f12_f = FLW killed $x10, 8 :: (load (s32) from %ir.arrayidx2)649 ; RV32C-NEXT: PseudoTAIL target-flags(riscv-call) @load_common_ptr_float_1, implicit $x2, implicit $f10_f, implicit $f11_f, implicit $f12_f650 ;651 ; RV64-LABEL: name: load_common_ptr_float652 ; RV64: liveins: $x16653 ; RV64-NEXT: {{ $}}654 ; RV64-NEXT: renamable $f10_f = FLW renamable $x16, 0 :: (load (s32) from %ir.g)655 ; RV64-NEXT: renamable $f11_f = FLW renamable $x16, 4 :: (load (s32) from %ir.arrayidx1)656 ; RV64-NEXT: renamable $f12_f = FLW killed renamable $x16, 8 :: (load (s32) from %ir.arrayidx2)657 ; RV64-NEXT: PseudoTAIL target-flags(riscv-call) @load_common_ptr_float_1, implicit $x2, implicit $f10_f, implicit $f11_f, implicit $f12_f658 ;659 ; RV32ZCF-LABEL: name: load_common_ptr_float660 ; RV32ZCF: liveins: $x16661 ; RV32ZCF-NEXT: {{ $}}662 ; RV32ZCF-NEXT: $x10 = ADDI $x16, 0663 ; RV32ZCF-NEXT: renamable $f10_f = FLW $x10, 0 :: (load (s32) from %ir.g)664 ; RV32ZCF-NEXT: renamable $f11_f = FLW $x10, 4 :: (load (s32) from %ir.arrayidx1)665 ; RV32ZCF-NEXT: renamable $f12_f = FLW killed $x10, 8 :: (load (s32) from %ir.arrayidx2)666 ; RV32ZCF-NEXT: PseudoTAIL target-flags(riscv-call) @load_common_ptr_float_1, implicit $x2, implicit $f10_f, implicit $f11_f, implicit $f12_f667 ;668 ; RV32ZCA-LABEL: name: load_common_ptr_float669 ; RV32ZCA: liveins: $x16670 ; RV32ZCA-NEXT: {{ $}}671 ; RV32ZCA-NEXT: renamable $f10_f = FLW renamable $x16, 0 :: (load (s32) from %ir.g)672 ; RV32ZCA-NEXT: renamable $f11_f = FLW renamable $x16, 4 :: (load (s32) from %ir.arrayidx1)673 ; RV32ZCA-NEXT: renamable $f12_f = FLW killed renamable $x16, 8 :: (load (s32) from %ir.arrayidx2)674 ; RV32ZCA-NEXT: PseudoTAIL target-flags(riscv-call) @load_common_ptr_float_1, implicit $x2, implicit $f10_f, implicit $f11_f, implicit $f12_f675 renamable $f10_f = FLW renamable $x16, 0 :: (load (s32) from %ir.g)676 renamable $f11_f = FLW renamable $x16, 4 :: (load (s32) from %ir.arrayidx1)677 renamable $f12_f = FLW killed renamable $x16, 8 :: (load (s32) from %ir.arrayidx2)678 PseudoTAIL target-flags(riscv-call) @load_common_ptr_float_1, implicit $x2, implicit $f10_f, implicit $f11_f, implicit $f12_f679 680...681---682name: load_common_ptr_double683tracksRegLiveness: true684body: |685 bb.0.entry:686 liveins: $x16687 688 ; RV32C-LABEL: name: load_common_ptr_double689 ; RV32C: liveins: $x16690 ; RV32C-NEXT: {{ $}}691 ; RV32C-NEXT: $x10 = ADDI $x16, 0692 ; RV32C-NEXT: renamable $f10_d = FLD $x10, 0 :: (load (s64) from %ir.g)693 ; RV32C-NEXT: renamable $f11_d = FLD $x10, 8 :: (load (s64) from %ir.arrayidx1)694 ; RV32C-NEXT: renamable $f12_d = FLD killed $x10, 16 :: (load (s64) from %ir.arrayidx2)695 ; RV32C-NEXT: PseudoTAIL target-flags(riscv-call) @load_common_ptr_double_1, implicit $x2, implicit $f10_d, implicit $f11_d, implicit $f12_d696 ;697 ; RV64C-LABEL: name: load_common_ptr_double698 ; RV64C: liveins: $x16699 ; RV64C-NEXT: {{ $}}700 ; RV64C-NEXT: $x10 = ADDI $x16, 0701 ; RV64C-NEXT: renamable $f10_d = FLD $x10, 0 :: (load (s64) from %ir.g)702 ; RV64C-NEXT: renamable $f11_d = FLD $x10, 8 :: (load (s64) from %ir.arrayidx1)703 ; RV64C-NEXT: renamable $f12_d = FLD killed $x10, 16 :: (load (s64) from %ir.arrayidx2)704 ; RV64C-NEXT: PseudoTAIL target-flags(riscv-call) @load_common_ptr_double_1, implicit $x2, implicit $f10_d, implicit $f11_d, implicit $f12_d705 ;706 ; RV32ZCF-LABEL: name: load_common_ptr_double707 ; RV32ZCF: liveins: $x16708 ; RV32ZCF-NEXT: {{ $}}709 ; RV32ZCF-NEXT: renamable $f10_d = FLD renamable $x16, 0 :: (load (s64) from %ir.g)710 ; RV32ZCF-NEXT: renamable $f11_d = FLD renamable $x16, 8 :: (load (s64) from %ir.arrayidx1)711 ; RV32ZCF-NEXT: renamable $f12_d = FLD killed renamable $x16, 16 :: (load (s64) from %ir.arrayidx2)712 ; RV32ZCF-NEXT: PseudoTAIL target-flags(riscv-call) @load_common_ptr_double_1, implicit $x2, implicit $f10_d, implicit $f11_d, implicit $f12_d713 ;714 ; RV32ZCA-LABEL: name: load_common_ptr_double715 ; RV32ZCA: liveins: $x16716 ; RV32ZCA-NEXT: {{ $}}717 ; RV32ZCA-NEXT: renamable $f10_d = FLD renamable $x16, 0 :: (load (s64) from %ir.g)718 ; RV32ZCA-NEXT: renamable $f11_d = FLD renamable $x16, 8 :: (load (s64) from %ir.arrayidx1)719 ; RV32ZCA-NEXT: renamable $f12_d = FLD killed renamable $x16, 16 :: (load (s64) from %ir.arrayidx2)720 ; RV32ZCA-NEXT: PseudoTAIL target-flags(riscv-call) @load_common_ptr_double_1, implicit $x2, implicit $f10_d, implicit $f11_d, implicit $f12_d721 ;722 ; RV64ZCA-LABEL: name: load_common_ptr_double723 ; RV64ZCA: liveins: $x16724 ; RV64ZCA-NEXT: {{ $}}725 ; RV64ZCA-NEXT: renamable $f10_d = FLD renamable $x16, 0 :: (load (s64) from %ir.g)726 ; RV64ZCA-NEXT: renamable $f11_d = FLD renamable $x16, 8 :: (load (s64) from %ir.arrayidx1)727 ; RV64ZCA-NEXT: renamable $f12_d = FLD killed renamable $x16, 16 :: (load (s64) from %ir.arrayidx2)728 ; RV64ZCA-NEXT: PseudoTAIL target-flags(riscv-call) @load_common_ptr_double_1, implicit $x2, implicit $f10_d, implicit $f11_d, implicit $f12_d729 renamable $f10_d = FLD renamable $x16, 0 :: (load (s64) from %ir.g)730 renamable $f11_d = FLD renamable $x16, 8 :: (load (s64) from %ir.arrayidx1)731 renamable $f12_d = FLD killed renamable $x16, 16 :: (load (s64) from %ir.arrayidx2)732 PseudoTAIL target-flags(riscv-call) @load_common_ptr_double_1, implicit $x2, implicit $f10_d, implicit $f11_d, implicit $f12_d733 734...735---736name: store_large_offset737tracksRegLiveness: true738body: |739 bb.0.entry:740 liveins: $x10741 742 ; RV32-LABEL: name: store_large_offset743 ; RV32: liveins: $x10744 ; RV32-NEXT: {{ $}}745 ; RV32-NEXT: renamable $x11 = ADDI $x0, 1746 ; RV32-NEXT: $x12 = ADDI $x10, 384747 ; RV32-NEXT: SW killed renamable $x11, $x12, 16 :: (volatile store (s32) into %ir.0)748 ; RV32-NEXT: renamable $x11 = ADDI $x0, 3749 ; RV32-NEXT: SW killed renamable $x11, $x12, 20 :: (volatile store (s32) into %ir.1)750 ; RV32-NEXT: renamable $x11 = ADDI $x0, 5751 ; RV32-NEXT: SW killed renamable $x11, $x12, 24 :: (volatile store (s32) into %ir.2)752 ; RV32-NEXT: renamable $x11 = ADDI $x0, 7753 ; RV32-NEXT: SW killed renamable $x11, killed $x12, 28 :: (volatile store (s32) into %ir.3)754 ; RV32-NEXT: PseudoRET755 ;756 ; RV64-LABEL: name: store_large_offset757 ; RV64: liveins: $x10758 ; RV64-NEXT: {{ $}}759 ; RV64-NEXT: renamable $x11 = ADDI $x0, 1760 ; RV64-NEXT: $x12 = ADDI $x10, 384761 ; RV64-NEXT: SW killed renamable $x11, $x12, 16 :: (volatile store (s32) into %ir.0)762 ; RV64-NEXT: renamable $x11 = ADDI $x0, 3763 ; RV64-NEXT: SW killed renamable $x11, $x12, 20 :: (volatile store (s32) into %ir.1)764 ; RV64-NEXT: renamable $x11 = ADDI $x0, 5765 ; RV64-NEXT: SW killed renamable $x11, $x12, 24 :: (volatile store (s32) into %ir.2)766 ; RV64-NEXT: renamable $x11 = ADDI $x0, 7767 ; RV64-NEXT: SW killed renamable $x11, killed $x12, 28 :: (volatile store (s32) into %ir.3)768 ; RV64-NEXT: PseudoRET769 renamable $x11 = ADDI $x0, 1770 SW killed renamable $x11, renamable $x10, 400 :: (volatile store (s32) into %ir.0)771 renamable $x11 = ADDI $x0, 3772 SW killed renamable $x11, renamable $x10, 404 :: (volatile store (s32) into %ir.1)773 renamable $x11 = ADDI $x0, 5774 SW killed renamable $x11, renamable $x10, 408 :: (volatile store (s32) into %ir.2)775 renamable $x11 = ADDI $x0, 7776 SW killed renamable $x11, killed renamable $x10, 412 :: (volatile store (s32) into %ir.3)777 PseudoRET778 779...780---781name: store_large_offset_float782tracksRegLiveness: true783body: |784 bb.0.entry:785 liveins: $x10, $f10_f, $f11_f, $f12_f, $f13_f786 787 ; RV32C-LABEL: name: store_large_offset_float788 ; RV32C: liveins: $x10, $f10_f, $f11_f, $f12_f, $f13_f789 ; RV32C-NEXT: {{ $}}790 ; RV32C-NEXT: $x11 = ADDI $x10, 384791 ; RV32C-NEXT: FSW killed renamable $f10_f, $x11, 16 :: (volatile store (s32) into %ir.0)792 ; RV32C-NEXT: FSW killed renamable $f11_f, $x11, 20 :: (volatile store (s32) into %ir.1)793 ; RV32C-NEXT: FSW killed renamable $f12_f, $x11, 24 :: (volatile store (s32) into %ir.2)794 ; RV32C-NEXT: FSW killed renamable $f13_f, killed $x11, 28 :: (volatile store (s32) into %ir.3)795 ; RV32C-NEXT: PseudoRET796 ;797 ; RV64-LABEL: name: store_large_offset_float798 ; RV64: liveins: $x10, $f10_f, $f11_f, $f12_f, $f13_f799 ; RV64-NEXT: {{ $}}800 ; RV64-NEXT: FSW killed renamable $f10_f, renamable $x10, 400 :: (volatile store (s32) into %ir.0)801 ; RV64-NEXT: FSW killed renamable $f11_f, renamable $x10, 404 :: (volatile store (s32) into %ir.1)802 ; RV64-NEXT: FSW killed renamable $f12_f, renamable $x10, 408 :: (volatile store (s32) into %ir.2)803 ; RV64-NEXT: FSW killed renamable $f13_f, killed renamable $x10, 412 :: (volatile store (s32) into %ir.3)804 ; RV64-NEXT: PseudoRET805 ;806 ; RV32ZCF-LABEL: name: store_large_offset_float807 ; RV32ZCF: liveins: $x10, $f10_f, $f11_f, $f12_f, $f13_f808 ; RV32ZCF-NEXT: {{ $}}809 ; RV32ZCF-NEXT: $x11 = ADDI $x10, 384810 ; RV32ZCF-NEXT: FSW killed renamable $f10_f, $x11, 16 :: (volatile store (s32) into %ir.0)811 ; RV32ZCF-NEXT: FSW killed renamable $f11_f, $x11, 20 :: (volatile store (s32) into %ir.1)812 ; RV32ZCF-NEXT: FSW killed renamable $f12_f, $x11, 24 :: (volatile store (s32) into %ir.2)813 ; RV32ZCF-NEXT: FSW killed renamable $f13_f, killed $x11, 28 :: (volatile store (s32) into %ir.3)814 ; RV32ZCF-NEXT: PseudoRET815 ;816 ; RV32ZCA-LABEL: name: store_large_offset_float817 ; RV32ZCA: liveins: $x10, $f10_f, $f11_f, $f12_f, $f13_f818 ; RV32ZCA-NEXT: {{ $}}819 ; RV32ZCA-NEXT: FSW killed renamable $f10_f, renamable $x10, 400 :: (volatile store (s32) into %ir.0)820 ; RV32ZCA-NEXT: FSW killed renamable $f11_f, renamable $x10, 404 :: (volatile store (s32) into %ir.1)821 ; RV32ZCA-NEXT: FSW killed renamable $f12_f, renamable $x10, 408 :: (volatile store (s32) into %ir.2)822 ; RV32ZCA-NEXT: FSW killed renamable $f13_f, killed renamable $x10, 412 :: (volatile store (s32) into %ir.3)823 ; RV32ZCA-NEXT: PseudoRET824 FSW killed renamable $f10_f, renamable $x10, 400 :: (volatile store (s32) into %ir.0)825 FSW killed renamable $f11_f, renamable $x10, 404 :: (volatile store (s32) into %ir.1)826 FSW killed renamable $f12_f, renamable $x10, 408 :: (volatile store (s32) into %ir.2)827 FSW killed renamable $f13_f, killed renamable $x10, 412 :: (volatile store (s32) into %ir.3)828 PseudoRET829 830...831---832name: store_large_offset_double833tracksRegLiveness: true834body: |835 bb.0.entry:836 liveins: $x10, $f10_d, $f11_d, $f12_d, $f13_d837 838 ; RV32C-LABEL: name: store_large_offset_double839 ; RV32C: liveins: $x10, $f10_d, $f11_d, $f12_d, $f13_d840 ; RV32C-NEXT: {{ $}}841 ; RV32C-NEXT: $x11 = ADDI $x10, 768842 ; RV32C-NEXT: FSD killed renamable $f10_d, $x11, 32 :: (volatile store (s64) into %ir.0)843 ; RV32C-NEXT: FSD killed renamable $f11_d, $x11, 40 :: (volatile store (s64) into %ir.1)844 ; RV32C-NEXT: FSD killed renamable $f12_d, $x11, 48 :: (volatile store (s64) into %ir.2)845 ; RV32C-NEXT: FSD killed renamable $f13_d, killed $x11, 56 :: (volatile store (s64) into %ir.3)846 ; RV32C-NEXT: PseudoRET847 ;848 ; RV64C-LABEL: name: store_large_offset_double849 ; RV64C: liveins: $x10, $f10_d, $f11_d, $f12_d, $f13_d850 ; RV64C-NEXT: {{ $}}851 ; RV64C-NEXT: $x11 = ADDI $x10, 768852 ; RV64C-NEXT: FSD killed renamable $f10_d, $x11, 32 :: (volatile store (s64) into %ir.0)853 ; RV64C-NEXT: FSD killed renamable $f11_d, $x11, 40 :: (volatile store (s64) into %ir.1)854 ; RV64C-NEXT: FSD killed renamable $f12_d, $x11, 48 :: (volatile store (s64) into %ir.2)855 ; RV64C-NEXT: FSD killed renamable $f13_d, killed $x11, 56 :: (volatile store (s64) into %ir.3)856 ; RV64C-NEXT: PseudoRET857 ;858 ; RV32ZCF-LABEL: name: store_large_offset_double859 ; RV32ZCF: liveins: $x10, $f10_d, $f11_d, $f12_d, $f13_d860 ; RV32ZCF-NEXT: {{ $}}861 ; RV32ZCF-NEXT: FSD killed renamable $f10_d, renamable $x10, 800 :: (volatile store (s64) into %ir.0)862 ; RV32ZCF-NEXT: FSD killed renamable $f11_d, renamable $x10, 808 :: (volatile store (s64) into %ir.1)863 ; RV32ZCF-NEXT: FSD killed renamable $f12_d, renamable $x10, 816 :: (volatile store (s64) into %ir.2)864 ; RV32ZCF-NEXT: FSD killed renamable $f13_d, killed renamable $x10, 824 :: (volatile store (s64) into %ir.3)865 ; RV32ZCF-NEXT: PseudoRET866 ;867 ; RV32ZCA-LABEL: name: store_large_offset_double868 ; RV32ZCA: liveins: $x10, $f10_d, $f11_d, $f12_d, $f13_d869 ; RV32ZCA-NEXT: {{ $}}870 ; RV32ZCA-NEXT: FSD killed renamable $f10_d, renamable $x10, 800 :: (volatile store (s64) into %ir.0)871 ; RV32ZCA-NEXT: FSD killed renamable $f11_d, renamable $x10, 808 :: (volatile store (s64) into %ir.1)872 ; RV32ZCA-NEXT: FSD killed renamable $f12_d, renamable $x10, 816 :: (volatile store (s64) into %ir.2)873 ; RV32ZCA-NEXT: FSD killed renamable $f13_d, killed renamable $x10, 824 :: (volatile store (s64) into %ir.3)874 ; RV32ZCA-NEXT: PseudoRET875 ;876 ; RV64ZCA-LABEL: name: store_large_offset_double877 ; RV64ZCA: liveins: $x10, $f10_d, $f11_d, $f12_d, $f13_d878 ; RV64ZCA-NEXT: {{ $}}879 ; RV64ZCA-NEXT: FSD killed renamable $f10_d, renamable $x10, 800 :: (volatile store (s64) into %ir.0)880 ; RV64ZCA-NEXT: FSD killed renamable $f11_d, renamable $x10, 808 :: (volatile store (s64) into %ir.1)881 ; RV64ZCA-NEXT: FSD killed renamable $f12_d, renamable $x10, 816 :: (volatile store (s64) into %ir.2)882 ; RV64ZCA-NEXT: FSD killed renamable $f13_d, killed renamable $x10, 824 :: (volatile store (s64) into %ir.3)883 ; RV64ZCA-NEXT: PseudoRET884 FSD killed renamable $f10_d, renamable $x10, 800 :: (volatile store (s64) into %ir.0)885 FSD killed renamable $f11_d, renamable $x10, 808 :: (volatile store (s64) into %ir.1)886 FSD killed renamable $f12_d, renamable $x10, 816 :: (volatile store (s64) into %ir.2)887 FSD killed renamable $f13_d, killed renamable $x10, 824 :: (volatile store (s64) into %ir.3)888 PseudoRET889 890...891---892name: load_large_offset893tracksRegLiveness: true894body: |895 bb.0.entry:896 liveins: $x10897 898 ; RV32-LABEL: name: load_large_offset899 ; RV32: liveins: $x10900 ; RV32-NEXT: {{ $}}901 ; RV32-NEXT: $x12 = ADDI $x10, 384902 ; RV32-NEXT: dead renamable $x11 = LW $x12, 16 :: (volatile load (s32) from %ir.0)903 ; RV32-NEXT: dead renamable $x11 = LW $x12, 20 :: (volatile load (s32) from %ir.1)904 ; RV32-NEXT: dead renamable $x11 = LW $x12, 24 :: (volatile load (s32) from %ir.2)905 ; RV32-NEXT: dead renamable $x10 = LW killed $x12, 28 :: (volatile load (s32) from %ir.3)906 ; RV32-NEXT: PseudoRET907 ;908 ; RV64-LABEL: name: load_large_offset909 ; RV64: liveins: $x10910 ; RV64-NEXT: {{ $}}911 ; RV64-NEXT: $x12 = ADDI $x10, 384912 ; RV64-NEXT: dead renamable $x11 = LW $x12, 16 :: (volatile load (s32) from %ir.0)913 ; RV64-NEXT: dead renamable $x11 = LW $x12, 20 :: (volatile load (s32) from %ir.1)914 ; RV64-NEXT: dead renamable $x11 = LW $x12, 24 :: (volatile load (s32) from %ir.2)915 ; RV64-NEXT: dead renamable $x10 = LW killed $x12, 28 :: (volatile load (s32) from %ir.3)916 ; RV64-NEXT: PseudoRET917 dead renamable $x11 = LW renamable $x10, 400 :: (volatile load (s32) from %ir.0)918 dead renamable $x11 = LW renamable $x10, 404 :: (volatile load (s32) from %ir.1)919 dead renamable $x11 = LW renamable $x10, 408 :: (volatile load (s32) from %ir.2)920 dead renamable $x10 = LW killed renamable $x10, 412 :: (volatile load (s32) from %ir.3)921 PseudoRET922 923...924---925name: load_large_offset_float926tracksRegLiveness: true927body: |928 bb.0.entry:929 liveins: $x10930 931 ; RV32C-LABEL: name: load_large_offset_float932 ; RV32C: liveins: $x10933 ; RV32C-NEXT: {{ $}}934 ; RV32C-NEXT: $x11 = ADDI $x10, 384935 ; RV32C-NEXT: renamable $f10_f = FLW $x11, 16 :: (load (s32) from %ir.arrayidx)936 ; RV32C-NEXT: renamable $f11_f = FLW $x11, 20 :: (load (s32) from %ir.arrayidx1)937 ; RV32C-NEXT: renamable $f12_f = FLW killed $x11, 24 :: (load (s32) from %ir.arrayidx2)938 ; RV32C-NEXT: PseudoTAIL target-flags(riscv-call) @load_large_offset_float_1, implicit $x2, implicit $f10_f, implicit $f11_f, implicit $f12_f939 ;940 ; RV64-LABEL: name: load_large_offset_float941 ; RV64: liveins: $x10942 ; RV64-NEXT: {{ $}}943 ; RV64-NEXT: renamable $f10_f = FLW renamable $x10, 400 :: (load (s32) from %ir.arrayidx)944 ; RV64-NEXT: renamable $f11_f = FLW renamable $x10, 404 :: (load (s32) from %ir.arrayidx1)945 ; RV64-NEXT: renamable $f12_f = FLW killed renamable $x10, 408 :: (load (s32) from %ir.arrayidx2)946 ; RV64-NEXT: PseudoTAIL target-flags(riscv-call) @load_large_offset_float_1, implicit $x2, implicit $f10_f, implicit $f11_f, implicit $f12_f947 ;948 ; RV32ZCF-LABEL: name: load_large_offset_float949 ; RV32ZCF: liveins: $x10950 ; RV32ZCF-NEXT: {{ $}}951 ; RV32ZCF-NEXT: $x11 = ADDI $x10, 384952 ; RV32ZCF-NEXT: renamable $f10_f = FLW $x11, 16 :: (load (s32) from %ir.arrayidx)953 ; RV32ZCF-NEXT: renamable $f11_f = FLW $x11, 20 :: (load (s32) from %ir.arrayidx1)954 ; RV32ZCF-NEXT: renamable $f12_f = FLW killed $x11, 24 :: (load (s32) from %ir.arrayidx2)955 ; RV32ZCF-NEXT: PseudoTAIL target-flags(riscv-call) @load_large_offset_float_1, implicit $x2, implicit $f10_f, implicit $f11_f, implicit $f12_f956 ;957 ; RV32ZCA-LABEL: name: load_large_offset_float958 ; RV32ZCA: liveins: $x10959 ; RV32ZCA-NEXT: {{ $}}960 ; RV32ZCA-NEXT: renamable $f10_f = FLW renamable $x10, 400 :: (load (s32) from %ir.arrayidx)961 ; RV32ZCA-NEXT: renamable $f11_f = FLW renamable $x10, 404 :: (load (s32) from %ir.arrayidx1)962 ; RV32ZCA-NEXT: renamable $f12_f = FLW killed renamable $x10, 408 :: (load (s32) from %ir.arrayidx2)963 ; RV32ZCA-NEXT: PseudoTAIL target-flags(riscv-call) @load_large_offset_float_1, implicit $x2, implicit $f10_f, implicit $f11_f, implicit $f12_f964 renamable $f10_f = FLW renamable $x10, 400 :: (load (s32) from %ir.arrayidx)965 renamable $f11_f = FLW renamable $x10, 404 :: (load (s32) from %ir.arrayidx1)966 renamable $f12_f = FLW killed renamable $x10, 408 :: (load (s32) from %ir.arrayidx2)967 PseudoTAIL target-flags(riscv-call) @load_large_offset_float_1, implicit $x2, implicit $f10_f, implicit $f11_f, implicit $f12_f968 969...970---971name: load_large_offset_double972tracksRegLiveness: true973body: |974 bb.0.entry:975 liveins: $x10976 977 ; RV32C-LABEL: name: load_large_offset_double978 ; RV32C: liveins: $x10979 ; RV32C-NEXT: {{ $}}980 ; RV32C-NEXT: $x11 = ADDI $x10, 768981 ; RV32C-NEXT: renamable $f10_d = FLD $x11, 32 :: (load (s64) from %ir.arrayidx)982 ; RV32C-NEXT: renamable $f11_d = FLD $x11, 40 :: (load (s64) from %ir.arrayidx1)983 ; RV32C-NEXT: renamable $f12_d = FLD killed $x11, 48 :: (load (s64) from %ir.arrayidx2)984 ; RV32C-NEXT: PseudoTAIL target-flags(riscv-call) @load_large_offset_double_1, implicit $x2, implicit $f10_d, implicit $f11_d, implicit $f12_d985 ;986 ; RV64C-LABEL: name: load_large_offset_double987 ; RV64C: liveins: $x10988 ; RV64C-NEXT: {{ $}}989 ; RV64C-NEXT: $x11 = ADDI $x10, 768990 ; RV64C-NEXT: renamable $f10_d = FLD $x11, 32 :: (load (s64) from %ir.arrayidx)991 ; RV64C-NEXT: renamable $f11_d = FLD $x11, 40 :: (load (s64) from %ir.arrayidx1)992 ; RV64C-NEXT: renamable $f12_d = FLD killed $x11, 48 :: (load (s64) from %ir.arrayidx2)993 ; RV64C-NEXT: PseudoTAIL target-flags(riscv-call) @load_large_offset_double_1, implicit $x2, implicit $f10_d, implicit $f11_d, implicit $f12_d994 ;995 ; RV32ZCF-LABEL: name: load_large_offset_double996 ; RV32ZCF: liveins: $x10997 ; RV32ZCF-NEXT: {{ $}}998 ; RV32ZCF-NEXT: renamable $f10_d = FLD renamable $x10, 800 :: (load (s64) from %ir.arrayidx)999 ; RV32ZCF-NEXT: renamable $f11_d = FLD renamable $x10, 808 :: (load (s64) from %ir.arrayidx1)1000 ; RV32ZCF-NEXT: renamable $f12_d = FLD killed renamable $x10, 816 :: (load (s64) from %ir.arrayidx2)1001 ; RV32ZCF-NEXT: PseudoTAIL target-flags(riscv-call) @load_large_offset_double_1, implicit $x2, implicit $f10_d, implicit $f11_d, implicit $f12_d1002 ;1003 ; RV32ZCA-LABEL: name: load_large_offset_double1004 ; RV32ZCA: liveins: $x101005 ; RV32ZCA-NEXT: {{ $}}1006 ; RV32ZCA-NEXT: renamable $f10_d = FLD renamable $x10, 800 :: (load (s64) from %ir.arrayidx)1007 ; RV32ZCA-NEXT: renamable $f11_d = FLD renamable $x10, 808 :: (load (s64) from %ir.arrayidx1)1008 ; RV32ZCA-NEXT: renamable $f12_d = FLD killed renamable $x10, 816 :: (load (s64) from %ir.arrayidx2)1009 ; RV32ZCA-NEXT: PseudoTAIL target-flags(riscv-call) @load_large_offset_double_1, implicit $x2, implicit $f10_d, implicit $f11_d, implicit $f12_d1010 ;1011 ; RV64ZCA-LABEL: name: load_large_offset_double1012 ; RV64ZCA: liveins: $x101013 ; RV64ZCA-NEXT: {{ $}}1014 ; RV64ZCA-NEXT: renamable $f10_d = FLD renamable $x10, 800 :: (load (s64) from %ir.arrayidx)1015 ; RV64ZCA-NEXT: renamable $f11_d = FLD renamable $x10, 808 :: (load (s64) from %ir.arrayidx1)1016 ; RV64ZCA-NEXT: renamable $f12_d = FLD killed renamable $x10, 816 :: (load (s64) from %ir.arrayidx2)1017 ; RV64ZCA-NEXT: PseudoTAIL target-flags(riscv-call) @load_large_offset_double_1, implicit $x2, implicit $f10_d, implicit $f11_d, implicit $f12_d1018 renamable $f10_d = FLD renamable $x10, 800 :: (load (s64) from %ir.arrayidx)1019 renamable $f11_d = FLD renamable $x10, 808 :: (load (s64) from %ir.arrayidx1)1020 renamable $f12_d = FLD killed renamable $x10, 816 :: (load (s64) from %ir.arrayidx2)1021 PseudoTAIL target-flags(riscv-call) @load_large_offset_double_1, implicit $x2, implicit $f10_d, implicit $f11_d, implicit $f12_d1022 1023...1024---1025name: store_common_value_no_opt1026tracksRegLiveness: true1027body: |1028 bb.0.entry:1029 liveins: $x101030 1031 ; RV32-LABEL: name: store_common_value_no_opt1032 ; RV32: liveins: $x101033 ; RV32-NEXT: {{ $}}1034 ; RV32-NEXT: SW $x0, killed renamable $x10, 0 :: (store (s32) into %ir.a)1035 ; RV32-NEXT: PseudoRET1036 ;1037 ; RV64-LABEL: name: store_common_value_no_opt1038 ; RV64: liveins: $x101039 ; RV64-NEXT: {{ $}}1040 ; RV64-NEXT: SW $x0, killed renamable $x10, 0 :: (store (s32) into %ir.a)1041 ; RV64-NEXT: PseudoRET1042 SW $x0, killed renamable $x10, 0 :: (store (s32) into %ir.a)1043 PseudoRET1044 1045...1046---1047name: store_common_value_float_no_opt1048tracksRegLiveness: true1049body: |1050 bb.0.entry:1051 liveins: $x10, $f16_f1052 1053 ; RV32-LABEL: name: store_common_value_float_no_opt1054 ; RV32: liveins: $x10, $f16_f1055 ; RV32-NEXT: {{ $}}1056 ; RV32-NEXT: FSW killed renamable $f16_f, killed renamable $x10, 0 :: (store (s32) into %ir.a)1057 ; RV32-NEXT: PseudoRET1058 ;1059 ; RV64-LABEL: name: store_common_value_float_no_opt1060 ; RV64: liveins: $x10, $f16_f1061 ; RV64-NEXT: {{ $}}1062 ; RV64-NEXT: FSW killed renamable $f16_f, killed renamable $x10, 0 :: (store (s32) into %ir.a)1063 ; RV64-NEXT: PseudoRET1064 FSW killed renamable $f16_f, killed renamable $x10, 0 :: (store (s32) into %ir.a)1065 PseudoRET1066 1067...1068---1069name: store_common_value_double_no_opt1070tracksRegLiveness: true1071body: |1072 bb.0.entry:1073 liveins: $x10, $f16_d1074 1075 ; RV32-LABEL: name: store_common_value_double_no_opt1076 ; RV32: liveins: $x10, $f16_d1077 ; RV32-NEXT: {{ $}}1078 ; RV32-NEXT: FSD killed renamable $f16_d, killed renamable $x10, 0 :: (store (s64) into %ir.a)1079 ; RV32-NEXT: PseudoRET1080 ;1081 ; RV64-LABEL: name: store_common_value_double_no_opt1082 ; RV64: liveins: $x10, $f16_d1083 ; RV64-NEXT: {{ $}}1084 ; RV64-NEXT: FSD killed renamable $f16_d, killed renamable $x10, 0 :: (store (s64) into %ir.a)1085 ; RV64-NEXT: PseudoRET1086 FSD killed renamable $f16_d, killed renamable $x10, 0 :: (store (s64) into %ir.a)1087 PseudoRET1088 1089...1090---1091name: store_common_ptr_no_opt1092tracksRegLiveness: true1093body: |1094 bb.0.entry:1095 liveins: $x161096 1097 ; RV32-LABEL: name: store_common_ptr_no_opt1098 ; RV32: liveins: $x161099 ; RV32-NEXT: {{ $}}1100 ; RV32-NEXT: renamable $x10 = ADDI $x0, 11101 ; RV32-NEXT: SW killed renamable $x10, killed renamable $x16, 0 :: (volatile store (s32) into %ir.p)1102 ; RV32-NEXT: PseudoRET1103 ;1104 ; RV64-LABEL: name: store_common_ptr_no_opt1105 ; RV64: liveins: $x161106 ; RV64-NEXT: {{ $}}1107 ; RV64-NEXT: renamable $x10 = ADDI $x0, 11108 ; RV64-NEXT: SW killed renamable $x10, killed renamable $x16, 0 :: (volatile store (s32) into %ir.p)1109 ; RV64-NEXT: PseudoRET1110 renamable $x10 = ADDI $x0, 11111 SW killed renamable $x10, killed renamable $x16, 0 :: (volatile store (s32) into %ir.p)1112 PseudoRET1113 1114...1115---1116name: store_common_ptr_float_no_opt1117tracksRegLiveness: true1118body: |1119 bb.0.entry:1120 liveins: $x16, $f10_f1121 1122 ; RV32-LABEL: name: store_common_ptr_float_no_opt1123 ; RV32: liveins: $x16, $f10_f1124 ; RV32-NEXT: {{ $}}1125 ; RV32-NEXT: FSW killed renamable $f10_f, killed renamable $x16, 0 :: (volatile store (s32) into %ir.p)1126 ; RV32-NEXT: PseudoRET1127 ;1128 ; RV64-LABEL: name: store_common_ptr_float_no_opt1129 ; RV64: liveins: $x16, $f10_f1130 ; RV64-NEXT: {{ $}}1131 ; RV64-NEXT: FSW killed renamable $f10_f, killed renamable $x16, 0 :: (volatile store (s32) into %ir.p)1132 ; RV64-NEXT: PseudoRET1133 FSW killed renamable $f10_f, killed renamable $x16, 0 :: (volatile store (s32) into %ir.p)1134 PseudoRET1135 1136...1137---1138name: store_common_ptr_double_no_opt1139tracksRegLiveness: true1140body: |1141 bb.0.entry:1142 liveins: $x16, $f10_d1143 1144 ; RV32-LABEL: name: store_common_ptr_double_no_opt1145 ; RV32: liveins: $x16, $f10_d1146 ; RV32-NEXT: {{ $}}1147 ; RV32-NEXT: FSD killed renamable $f10_d, killed renamable $x16, 0 :: (volatile store (s64) into %ir.p)1148 ; RV32-NEXT: PseudoRET1149 ;1150 ; RV64-LABEL: name: store_common_ptr_double_no_opt1151 ; RV64: liveins: $x16, $f10_d1152 ; RV64-NEXT: {{ $}}1153 ; RV64-NEXT: FSD killed renamable $f10_d, killed renamable $x16, 0 :: (volatile store (s64) into %ir.p)1154 ; RV64-NEXT: PseudoRET1155 FSD killed renamable $f10_d, killed renamable $x16, 0 :: (volatile store (s64) into %ir.p)1156 PseudoRET1157 1158...1159---1160name: load_common_ptr_no_opt1161tracksRegLiveness: true1162body: |1163 bb.0.entry:1164 liveins: $x161165 1166 ; RV32-LABEL: name: load_common_ptr_no_opt1167 ; RV32: liveins: $x161168 ; RV32-NEXT: {{ $}}1169 ; RV32-NEXT: dead renamable $x10 = LW killed renamable $x16, 0 :: (volatile load (s32) from %ir.p)1170 ; RV32-NEXT: PseudoRET1171 ;1172 ; RV64-LABEL: name: load_common_ptr_no_opt1173 ; RV64: liveins: $x161174 ; RV64-NEXT: {{ $}}1175 ; RV64-NEXT: dead renamable $x10 = LW killed renamable $x16, 0 :: (volatile load (s32) from %ir.p)1176 ; RV64-NEXT: PseudoRET1177 dead renamable $x10 = LW killed renamable $x16, 0 :: (volatile load (s32) from %ir.p)1178 PseudoRET1179 1180...1181---1182name: load_common_ptr_float_no_opt1183tracksRegLiveness: true1184body: |1185 bb.0.entry:1186 liveins: $x161187 1188 ; RV32-LABEL: name: load_common_ptr_float_no_opt1189 ; RV32: liveins: $x161190 ; RV32-NEXT: {{ $}}1191 ; RV32-NEXT: renamable $f10_f = FLW killed renamable $x16, 0 :: (load (s32) from %ir.g)1192 ; RV32-NEXT: PseudoRET implicit $f10_f1193 ;1194 ; RV64-LABEL: name: load_common_ptr_float_no_opt1195 ; RV64: liveins: $x161196 ; RV64-NEXT: {{ $}}1197 ; RV64-NEXT: renamable $f10_f = FLW killed renamable $x16, 0 :: (load (s32) from %ir.g)1198 ; RV64-NEXT: PseudoRET implicit $f10_f1199 renamable $f10_f = FLW killed renamable $x16, 0 :: (load (s32) from %ir.g)1200 PseudoRET implicit $f10_f1201 1202...1203---1204name: load_common_ptr_double_no_opt1205tracksRegLiveness: true1206body: |1207 bb.0.entry:1208 liveins: $x161209 1210 ; RV32-LABEL: name: load_common_ptr_double_no_opt1211 ; RV32: liveins: $x161212 ; RV32-NEXT: {{ $}}1213 ; RV32-NEXT: renamable $f10_d = FLD killed renamable $x16, 0 :: (load (s64) from %ir.g)1214 ; RV32-NEXT: PseudoRET implicit $f10_d1215 ;1216 ; RV64-LABEL: name: load_common_ptr_double_no_opt1217 ; RV64: liveins: $x161218 ; RV64-NEXT: {{ $}}1219 ; RV64-NEXT: renamable $f10_d = FLD killed renamable $x16, 0 :: (load (s64) from %ir.g)1220 ; RV64-NEXT: PseudoRET implicit $f10_d1221 renamable $f10_d = FLD killed renamable $x16, 0 :: (load (s64) from %ir.g)1222 PseudoRET implicit $f10_d1223 1224...1225---1226name: store_large_offset_no_opt1227tracksRegLiveness: true1228body: |1229 bb.0.entry:1230 liveins: $x101231 1232 ; RV32-LABEL: name: store_large_offset_no_opt1233 ; RV32: liveins: $x101234 ; RV32-NEXT: {{ $}}1235 ; RV32-NEXT: renamable $x11 = ADDI $x0, 11236 ; RV32-NEXT: SW killed renamable $x11, renamable $x10, 400 :: (volatile store (s32) into %ir.0)1237 ; RV32-NEXT: renamable $x11 = ADDI $x0, 31238 ; RV32-NEXT: SW killed renamable $x11, killed renamable $x10, 404 :: (volatile store (s32) into %ir.1)1239 ; RV32-NEXT: PseudoRET1240 ;1241 ; RV64-LABEL: name: store_large_offset_no_opt1242 ; RV64: liveins: $x101243 ; RV64-NEXT: {{ $}}1244 ; RV64-NEXT: renamable $x11 = ADDI $x0, 11245 ; RV64-NEXT: SW killed renamable $x11, renamable $x10, 400 :: (volatile store (s32) into %ir.0)1246 ; RV64-NEXT: renamable $x11 = ADDI $x0, 31247 ; RV64-NEXT: SW killed renamable $x11, killed renamable $x10, 404 :: (volatile store (s32) into %ir.1)1248 ; RV64-NEXT: PseudoRET1249 renamable $x11 = ADDI $x0, 11250 SW killed renamable $x11, renamable $x10, 400 :: (volatile store (s32) into %ir.0)1251 renamable $x11 = ADDI $x0, 31252 SW killed renamable $x11, killed renamable $x10, 404 :: (volatile store (s32) into %ir.1)1253 PseudoRET1254 1255...1256---1257name: store_large_offset_float_no_opt1258tracksRegLiveness: true1259body: |1260 bb.0.entry:1261 liveins: $x10, $f10_f, $f11_f1262 1263 ; RV32-LABEL: name: store_large_offset_float_no_opt1264 ; RV32: liveins: $x10, $f10_f, $f11_f1265 ; RV32-NEXT: {{ $}}1266 ; RV32-NEXT: FSW killed renamable $f10_f, renamable $x10, 400 :: (volatile store (s32) into %ir.0)1267 ; RV32-NEXT: FSW killed renamable $f11_f, killed renamable $x10, 404 :: (volatile store (s32) into %ir.1)1268 ; RV32-NEXT: PseudoRET1269 ;1270 ; RV64-LABEL: name: store_large_offset_float_no_opt1271 ; RV64: liveins: $x10, $f10_f, $f11_f1272 ; RV64-NEXT: {{ $}}1273 ; RV64-NEXT: FSW killed renamable $f10_f, renamable $x10, 400 :: (volatile store (s32) into %ir.0)1274 ; RV64-NEXT: FSW killed renamable $f11_f, killed renamable $x10, 404 :: (volatile store (s32) into %ir.1)1275 ; RV64-NEXT: PseudoRET1276 FSW killed renamable $f10_f, renamable $x10, 400 :: (volatile store (s32) into %ir.0)1277 FSW killed renamable $f11_f, killed renamable $x10, 404 :: (volatile store (s32) into %ir.1)1278 PseudoRET1279 1280...1281---1282name: store_large_offset_double_no_opt1283tracksRegLiveness: true1284body: |1285 bb.0.entry:1286 liveins: $x10, $f10_d, $f11_d1287 1288 ; RV32-LABEL: name: store_large_offset_double_no_opt1289 ; RV32: liveins: $x10, $f10_d, $f11_d1290 ; RV32-NEXT: {{ $}}1291 ; RV32-NEXT: FSD killed renamable $f10_d, renamable $x10, 800 :: (volatile store (s64) into %ir.0)1292 ; RV32-NEXT: FSD killed renamable $f11_d, killed renamable $x10, 808 :: (volatile store (s64) into %ir.1)1293 ; RV32-NEXT: PseudoRET1294 ;1295 ; RV64-LABEL: name: store_large_offset_double_no_opt1296 ; RV64: liveins: $x10, $f10_d, $f11_d1297 ; RV64-NEXT: {{ $}}1298 ; RV64-NEXT: FSD killed renamable $f10_d, renamable $x10, 800 :: (volatile store (s64) into %ir.0)1299 ; RV64-NEXT: FSD killed renamable $f11_d, killed renamable $x10, 808 :: (volatile store (s64) into %ir.1)1300 ; RV64-NEXT: PseudoRET1301 FSD killed renamable $f10_d, renamable $x10, 800 :: (volatile store (s64) into %ir.0)1302 FSD killed renamable $f11_d, killed renamable $x10, 808 :: (volatile store (s64) into %ir.1)1303 PseudoRET1304 1305...1306---1307name: load_large_offset_no_opt1308tracksRegLiveness: true1309body: |1310 bb.0.entry:1311 liveins: $x101312 1313 ; RV32-LABEL: name: load_large_offset_no_opt1314 ; RV32: liveins: $x101315 ; RV32-NEXT: {{ $}}1316 ; RV32-NEXT: dead renamable $x11 = LW renamable $x10, 400 :: (volatile load (s32) from %ir.0)1317 ; RV32-NEXT: dead renamable $x10 = LW killed renamable $x10, 404 :: (volatile load (s32) from %ir.1)1318 ; RV32-NEXT: PseudoRET1319 ;1320 ; RV64-LABEL: name: load_large_offset_no_opt1321 ; RV64: liveins: $x101322 ; RV64-NEXT: {{ $}}1323 ; RV64-NEXT: dead renamable $x11 = LW renamable $x10, 400 :: (volatile load (s32) from %ir.0)1324 ; RV64-NEXT: dead renamable $x10 = LW killed renamable $x10, 404 :: (volatile load (s32) from %ir.1)1325 ; RV64-NEXT: PseudoRET1326 dead renamable $x11 = LW renamable $x10, 400 :: (volatile load (s32) from %ir.0)1327 dead renamable $x10 = LW killed renamable $x10, 404 :: (volatile load (s32) from %ir.1)1328 PseudoRET1329 1330...1331---1332name: load_large_offset_float_no_opt1333tracksRegLiveness: true1334body: |1335 bb.0.entry:1336 liveins: $x101337 1338 ; RV32-LABEL: name: load_large_offset_float_no_opt1339 ; RV32: liveins: $x101340 ; RV32-NEXT: {{ $}}1341 ; RV32-NEXT: renamable $f10_f = FLW renamable $x10, 400 :: (load (s32) from %ir.arrayidx)1342 ; RV32-NEXT: renamable $f11_f = FLW killed renamable $x10, 404 :: (load (s32) from %ir.arrayidx1)1343 ; RV32-NEXT: PseudoRET implicit $f10_f, implicit $f11_f1344 ;1345 ; RV64-LABEL: name: load_large_offset_float_no_opt1346 ; RV64: liveins: $x101347 ; RV64-NEXT: {{ $}}1348 ; RV64-NEXT: renamable $f10_f = FLW renamable $x10, 400 :: (load (s32) from %ir.arrayidx)1349 ; RV64-NEXT: renamable $f11_f = FLW killed renamable $x10, 404 :: (load (s32) from %ir.arrayidx1)1350 ; RV64-NEXT: PseudoRET implicit $f10_f, implicit $f11_f1351 renamable $f10_f = FLW renamable $x10, 400 :: (load (s32) from %ir.arrayidx)1352 renamable $f11_f = FLW killed renamable $x10, 404 :: (load (s32) from %ir.arrayidx1)1353 PseudoRET implicit $f10_f, implicit $f11_f1354 1355...1356---1357name: load_large_offset_double_no_opt1358tracksRegLiveness: true1359body: |1360 bb.0.entry:1361 liveins: $x101362 1363 ; RV32-LABEL: name: load_large_offset_double_no_opt1364 ; RV32: liveins: $x101365 ; RV32-NEXT: {{ $}}1366 ; RV32-NEXT: renamable $f10_d = FLD renamable $x10, 800 :: (load (s64) from %ir.arrayidx)1367 ; RV32-NEXT: renamable $f11_d = FLD killed renamable $x10, 808 :: (load (s64) from %ir.arrayidx1)1368 ; RV32-NEXT: PseudoRET implicit $f10_d, implicit $f11_d1369 ;1370 ; RV64-LABEL: name: load_large_offset_double_no_opt1371 ; RV64: liveins: $x101372 ; RV64-NEXT: {{ $}}1373 ; RV64-NEXT: renamable $f10_d = FLD renamable $x10, 800 :: (load (s64) from %ir.arrayidx)1374 ; RV64-NEXT: renamable $f11_d = FLD killed renamable $x10, 808 :: (load (s64) from %ir.arrayidx1)1375 ; RV64-NEXT: PseudoRET implicit $f10_d, implicit $f11_d1376 renamable $f10_d = FLD renamable $x10, 800 :: (load (s64) from %ir.arrayidx)1377 renamable $f11_d = FLD killed renamable $x10, 808 :: (load (s64) from %ir.arrayidx1)1378 PseudoRET implicit $f10_d, implicit $f11_d1379 1380...1381