From e0644ab7fcdd6af26ade9ec1f0e4a14de29d5470 Mon Sep 17 00:00:00 2001 From: Shubham Sandeep Rastogi Date: Fri, 3 Oct 2025 16:57:47 -0700 Subject: [PATCH] [InstrRef][AArch64]Add Target hooks for InstrRef on AArch64 Accordint to llvm/docs/InstrRefDebugInfo.md, to support proper instruction. referecing on any platform, the target specific TargetInstrInfo::isLoadFromStackSlotPostFE and TargetInstrInfo::isStoreToStackSlotPostFE are needed to be implemented for the Instruction Reference-based LiveDebugValues pass to identify spill and restore instructions. This patch implements the AArch64 versions of those functions. Namely, AArch64InstrInfo::isLoadFromStackSlotPostFE and AArch64InstrInfo::isStoreToStackSlotPostFE. --- llvm/lib/Target/AArch64/AArch64InstrInfo.cpp | 64 +- llvm/lib/Target/AArch64/AArch64InstrInfo.h | 9 + .../AArch64/GlobalISel/arm64-atomic-128.ll | 72 +- .../AArch64/GlobalISel/arm64-atomic.ll | 1352 ++++---- .../atomic-anyextending-load-crash.ll | 8 +- .../CodeGen/AArch64/GlobalISel/byval-call.ll | 8 +- .../call-lowering-tail-call-fallback.ll | 2 +- .../irtranslator-stack-protector-windows.ll | 4 +- .../GlobalISel/select-fp-anyext-crash.ll | 4 +- .../GlobalISel/split-wide-shifts-multiway.ll | 354 +- .../GlobalISel/stacksave-stackrestore.ll | 4 +- .../CodeGen/AArch64/GlobalISel/swifterror.ll | 2 +- .../CodeGen/AArch64/aarch64-fastcc-stackup.ll | 8 +- llvm/test/CodeGen/AArch64/aarch64-mops.ll | 16 +- .../AArch64/addsub-constant-folding.ll | 72 +- .../CodeGen/AArch64/alias_mask_scalable.ll | 144 +- .../AArch64/alias_mask_scalable_nosve2.ll | 16 +- .../argument-blocks-array-of-struct.ll | 14 +- llvm/test/CodeGen/AArch64/arm64-fp128.ll | 430 +-- .../CodeGen/AArch64/arm64-memset-inline.ll | 68 +- .../CodeGen/AArch64/arm64-neon-mul-div.ll | 32 +- .../CodeGen/AArch64/arm64-register-pairing.ll | 8 +- .../CodeGen/AArch64/arm64-windows-calls.ll | 16 +- .../CodeGen/AArch64/arm64ec-entry-thunks.ll | 12 +- .../CodeGen/AArch64/arm64ec-reservedregs.ll | 16 +- llvm/test/CodeGen/AArch64/arm64ec-varargs.ll | 8 +- llvm/test/CodeGen/AArch64/atomicrmw-O0.ll | 264 +- llvm/test/CodeGen/AArch64/atomicrmw-fadd.ll | 16 +- llvm/test/CodeGen/AArch64/atomicrmw-fsub.ll | 16 +- llvm/test/CodeGen/AArch64/cmp-select-sign.ll | 8 +- .../CodeGen/AArch64/combine-storetomstore.ll | 8 +- .../AArch64/exception-handling-windows-elf.ll | 4 +- llvm/test/CodeGen/AArch64/fadd-combines.ll | 4 +- llvm/test/CodeGen/AArch64/fcmp-fp128.ll | 88 +- llvm/test/CodeGen/AArch64/fcmp.ll | 126 +- llvm/test/CodeGen/AArch64/fexplog.ll | 3000 ++++++++--------- .../fold-int-pow2-with-fmul-or-fdiv.ll | 24 +- llvm/test/CodeGen/AArch64/fp8-sme2-cvtn.ll | 8 +- llvm/test/CodeGen/AArch64/fpclamptosat_vec.ll | 288 +- llvm/test/CodeGen/AArch64/fpext.ll | 112 +- llvm/test/CodeGen/AArch64/fpow.ll | 620 ++-- llvm/test/CodeGen/AArch64/fpowi.ll | 520 +-- llvm/test/CodeGen/AArch64/fptoi.ll | 400 +-- .../test/CodeGen/AArch64/fptosi-sat-scalar.ll | 58 +- .../test/CodeGen/AArch64/fptosi-sat-vector.ll | 540 +-- .../test/CodeGen/AArch64/fptoui-sat-scalar.ll | 54 +- .../test/CodeGen/AArch64/fptoui-sat-vector.ll | 352 +- llvm/test/CodeGen/AArch64/fptrunc.ll | 78 +- .../framelayout-sve-calleesaves-fix.mir | 4 +- llvm/test/CodeGen/AArch64/frem-power2.ll | 44 +- llvm/test/CodeGen/AArch64/frem.ll | 620 ++-- llvm/test/CodeGen/AArch64/fsincos.ll | 1200 +++---- .../implicit-def-subreg-to-reg-regression.ll | 6 +- llvm/test/CodeGen/AArch64/insertextract.ll | 60 +- .../AArch64/intrinsic-vector-match-sve2.ll | 12 +- llvm/test/CodeGen/AArch64/itofp.ll | 496 +-- llvm/test/CodeGen/AArch64/ldexp.ll | 20 +- .../CodeGen/AArch64/ldst-paired-aliasing.ll | 6 +- llvm/test/CodeGen/AArch64/llvm.exp10.ll | 268 +- llvm/test/CodeGen/AArch64/llvm.frexp.ll | 334 +- llvm/test/CodeGen/AArch64/llvm.modf.ll | 98 +- llvm/test/CodeGen/AArch64/llvm.sincos.ll | 166 +- llvm/test/CodeGen/AArch64/llvm.sincospi.ll | 42 +- llvm/test/CodeGen/AArch64/luti-with-sme2.ll | 12 +- llvm/test/CodeGen/AArch64/machine-combiner.ll | 16 +- .../machine-outliner-retaddr-sign-non-leaf.ll | 26 +- llvm/test/CodeGen/AArch64/mingw-refptr.ll | 4 +- .../named-vector-shuffle-reverse-neon.ll | 12 +- .../named-vector-shuffle-reverse-sve.ll | 4 +- llvm/test/CodeGen/AArch64/neon-dotreduce.ll | 68 +- llvm/test/CodeGen/AArch64/nontemporal.ll | 16 +- .../outlining-with-streaming-mode-changes.ll | 12 +- .../test/CodeGen/AArch64/perm-tb-with-sme2.ll | 28 +- llvm/test/CodeGen/AArch64/pow.ll | 36 +- llvm/test/CodeGen/AArch64/pr135821.ll | 8 +- llvm/test/CodeGen/AArch64/pr142314.ll | 4 +- llvm/test/CodeGen/AArch64/pr48188.ll | 24 +- .../CodeGen/AArch64/pr53315-returned-i128.ll | 8 +- llvm/test/CodeGen/AArch64/pr58516.ll | 12 +- .../CodeGen/AArch64/preserve_nonecc_call.ll | 20 +- .../AArch64/preserve_nonecc_varargs_aapcs.ll | 4 +- .../AArch64/preserve_nonecc_varargs_win64.ll | 4 +- llvm/test/CodeGen/AArch64/ragreedy-csr.ll | 32 +- .../AArch64/ragreedy-local-interval-cost.ll | 14 +- llvm/test/CodeGen/AArch64/rem.ll | 304 +- llvm/test/CodeGen/AArch64/settag-merge.ll | 2 +- llvm/test/CodeGen/AArch64/settag.ll | 8 +- llvm/test/CodeGen/AArch64/sibling-call.ll | 16 +- .../CodeGen/AArch64/sincos-stack-slots.ll | 12 +- .../AArch64/sls-stackprotector-outliner.ll | 16 +- llvm/test/CodeGen/AArch64/sme-agnostic-za.ll | 24 +- ...compatible-to-normal-fn-wihout-sme-attr.ll | 4 +- .../AArch64/sme-callee-save-restore-pairs.ll | 288 +- .../test/CodeGen/AArch64/sme-darwin-sve-vg.ll | 2 +- .../AArch64/sme-disable-gisel-fisel.ll | 96 +- .../CodeGen/AArch64/sme-lazy-save-call.ll | 36 +- .../CodeGen/AArch64/sme-lazy-save-windows.ll | 4 +- .../AArch64/sme-must-save-lr-for-vg.ll | 2 +- .../CodeGen/AArch64/sme-new-za-function.ll | 42 +- .../test/CodeGen/AArch64/sme-peephole-opts.ll | 106 +- ...ate-sm-changing-call-disable-coalescing.ll | 240 +- .../CodeGen/AArch64/sme-streaming-body.ll | 44 +- .../CodeGen/AArch64/sme-streaming-checkvl.ll | 76 +- .../sme-streaming-compatible-interface.ll | 120 +- .../AArch64/sme-streaming-interface.ll | 132 +- .../sme-streaming-mode-changes-unwindinfo.ll | 2 +- ...nging-call-disable-stackslot-scavenging.ll | 12 +- llvm/test/CodeGen/AArch64/sme-vg-to-stack.ll | 142 +- .../CodeGen/AArch64/sme-za-control-flow.ll | 24 +- .../test/CodeGen/AArch64/sme-za-exceptions.ll | 24 +- llvm/test/CodeGen/AArch64/sme-zt0-state.ll | 12 +- .../AArch64/sme2-fp8-intrinsics-cvt.ll | 8 +- .../AArch64/sme2-intrinsics-int-dots.ll | 72 +- .../CodeGen/AArch64/sme2-intrinsics-ld1.ll | 128 +- .../CodeGen/AArch64/sme2-intrinsics-ldnt1.ll | 128 +- .../CodeGen/AArch64/sme2-intrinsics-qcvt.ll | 4 +- .../CodeGen/AArch64/sme2-intrinsics-qrshr.ll | 8 +- .../CodeGen/AArch64/sme2-intrinsics-vdot.ll | 24 +- .../AArch64/split-sve-stack-frame-layout.ll | 160 +- .../CodeGen/AArch64/stack-hazard-defaults.ll | 8 +- .../CodeGen/AArch64/stack-hazard-windows.ll | 40 +- llvm/test/CodeGen/AArch64/stack-hazard.ll | 1366 ++++---- .../CodeGen/AArch64/stack-probing-dynamic.ll | 16 +- .../test/CodeGen/AArch64/stack-probing-sve.ll | 28 +- llvm/test/CodeGen/AArch64/stack-probing.ll | 2 +- .../AArch64/statepoint-call-lowering.ll | 4 +- .../streaming-compatible-memory-ops.ll | 20 +- llvm/test/CodeGen/AArch64/sve-alloca.ll | 48 +- .../AArch64/sve-callee-save-restore-pairs.ll | 240 +- .../AArch64/sve-calling-convention-mixed.ll | 96 +- .../AArch64/sve-extract-scalable-vector.ll | 8 +- .../CodeGen/AArch64/sve-fixed-ld2-alloca.ll | 4 +- .../CodeGen/AArch64/sve-fixed-length-fp128.ll | 40 +- .../sve-fixed-length-frame-offests-crash.ll | 4 +- .../AArch64/sve-fixed-vector-llrint.ll | 140 +- .../CodeGen/AArch64/sve-fixed-vector-lrint.ll | 252 +- llvm/test/CodeGen/AArch64/sve-fptosi-sat.ll | 24 +- llvm/test/CodeGen/AArch64/sve-fptoui-sat.ll | 8 +- .../test/CodeGen/AArch64/sve-insert-vector.ll | 64 +- llvm/test/CodeGen/AArch64/sve-llrint.ll | 228 +- llvm/test/CodeGen/AArch64/sve-lrint.ll | 228 +- llvm/test/CodeGen/AArch64/sve-pred-arith.ll | 40 +- .../CodeGen/AArch64/sve-stack-frame-layout.ll | 66 +- .../sve-streaming-mode-fixed-length-fp-fma.ll | 4 +- ...e-streaming-mode-fixed-length-fp-to-int.ll | 8 +- ...streaming-mode-fixed-length-int-extends.ll | 24 +- ...ve-streaming-mode-fixed-length-int-mulh.ll | 112 +- ...e-streaming-mode-fixed-length-int-to-fp.ll | 4 +- ...streaming-mode-fixed-length-int-vselect.ll | 8 +- ...-streaming-mode-fixed-length-ld2-alloca.ll | 4 +- ...streaming-mode-fixed-length-masked-load.ll | 12 +- .../sve-streaming-mode-fixed-length-trunc.ll | 516 +-- llvm/test/CodeGen/AArch64/sve-tailcall.ll | 96 +- llvm/test/CodeGen/AArch64/sve-trunc.ll | 16 +- .../AArch64/sve2p1-intrinsics-loads.ll | 288 +- .../sve2p1-intrinsics-predicate-as-counter.ll | 32 +- .../AArch64/sve2p1-intrinsics-selx2.ll | 32 +- .../AArch64/sve2p1-intrinsics-selx4.ll | 32 +- .../AArch64/sve2p1-intrinsics-stores.ll | 128 +- llvm/test/CodeGen/AArch64/swift-async-win.ll | 4 +- llvm/test/CodeGen/AArch64/swifterror.ll | 464 +-- llvm/test/CodeGen/AArch64/trampoline.ll | 8 +- llvm/test/CodeGen/AArch64/unwind-preserved.ll | 160 +- llvm/test/CodeGen/AArch64/vec-libcalls.ll | 312 +- llvm/test/CodeGen/AArch64/veclib-llvm.modf.ll | 16 +- .../vecreduce-fadd-legalization-strict.ll | 24 +- .../AArch64/vecreduce-fmax-legalization.ll | 16 +- .../AArch64/vecreduce-fmin-legalization.ll | 16 +- llvm/test/CodeGen/AArch64/vector-llrint.ll | 168 +- llvm/test/CodeGen/AArch64/vector-lrint.ll | 344 +- llvm/test/CodeGen/AArch64/win-sve.ll | 454 +-- llvm/test/CodeGen/AArch64/win64-fpowi.ll | 32 +- llvm/test/CodeGen/AArch64/win64_vararg.ll | 12 +- llvm/test/CodeGen/AArch64/win64_vararg2.ll | 16 +- .../CodeGen/AArch64/win64_vararg_float.ll | 8 +- .../CodeGen/AArch64/win64_vararg_float_cc.ll | 8 +- .../CodeGen/AArch64/win64cc-backup-x18.ll | 4 +- .../AArch64/wincfi-missing-seh-directives.ll | 6 +- 178 files changed, 10905 insertions(+), 10850 deletions(-) diff --git a/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp b/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp index b8761d971a67d..20efc2b8884c2 100644 --- a/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp +++ b/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp @@ -2357,11 +2357,10 @@ bool AArch64InstrInfo::isFPRCopy(const MachineInstr &MI) { return false; } -Register AArch64InstrInfo::isLoadFromStackSlot(const MachineInstr &MI, - int &FrameIndex) const { - switch (MI.getOpcode()) { +static bool isFrameLoadOpcode(int Opcode) { + switch (Opcode) { default: - break; + return false; case AArch64::LDRWui: case AArch64::LDRXui: case AArch64::LDRBui: @@ -2370,22 +2369,26 @@ Register AArch64InstrInfo::isLoadFromStackSlot(const MachineInstr &MI, case AArch64::LDRDui: case AArch64::LDRQui: case AArch64::LDR_PXI: + return true; + } +} + +Register AArch64InstrInfo::isLoadFromStackSlot(const MachineInstr &MI, + int &FrameIndex) const { + if (isFrameLoadOpcode(MI.getOpcode())) { if (MI.getOperand(0).getSubReg() == 0 && MI.getOperand(1).isFI() && MI.getOperand(2).isImm() && MI.getOperand(2).getImm() == 0) { FrameIndex = MI.getOperand(1).getIndex(); return MI.getOperand(0).getReg(); } - break; } - return 0; } -Register AArch64InstrInfo::isStoreToStackSlot(const MachineInstr &MI, - int &FrameIndex) const { - switch (MI.getOpcode()) { +static bool isFrameStoreOpcode(int Opcode) { + switch (Opcode) { default: - break; + return false; case AArch64::STRWui: case AArch64::STRXui: case AArch64::STRBui: @@ -2394,16 +2397,55 @@ Register AArch64InstrInfo::isStoreToStackSlot(const MachineInstr &MI, case AArch64::STRDui: case AArch64::STRQui: case AArch64::STR_PXI: + return true; + } +} + +Register AArch64InstrInfo::isStoreToStackSlot(const MachineInstr &MI, + int &FrameIndex) const { + if (isFrameStoreOpcode(MI.getOpcode())) { if (MI.getOperand(0).getSubReg() == 0 && MI.getOperand(1).isFI() && MI.getOperand(2).isImm() && MI.getOperand(2).getImm() == 0) { FrameIndex = MI.getOperand(1).getIndex(); return MI.getOperand(0).getReg(); } - break; } return 0; } +Register AArch64InstrInfo::isStoreToStackSlotPostFE(const MachineInstr &MI, + int &FrameIndex) const { + if (isFrameStoreOpcode(MI.getOpcode())) { + SmallVector Accesses; + if (Register Reg = isStoreToStackSlot(MI, FrameIndex)) + return Reg; + + if (hasStoreToStackSlot(MI, Accesses)) { + FrameIndex = + cast(Accesses.front()->getPseudoValue()) + ->getFrameIndex(); + return 1; + } + } + return Register(); +} + +Register AArch64InstrInfo::isLoadFromStackSlotPostFE(const MachineInstr &MI, + int &FrameIndex) const { + if (isFrameLoadOpcode(MI.getOpcode())) { + if (Register Reg = isLoadFromStackSlot(MI, FrameIndex)) + return Reg; + SmallVector Accesses; + if (hasLoadFromStackSlot(MI, Accesses)) { + FrameIndex = + cast(Accesses.front()->getPseudoValue()) + ->getFrameIndex(); + return 1; + } + } + return Register(); +} + /// Check all MachineMemOperands for a hint to suppress pairing. bool AArch64InstrInfo::isLdStPairSuppressed(const MachineInstr &MI) { return llvm::any_of(MI.memoperands(), [](MachineMemOperand *MMO) { diff --git a/llvm/lib/Target/AArch64/AArch64InstrInfo.h b/llvm/lib/Target/AArch64/AArch64InstrInfo.h index 179574a73aa01..44863eb2f6d95 100644 --- a/llvm/lib/Target/AArch64/AArch64InstrInfo.h +++ b/llvm/lib/Target/AArch64/AArch64InstrInfo.h @@ -205,6 +205,15 @@ class AArch64InstrInfo final : public AArch64GenInstrInfo { Register isStoreToStackSlot(const MachineInstr &MI, int &FrameIndex) const override; + /// isStoreToStackSlotPostFE - Check for post-frame ptr elimination + /// stack locations as well. This uses a heuristic so it isn't + /// reliable for correctness. + Register isStoreToStackSlotPostFE(const MachineInstr &MI, + int &FrameIndex) const override; + + Register isLoadFromStackSlotPostFE(const MachineInstr &MI, + int &FrameIndex) const override; + /// Does this instruction set its full destination register to zero? static bool isGPRZero(const MachineInstr &MI); diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/arm64-atomic-128.ll b/llvm/test/CodeGen/AArch64/GlobalISel/arm64-atomic-128.ll index 1fe63c9be8c62..be51210882eaa 100644 --- a/llvm/test/CodeGen/AArch64/GlobalISel/arm64-atomic-128.ll +++ b/llvm/test/CodeGen/AArch64/GlobalISel/arm64-atomic-128.ll @@ -89,23 +89,23 @@ define void @val_compare_and_swap(ptr %p, i128 %oldval, i128 %newval) { ; CHECK-OUTLINE-LLSC-O0-LABEL: val_compare_and_swap: ; CHECK-OUTLINE-LLSC-O0: // %bb.0: ; CHECK-OUTLINE-LLSC-O0-NEXT: sub sp, sp, #32 -; CHECK-OUTLINE-LLSC-O0-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-OUTLINE-LLSC-O0-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-OUTLINE-LLSC-O0-NEXT: .cfi_def_cfa_offset 32 ; CHECK-OUTLINE-LLSC-O0-NEXT: .cfi_offset w30, -16 -; CHECK-OUTLINE-LLSC-O0-NEXT: str x0, [sp, #8] // 8-byte Folded Spill +; CHECK-OUTLINE-LLSC-O0-NEXT: str x0, [sp, #8] // 8-byte Spill ; CHECK-OUTLINE-LLSC-O0-NEXT: mov x0, x2 ; CHECK-OUTLINE-LLSC-O0-NEXT: mov x1, x3 ; CHECK-OUTLINE-LLSC-O0-NEXT: mov x2, x4 -; CHECK-OUTLINE-LLSC-O0-NEXT: ldr x4, [sp, #8] // 8-byte Folded Reload +; CHECK-OUTLINE-LLSC-O0-NEXT: ldr x4, [sp, #8] // 8-byte Reload ; CHECK-OUTLINE-LLSC-O0-NEXT: mov x3, x5 ; CHECK-OUTLINE-LLSC-O0-NEXT: bl __aarch64_cas16_acq ; CHECK-OUTLINE-LLSC-O0-NEXT: mov x8, x0 -; CHECK-OUTLINE-LLSC-O0-NEXT: ldr x0, [sp, #8] // 8-byte Folded Reload +; CHECK-OUTLINE-LLSC-O0-NEXT: ldr x0, [sp, #8] // 8-byte Reload ; CHECK-OUTLINE-LLSC-O0-NEXT: // implicit-def: $q0 ; CHECK-OUTLINE-LLSC-O0-NEXT: mov v0.d[0], x8 ; CHECK-OUTLINE-LLSC-O0-NEXT: mov v0.d[1], x1 ; CHECK-OUTLINE-LLSC-O0-NEXT: str q0, [x0] -; CHECK-OUTLINE-LLSC-O0-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-OUTLINE-LLSC-O0-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-OUTLINE-LLSC-O0-NEXT: add sp, sp, #32 ; CHECK-OUTLINE-LLSC-O0-NEXT: ret ; @@ -113,9 +113,9 @@ define void @val_compare_and_swap(ptr %p, i128 %oldval, i128 %newval) { ; CHECK-CAS-O0: // %bb.0: ; CHECK-CAS-O0-NEXT: sub sp, sp, #16 ; CHECK-CAS-O0-NEXT: .cfi_def_cfa_offset 16 -; CHECK-CAS-O0-NEXT: str x3, [sp, #8] // 8-byte Folded Spill +; CHECK-CAS-O0-NEXT: str x3, [sp, #8] // 8-byte Spill ; CHECK-CAS-O0-NEXT: mov x1, x5 -; CHECK-CAS-O0-NEXT: ldr x5, [sp, #8] // 8-byte Folded Reload +; CHECK-CAS-O0-NEXT: ldr x5, [sp, #8] // 8-byte Reload ; CHECK-CAS-O0-NEXT: // kill: def $x2 killed $x2 def $x2_x3 ; CHECK-CAS-O0-NEXT: mov x3, x5 ; CHECK-CAS-O0-NEXT: // kill: def $x4 killed $x4 def $x4_x5 @@ -216,23 +216,23 @@ define void @val_compare_and_swap_monotonic_seqcst(ptr %p, i128 %oldval, i128 %n ; CHECK-OUTLINE-LLSC-O0-LABEL: val_compare_and_swap_monotonic_seqcst: ; CHECK-OUTLINE-LLSC-O0: // %bb.0: ; CHECK-OUTLINE-LLSC-O0-NEXT: sub sp, sp, #32 -; CHECK-OUTLINE-LLSC-O0-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-OUTLINE-LLSC-O0-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-OUTLINE-LLSC-O0-NEXT: .cfi_def_cfa_offset 32 ; CHECK-OUTLINE-LLSC-O0-NEXT: .cfi_offset w30, -16 -; CHECK-OUTLINE-LLSC-O0-NEXT: str x0, [sp, #8] // 8-byte Folded Spill +; CHECK-OUTLINE-LLSC-O0-NEXT: str x0, [sp, #8] // 8-byte Spill ; CHECK-OUTLINE-LLSC-O0-NEXT: mov x0, x2 ; CHECK-OUTLINE-LLSC-O0-NEXT: mov x1, x3 ; CHECK-OUTLINE-LLSC-O0-NEXT: mov x2, x4 -; CHECK-OUTLINE-LLSC-O0-NEXT: ldr x4, [sp, #8] // 8-byte Folded Reload +; CHECK-OUTLINE-LLSC-O0-NEXT: ldr x4, [sp, #8] // 8-byte Reload ; CHECK-OUTLINE-LLSC-O0-NEXT: mov x3, x5 ; CHECK-OUTLINE-LLSC-O0-NEXT: bl __aarch64_cas16_acq_rel ; CHECK-OUTLINE-LLSC-O0-NEXT: mov x8, x0 -; CHECK-OUTLINE-LLSC-O0-NEXT: ldr x0, [sp, #8] // 8-byte Folded Reload +; CHECK-OUTLINE-LLSC-O0-NEXT: ldr x0, [sp, #8] // 8-byte Reload ; CHECK-OUTLINE-LLSC-O0-NEXT: // implicit-def: $q0 ; CHECK-OUTLINE-LLSC-O0-NEXT: mov v0.d[0], x8 ; CHECK-OUTLINE-LLSC-O0-NEXT: mov v0.d[1], x1 ; CHECK-OUTLINE-LLSC-O0-NEXT: str q0, [x0] -; CHECK-OUTLINE-LLSC-O0-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-OUTLINE-LLSC-O0-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-OUTLINE-LLSC-O0-NEXT: add sp, sp, #32 ; CHECK-OUTLINE-LLSC-O0-NEXT: ret ; @@ -240,9 +240,9 @@ define void @val_compare_and_swap_monotonic_seqcst(ptr %p, i128 %oldval, i128 %n ; CHECK-CAS-O0: // %bb.0: ; CHECK-CAS-O0-NEXT: sub sp, sp, #16 ; CHECK-CAS-O0-NEXT: .cfi_def_cfa_offset 16 -; CHECK-CAS-O0-NEXT: str x3, [sp, #8] // 8-byte Folded Spill +; CHECK-CAS-O0-NEXT: str x3, [sp, #8] // 8-byte Spill ; CHECK-CAS-O0-NEXT: mov x1, x5 -; CHECK-CAS-O0-NEXT: ldr x5, [sp, #8] // 8-byte Folded Reload +; CHECK-CAS-O0-NEXT: ldr x5, [sp, #8] // 8-byte Reload ; CHECK-CAS-O0-NEXT: // kill: def $x2 killed $x2 def $x2_x3 ; CHECK-CAS-O0-NEXT: mov x3, x5 ; CHECK-CAS-O0-NEXT: // kill: def $x4 killed $x4 def $x4_x5 @@ -343,23 +343,23 @@ define void @val_compare_and_swap_release_acquire(ptr %p, i128 %oldval, i128 %ne ; CHECK-OUTLINE-LLSC-O0-LABEL: val_compare_and_swap_release_acquire: ; CHECK-OUTLINE-LLSC-O0: // %bb.0: ; CHECK-OUTLINE-LLSC-O0-NEXT: sub sp, sp, #32 -; CHECK-OUTLINE-LLSC-O0-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-OUTLINE-LLSC-O0-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-OUTLINE-LLSC-O0-NEXT: .cfi_def_cfa_offset 32 ; CHECK-OUTLINE-LLSC-O0-NEXT: .cfi_offset w30, -16 -; CHECK-OUTLINE-LLSC-O0-NEXT: str x0, [sp, #8] // 8-byte Folded Spill +; CHECK-OUTLINE-LLSC-O0-NEXT: str x0, [sp, #8] // 8-byte Spill ; CHECK-OUTLINE-LLSC-O0-NEXT: mov x0, x2 ; CHECK-OUTLINE-LLSC-O0-NEXT: mov x1, x3 ; CHECK-OUTLINE-LLSC-O0-NEXT: mov x2, x4 -; CHECK-OUTLINE-LLSC-O0-NEXT: ldr x4, [sp, #8] // 8-byte Folded Reload +; CHECK-OUTLINE-LLSC-O0-NEXT: ldr x4, [sp, #8] // 8-byte Reload ; CHECK-OUTLINE-LLSC-O0-NEXT: mov x3, x5 ; CHECK-OUTLINE-LLSC-O0-NEXT: bl __aarch64_cas16_acq_rel ; CHECK-OUTLINE-LLSC-O0-NEXT: mov x8, x0 -; CHECK-OUTLINE-LLSC-O0-NEXT: ldr x0, [sp, #8] // 8-byte Folded Reload +; CHECK-OUTLINE-LLSC-O0-NEXT: ldr x0, [sp, #8] // 8-byte Reload ; CHECK-OUTLINE-LLSC-O0-NEXT: // implicit-def: $q0 ; CHECK-OUTLINE-LLSC-O0-NEXT: mov v0.d[0], x8 ; CHECK-OUTLINE-LLSC-O0-NEXT: mov v0.d[1], x1 ; CHECK-OUTLINE-LLSC-O0-NEXT: str q0, [x0] -; CHECK-OUTLINE-LLSC-O0-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-OUTLINE-LLSC-O0-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-OUTLINE-LLSC-O0-NEXT: add sp, sp, #32 ; CHECK-OUTLINE-LLSC-O0-NEXT: ret ; @@ -367,9 +367,9 @@ define void @val_compare_and_swap_release_acquire(ptr %p, i128 %oldval, i128 %ne ; CHECK-CAS-O0: // %bb.0: ; CHECK-CAS-O0-NEXT: sub sp, sp, #16 ; CHECK-CAS-O0-NEXT: .cfi_def_cfa_offset 16 -; CHECK-CAS-O0-NEXT: str x3, [sp, #8] // 8-byte Folded Spill +; CHECK-CAS-O0-NEXT: str x3, [sp, #8] // 8-byte Spill ; CHECK-CAS-O0-NEXT: mov x1, x5 -; CHECK-CAS-O0-NEXT: ldr x5, [sp, #8] // 8-byte Folded Reload +; CHECK-CAS-O0-NEXT: ldr x5, [sp, #8] // 8-byte Reload ; CHECK-CAS-O0-NEXT: // kill: def $x2 killed $x2 def $x2_x3 ; CHECK-CAS-O0-NEXT: mov x3, x5 ; CHECK-CAS-O0-NEXT: // kill: def $x4 killed $x4 def $x4_x5 @@ -470,23 +470,23 @@ define void @val_compare_and_swap_monotonic(ptr %p, i128 %oldval, i128 %newval) ; CHECK-OUTLINE-LLSC-O0-LABEL: val_compare_and_swap_monotonic: ; CHECK-OUTLINE-LLSC-O0: // %bb.0: ; CHECK-OUTLINE-LLSC-O0-NEXT: sub sp, sp, #32 -; CHECK-OUTLINE-LLSC-O0-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-OUTLINE-LLSC-O0-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-OUTLINE-LLSC-O0-NEXT: .cfi_def_cfa_offset 32 ; CHECK-OUTLINE-LLSC-O0-NEXT: .cfi_offset w30, -16 -; CHECK-OUTLINE-LLSC-O0-NEXT: str x0, [sp, #8] // 8-byte Folded Spill +; CHECK-OUTLINE-LLSC-O0-NEXT: str x0, [sp, #8] // 8-byte Spill ; CHECK-OUTLINE-LLSC-O0-NEXT: mov x0, x2 ; CHECK-OUTLINE-LLSC-O0-NEXT: mov x1, x3 ; CHECK-OUTLINE-LLSC-O0-NEXT: mov x2, x4 -; CHECK-OUTLINE-LLSC-O0-NEXT: ldr x4, [sp, #8] // 8-byte Folded Reload +; CHECK-OUTLINE-LLSC-O0-NEXT: ldr x4, [sp, #8] // 8-byte Reload ; CHECK-OUTLINE-LLSC-O0-NEXT: mov x3, x5 ; CHECK-OUTLINE-LLSC-O0-NEXT: bl __aarch64_cas16_acq_rel ; CHECK-OUTLINE-LLSC-O0-NEXT: mov x8, x0 -; CHECK-OUTLINE-LLSC-O0-NEXT: ldr x0, [sp, #8] // 8-byte Folded Reload +; CHECK-OUTLINE-LLSC-O0-NEXT: ldr x0, [sp, #8] // 8-byte Reload ; CHECK-OUTLINE-LLSC-O0-NEXT: // implicit-def: $q0 ; CHECK-OUTLINE-LLSC-O0-NEXT: mov v0.d[0], x8 ; CHECK-OUTLINE-LLSC-O0-NEXT: mov v0.d[1], x1 ; CHECK-OUTLINE-LLSC-O0-NEXT: str q0, [x0] -; CHECK-OUTLINE-LLSC-O0-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-OUTLINE-LLSC-O0-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-OUTLINE-LLSC-O0-NEXT: add sp, sp, #32 ; CHECK-OUTLINE-LLSC-O0-NEXT: ret ; @@ -494,9 +494,9 @@ define void @val_compare_and_swap_monotonic(ptr %p, i128 %oldval, i128 %newval) ; CHECK-CAS-O0: // %bb.0: ; CHECK-CAS-O0-NEXT: sub sp, sp, #16 ; CHECK-CAS-O0-NEXT: .cfi_def_cfa_offset 16 -; CHECK-CAS-O0-NEXT: str x3, [sp, #8] // 8-byte Folded Spill +; CHECK-CAS-O0-NEXT: str x3, [sp, #8] // 8-byte Spill ; CHECK-CAS-O0-NEXT: mov x1, x5 -; CHECK-CAS-O0-NEXT: ldr x5, [sp, #8] // 8-byte Folded Reload +; CHECK-CAS-O0-NEXT: ldr x5, [sp, #8] // 8-byte Reload ; CHECK-CAS-O0-NEXT: // kill: def $x2 killed $x2 def $x2_x3 ; CHECK-CAS-O0-NEXT: mov x3, x5 ; CHECK-CAS-O0-NEXT: // kill: def $x4 killed $x4 def $x4_x5 @@ -580,22 +580,22 @@ define void @atomic_load_relaxed(i64, i64, ptr %p, ptr %p2) { ; CHECK-OUTLINE-LLSC-O0-LABEL: atomic_load_relaxed: ; CHECK-OUTLINE-LLSC-O0: // %bb.0: ; CHECK-OUTLINE-LLSC-O0-NEXT: sub sp, sp, #32 -; CHECK-OUTLINE-LLSC-O0-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-OUTLINE-LLSC-O0-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-OUTLINE-LLSC-O0-NEXT: .cfi_def_cfa_offset 32 ; CHECK-OUTLINE-LLSC-O0-NEXT: .cfi_offset w30, -16 ; CHECK-OUTLINE-LLSC-O0-NEXT: mov x4, x2 -; CHECK-OUTLINE-LLSC-O0-NEXT: str x3, [sp, #8] // 8-byte Folded Spill +; CHECK-OUTLINE-LLSC-O0-NEXT: str x3, [sp, #8] // 8-byte Spill ; CHECK-OUTLINE-LLSC-O0-NEXT: mov x3, xzr ; CHECK-OUTLINE-LLSC-O0-NEXT: mov x0, x3 ; CHECK-OUTLINE-LLSC-O0-NEXT: mov x1, x3 ; CHECK-OUTLINE-LLSC-O0-NEXT: mov x2, x3 ; CHECK-OUTLINE-LLSC-O0-NEXT: bl __aarch64_cas16_relax -; CHECK-OUTLINE-LLSC-O0-NEXT: ldr x3, [sp, #8] // 8-byte Folded Reload +; CHECK-OUTLINE-LLSC-O0-NEXT: ldr x3, [sp, #8] // 8-byte Reload ; CHECK-OUTLINE-LLSC-O0-NEXT: // implicit-def: $q0 ; CHECK-OUTLINE-LLSC-O0-NEXT: mov v0.d[0], x0 ; CHECK-OUTLINE-LLSC-O0-NEXT: mov v0.d[1], x1 ; CHECK-OUTLINE-LLSC-O0-NEXT: str q0, [x3] -; CHECK-OUTLINE-LLSC-O0-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-OUTLINE-LLSC-O0-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-OUTLINE-LLSC-O0-NEXT: add sp, sp, #32 ; CHECK-OUTLINE-LLSC-O0-NEXT: ret ; @@ -690,17 +690,17 @@ define i128 @val_compare_and_swap_return(ptr %p, i128 %oldval, i128 %newval) { ; CHECK-OUTLINE-LLSC-O0-LABEL: val_compare_and_swap_return: ; CHECK-OUTLINE-LLSC-O0: // %bb.0: ; CHECK-OUTLINE-LLSC-O0-NEXT: sub sp, sp, #32 -; CHECK-OUTLINE-LLSC-O0-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-OUTLINE-LLSC-O0-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-OUTLINE-LLSC-O0-NEXT: .cfi_def_cfa_offset 32 ; CHECK-OUTLINE-LLSC-O0-NEXT: .cfi_offset w30, -16 -; CHECK-OUTLINE-LLSC-O0-NEXT: str x0, [sp, #8] // 8-byte Folded Spill +; CHECK-OUTLINE-LLSC-O0-NEXT: str x0, [sp, #8] // 8-byte Spill ; CHECK-OUTLINE-LLSC-O0-NEXT: mov x0, x2 ; CHECK-OUTLINE-LLSC-O0-NEXT: mov x1, x3 ; CHECK-OUTLINE-LLSC-O0-NEXT: mov x2, x4 -; CHECK-OUTLINE-LLSC-O0-NEXT: ldr x4, [sp, #8] // 8-byte Folded Reload +; CHECK-OUTLINE-LLSC-O0-NEXT: ldr x4, [sp, #8] // 8-byte Reload ; CHECK-OUTLINE-LLSC-O0-NEXT: mov x3, x5 ; CHECK-OUTLINE-LLSC-O0-NEXT: bl __aarch64_cas16_acq -; CHECK-OUTLINE-LLSC-O0-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-OUTLINE-LLSC-O0-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-OUTLINE-LLSC-O0-NEXT: add sp, sp, #32 ; CHECK-OUTLINE-LLSC-O0-NEXT: ret ; diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/arm64-atomic.ll b/llvm/test/CodeGen/AArch64/GlobalISel/arm64-atomic.ll index e6bf3ab674717..3f51ec747182a 100644 --- a/llvm/test/CodeGen/AArch64/GlobalISel/arm64-atomic.ll +++ b/llvm/test/CodeGen/AArch64/GlobalISel/arm64-atomic.ll @@ -56,10 +56,10 @@ define i32 @val_compare_and_swap(ptr %p, i32 %cmp, i32 %new) #0 { ; CHECK-OUTLINE-O0: ; %bb.0: ; CHECK-OUTLINE-O0-NEXT: sub sp, sp, #32 ; CHECK-OUTLINE-O0-NEXT: stp x29, x30, [sp, #16] ; 16-byte Folded Spill -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov w0, w1 ; CHECK-OUTLINE-O0-NEXT: mov w1, w2 -; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_cas4_acq ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #16] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #32 @@ -133,10 +133,10 @@ define i32 @val_compare_and_swap_from_load(ptr %p, i32 %cmp, ptr %pnew) #0 { ; CHECK-OUTLINE-O0: ; %bb.0: ; CHECK-OUTLINE-O0-NEXT: sub sp, sp, #32 ; CHECK-OUTLINE-O0-NEXT: stp x29, x30, [sp, #16] ; 16-byte Folded Spill -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov w0, w1 ; CHECK-OUTLINE-O0-NEXT: mov x8, x2 -; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: ldr w1, [x8] ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_cas4_acq ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #16] ; 16-byte Folded Reload @@ -211,10 +211,10 @@ define i32 @val_compare_and_swap_rel(ptr %p, i32 %cmp, i32 %new) #0 { ; CHECK-OUTLINE-O0: ; %bb.0: ; CHECK-OUTLINE-O0-NEXT: sub sp, sp, #32 ; CHECK-OUTLINE-O0-NEXT: stp x29, x30, [sp, #16] ; 16-byte Folded Spill -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov w0, w1 ; CHECK-OUTLINE-O0-NEXT: mov w1, w2 -; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_cas4_acq_rel ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #16] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #32 @@ -285,10 +285,10 @@ define i64 @val_compare_and_swap_64(ptr %p, i64 %cmp, i64 %new) #0 { ; CHECK-OUTLINE-O0: ; %bb.0: ; CHECK-OUTLINE-O0-NEXT: sub sp, sp, #32 ; CHECK-OUTLINE-O0-NEXT: stp x29, x30, [sp, #16] ; 16-byte Folded Spill -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov x0, x1 ; CHECK-OUTLINE-O0-NEXT: mov x1, x2 -; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_cas8_relax ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #16] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #32 @@ -359,10 +359,10 @@ define i64 @val_compare_and_swap_64_monotonic_seqcst(ptr %p, i64 %cmp, i64 %new) ; CHECK-OUTLINE-O0: ; %bb.0: ; CHECK-OUTLINE-O0-NEXT: sub sp, sp, #32 ; CHECK-OUTLINE-O0-NEXT: stp x29, x30, [sp, #16] ; 16-byte Folded Spill -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov x0, x1 ; CHECK-OUTLINE-O0-NEXT: mov x1, x2 -; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_cas8_acq_rel ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #16] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #32 @@ -433,10 +433,10 @@ define i64 @val_compare_and_swap_64_release_acquire(ptr %p, i64 %cmp, i64 %new) ; CHECK-OUTLINE-O0: ; %bb.0: ; CHECK-OUTLINE-O0-NEXT: sub sp, sp, #32 ; CHECK-OUTLINE-O0-NEXT: stp x29, x30, [sp, #16] ; 16-byte Folded Spill -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov x0, x1 ; CHECK-OUTLINE-O0-NEXT: mov x1, x2 -; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_cas8_acq_rel ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #16] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #32 @@ -489,15 +489,15 @@ define i32 @fetch_and_nand(ptr %p) #0 { ; CHECK-NOLSE-O0-LABEL: fetch_and_nand: ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: ldr w8, [x0] -; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB6_1 ; CHECK-NOLSE-O0-NEXT: LBB6_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB6_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Reload ; CHECK-NOLSE-O0-NEXT: and w9, w8, #0x7 ; CHECK-NOLSE-O0-NEXT: mvn w12, w9 ; CHECK-NOLSE-O0-NEXT: LBB6_2: ; %atomicrmw.start @@ -514,12 +514,12 @@ define i32 @fetch_and_nand(ptr %p) #0 { ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB6_1 Depth=1 ; CHECK-NOLSE-O0-NEXT: subs w8, w9, w8 ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB6_1 ; CHECK-NOLSE-O0-NEXT: b LBB6_5 ; CHECK-NOLSE-O0-NEXT: LBB6_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -527,27 +527,27 @@ define i32 @fetch_and_nand(ptr %p) #0 { ; CHECK-OUTLINE-O0: ; %bb.0: ; CHECK-OUTLINE-O0-NEXT: sub sp, sp, #48 ; CHECK-OUTLINE-O0-NEXT: stp x29, x30, [sp, #32] ; 16-byte Folded Spill -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: ldr w0, [x0] -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: b LBB6_1 ; CHECK-OUTLINE-O0-NEXT: LBB6_1: ; %atomicrmw.start ; CHECK-OUTLINE-O0-NEXT: ; =>This Inner Loop Header: Depth=1 -; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #28] ; 4-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #16] ; 8-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #8] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #28] ; 4-byte Reload +; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #16] ; 8-byte Reload +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #8] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: and w8, w0, #0x7 ; CHECK-OUTLINE-O0-NEXT: mvn w1, w8 ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_cas4_rel -; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #8] ; 4-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #8] ; 4-byte Reload ; CHECK-OUTLINE-O0-NEXT: subs w8, w0, w8 ; CHECK-OUTLINE-O0-NEXT: cset w8, eq -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #12] ; 4-byte Folded Spill -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #12] ; 4-byte Spill +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: tbz w8, #0, LBB6_1 ; CHECK-OUTLINE-O0-NEXT: b LBB6_2 ; CHECK-OUTLINE-O0-NEXT: LBB6_2: ; %atomicrmw.end -; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #32] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #48 ; CHECK-OUTLINE-O0-NEXT: ret @@ -570,26 +570,26 @@ define i32 @fetch_and_nand(ptr %p) #0 { ; CHECK-LSE-O0-LABEL: fetch_and_nand: ; CHECK-LSE-O0: ; %bb.0: ; CHECK-LSE-O0-NEXT: sub sp, sp, #32 -; CHECK-LSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill +; CHECK-LSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill ; CHECK-LSE-O0-NEXT: ldr w8, [x0] -; CHECK-LSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Folded Spill +; CHECK-LSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Spill ; CHECK-LSE-O0-NEXT: b LBB6_1 ; CHECK-LSE-O0-NEXT: LBB6_1: ; %atomicrmw.start ; CHECK-LSE-O0-NEXT: ; =>This Inner Loop Header: Depth=1 -; CHECK-LSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Folded Reload -; CHECK-LSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Folded Reload +; CHECK-LSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Reload +; CHECK-LSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Reload ; CHECK-LSE-O0-NEXT: and w9, w8, #0x7 ; CHECK-LSE-O0-NEXT: mvn w10, w9 ; CHECK-LSE-O0-NEXT: mov x9, x8 ; CHECK-LSE-O0-NEXT: casl w9, w10, [x11] ; CHECK-LSE-O0-NEXT: subs w8, w9, w8 ; CHECK-LSE-O0-NEXT: cset w8, eq -; CHECK-LSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Folded Spill -; CHECK-LSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Folded Spill +; CHECK-LSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Spill +; CHECK-LSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Spill ; CHECK-LSE-O0-NEXT: tbz w8, #0, LBB6_1 ; CHECK-LSE-O0-NEXT: b LBB6_2 ; CHECK-LSE-O0-NEXT: LBB6_2: ; %atomicrmw.end -; CHECK-LSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-LSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-LSE-O0-NEXT: add sp, sp, #32 ; CHECK-LSE-O0-NEXT: ret %val = atomicrmw nand ptr %p, i32 7 release @@ -626,15 +626,15 @@ define i64 @fetch_and_nand_64(ptr %p) #0 { ; CHECK-NOLSE-O0-LABEL: fetch_and_nand_64: ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: ldr x8, [x0] -; CHECK-NOLSE-O0-NEXT: str x8, [sp, #24] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x8, [sp, #24] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB7_1 ; CHECK-NOLSE-O0-NEXT: LBB7_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB7_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr x8, [sp, #24] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr x8, [sp, #24] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Reload ; CHECK-NOLSE-O0-NEXT: and x9, x8, #0x7 ; CHECK-NOLSE-O0-NEXT: mvn x12, x9 ; CHECK-NOLSE-O0-NEXT: LBB7_2: ; %atomicrmw.start @@ -651,12 +651,12 @@ define i64 @fetch_and_nand_64(ptr %p) #0 { ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB7_1 Depth=1 ; CHECK-NOLSE-O0-NEXT: subs x8, x9, x8 ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str x9, [sp, #8] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str x9, [sp, #24] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x9, [sp, #8] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str x9, [sp, #24] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB7_1 ; CHECK-NOLSE-O0-NEXT: b LBB7_5 ; CHECK-NOLSE-O0-NEXT: LBB7_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr x0, [sp, #8] ; 8-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr x0, [sp, #8] ; 8-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -664,27 +664,27 @@ define i64 @fetch_and_nand_64(ptr %p) #0 { ; CHECK-OUTLINE-O0: ; %bb.0: ; CHECK-OUTLINE-O0-NEXT: sub sp, sp, #48 ; CHECK-OUTLINE-O0-NEXT: stp x29, x30, [sp, #32] ; 16-byte Folded Spill -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: ldr x0, [x0] -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #24] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #24] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: b LBB7_1 ; CHECK-OUTLINE-O0-NEXT: LBB7_1: ; %atomicrmw.start ; CHECK-OUTLINE-O0-NEXT: ; =>This Inner Loop Header: Depth=1 -; CHECK-OUTLINE-O0-NEXT: ldr x0, [sp, #24] ; 8-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #16] ; 8-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: str x0, [sp] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: ldr x0, [sp, #24] ; 8-byte Reload +; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #16] ; 8-byte Reload +; CHECK-OUTLINE-O0-NEXT: str x0, [sp] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: and x8, x0, #0x7 ; CHECK-OUTLINE-O0-NEXT: mvn x1, x8 ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_cas8_acq_rel -; CHECK-OUTLINE-O0-NEXT: ldr x8, [sp] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x8, [sp] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: subs x8, x0, x8 ; CHECK-OUTLINE-O0-NEXT: cset w8, eq -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #24] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #24] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: tbz w8, #0, LBB7_1 ; CHECK-OUTLINE-O0-NEXT: b LBB7_2 ; CHECK-OUTLINE-O0-NEXT: LBB7_2: ; %atomicrmw.end -; CHECK-OUTLINE-O0-NEXT: ldr x0, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x0, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #32] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #48 ; CHECK-OUTLINE-O0-NEXT: ret @@ -707,26 +707,26 @@ define i64 @fetch_and_nand_64(ptr %p) #0 { ; CHECK-LSE-O0-LABEL: fetch_and_nand_64: ; CHECK-LSE-O0: ; %bb.0: ; CHECK-LSE-O0-NEXT: sub sp, sp, #32 -; CHECK-LSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill +; CHECK-LSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill ; CHECK-LSE-O0-NEXT: ldr x8, [x0] -; CHECK-LSE-O0-NEXT: str x8, [sp, #24] ; 8-byte Folded Spill +; CHECK-LSE-O0-NEXT: str x8, [sp, #24] ; 8-byte Spill ; CHECK-LSE-O0-NEXT: b LBB7_1 ; CHECK-LSE-O0-NEXT: LBB7_1: ; %atomicrmw.start ; CHECK-LSE-O0-NEXT: ; =>This Inner Loop Header: Depth=1 -; CHECK-LSE-O0-NEXT: ldr x8, [sp, #24] ; 8-byte Folded Reload -; CHECK-LSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Folded Reload +; CHECK-LSE-O0-NEXT: ldr x8, [sp, #24] ; 8-byte Reload +; CHECK-LSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Reload ; CHECK-LSE-O0-NEXT: and x9, x8, #0x7 ; CHECK-LSE-O0-NEXT: mvn x10, x9 ; CHECK-LSE-O0-NEXT: mov x9, x8 ; CHECK-LSE-O0-NEXT: casal x9, x10, [x11] ; CHECK-LSE-O0-NEXT: subs x8, x9, x8 ; CHECK-LSE-O0-NEXT: cset w8, eq -; CHECK-LSE-O0-NEXT: str x9, [sp, #8] ; 8-byte Folded Spill -; CHECK-LSE-O0-NEXT: str x9, [sp, #24] ; 8-byte Folded Spill +; CHECK-LSE-O0-NEXT: str x9, [sp, #8] ; 8-byte Spill +; CHECK-LSE-O0-NEXT: str x9, [sp, #24] ; 8-byte Spill ; CHECK-LSE-O0-NEXT: tbz w8, #0, LBB7_1 ; CHECK-LSE-O0-NEXT: b LBB7_2 ; CHECK-LSE-O0-NEXT: LBB7_2: ; %atomicrmw.end -; CHECK-LSE-O0-NEXT: ldr x0, [sp, #8] ; 8-byte Folded Reload +; CHECK-LSE-O0-NEXT: ldr x0, [sp, #8] ; 8-byte Reload ; CHECK-LSE-O0-NEXT: add sp, sp, #32 ; CHECK-LSE-O0-NEXT: ret %val = atomicrmw nand ptr %p, i64 7 acq_rel @@ -759,15 +759,15 @@ define i32 @fetch_and_or(ptr %p) #0 { ; CHECK-NOLSE-O0-LABEL: fetch_and_or: ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: ldr w8, [x0] -; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB8_1 ; CHECK-NOLSE-O0-NEXT: LBB8_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB8_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Reload ; CHECK-NOLSE-O0-NEXT: mov w9, #5 ; =0x5 ; CHECK-NOLSE-O0-NEXT: orr w12, w8, w9 ; CHECK-NOLSE-O0-NEXT: LBB8_2: ; %atomicrmw.start @@ -784,12 +784,12 @@ define i32 @fetch_and_or(ptr %p) #0 { ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB8_1 Depth=1 ; CHECK-NOLSE-O0-NEXT: subs w8, w9, w8 ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB8_1 ; CHECK-NOLSE-O0-NEXT: b LBB8_5 ; CHECK-NOLSE-O0-NEXT: LBB8_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -833,15 +833,15 @@ define i64 @fetch_and_or_64(ptr %p) #0 { ; CHECK-NOLSE-O0-LABEL: fetch_and_or_64: ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: ldr x8, [x0] -; CHECK-NOLSE-O0-NEXT: str x8, [sp, #24] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x8, [sp, #24] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB9_1 ; CHECK-NOLSE-O0-NEXT: LBB9_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB9_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr x8, [sp, #24] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr x8, [sp, #24] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Reload ; CHECK-NOLSE-O0-NEXT: orr x12, x8, #0x7 ; CHECK-NOLSE-O0-NEXT: LBB9_2: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; Parent Loop BB9_1 Depth=1 @@ -857,12 +857,12 @@ define i64 @fetch_and_or_64(ptr %p) #0 { ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB9_1 Depth=1 ; CHECK-NOLSE-O0-NEXT: subs x8, x9, x8 ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str x9, [sp, #8] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str x9, [sp, #24] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x9, [sp, #8] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str x9, [sp, #24] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB9_1 ; CHECK-NOLSE-O0-NEXT: b LBB9_5 ; CHECK-NOLSE-O0-NEXT: LBB9_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr x0, [sp, #8] ; 8-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr x0, [sp, #8] ; 8-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -1871,17 +1871,17 @@ define i8 @atomicrmw_add_i8(ptr %ptr, i8 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: ldrb w8, [x0] -; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB27_1 ; CHECK-NOLSE-O0-NEXT: LBB27_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB27_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr w10, [sp, #28] ; 4-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w10, [sp, #28] ; 4-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: add w12, w8, w10, uxth ; CHECK-NOLSE-O0-NEXT: LBB27_2: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; Parent Loop BB27_1 Depth=1 @@ -1895,15 +1895,15 @@ define i8 @atomicrmw_add_i8(ptr %ptr, i8 %rhs) { ; CHECK-NOLSE-O0-NEXT: cbnz w8, LBB27_2 ; CHECK-NOLSE-O0-NEXT: LBB27_4: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB27_1 Depth=1 -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: and w8, w9, #0xff ; CHECK-NOLSE-O0-NEXT: subs w8, w8, w10, uxtb ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB27_1 ; CHECK-NOLSE-O0-NEXT: b LBB27_5 ; CHECK-NOLSE-O0-NEXT: LBB27_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -1914,9 +1914,9 @@ define i8 @atomicrmw_add_i8(ptr %ptr, i8 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 32 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov w0, w1 -; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_ldadd1_acq_rel ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #16] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #32 @@ -1964,17 +1964,17 @@ define i8 @atomicrmw_xchg_i8(ptr %ptr, i8 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: ldrb w8, [x0] -; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB28_1 ; CHECK-NOLSE-O0-NEXT: LBB28_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB28_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr w10, [sp, #28] ; 4-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr w12, [sp, #24] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w10, [sp, #28] ; 4-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr w12, [sp, #24] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: LBB28_2: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; Parent Loop BB28_1 Depth=1 ; CHECK-NOLSE-O0-NEXT: ; => This Inner Loop Header: Depth=2 @@ -1987,15 +1987,15 @@ define i8 @atomicrmw_xchg_i8(ptr %ptr, i8 %rhs) { ; CHECK-NOLSE-O0-NEXT: cbnz w8, LBB28_2 ; CHECK-NOLSE-O0-NEXT: LBB28_4: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB28_1 Depth=1 -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: and w8, w9, #0xff ; CHECK-NOLSE-O0-NEXT: subs w8, w8, w10, uxtb ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB28_1 ; CHECK-NOLSE-O0-NEXT: b LBB28_5 ; CHECK-NOLSE-O0-NEXT: LBB28_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -2006,9 +2006,9 @@ define i8 @atomicrmw_xchg_i8(ptr %ptr, i8 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 32 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov w0, w1 -; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_swp1_relax ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #16] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #32 @@ -2057,17 +2057,17 @@ define i8 @atomicrmw_sub_i8(ptr %ptr, i8 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: ldrb w8, [x0] -; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB29_1 ; CHECK-NOLSE-O0-NEXT: LBB29_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB29_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr w10, [sp, #28] ; 4-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w10, [sp, #28] ; 4-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: subs w12, w10, w8 ; CHECK-NOLSE-O0-NEXT: LBB29_2: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; Parent Loop BB29_1 Depth=1 @@ -2081,15 +2081,15 @@ define i8 @atomicrmw_sub_i8(ptr %ptr, i8 %rhs) { ; CHECK-NOLSE-O0-NEXT: cbnz w8, LBB29_2 ; CHECK-NOLSE-O0-NEXT: LBB29_4: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB29_1 Depth=1 -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: and w8, w9, #0xff ; CHECK-NOLSE-O0-NEXT: subs w8, w8, w10, uxtb ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB29_1 ; CHECK-NOLSE-O0-NEXT: b LBB29_5 ; CHECK-NOLSE-O0-NEXT: LBB29_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -2100,9 +2100,9 @@ define i8 @atomicrmw_sub_i8(ptr %ptr, i8 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 32 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov w9, w1 -; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: mov w8, wzr ; CHECK-OUTLINE-O0-NEXT: subs w0, w8, w9 ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_ldadd1_acq @@ -2155,17 +2155,17 @@ define i8 @atomicrmw_and_i8(ptr %ptr, i8 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: ldrb w8, [x0] -; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB30_1 ; CHECK-NOLSE-O0-NEXT: LBB30_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB30_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr w10, [sp, #28] ; 4-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w10, [sp, #28] ; 4-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: and w12, w10, w8 ; CHECK-NOLSE-O0-NEXT: LBB30_2: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; Parent Loop BB30_1 Depth=1 @@ -2179,15 +2179,15 @@ define i8 @atomicrmw_and_i8(ptr %ptr, i8 %rhs) { ; CHECK-NOLSE-O0-NEXT: cbnz w8, LBB30_2 ; CHECK-NOLSE-O0-NEXT: LBB30_4: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB30_1 Depth=1 -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: and w8, w9, #0xff ; CHECK-NOLSE-O0-NEXT: subs w8, w8, w10, uxtb ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB30_1 ; CHECK-NOLSE-O0-NEXT: b LBB30_5 ; CHECK-NOLSE-O0-NEXT: LBB30_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -2198,9 +2198,9 @@ define i8 @atomicrmw_and_i8(ptr %ptr, i8 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 32 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov w9, w1 -; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: mov w8, #-1 ; =0xffffffff ; CHECK-OUTLINE-O0-NEXT: eor w0, w8, w9 ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_ldclr1_rel @@ -2253,17 +2253,17 @@ define i8 @atomicrmw_or_i8(ptr %ptr, i8 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: ldrb w8, [x0] -; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB31_1 ; CHECK-NOLSE-O0-NEXT: LBB31_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB31_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr w10, [sp, #28] ; 4-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w10, [sp, #28] ; 4-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: orr w12, w10, w8 ; CHECK-NOLSE-O0-NEXT: LBB31_2: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; Parent Loop BB31_1 Depth=1 @@ -2277,15 +2277,15 @@ define i8 @atomicrmw_or_i8(ptr %ptr, i8 %rhs) { ; CHECK-NOLSE-O0-NEXT: cbnz w8, LBB31_2 ; CHECK-NOLSE-O0-NEXT: LBB31_4: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB31_1 Depth=1 -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: and w8, w9, #0xff ; CHECK-NOLSE-O0-NEXT: subs w8, w8, w10, uxtb ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB31_1 ; CHECK-NOLSE-O0-NEXT: b LBB31_5 ; CHECK-NOLSE-O0-NEXT: LBB31_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -2296,9 +2296,9 @@ define i8 @atomicrmw_or_i8(ptr %ptr, i8 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 32 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov w0, w1 -; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_ldset1_acq_rel ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #16] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #32 @@ -2347,17 +2347,17 @@ define i8 @atomicrmw_xor_i8(ptr %ptr, i8 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: ldrb w8, [x0] -; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB32_1 ; CHECK-NOLSE-O0-NEXT: LBB32_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB32_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr w10, [sp, #28] ; 4-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w10, [sp, #28] ; 4-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: eor w12, w10, w8 ; CHECK-NOLSE-O0-NEXT: LBB32_2: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; Parent Loop BB32_1 Depth=1 @@ -2371,15 +2371,15 @@ define i8 @atomicrmw_xor_i8(ptr %ptr, i8 %rhs) { ; CHECK-NOLSE-O0-NEXT: cbnz w8, LBB32_2 ; CHECK-NOLSE-O0-NEXT: LBB32_4: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB32_1 Depth=1 -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: and w8, w9, #0xff ; CHECK-NOLSE-O0-NEXT: subs w8, w8, w10, uxtb ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB32_1 ; CHECK-NOLSE-O0-NEXT: b LBB32_5 ; CHECK-NOLSE-O0-NEXT: LBB32_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -2390,9 +2390,9 @@ define i8 @atomicrmw_xor_i8(ptr %ptr, i8 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 32 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov w0, w1 -; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_ldeor1_relax ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #16] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #32 @@ -2444,17 +2444,17 @@ define i8 @atomicrmw_min_i8(ptr %ptr, i8 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: ldrb w8, [x0] -; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB33_1 ; CHECK-NOLSE-O0-NEXT: LBB33_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB33_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr w10, [sp, #28] ; 4-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w10, [sp, #28] ; 4-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: sxtb w9, w10 ; CHECK-NOLSE-O0-NEXT: subs w9, w9, w8, sxtb ; CHECK-NOLSE-O0-NEXT: csel w12, w10, w8, le @@ -2470,15 +2470,15 @@ define i8 @atomicrmw_min_i8(ptr %ptr, i8 %rhs) { ; CHECK-NOLSE-O0-NEXT: cbnz w8, LBB33_2 ; CHECK-NOLSE-O0-NEXT: LBB33_4: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB33_1 Depth=1 -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: and w8, w9, #0xff ; CHECK-NOLSE-O0-NEXT: subs w8, w8, w10, uxtb ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB33_1 ; CHECK-NOLSE-O0-NEXT: b LBB33_5 ; CHECK-NOLSE-O0-NEXT: LBB33_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -2489,31 +2489,31 @@ define i8 @atomicrmw_min_i8(ptr %ptr, i8 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 48 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-OUTLINE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-OUTLINE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: ldrb w0, [x0] -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: b LBB33_1 ; CHECK-OUTLINE-O0-NEXT: LBB33_1: ; %atomicrmw.start ; CHECK-OUTLINE-O0-NEXT: ; =>This Inner Loop Header: Depth=1 -; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #28] ; 4-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #16] ; 8-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #8] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #28] ; 4-byte Reload +; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #16] ; 8-byte Reload +; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Reload +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #8] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: sxtb w9, w0 ; CHECK-OUTLINE-O0-NEXT: subs w9, w9, w8, sxtb ; CHECK-OUTLINE-O0-NEXT: csel w1, w0, w8, le ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_cas1_acq -; CHECK-OUTLINE-O0-NEXT: ldr w9, [sp, #8] ; 4-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #12] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: ldr w9, [sp, #8] ; 4-byte Reload +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #12] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: and w8, w0, #0xff ; CHECK-OUTLINE-O0-NEXT: subs w8, w8, w9, uxtb ; CHECK-OUTLINE-O0-NEXT: cset w8, eq -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: tbz w8, #0, LBB33_1 ; CHECK-OUTLINE-O0-NEXT: b LBB33_2 ; CHECK-OUTLINE-O0-NEXT: LBB33_2: ; %atomicrmw.end -; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #32] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #48 ; CHECK-OUTLINE-O0-NEXT: ret @@ -2564,17 +2564,17 @@ define i8 @atomicrmw_max_i8(ptr %ptr, i8 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: ldrb w8, [x0] -; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB34_1 ; CHECK-NOLSE-O0-NEXT: LBB34_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB34_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr w10, [sp, #28] ; 4-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w10, [sp, #28] ; 4-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: sxtb w9, w10 ; CHECK-NOLSE-O0-NEXT: subs w9, w9, w8, sxtb ; CHECK-NOLSE-O0-NEXT: csel w12, w10, w8, gt @@ -2590,15 +2590,15 @@ define i8 @atomicrmw_max_i8(ptr %ptr, i8 %rhs) { ; CHECK-NOLSE-O0-NEXT: cbnz w8, LBB34_2 ; CHECK-NOLSE-O0-NEXT: LBB34_4: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB34_1 Depth=1 -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: and w8, w9, #0xff ; CHECK-NOLSE-O0-NEXT: subs w8, w8, w10, uxtb ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB34_1 ; CHECK-NOLSE-O0-NEXT: b LBB34_5 ; CHECK-NOLSE-O0-NEXT: LBB34_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -2609,31 +2609,31 @@ define i8 @atomicrmw_max_i8(ptr %ptr, i8 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 48 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-OUTLINE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-OUTLINE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: ldrb w0, [x0] -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: b LBB34_1 ; CHECK-OUTLINE-O0-NEXT: LBB34_1: ; %atomicrmw.start ; CHECK-OUTLINE-O0-NEXT: ; =>This Inner Loop Header: Depth=1 -; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #28] ; 4-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #16] ; 8-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #8] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #28] ; 4-byte Reload +; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #16] ; 8-byte Reload +; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Reload +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #8] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: sxtb w9, w0 ; CHECK-OUTLINE-O0-NEXT: subs w9, w9, w8, sxtb ; CHECK-OUTLINE-O0-NEXT: csel w1, w0, w8, gt ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_cas1_rel -; CHECK-OUTLINE-O0-NEXT: ldr w9, [sp, #8] ; 4-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #12] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: ldr w9, [sp, #8] ; 4-byte Reload +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #12] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: and w8, w0, #0xff ; CHECK-OUTLINE-O0-NEXT: subs w8, w8, w9, uxtb ; CHECK-OUTLINE-O0-NEXT: cset w8, eq -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: tbz w8, #0, LBB34_1 ; CHECK-OUTLINE-O0-NEXT: b LBB34_2 ; CHECK-OUTLINE-O0-NEXT: LBB34_2: ; %atomicrmw.end -; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #32] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #48 ; CHECK-OUTLINE-O0-NEXT: ret @@ -2686,17 +2686,17 @@ define i8 @atomicrmw_umin_i8(ptr %ptr, i8 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: ldrb w8, [x0] -; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB35_1 ; CHECK-NOLSE-O0-NEXT: LBB35_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB35_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr w10, [sp, #28] ; 4-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w10, [sp, #28] ; 4-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: and w9, w10, #0xff ; CHECK-NOLSE-O0-NEXT: subs w9, w9, w8, uxtb ; CHECK-NOLSE-O0-NEXT: csel w12, w10, w8, ls @@ -2712,15 +2712,15 @@ define i8 @atomicrmw_umin_i8(ptr %ptr, i8 %rhs) { ; CHECK-NOLSE-O0-NEXT: cbnz w8, LBB35_2 ; CHECK-NOLSE-O0-NEXT: LBB35_4: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB35_1 Depth=1 -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: and w8, w9, #0xff ; CHECK-NOLSE-O0-NEXT: subs w8, w8, w10, uxtb ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB35_1 ; CHECK-NOLSE-O0-NEXT: b LBB35_5 ; CHECK-NOLSE-O0-NEXT: LBB35_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -2731,31 +2731,31 @@ define i8 @atomicrmw_umin_i8(ptr %ptr, i8 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 48 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-OUTLINE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-OUTLINE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: ldrb w0, [x0] -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: b LBB35_1 ; CHECK-OUTLINE-O0-NEXT: LBB35_1: ; %atomicrmw.start ; CHECK-OUTLINE-O0-NEXT: ; =>This Inner Loop Header: Depth=1 -; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #28] ; 4-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #16] ; 8-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #8] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #28] ; 4-byte Reload +; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #16] ; 8-byte Reload +; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Reload +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #8] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: and w9, w0, #0xff ; CHECK-OUTLINE-O0-NEXT: subs w9, w9, w8, uxtb ; CHECK-OUTLINE-O0-NEXT: csel w1, w0, w8, ls ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_cas1_acq_rel -; CHECK-OUTLINE-O0-NEXT: ldr w9, [sp, #8] ; 4-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #12] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: ldr w9, [sp, #8] ; 4-byte Reload +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #12] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: and w8, w0, #0xff ; CHECK-OUTLINE-O0-NEXT: subs w8, w8, w9, uxtb ; CHECK-OUTLINE-O0-NEXT: cset w8, eq -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: tbz w8, #0, LBB35_1 ; CHECK-OUTLINE-O0-NEXT: b LBB35_2 ; CHECK-OUTLINE-O0-NEXT: LBB35_2: ; %atomicrmw.end -; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #32] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #48 ; CHECK-OUTLINE-O0-NEXT: ret @@ -2808,17 +2808,17 @@ define i8 @atomicrmw_umax_i8(ptr %ptr, i8 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: ldrb w8, [x0] -; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB36_1 ; CHECK-NOLSE-O0-NEXT: LBB36_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB36_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr w10, [sp, #28] ; 4-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w10, [sp, #28] ; 4-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: and w9, w10, #0xff ; CHECK-NOLSE-O0-NEXT: subs w9, w9, w8, uxtb ; CHECK-NOLSE-O0-NEXT: csel w12, w10, w8, hi @@ -2834,15 +2834,15 @@ define i8 @atomicrmw_umax_i8(ptr %ptr, i8 %rhs) { ; CHECK-NOLSE-O0-NEXT: cbnz w8, LBB36_2 ; CHECK-NOLSE-O0-NEXT: LBB36_4: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB36_1 Depth=1 -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: and w8, w9, #0xff ; CHECK-NOLSE-O0-NEXT: subs w8, w8, w10, uxtb ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB36_1 ; CHECK-NOLSE-O0-NEXT: b LBB36_5 ; CHECK-NOLSE-O0-NEXT: LBB36_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -2853,31 +2853,31 @@ define i8 @atomicrmw_umax_i8(ptr %ptr, i8 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 48 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-OUTLINE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-OUTLINE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: ldrb w0, [x0] -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: b LBB36_1 ; CHECK-OUTLINE-O0-NEXT: LBB36_1: ; %atomicrmw.start ; CHECK-OUTLINE-O0-NEXT: ; =>This Inner Loop Header: Depth=1 -; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #28] ; 4-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #16] ; 8-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #8] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #28] ; 4-byte Reload +; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #16] ; 8-byte Reload +; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Reload +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #8] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: and w9, w0, #0xff ; CHECK-OUTLINE-O0-NEXT: subs w9, w9, w8, uxtb ; CHECK-OUTLINE-O0-NEXT: csel w1, w0, w8, hi ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_cas1_relax -; CHECK-OUTLINE-O0-NEXT: ldr w9, [sp, #8] ; 4-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #12] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: ldr w9, [sp, #8] ; 4-byte Reload +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #12] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: and w8, w0, #0xff ; CHECK-OUTLINE-O0-NEXT: subs w8, w8, w9, uxtb ; CHECK-OUTLINE-O0-NEXT: cset w8, eq -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: tbz w8, #0, LBB36_1 ; CHECK-OUTLINE-O0-NEXT: b LBB36_2 ; CHECK-OUTLINE-O0-NEXT: LBB36_2: ; %atomicrmw.end -; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #32] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #48 ; CHECK-OUTLINE-O0-NEXT: ret @@ -2925,17 +2925,17 @@ define i16 @atomicrmw_add_i16(ptr %ptr, i16 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: ldrh w8, [x0] -; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB37_1 ; CHECK-NOLSE-O0-NEXT: LBB37_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB37_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr w9, [sp, #24] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr w9, [sp, #24] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: add w12, w9, w8, uxth ; CHECK-NOLSE-O0-NEXT: LBB37_2: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; Parent Loop BB37_1 Depth=1 @@ -2949,15 +2949,15 @@ define i16 @atomicrmw_add_i16(ptr %ptr, i16 %rhs) { ; CHECK-NOLSE-O0-NEXT: cbnz w10, LBB37_2 ; CHECK-NOLSE-O0-NEXT: LBB37_4: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB37_1 Depth=1 -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: uxth w8, w8 ; CHECK-NOLSE-O0-NEXT: subs w8, w8, w9, uxth ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB37_1 ; CHECK-NOLSE-O0-NEXT: b LBB37_5 ; CHECK-NOLSE-O0-NEXT: LBB37_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -2968,9 +2968,9 @@ define i16 @atomicrmw_add_i16(ptr %ptr, i16 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 32 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov w0, w1 -; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_ldadd2_acq_rel ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #16] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #32 @@ -3018,17 +3018,17 @@ define i16 @atomicrmw_xchg_i16(ptr %ptr, i16 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: ldrh w8, [x0] -; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB38_1 ; CHECK-NOLSE-O0-NEXT: LBB38_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB38_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr w12, [sp, #24] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr w12, [sp, #24] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: LBB38_2: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; Parent Loop BB38_1 Depth=1 ; CHECK-NOLSE-O0-NEXT: ; => This Inner Loop Header: Depth=2 @@ -3041,15 +3041,15 @@ define i16 @atomicrmw_xchg_i16(ptr %ptr, i16 %rhs) { ; CHECK-NOLSE-O0-NEXT: cbnz w10, LBB38_2 ; CHECK-NOLSE-O0-NEXT: LBB38_4: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB38_1 Depth=1 -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: uxth w8, w8 ; CHECK-NOLSE-O0-NEXT: subs w8, w8, w9, uxth ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB38_1 ; CHECK-NOLSE-O0-NEXT: b LBB38_5 ; CHECK-NOLSE-O0-NEXT: LBB38_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -3060,9 +3060,9 @@ define i16 @atomicrmw_xchg_i16(ptr %ptr, i16 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 32 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov w0, w1 -; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_swp2_relax ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #16] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #32 @@ -3111,17 +3111,17 @@ define i16 @atomicrmw_sub_i16(ptr %ptr, i16 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: ldrh w8, [x0] -; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB39_1 ; CHECK-NOLSE-O0-NEXT: LBB39_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB39_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr w9, [sp, #24] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr w9, [sp, #24] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: subs w12, w8, w9 ; CHECK-NOLSE-O0-NEXT: LBB39_2: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; Parent Loop BB39_1 Depth=1 @@ -3135,15 +3135,15 @@ define i16 @atomicrmw_sub_i16(ptr %ptr, i16 %rhs) { ; CHECK-NOLSE-O0-NEXT: cbnz w10, LBB39_2 ; CHECK-NOLSE-O0-NEXT: LBB39_4: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB39_1 Depth=1 -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: uxth w8, w8 ; CHECK-NOLSE-O0-NEXT: subs w8, w8, w9, uxth ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB39_1 ; CHECK-NOLSE-O0-NEXT: b LBB39_5 ; CHECK-NOLSE-O0-NEXT: LBB39_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -3154,9 +3154,9 @@ define i16 @atomicrmw_sub_i16(ptr %ptr, i16 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 32 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov w9, w1 -; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: mov w8, wzr ; CHECK-OUTLINE-O0-NEXT: subs w0, w8, w9 ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_ldadd2_acq @@ -3209,17 +3209,17 @@ define i16 @atomicrmw_and_i16(ptr %ptr, i16 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: ldrh w8, [x0] -; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB40_1 ; CHECK-NOLSE-O0-NEXT: LBB40_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB40_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr w9, [sp, #24] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr w9, [sp, #24] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: and w12, w8, w9 ; CHECK-NOLSE-O0-NEXT: LBB40_2: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; Parent Loop BB40_1 Depth=1 @@ -3233,15 +3233,15 @@ define i16 @atomicrmw_and_i16(ptr %ptr, i16 %rhs) { ; CHECK-NOLSE-O0-NEXT: cbnz w10, LBB40_2 ; CHECK-NOLSE-O0-NEXT: LBB40_4: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB40_1 Depth=1 -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: uxth w8, w8 ; CHECK-NOLSE-O0-NEXT: subs w8, w8, w9, uxth ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB40_1 ; CHECK-NOLSE-O0-NEXT: b LBB40_5 ; CHECK-NOLSE-O0-NEXT: LBB40_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -3252,9 +3252,9 @@ define i16 @atomicrmw_and_i16(ptr %ptr, i16 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 32 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov w9, w1 -; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: mov w8, #-1 ; =0xffffffff ; CHECK-OUTLINE-O0-NEXT: eor w0, w8, w9 ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_ldclr2_rel @@ -3307,17 +3307,17 @@ define i16 @atomicrmw_or_i16(ptr %ptr, i16 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: ldrh w8, [x0] -; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB41_1 ; CHECK-NOLSE-O0-NEXT: LBB41_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB41_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr w9, [sp, #24] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr w9, [sp, #24] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: orr w12, w8, w9 ; CHECK-NOLSE-O0-NEXT: LBB41_2: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; Parent Loop BB41_1 Depth=1 @@ -3331,15 +3331,15 @@ define i16 @atomicrmw_or_i16(ptr %ptr, i16 %rhs) { ; CHECK-NOLSE-O0-NEXT: cbnz w10, LBB41_2 ; CHECK-NOLSE-O0-NEXT: LBB41_4: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB41_1 Depth=1 -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: uxth w8, w8 ; CHECK-NOLSE-O0-NEXT: subs w8, w8, w9, uxth ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB41_1 ; CHECK-NOLSE-O0-NEXT: b LBB41_5 ; CHECK-NOLSE-O0-NEXT: LBB41_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -3350,9 +3350,9 @@ define i16 @atomicrmw_or_i16(ptr %ptr, i16 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 32 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov w0, w1 -; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_ldset2_acq_rel ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #16] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #32 @@ -3401,17 +3401,17 @@ define i16 @atomicrmw_xor_i16(ptr %ptr, i16 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: ldrh w8, [x0] -; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB42_1 ; CHECK-NOLSE-O0-NEXT: LBB42_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB42_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr w9, [sp, #24] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr w9, [sp, #24] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: eor w12, w8, w9 ; CHECK-NOLSE-O0-NEXT: LBB42_2: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; Parent Loop BB42_1 Depth=1 @@ -3425,15 +3425,15 @@ define i16 @atomicrmw_xor_i16(ptr %ptr, i16 %rhs) { ; CHECK-NOLSE-O0-NEXT: cbnz w10, LBB42_2 ; CHECK-NOLSE-O0-NEXT: LBB42_4: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB42_1 Depth=1 -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: uxth w8, w8 ; CHECK-NOLSE-O0-NEXT: subs w8, w8, w9, uxth ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB42_1 ; CHECK-NOLSE-O0-NEXT: b LBB42_5 ; CHECK-NOLSE-O0-NEXT: LBB42_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -3444,9 +3444,9 @@ define i16 @atomicrmw_xor_i16(ptr %ptr, i16 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 32 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov w0, w1 -; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_ldeor2_relax ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #16] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #32 @@ -3498,17 +3498,17 @@ define i16 @atomicrmw_min_i16(ptr %ptr, i16 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: ldrh w8, [x0] -; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB43_1 ; CHECK-NOLSE-O0-NEXT: LBB43_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB43_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr w9, [sp, #24] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr w9, [sp, #24] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: sxth w10, w8 ; CHECK-NOLSE-O0-NEXT: subs w10, w10, w9, sxth ; CHECK-NOLSE-O0-NEXT: csel w12, w8, w9, le @@ -3524,15 +3524,15 @@ define i16 @atomicrmw_min_i16(ptr %ptr, i16 %rhs) { ; CHECK-NOLSE-O0-NEXT: cbnz w10, LBB43_2 ; CHECK-NOLSE-O0-NEXT: LBB43_4: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB43_1 Depth=1 -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: uxth w8, w8 ; CHECK-NOLSE-O0-NEXT: subs w8, w8, w9, uxth ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB43_1 ; CHECK-NOLSE-O0-NEXT: b LBB43_5 ; CHECK-NOLSE-O0-NEXT: LBB43_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -3543,31 +3543,31 @@ define i16 @atomicrmw_min_i16(ptr %ptr, i16 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 48 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-OUTLINE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-OUTLINE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: ldrh w0, [x0] -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: b LBB43_1 ; CHECK-OUTLINE-O0-NEXT: LBB43_1: ; %atomicrmw.start ; CHECK-OUTLINE-O0-NEXT: ; =>This Inner Loop Header: Depth=1 -; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #28] ; 4-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #16] ; 8-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #8] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #28] ; 4-byte Reload +; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #16] ; 8-byte Reload +; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Reload +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #8] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: sxth w9, w0 ; CHECK-OUTLINE-O0-NEXT: subs w9, w9, w8, sxth ; CHECK-OUTLINE-O0-NEXT: csel w1, w0, w8, le ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_cas2_acq -; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #8] ; 4-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #12] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #8] ; 4-byte Reload +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #12] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: uxth w8, w8 ; CHECK-OUTLINE-O0-NEXT: subs w8, w8, w0, uxth ; CHECK-OUTLINE-O0-NEXT: cset w8, eq -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: tbz w8, #0, LBB43_1 ; CHECK-OUTLINE-O0-NEXT: b LBB43_2 ; CHECK-OUTLINE-O0-NEXT: LBB43_2: ; %atomicrmw.end -; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #32] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #48 ; CHECK-OUTLINE-O0-NEXT: ret @@ -3618,17 +3618,17 @@ define i16 @atomicrmw_max_i16(ptr %ptr, i16 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: ldrh w8, [x0] -; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB44_1 ; CHECK-NOLSE-O0-NEXT: LBB44_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB44_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr w9, [sp, #24] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr w9, [sp, #24] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: sxth w10, w8 ; CHECK-NOLSE-O0-NEXT: subs w10, w10, w9, sxth ; CHECK-NOLSE-O0-NEXT: csel w12, w8, w9, gt @@ -3644,15 +3644,15 @@ define i16 @atomicrmw_max_i16(ptr %ptr, i16 %rhs) { ; CHECK-NOLSE-O0-NEXT: cbnz w10, LBB44_2 ; CHECK-NOLSE-O0-NEXT: LBB44_4: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB44_1 Depth=1 -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: uxth w8, w8 ; CHECK-NOLSE-O0-NEXT: subs w8, w8, w9, uxth ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB44_1 ; CHECK-NOLSE-O0-NEXT: b LBB44_5 ; CHECK-NOLSE-O0-NEXT: LBB44_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -3663,31 +3663,31 @@ define i16 @atomicrmw_max_i16(ptr %ptr, i16 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 48 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-OUTLINE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-OUTLINE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: ldrh w0, [x0] -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: b LBB44_1 ; CHECK-OUTLINE-O0-NEXT: LBB44_1: ; %atomicrmw.start ; CHECK-OUTLINE-O0-NEXT: ; =>This Inner Loop Header: Depth=1 -; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #28] ; 4-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #16] ; 8-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #8] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #28] ; 4-byte Reload +; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #16] ; 8-byte Reload +; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Reload +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #8] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: sxth w9, w0 ; CHECK-OUTLINE-O0-NEXT: subs w9, w9, w8, sxth ; CHECK-OUTLINE-O0-NEXT: csel w1, w0, w8, gt ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_cas2_rel -; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #8] ; 4-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #12] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #8] ; 4-byte Reload +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #12] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: uxth w8, w8 ; CHECK-OUTLINE-O0-NEXT: subs w8, w8, w0, uxth ; CHECK-OUTLINE-O0-NEXT: cset w8, eq -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: tbz w8, #0, LBB44_1 ; CHECK-OUTLINE-O0-NEXT: b LBB44_2 ; CHECK-OUTLINE-O0-NEXT: LBB44_2: ; %atomicrmw.end -; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #32] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #48 ; CHECK-OUTLINE-O0-NEXT: ret @@ -3740,17 +3740,17 @@ define i16 @atomicrmw_umin_i16(ptr %ptr, i16 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: ldrh w8, [x0] -; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB45_1 ; CHECK-NOLSE-O0-NEXT: LBB45_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB45_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr w9, [sp, #24] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr w9, [sp, #24] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: uxth w10, w8 ; CHECK-NOLSE-O0-NEXT: subs w10, w10, w9, uxth ; CHECK-NOLSE-O0-NEXT: csel w12, w8, w9, ls @@ -3766,15 +3766,15 @@ define i16 @atomicrmw_umin_i16(ptr %ptr, i16 %rhs) { ; CHECK-NOLSE-O0-NEXT: cbnz w10, LBB45_2 ; CHECK-NOLSE-O0-NEXT: LBB45_4: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB45_1 Depth=1 -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: uxth w8, w8 ; CHECK-NOLSE-O0-NEXT: subs w8, w8, w9, uxth ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB45_1 ; CHECK-NOLSE-O0-NEXT: b LBB45_5 ; CHECK-NOLSE-O0-NEXT: LBB45_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -3785,31 +3785,31 @@ define i16 @atomicrmw_umin_i16(ptr %ptr, i16 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 48 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-OUTLINE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-OUTLINE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: ldrh w0, [x0] -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: b LBB45_1 ; CHECK-OUTLINE-O0-NEXT: LBB45_1: ; %atomicrmw.start ; CHECK-OUTLINE-O0-NEXT: ; =>This Inner Loop Header: Depth=1 -; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #28] ; 4-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #16] ; 8-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #8] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #28] ; 4-byte Reload +; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #16] ; 8-byte Reload +; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Reload +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #8] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: uxth w9, w0 ; CHECK-OUTLINE-O0-NEXT: subs w9, w9, w8, uxth ; CHECK-OUTLINE-O0-NEXT: csel w1, w0, w8, ls ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_cas2_acq_rel -; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #8] ; 4-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #12] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #8] ; 4-byte Reload +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #12] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: uxth w8, w8 ; CHECK-OUTLINE-O0-NEXT: subs w8, w8, w0, uxth ; CHECK-OUTLINE-O0-NEXT: cset w8, eq -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: tbz w8, #0, LBB45_1 ; CHECK-OUTLINE-O0-NEXT: b LBB45_2 ; CHECK-OUTLINE-O0-NEXT: LBB45_2: ; %atomicrmw.end -; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #32] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #48 ; CHECK-OUTLINE-O0-NEXT: ret @@ -3862,17 +3862,17 @@ define i16 @atomicrmw_umax_i16(ptr %ptr, i16 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: ldrh w8, [x0] -; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB46_1 ; CHECK-NOLSE-O0-NEXT: LBB46_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB46_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr w9, [sp, #24] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr w9, [sp, #24] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: uxth w10, w8 ; CHECK-NOLSE-O0-NEXT: subs w10, w10, w9, uxth ; CHECK-NOLSE-O0-NEXT: csel w12, w8, w9, hi @@ -3888,15 +3888,15 @@ define i16 @atomicrmw_umax_i16(ptr %ptr, i16 %rhs) { ; CHECK-NOLSE-O0-NEXT: cbnz w10, LBB46_2 ; CHECK-NOLSE-O0-NEXT: LBB46_4: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB46_1 Depth=1 -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: uxth w8, w8 ; CHECK-NOLSE-O0-NEXT: subs w8, w8, w9, uxth ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB46_1 ; CHECK-NOLSE-O0-NEXT: b LBB46_5 ; CHECK-NOLSE-O0-NEXT: LBB46_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -3907,31 +3907,31 @@ define i16 @atomicrmw_umax_i16(ptr %ptr, i16 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 48 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-OUTLINE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-OUTLINE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: ldrh w0, [x0] -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: b LBB46_1 ; CHECK-OUTLINE-O0-NEXT: LBB46_1: ; %atomicrmw.start ; CHECK-OUTLINE-O0-NEXT: ; =>This Inner Loop Header: Depth=1 -; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #28] ; 4-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #16] ; 8-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #8] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #28] ; 4-byte Reload +; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #16] ; 8-byte Reload +; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Reload +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #8] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: uxth w9, w0 ; CHECK-OUTLINE-O0-NEXT: subs w9, w9, w8, uxth ; CHECK-OUTLINE-O0-NEXT: csel w1, w0, w8, hi ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_cas2_relax -; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #8] ; 4-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #12] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #8] ; 4-byte Reload +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #12] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: uxth w8, w8 ; CHECK-OUTLINE-O0-NEXT: subs w8, w8, w0, uxth ; CHECK-OUTLINE-O0-NEXT: cset w8, eq -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: tbz w8, #0, LBB46_1 ; CHECK-OUTLINE-O0-NEXT: b LBB46_2 ; CHECK-OUTLINE-O0-NEXT: LBB46_2: ; %atomicrmw.end -; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #32] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #48 ; CHECK-OUTLINE-O0-NEXT: ret @@ -3979,17 +3979,17 @@ define i32 @atomicrmw_add_i32(ptr %ptr, i32 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: ldr w8, [x0] -; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB47_1 ; CHECK-NOLSE-O0-NEXT: LBB47_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB47_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr w9, [sp, #24] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr w9, [sp, #24] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: add w12, w8, w9 ; CHECK-NOLSE-O0-NEXT: LBB47_2: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; Parent Loop BB47_1 Depth=1 @@ -4005,12 +4005,12 @@ define i32 @atomicrmw_add_i32(ptr %ptr, i32 %rhs) { ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB47_1 Depth=1 ; CHECK-NOLSE-O0-NEXT: subs w8, w9, w8 ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB47_1 ; CHECK-NOLSE-O0-NEXT: b LBB47_5 ; CHECK-NOLSE-O0-NEXT: LBB47_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -4021,9 +4021,9 @@ define i32 @atomicrmw_add_i32(ptr %ptr, i32 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 32 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov w0, w1 -; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_ldadd4_acq_rel ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #16] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #32 @@ -4072,17 +4072,17 @@ define i32 @atomicrmw_xchg_i32(ptr %ptr, i32 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: ldr w8, [x0] -; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB48_1 ; CHECK-NOLSE-O0-NEXT: LBB48_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB48_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr w12, [sp, #24] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr w12, [sp, #24] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: LBB48_2: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; Parent Loop BB48_1 Depth=1 ; CHECK-NOLSE-O0-NEXT: ; => This Inner Loop Header: Depth=2 @@ -4097,12 +4097,12 @@ define i32 @atomicrmw_xchg_i32(ptr %ptr, i32 %rhs) { ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB48_1 Depth=1 ; CHECK-NOLSE-O0-NEXT: subs w8, w9, w8 ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB48_1 ; CHECK-NOLSE-O0-NEXT: b LBB48_5 ; CHECK-NOLSE-O0-NEXT: LBB48_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -4113,9 +4113,9 @@ define i32 @atomicrmw_xchg_i32(ptr %ptr, i32 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 32 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov w0, w1 -; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_swp4_relax ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #16] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #32 @@ -4164,17 +4164,17 @@ define i32 @atomicrmw_sub_i32(ptr %ptr, i32 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: ldr w8, [x0] -; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB49_1 ; CHECK-NOLSE-O0-NEXT: LBB49_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB49_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr w9, [sp, #24] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr w9, [sp, #24] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: subs w12, w8, w9 ; CHECK-NOLSE-O0-NEXT: LBB49_2: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; Parent Loop BB49_1 Depth=1 @@ -4190,12 +4190,12 @@ define i32 @atomicrmw_sub_i32(ptr %ptr, i32 %rhs) { ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB49_1 Depth=1 ; CHECK-NOLSE-O0-NEXT: subs w8, w9, w8 ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB49_1 ; CHECK-NOLSE-O0-NEXT: b LBB49_5 ; CHECK-NOLSE-O0-NEXT: LBB49_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -4206,9 +4206,9 @@ define i32 @atomicrmw_sub_i32(ptr %ptr, i32 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 32 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov w9, w1 -; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: mov w8, wzr ; CHECK-OUTLINE-O0-NEXT: subs w0, w8, w9 ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_ldadd4_acq @@ -4261,17 +4261,17 @@ define i32 @atomicrmw_and_i32(ptr %ptr, i32 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: ldr w8, [x0] -; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB50_1 ; CHECK-NOLSE-O0-NEXT: LBB50_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB50_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr w9, [sp, #24] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr w9, [sp, #24] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: and w12, w8, w9 ; CHECK-NOLSE-O0-NEXT: LBB50_2: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; Parent Loop BB50_1 Depth=1 @@ -4287,12 +4287,12 @@ define i32 @atomicrmw_and_i32(ptr %ptr, i32 %rhs) { ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB50_1 Depth=1 ; CHECK-NOLSE-O0-NEXT: subs w8, w9, w8 ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB50_1 ; CHECK-NOLSE-O0-NEXT: b LBB50_5 ; CHECK-NOLSE-O0-NEXT: LBB50_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -4303,9 +4303,9 @@ define i32 @atomicrmw_and_i32(ptr %ptr, i32 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 32 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov w9, w1 -; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: mov w8, #-1 ; =0xffffffff ; CHECK-OUTLINE-O0-NEXT: eor w0, w8, w9 ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_ldclr4_rel @@ -4358,17 +4358,17 @@ define i32 @atomicrmw_or_i32(ptr %ptr, i32 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: ldr w8, [x0] -; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB51_1 ; CHECK-NOLSE-O0-NEXT: LBB51_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB51_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr w9, [sp, #24] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr w9, [sp, #24] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: orr w12, w8, w9 ; CHECK-NOLSE-O0-NEXT: LBB51_2: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; Parent Loop BB51_1 Depth=1 @@ -4384,12 +4384,12 @@ define i32 @atomicrmw_or_i32(ptr %ptr, i32 %rhs) { ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB51_1 Depth=1 ; CHECK-NOLSE-O0-NEXT: subs w8, w9, w8 ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB51_1 ; CHECK-NOLSE-O0-NEXT: b LBB51_5 ; CHECK-NOLSE-O0-NEXT: LBB51_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -4400,9 +4400,9 @@ define i32 @atomicrmw_or_i32(ptr %ptr, i32 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 32 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov w0, w1 -; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_ldset4_acq_rel ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #16] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #32 @@ -4451,17 +4451,17 @@ define i32 @atomicrmw_xor_i32(ptr %ptr, i32 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: ldr w8, [x0] -; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB52_1 ; CHECK-NOLSE-O0-NEXT: LBB52_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB52_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr w9, [sp, #24] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr w9, [sp, #24] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: eor w12, w8, w9 ; CHECK-NOLSE-O0-NEXT: LBB52_2: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; Parent Loop BB52_1 Depth=1 @@ -4477,12 +4477,12 @@ define i32 @atomicrmw_xor_i32(ptr %ptr, i32 %rhs) { ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB52_1 Depth=1 ; CHECK-NOLSE-O0-NEXT: subs w8, w9, w8 ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB52_1 ; CHECK-NOLSE-O0-NEXT: b LBB52_5 ; CHECK-NOLSE-O0-NEXT: LBB52_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -4493,9 +4493,9 @@ define i32 @atomicrmw_xor_i32(ptr %ptr, i32 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 32 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov w0, w1 -; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_ldeor4_relax ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #16] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #32 @@ -4545,17 +4545,17 @@ define i32 @atomicrmw_min_i32(ptr %ptr, i32 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: ldr w8, [x0] -; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB53_1 ; CHECK-NOLSE-O0-NEXT: LBB53_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB53_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr w9, [sp, #24] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr w9, [sp, #24] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: subs w10, w8, w9 ; CHECK-NOLSE-O0-NEXT: csel w12, w8, w9, le ; CHECK-NOLSE-O0-NEXT: LBB53_2: ; %atomicrmw.start @@ -4572,12 +4572,12 @@ define i32 @atomicrmw_min_i32(ptr %ptr, i32 %rhs) { ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB53_1 Depth=1 ; CHECK-NOLSE-O0-NEXT: subs w8, w9, w8 ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB53_1 ; CHECK-NOLSE-O0-NEXT: b LBB53_5 ; CHECK-NOLSE-O0-NEXT: LBB53_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -4588,29 +4588,29 @@ define i32 @atomicrmw_min_i32(ptr %ptr, i32 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 48 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-OUTLINE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-OUTLINE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: ldr w0, [x0] -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: b LBB53_1 ; CHECK-OUTLINE-O0-NEXT: LBB53_1: ; %atomicrmw.start ; CHECK-OUTLINE-O0-NEXT: ; =>This Inner Loop Header: Depth=1 -; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #28] ; 4-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #16] ; 8-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #8] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #28] ; 4-byte Reload +; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #16] ; 8-byte Reload +; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Reload +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #8] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: subs w9, w0, w8 ; CHECK-OUTLINE-O0-NEXT: csel w1, w0, w8, le ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_cas4_acq -; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #8] ; 4-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #8] ; 4-byte Reload ; CHECK-OUTLINE-O0-NEXT: subs w8, w0, w8 ; CHECK-OUTLINE-O0-NEXT: cset w8, eq -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #12] ; 4-byte Folded Spill -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #12] ; 4-byte Spill +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: tbz w8, #0, LBB53_1 ; CHECK-OUTLINE-O0-NEXT: b LBB53_2 ; CHECK-OUTLINE-O0-NEXT: LBB53_2: ; %atomicrmw.end -; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #32] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #48 ; CHECK-OUTLINE-O0-NEXT: ret @@ -4659,17 +4659,17 @@ define i32 @atomicrmw_max_i32(ptr %ptr, i32 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: ldr w8, [x0] -; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB54_1 ; CHECK-NOLSE-O0-NEXT: LBB54_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB54_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr w9, [sp, #24] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr w9, [sp, #24] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: subs w10, w8, w9 ; CHECK-NOLSE-O0-NEXT: csel w12, w8, w9, gt ; CHECK-NOLSE-O0-NEXT: LBB54_2: ; %atomicrmw.start @@ -4686,12 +4686,12 @@ define i32 @atomicrmw_max_i32(ptr %ptr, i32 %rhs) { ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB54_1 Depth=1 ; CHECK-NOLSE-O0-NEXT: subs w8, w9, w8 ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB54_1 ; CHECK-NOLSE-O0-NEXT: b LBB54_5 ; CHECK-NOLSE-O0-NEXT: LBB54_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -4702,29 +4702,29 @@ define i32 @atomicrmw_max_i32(ptr %ptr, i32 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 48 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-OUTLINE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-OUTLINE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: ldr w0, [x0] -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: b LBB54_1 ; CHECK-OUTLINE-O0-NEXT: LBB54_1: ; %atomicrmw.start ; CHECK-OUTLINE-O0-NEXT: ; =>This Inner Loop Header: Depth=1 -; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #28] ; 4-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #16] ; 8-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #8] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #28] ; 4-byte Reload +; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #16] ; 8-byte Reload +; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Reload +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #8] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: subs w9, w0, w8 ; CHECK-OUTLINE-O0-NEXT: csel w1, w0, w8, gt ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_cas4_rel -; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #8] ; 4-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #8] ; 4-byte Reload ; CHECK-OUTLINE-O0-NEXT: subs w8, w0, w8 ; CHECK-OUTLINE-O0-NEXT: cset w8, eq -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #12] ; 4-byte Folded Spill -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #12] ; 4-byte Spill +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: tbz w8, #0, LBB54_1 ; CHECK-OUTLINE-O0-NEXT: b LBB54_2 ; CHECK-OUTLINE-O0-NEXT: LBB54_2: ; %atomicrmw.end -; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #32] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #48 ; CHECK-OUTLINE-O0-NEXT: ret @@ -4773,17 +4773,17 @@ define i32 @atomicrmw_umin_i32(ptr %ptr, i32 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: ldr w8, [x0] -; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB55_1 ; CHECK-NOLSE-O0-NEXT: LBB55_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB55_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr w9, [sp, #24] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr w9, [sp, #24] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: subs w10, w8, w9 ; CHECK-NOLSE-O0-NEXT: csel w12, w8, w9, ls ; CHECK-NOLSE-O0-NEXT: LBB55_2: ; %atomicrmw.start @@ -4800,12 +4800,12 @@ define i32 @atomicrmw_umin_i32(ptr %ptr, i32 %rhs) { ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB55_1 Depth=1 ; CHECK-NOLSE-O0-NEXT: subs w8, w9, w8 ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB55_1 ; CHECK-NOLSE-O0-NEXT: b LBB55_5 ; CHECK-NOLSE-O0-NEXT: LBB55_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -4816,29 +4816,29 @@ define i32 @atomicrmw_umin_i32(ptr %ptr, i32 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 48 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-OUTLINE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-OUTLINE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: ldr w0, [x0] -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: b LBB55_1 ; CHECK-OUTLINE-O0-NEXT: LBB55_1: ; %atomicrmw.start ; CHECK-OUTLINE-O0-NEXT: ; =>This Inner Loop Header: Depth=1 -; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #28] ; 4-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #16] ; 8-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #8] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #28] ; 4-byte Reload +; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #16] ; 8-byte Reload +; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Reload +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #8] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: subs w9, w0, w8 ; CHECK-OUTLINE-O0-NEXT: csel w1, w0, w8, ls ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_cas4_acq_rel -; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #8] ; 4-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #8] ; 4-byte Reload ; CHECK-OUTLINE-O0-NEXT: subs w8, w0, w8 ; CHECK-OUTLINE-O0-NEXT: cset w8, eq -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #12] ; 4-byte Folded Spill -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #12] ; 4-byte Spill +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: tbz w8, #0, LBB55_1 ; CHECK-OUTLINE-O0-NEXT: b LBB55_2 ; CHECK-OUTLINE-O0-NEXT: LBB55_2: ; %atomicrmw.end -; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #32] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #48 ; CHECK-OUTLINE-O0-NEXT: ret @@ -4887,17 +4887,17 @@ define i32 @atomicrmw_umax_i32(ptr %ptr, i32 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: ldr w8, [x0] -; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w8, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB56_1 ; CHECK-NOLSE-O0-NEXT: LBB56_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB56_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr w9, [sp, #24] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w8, [sp, #28] ; 4-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #16] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr w9, [sp, #24] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: subs w10, w8, w9 ; CHECK-NOLSE-O0-NEXT: csel w12, w8, w9, hi ; CHECK-NOLSE-O0-NEXT: LBB56_2: ; %atomicrmw.start @@ -4914,12 +4914,12 @@ define i32 @atomicrmw_umax_i32(ptr %ptr, i32 %rhs) { ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB56_1 Depth=1 ; CHECK-NOLSE-O0-NEXT: subs w8, w9, w8 ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #12] ; 4-byte Spill +; CHECK-NOLSE-O0-NEXT: str w9, [sp, #28] ; 4-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB56_1 ; CHECK-NOLSE-O0-NEXT: b LBB56_5 ; CHECK-NOLSE-O0-NEXT: LBB56_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -4930,29 +4930,29 @@ define i32 @atomicrmw_umax_i32(ptr %ptr, i32 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 48 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-OUTLINE-O0-NEXT: str w1, [sp, #24] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-OUTLINE-O0-NEXT: str w1, [sp, #24] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: ldr w0, [x0] -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: b LBB56_1 ; CHECK-OUTLINE-O0-NEXT: LBB56_1: ; %atomicrmw.start ; CHECK-OUTLINE-O0-NEXT: ; =>This Inner Loop Header: Depth=1 -; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #28] ; 4-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #16] ; 8-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #8] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #28] ; 4-byte Reload +; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #16] ; 8-byte Reload +; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #24] ; 4-byte Reload +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #8] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: subs w9, w0, w8 ; CHECK-OUTLINE-O0-NEXT: csel w1, w0, w8, hi ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_cas4_relax -; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #8] ; 4-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr w8, [sp, #8] ; 4-byte Reload ; CHECK-OUTLINE-O0-NEXT: subs w8, w0, w8 ; CHECK-OUTLINE-O0-NEXT: cset w8, eq -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #12] ; 4-byte Folded Spill -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #12] ; 4-byte Spill +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #28] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: tbz w8, #0, LBB56_1 ; CHECK-OUTLINE-O0-NEXT: b LBB56_2 ; CHECK-OUTLINE-O0-NEXT: LBB56_2: ; %atomicrmw.end -; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #32] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #48 ; CHECK-OUTLINE-O0-NEXT: ret @@ -5000,17 +5000,17 @@ define i64 @atomicrmw_add_i64(ptr %ptr, i64 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str x1, [sp, #16] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str x1, [sp, #16] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: ldr x8, [x0] -; CHECK-NOLSE-O0-NEXT: str x8, [sp, #24] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x8, [sp, #24] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB57_1 ; CHECK-NOLSE-O0-NEXT: LBB57_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB57_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr x8, [sp, #24] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #8] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x9, [sp, #16] ; 8-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr x8, [sp, #24] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #8] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x9, [sp, #16] ; 8-byte Reload ; CHECK-NOLSE-O0-NEXT: add x12, x8, x9 ; CHECK-NOLSE-O0-NEXT: LBB57_2: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; Parent Loop BB57_1 Depth=1 @@ -5026,12 +5026,12 @@ define i64 @atomicrmw_add_i64(ptr %ptr, i64 %rhs) { ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB57_1 Depth=1 ; CHECK-NOLSE-O0-NEXT: subs x8, x9, x8 ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str x9, [sp] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str x9, [sp, #24] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x9, [sp] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str x9, [sp, #24] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB57_1 ; CHECK-NOLSE-O0-NEXT: b LBB57_5 ; CHECK-NOLSE-O0-NEXT: LBB57_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr x0, [sp] ; 8-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr x0, [sp] ; 8-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -5042,9 +5042,9 @@ define i64 @atomicrmw_add_i64(ptr %ptr, i64 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 32 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov x0, x1 -; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_ldadd8_acq_rel ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #16] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #32 @@ -5092,17 +5092,17 @@ define i64 @atomicrmw_xchg_i64(ptr %ptr, i64 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str x1, [sp, #16] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str x1, [sp, #16] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: ldr x8, [x0] -; CHECK-NOLSE-O0-NEXT: str x8, [sp, #24] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x8, [sp, #24] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB58_1 ; CHECK-NOLSE-O0-NEXT: LBB58_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB58_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr x8, [sp, #24] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #8] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x12, [sp, #16] ; 8-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr x8, [sp, #24] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #8] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x12, [sp, #16] ; 8-byte Reload ; CHECK-NOLSE-O0-NEXT: LBB58_2: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; Parent Loop BB58_1 Depth=1 ; CHECK-NOLSE-O0-NEXT: ; => This Inner Loop Header: Depth=2 @@ -5117,12 +5117,12 @@ define i64 @atomicrmw_xchg_i64(ptr %ptr, i64 %rhs) { ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB58_1 Depth=1 ; CHECK-NOLSE-O0-NEXT: subs x8, x9, x8 ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str x9, [sp] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str x9, [sp, #24] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x9, [sp] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str x9, [sp, #24] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB58_1 ; CHECK-NOLSE-O0-NEXT: b LBB58_5 ; CHECK-NOLSE-O0-NEXT: LBB58_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr x0, [sp] ; 8-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr x0, [sp] ; 8-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -5133,9 +5133,9 @@ define i64 @atomicrmw_xchg_i64(ptr %ptr, i64 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 32 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov x0, x1 -; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_swp8_relax ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #16] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #32 @@ -5184,17 +5184,17 @@ define i64 @atomicrmw_sub_i64(ptr %ptr, i64 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str x1, [sp, #16] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str x1, [sp, #16] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: ldr x8, [x0] -; CHECK-NOLSE-O0-NEXT: str x8, [sp, #24] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x8, [sp, #24] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB59_1 ; CHECK-NOLSE-O0-NEXT: LBB59_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB59_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr x8, [sp, #24] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #8] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x9, [sp, #16] ; 8-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr x8, [sp, #24] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #8] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x9, [sp, #16] ; 8-byte Reload ; CHECK-NOLSE-O0-NEXT: subs x12, x8, x9 ; CHECK-NOLSE-O0-NEXT: LBB59_2: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; Parent Loop BB59_1 Depth=1 @@ -5210,12 +5210,12 @@ define i64 @atomicrmw_sub_i64(ptr %ptr, i64 %rhs) { ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB59_1 Depth=1 ; CHECK-NOLSE-O0-NEXT: subs x8, x9, x8 ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str x9, [sp] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str x9, [sp, #24] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x9, [sp] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str x9, [sp, #24] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB59_1 ; CHECK-NOLSE-O0-NEXT: b LBB59_5 ; CHECK-NOLSE-O0-NEXT: LBB59_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr x0, [sp] ; 8-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr x0, [sp] ; 8-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -5226,9 +5226,9 @@ define i64 @atomicrmw_sub_i64(ptr %ptr, i64 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 32 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov x9, x1 -; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: mov x8, xzr ; CHECK-OUTLINE-O0-NEXT: subs x0, x8, x9 ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_ldadd8_acq @@ -5281,17 +5281,17 @@ define i64 @atomicrmw_and_i64(ptr %ptr, i64 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str x1, [sp, #16] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str x1, [sp, #16] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: ldr x8, [x0] -; CHECK-NOLSE-O0-NEXT: str x8, [sp, #24] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x8, [sp, #24] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB60_1 ; CHECK-NOLSE-O0-NEXT: LBB60_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB60_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr x8, [sp, #24] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #8] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x9, [sp, #16] ; 8-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr x8, [sp, #24] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #8] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x9, [sp, #16] ; 8-byte Reload ; CHECK-NOLSE-O0-NEXT: and x12, x8, x9 ; CHECK-NOLSE-O0-NEXT: LBB60_2: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; Parent Loop BB60_1 Depth=1 @@ -5307,12 +5307,12 @@ define i64 @atomicrmw_and_i64(ptr %ptr, i64 %rhs) { ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB60_1 Depth=1 ; CHECK-NOLSE-O0-NEXT: subs x8, x9, x8 ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str x9, [sp] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str x9, [sp, #24] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x9, [sp] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str x9, [sp, #24] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB60_1 ; CHECK-NOLSE-O0-NEXT: b LBB60_5 ; CHECK-NOLSE-O0-NEXT: LBB60_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr x0, [sp] ; 8-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr x0, [sp] ; 8-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -5323,9 +5323,9 @@ define i64 @atomicrmw_and_i64(ptr %ptr, i64 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 32 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov x9, x1 -; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: mov x8, #-1 ; =0xffffffffffffffff ; CHECK-OUTLINE-O0-NEXT: eor x0, x8, x9 ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_ldclr8_rel @@ -5378,17 +5378,17 @@ define i64 @atomicrmw_or_i64(ptr %ptr, i64 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str x1, [sp, #16] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str x1, [sp, #16] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: ldr x8, [x0] -; CHECK-NOLSE-O0-NEXT: str x8, [sp, #24] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x8, [sp, #24] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB61_1 ; CHECK-NOLSE-O0-NEXT: LBB61_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB61_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr x8, [sp, #24] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #8] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x9, [sp, #16] ; 8-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr x8, [sp, #24] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #8] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x9, [sp, #16] ; 8-byte Reload ; CHECK-NOLSE-O0-NEXT: orr x12, x8, x9 ; CHECK-NOLSE-O0-NEXT: LBB61_2: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; Parent Loop BB61_1 Depth=1 @@ -5404,12 +5404,12 @@ define i64 @atomicrmw_or_i64(ptr %ptr, i64 %rhs) { ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB61_1 Depth=1 ; CHECK-NOLSE-O0-NEXT: subs x8, x9, x8 ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str x9, [sp] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str x9, [sp, #24] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x9, [sp] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str x9, [sp, #24] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB61_1 ; CHECK-NOLSE-O0-NEXT: b LBB61_5 ; CHECK-NOLSE-O0-NEXT: LBB61_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr x0, [sp] ; 8-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr x0, [sp] ; 8-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -5420,9 +5420,9 @@ define i64 @atomicrmw_or_i64(ptr %ptr, i64 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 32 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov x0, x1 -; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_ldset8_acq_rel ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #16] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #32 @@ -5471,17 +5471,17 @@ define i64 @atomicrmw_xor_i64(ptr %ptr, i64 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str x1, [sp, #16] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str x1, [sp, #16] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: ldr x8, [x0] -; CHECK-NOLSE-O0-NEXT: str x8, [sp, #24] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x8, [sp, #24] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB62_1 ; CHECK-NOLSE-O0-NEXT: LBB62_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB62_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr x8, [sp, #24] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #8] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x9, [sp, #16] ; 8-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr x8, [sp, #24] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #8] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x9, [sp, #16] ; 8-byte Reload ; CHECK-NOLSE-O0-NEXT: eor x12, x8, x9 ; CHECK-NOLSE-O0-NEXT: LBB62_2: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; Parent Loop BB62_1 Depth=1 @@ -5497,12 +5497,12 @@ define i64 @atomicrmw_xor_i64(ptr %ptr, i64 %rhs) { ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB62_1 Depth=1 ; CHECK-NOLSE-O0-NEXT: subs x8, x9, x8 ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str x9, [sp] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str x9, [sp, #24] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x9, [sp] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str x9, [sp, #24] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB62_1 ; CHECK-NOLSE-O0-NEXT: b LBB62_5 ; CHECK-NOLSE-O0-NEXT: LBB62_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr x0, [sp] ; 8-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr x0, [sp] ; 8-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -5513,9 +5513,9 @@ define i64 @atomicrmw_xor_i64(ptr %ptr, i64 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 32 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov x0, x1 -; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_ldeor8_relax ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #16] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #32 @@ -5565,17 +5565,17 @@ define i64 @atomicrmw_min_i64(ptr %ptr, i64 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str x1, [sp, #16] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str x1, [sp, #16] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: ldr x8, [x0] -; CHECK-NOLSE-O0-NEXT: str x8, [sp, #24] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x8, [sp, #24] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB63_1 ; CHECK-NOLSE-O0-NEXT: LBB63_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB63_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr x8, [sp, #24] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #8] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x9, [sp, #16] ; 8-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr x8, [sp, #24] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #8] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x9, [sp, #16] ; 8-byte Reload ; CHECK-NOLSE-O0-NEXT: subs x10, x8, x9 ; CHECK-NOLSE-O0-NEXT: csel x12, x8, x9, le ; CHECK-NOLSE-O0-NEXT: LBB63_2: ; %atomicrmw.start @@ -5592,12 +5592,12 @@ define i64 @atomicrmw_min_i64(ptr %ptr, i64 %rhs) { ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB63_1 Depth=1 ; CHECK-NOLSE-O0-NEXT: subs x8, x9, x8 ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str x9, [sp] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str x9, [sp, #24] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x9, [sp] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str x9, [sp, #24] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB63_1 ; CHECK-NOLSE-O0-NEXT: b LBB63_5 ; CHECK-NOLSE-O0-NEXT: LBB63_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr x0, [sp] ; 8-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr x0, [sp] ; 8-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -5608,29 +5608,29 @@ define i64 @atomicrmw_min_i64(ptr %ptr, i64 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 64 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #24] ; 8-byte Folded Spill -; CHECK-OUTLINE-O0-NEXT: str x1, [sp, #32] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #24] ; 8-byte Spill +; CHECK-OUTLINE-O0-NEXT: str x1, [sp, #32] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: ldr x0, [x0] -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #40] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #40] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: b LBB63_1 ; CHECK-OUTLINE-O0-NEXT: LBB63_1: ; %atomicrmw.start ; CHECK-OUTLINE-O0-NEXT: ; =>This Inner Loop Header: Depth=1 -; CHECK-OUTLINE-O0-NEXT: ldr x0, [sp, #40] ; 8-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #24] ; 8-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: ldr x8, [sp, #32] ; 8-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: ldr x0, [sp, #40] ; 8-byte Reload +; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #24] ; 8-byte Reload +; CHECK-OUTLINE-O0-NEXT: ldr x8, [sp, #32] ; 8-byte Reload +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: subs x9, x0, x8 ; CHECK-OUTLINE-O0-NEXT: csel x1, x0, x8, le ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_cas8_acq -; CHECK-OUTLINE-O0-NEXT: ldr x8, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x8, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: subs x8, x0, x8 ; CHECK-OUTLINE-O0-NEXT: cset w8, eq -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #40] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #40] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: tbz w8, #0, LBB63_1 ; CHECK-OUTLINE-O0-NEXT: b LBB63_2 ; CHECK-OUTLINE-O0-NEXT: LBB63_2: ; %atomicrmw.end -; CHECK-OUTLINE-O0-NEXT: ldr x0, [sp, #16] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x0, [sp, #16] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #48] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #64 ; CHECK-OUTLINE-O0-NEXT: ret @@ -5679,17 +5679,17 @@ define i64 @atomicrmw_max_i64(ptr %ptr, i64 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str x1, [sp, #16] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str x1, [sp, #16] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: ldr x8, [x0] -; CHECK-NOLSE-O0-NEXT: str x8, [sp, #24] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x8, [sp, #24] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB64_1 ; CHECK-NOLSE-O0-NEXT: LBB64_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB64_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr x8, [sp, #24] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #8] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x9, [sp, #16] ; 8-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr x8, [sp, #24] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #8] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x9, [sp, #16] ; 8-byte Reload ; CHECK-NOLSE-O0-NEXT: subs x10, x8, x9 ; CHECK-NOLSE-O0-NEXT: csel x12, x8, x9, gt ; CHECK-NOLSE-O0-NEXT: LBB64_2: ; %atomicrmw.start @@ -5706,12 +5706,12 @@ define i64 @atomicrmw_max_i64(ptr %ptr, i64 %rhs) { ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB64_1 Depth=1 ; CHECK-NOLSE-O0-NEXT: subs x8, x9, x8 ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str x9, [sp] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str x9, [sp, #24] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x9, [sp] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str x9, [sp, #24] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB64_1 ; CHECK-NOLSE-O0-NEXT: b LBB64_5 ; CHECK-NOLSE-O0-NEXT: LBB64_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr x0, [sp] ; 8-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr x0, [sp] ; 8-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -5722,29 +5722,29 @@ define i64 @atomicrmw_max_i64(ptr %ptr, i64 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 64 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #24] ; 8-byte Folded Spill -; CHECK-OUTLINE-O0-NEXT: str x1, [sp, #32] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #24] ; 8-byte Spill +; CHECK-OUTLINE-O0-NEXT: str x1, [sp, #32] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: ldr x0, [x0] -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #40] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #40] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: b LBB64_1 ; CHECK-OUTLINE-O0-NEXT: LBB64_1: ; %atomicrmw.start ; CHECK-OUTLINE-O0-NEXT: ; =>This Inner Loop Header: Depth=1 -; CHECK-OUTLINE-O0-NEXT: ldr x0, [sp, #40] ; 8-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #24] ; 8-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: ldr x8, [sp, #32] ; 8-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: ldr x0, [sp, #40] ; 8-byte Reload +; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #24] ; 8-byte Reload +; CHECK-OUTLINE-O0-NEXT: ldr x8, [sp, #32] ; 8-byte Reload +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: subs x9, x0, x8 ; CHECK-OUTLINE-O0-NEXT: csel x1, x0, x8, gt ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_cas8_rel -; CHECK-OUTLINE-O0-NEXT: ldr x8, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x8, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: subs x8, x0, x8 ; CHECK-OUTLINE-O0-NEXT: cset w8, eq -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #40] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #40] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: tbz w8, #0, LBB64_1 ; CHECK-OUTLINE-O0-NEXT: b LBB64_2 ; CHECK-OUTLINE-O0-NEXT: LBB64_2: ; %atomicrmw.end -; CHECK-OUTLINE-O0-NEXT: ldr x0, [sp, #16] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x0, [sp, #16] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #48] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #64 ; CHECK-OUTLINE-O0-NEXT: ret @@ -5793,17 +5793,17 @@ define i64 @atomicrmw_umin_i64(ptr %ptr, i64 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str x1, [sp, #16] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str x1, [sp, #16] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: ldr x8, [x0] -; CHECK-NOLSE-O0-NEXT: str x8, [sp, #24] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x8, [sp, #24] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB65_1 ; CHECK-NOLSE-O0-NEXT: LBB65_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB65_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr x8, [sp, #24] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #8] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x9, [sp, #16] ; 8-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr x8, [sp, #24] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #8] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x9, [sp, #16] ; 8-byte Reload ; CHECK-NOLSE-O0-NEXT: subs x10, x8, x9 ; CHECK-NOLSE-O0-NEXT: csel x12, x8, x9, ls ; CHECK-NOLSE-O0-NEXT: LBB65_2: ; %atomicrmw.start @@ -5820,12 +5820,12 @@ define i64 @atomicrmw_umin_i64(ptr %ptr, i64 %rhs) { ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB65_1 Depth=1 ; CHECK-NOLSE-O0-NEXT: subs x8, x9, x8 ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str x9, [sp] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str x9, [sp, #24] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x9, [sp] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str x9, [sp, #24] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB65_1 ; CHECK-NOLSE-O0-NEXT: b LBB65_5 ; CHECK-NOLSE-O0-NEXT: LBB65_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr x0, [sp] ; 8-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr x0, [sp] ; 8-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -5836,29 +5836,29 @@ define i64 @atomicrmw_umin_i64(ptr %ptr, i64 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 64 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #24] ; 8-byte Folded Spill -; CHECK-OUTLINE-O0-NEXT: str x1, [sp, #32] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #24] ; 8-byte Spill +; CHECK-OUTLINE-O0-NEXT: str x1, [sp, #32] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: ldr x0, [x0] -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #40] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #40] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: b LBB65_1 ; CHECK-OUTLINE-O0-NEXT: LBB65_1: ; %atomicrmw.start ; CHECK-OUTLINE-O0-NEXT: ; =>This Inner Loop Header: Depth=1 -; CHECK-OUTLINE-O0-NEXT: ldr x0, [sp, #40] ; 8-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #24] ; 8-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: ldr x8, [sp, #32] ; 8-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: ldr x0, [sp, #40] ; 8-byte Reload +; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #24] ; 8-byte Reload +; CHECK-OUTLINE-O0-NEXT: ldr x8, [sp, #32] ; 8-byte Reload +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: subs x9, x0, x8 ; CHECK-OUTLINE-O0-NEXT: csel x1, x0, x8, ls ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_cas8_acq_rel -; CHECK-OUTLINE-O0-NEXT: ldr x8, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x8, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: subs x8, x0, x8 ; CHECK-OUTLINE-O0-NEXT: cset w8, eq -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #40] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #40] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: tbz w8, #0, LBB65_1 ; CHECK-OUTLINE-O0-NEXT: b LBB65_2 ; CHECK-OUTLINE-O0-NEXT: LBB65_2: ; %atomicrmw.end -; CHECK-OUTLINE-O0-NEXT: ldr x0, [sp, #16] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x0, [sp, #16] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #48] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #64 ; CHECK-OUTLINE-O0-NEXT: ret @@ -5907,17 +5907,17 @@ define i64 @atomicrmw_umax_i64(ptr %ptr, i64 %rhs) { ; CHECK-NOLSE-O0: ; %bb.0: ; CHECK-NOLSE-O0-NEXT: sub sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NOLSE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str x1, [sp, #16] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str x1, [sp, #16] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: ldr x8, [x0] -; CHECK-NOLSE-O0-NEXT: str x8, [sp, #24] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x8, [sp, #24] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: b LBB66_1 ; CHECK-NOLSE-O0-NEXT: LBB66_1: ; %atomicrmw.start ; CHECK-NOLSE-O0-NEXT: ; =>This Loop Header: Depth=1 ; CHECK-NOLSE-O0-NEXT: ; Child Loop BB66_2 Depth 2 -; CHECK-NOLSE-O0-NEXT: ldr x8, [sp, #24] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #8] ; 8-byte Folded Reload -; CHECK-NOLSE-O0-NEXT: ldr x9, [sp, #16] ; 8-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr x8, [sp, #24] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x11, [sp, #8] ; 8-byte Reload +; CHECK-NOLSE-O0-NEXT: ldr x9, [sp, #16] ; 8-byte Reload ; CHECK-NOLSE-O0-NEXT: subs x10, x8, x9 ; CHECK-NOLSE-O0-NEXT: csel x12, x8, x9, hi ; CHECK-NOLSE-O0-NEXT: LBB66_2: ; %atomicrmw.start @@ -5934,12 +5934,12 @@ define i64 @atomicrmw_umax_i64(ptr %ptr, i64 %rhs) { ; CHECK-NOLSE-O0-NEXT: ; in Loop: Header=BB66_1 Depth=1 ; CHECK-NOLSE-O0-NEXT: subs x8, x9, x8 ; CHECK-NOLSE-O0-NEXT: cset w8, eq -; CHECK-NOLSE-O0-NEXT: str x9, [sp] ; 8-byte Folded Spill -; CHECK-NOLSE-O0-NEXT: str x9, [sp, #24] ; 8-byte Folded Spill +; CHECK-NOLSE-O0-NEXT: str x9, [sp] ; 8-byte Spill +; CHECK-NOLSE-O0-NEXT: str x9, [sp, #24] ; 8-byte Spill ; CHECK-NOLSE-O0-NEXT: tbz w8, #0, LBB66_1 ; CHECK-NOLSE-O0-NEXT: b LBB66_5 ; CHECK-NOLSE-O0-NEXT: LBB66_5: ; %atomicrmw.end -; CHECK-NOLSE-O0-NEXT: ldr x0, [sp] ; 8-byte Folded Reload +; CHECK-NOLSE-O0-NEXT: ldr x0, [sp] ; 8-byte Reload ; CHECK-NOLSE-O0-NEXT: add sp, sp, #32 ; CHECK-NOLSE-O0-NEXT: ret ; @@ -5950,29 +5950,29 @@ define i64 @atomicrmw_umax_i64(ptr %ptr, i64 %rhs) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 64 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #24] ; 8-byte Folded Spill -; CHECK-OUTLINE-O0-NEXT: str x1, [sp, #32] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #24] ; 8-byte Spill +; CHECK-OUTLINE-O0-NEXT: str x1, [sp, #32] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: ldr x0, [x0] -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #40] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #40] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: b LBB66_1 ; CHECK-OUTLINE-O0-NEXT: LBB66_1: ; %atomicrmw.start ; CHECK-OUTLINE-O0-NEXT: ; =>This Inner Loop Header: Depth=1 -; CHECK-OUTLINE-O0-NEXT: ldr x0, [sp, #40] ; 8-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #24] ; 8-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: ldr x8, [sp, #32] ; 8-byte Folded Reload -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: ldr x0, [sp, #40] ; 8-byte Reload +; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp, #24] ; 8-byte Reload +; CHECK-OUTLINE-O0-NEXT: ldr x8, [sp, #32] ; 8-byte Reload +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: subs x9, x0, x8 ; CHECK-OUTLINE-O0-NEXT: csel x1, x0, x8, hi ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_cas8_relax -; CHECK-OUTLINE-O0-NEXT: ldr x8, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x8, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: subs x8, x0, x8 ; CHECK-OUTLINE-O0-NEXT: cset w8, eq -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #40] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #16] ; 8-byte Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #40] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: tbz w8, #0, LBB66_1 ; CHECK-OUTLINE-O0-NEXT: b LBB66_2 ; CHECK-OUTLINE-O0-NEXT: LBB66_2: ; %atomicrmw.end -; CHECK-OUTLINE-O0-NEXT: ldr x0, [sp, #16] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x0, [sp, #16] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #48] ; 16-byte Folded Reload ; CHECK-OUTLINE-O0-NEXT: add sp, sp, #64 ; CHECK-OUTLINE-O0-NEXT: ret @@ -6061,13 +6061,13 @@ define { i8, i1 } @cmpxchg_i8(ptr %ptr, i8 %desired, i8 %new) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 32 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov w0, w1 -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #12] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #12] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov w1, w2 -; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_cas1_relax -; CHECK-OUTLINE-O0-NEXT: ldr w1, [sp, #12] ; 4-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr w1, [sp, #12] ; 4-byte Reload ; CHECK-OUTLINE-O0-NEXT: and w8, w0, #0xff ; CHECK-OUTLINE-O0-NEXT: subs w8, w8, w1, uxtb ; CHECK-OUTLINE-O0-NEXT: cset w1, eq @@ -6169,13 +6169,13 @@ define { i16, i1 } @cmpxchg_i16(ptr %ptr, i16 %desired, i16 %new) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 32 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov w0, w1 -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #12] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #12] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov w1, w2 -; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_cas2_relax -; CHECK-OUTLINE-O0-NEXT: ldr w1, [sp, #12] ; 4-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr w1, [sp, #12] ; 4-byte Reload ; CHECK-OUTLINE-O0-NEXT: and w8, w0, #0xffff ; CHECK-OUTLINE-O0-NEXT: subs w8, w8, w1, uxth ; CHECK-OUTLINE-O0-NEXT: cset w1, eq @@ -6274,13 +6274,13 @@ define { i32, i1 } @cmpxchg_i32(ptr %ptr, i32 %desired, i32 %new) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 32 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov w0, w1 -; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #12] ; 4-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str w0, [sp, #12] ; 4-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov w1, w2 -; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_cas4_relax -; CHECK-OUTLINE-O0-NEXT: ldr w1, [sp, #12] ; 4-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr w1, [sp, #12] ; 4-byte Reload ; CHECK-OUTLINE-O0-NEXT: subs w8, w0, w1 ; CHECK-OUTLINE-O0-NEXT: cset w1, eq ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #16] ; 16-byte Folded Reload @@ -6374,13 +6374,13 @@ define { i64, i1 } @cmpxchg_i64(ptr %ptr, i64 %desired, i64 %new) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 32 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov x0, x1 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov x1, x2 -; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_cas8_relax -; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: subs x8, x0, x1 ; CHECK-OUTLINE-O0-NEXT: cset w1, eq ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #16] ; 16-byte Folded Reload @@ -6474,13 +6474,13 @@ define { ptr, i1 } @cmpxchg_ptr(ptr %ptr, ptr %desired, ptr %new) { ; CHECK-OUTLINE-O0-NEXT: .cfi_def_cfa_offset 32 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w30, -8 ; CHECK-OUTLINE-O0-NEXT: .cfi_offset w29, -16 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov x0, x1 -; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-OUTLINE-O0-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-OUTLINE-O0-NEXT: mov x1, x2 -; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x2, [sp] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: bl ___aarch64_cas8_relax -; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Folded Reload +; CHECK-OUTLINE-O0-NEXT: ldr x1, [sp, #8] ; 8-byte Reload ; CHECK-OUTLINE-O0-NEXT: subs x8, x0, x1 ; CHECK-OUTLINE-O0-NEXT: cset w1, eq ; CHECK-OUTLINE-O0-NEXT: ldp x29, x30, [sp, #16] ; 16-byte Folded Reload diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/atomic-anyextending-load-crash.ll b/llvm/test/CodeGen/AArch64/GlobalISel/atomic-anyextending-load-crash.ll index 4bb4e4882410d..a3d57f05d9c60 100644 --- a/llvm/test/CodeGen/AArch64/GlobalISel/atomic-anyextending-load-crash.ll +++ b/llvm/test/CodeGen/AArch64/GlobalISel/atomic-anyextending-load-crash.ll @@ -12,12 +12,12 @@ define void @test(ptr %0) { ; CHECK-NEXT: .cfi_offset w30, -8 ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: ldar w8, [x0] -; CHECK-NEXT: str w8, [sp, #116] ; 4-byte Folded Spill +; CHECK-NEXT: str w8, [sp, #116] ; 4-byte Spill ; CHECK-NEXT: mov x8, #0 ; =0x0 -; CHECK-NEXT: str x8, [sp, #120] ; 8-byte Folded Spill +; CHECK-NEXT: str x8, [sp, #120] ; 8-byte Spill ; CHECK-NEXT: blr x8 -; CHECK-NEXT: ldr w11, [sp, #116] ; 4-byte Folded Reload -; CHECK-NEXT: ldr x8, [sp, #120] ; 8-byte Folded Reload +; CHECK-NEXT: ldr w11, [sp, #116] ; 4-byte Reload +; CHECK-NEXT: ldr x8, [sp, #120] ; 8-byte Reload ; CHECK-NEXT: mov x9, sp ; CHECK-NEXT: str xzr, [x9] ; CHECK-NEXT: str xzr, [x9, #8] diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/byval-call.ll b/llvm/test/CodeGen/AArch64/GlobalISel/byval-call.ll index 9e09282767bdc..6d493d545406f 100644 --- a/llvm/test/CodeGen/AArch64/GlobalISel/byval-call.ll +++ b/llvm/test/CodeGen/AArch64/GlobalISel/byval-call.ll @@ -8,12 +8,12 @@ define void @call_byval_i32(ptr %incoming) uwtable { ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #32 ; CHECK-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: ldr w8, [x0] ; CHECK-NEXT: str w8, [sp] ; CHECK-NEXT: bl byval_i32 -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: .cfi_def_cfa_offset 0 ; CHECK-NEXT: .cfi_restore w30 @@ -30,7 +30,7 @@ define void @call_byval_a64i32(ptr %incoming) uwtable { ; CHECK-NEXT: sub sp, sp, #288 ; CHECK-NEXT: .cfi_def_cfa_offset 288 ; CHECK-NEXT: stp x29, x30, [sp, #256] // 16-byte Folded Spill -; CHECK-NEXT: str x28, [sp, #272] // 8-byte Folded Spill +; CHECK-NEXT: str x28, [sp, #272] // 8-byte Spill ; CHECK-NEXT: add x29, sp, #256 ; CHECK-NEXT: .cfi_def_cfa w29, 32 ; CHECK-NEXT: .cfi_offset w28, -16 @@ -71,7 +71,7 @@ define void @call_byval_a64i32(ptr %incoming) uwtable { ; CHECK-NEXT: bl byval_a64i32 ; CHECK-NEXT: .cfi_def_cfa wsp, 288 ; CHECK-NEXT: ldp x29, x30, [sp, #256] // 16-byte Folded Reload -; CHECK-NEXT: ldr x28, [sp, #272] // 8-byte Folded Reload +; CHECK-NEXT: ldr x28, [sp, #272] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #288 ; CHECK-NEXT: .cfi_def_cfa_offset 0 ; CHECK-NEXT: .cfi_restore w28 diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/call-lowering-tail-call-fallback.ll b/llvm/test/CodeGen/AArch64/GlobalISel/call-lowering-tail-call-fallback.ll index ebd2beca67810..276cfbcd2a293 100644 --- a/llvm/test/CodeGen/AArch64/GlobalISel/call-lowering-tail-call-fallback.ll +++ b/llvm/test/CodeGen/AArch64/GlobalISel/call-lowering-tail-call-fallback.ll @@ -21,7 +21,7 @@ define void @pr70207(i128 %arg1, i128 %arg2) nounwind { ; CHECK-NEXT: str x8, [sp, #-32]! ; CHECK-NEXT: stp x9, x30, [sp, #8] // 8-byte Folded Spill ; CHECK-NEXT: bl func -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: ret tail call void @func(i64 0, i64 0, i64 0, i64 0, i64 0, i128 %arg1, i128 %arg2) diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-stack-protector-windows.ll b/llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-stack-protector-windows.ll index e7f4785d01df6..447267cf57f76 100644 --- a/llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-stack-protector-windows.ll +++ b/llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-stack-protector-windows.ll @@ -9,7 +9,7 @@ define void @caller() sspreq { ; CHECK-NEXT: // %bb.0: // %entry ; CHECK-NEXT: sub sp, sp, #32 ; CHECK-NEXT: .seh_stackalloc 32 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .seh_save_reg x30, 16 ; CHECK-NEXT: .seh_endprologue ; CHECK-NEXT: adrp x8, __security_cookie @@ -24,7 +24,7 @@ define void @caller() sspreq { ; CHECK-NEXT: b.ne .LBB0_2 ; CHECK-NEXT: // %bb.1: // %entry ; CHECK-NEXT: .seh_startepilogue -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x30, 16 ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: .seh_stackalloc 32 diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/select-fp-anyext-crash.ll b/llvm/test/CodeGen/AArch64/GlobalISel/select-fp-anyext-crash.ll index 7af5b3d801e0c..a63636e666e8f 100644 --- a/llvm/test/CodeGen/AArch64/GlobalISel/select-fp-anyext-crash.ll +++ b/llvm/test/CodeGen/AArch64/GlobalISel/select-fp-anyext-crash.ll @@ -18,7 +18,7 @@ define i32 @test() { ; CHECK-NEXT: ; kill: def $d0 killed $s0 ; CHECK-NEXT: mov x8, sp ; CHECK-NEXT: mov w9, #0 ; =0x0 -; CHECK-NEXT: str w9, [sp, #60] ; 4-byte Folded Spill +; CHECK-NEXT: str w9, [sp, #60] ; 4-byte Spill ; CHECK-NEXT: str xzr, [x8] ; CHECK-NEXT: str xzr, [x8, #8] ; CHECK-NEXT: str xzr, [x8, #16] @@ -28,7 +28,7 @@ define i32 @test() { ; CHECK-NEXT: mov x8, #0 ; =0x0 ; CHECK-NEXT: mov x0, x8 ; CHECK-NEXT: blr x8 -; CHECK-NEXT: ldr w0, [sp, #60] ; 4-byte Folded Reload +; CHECK-NEXT: ldr w0, [sp, #60] ; 4-byte Reload ; CHECK-NEXT: ldp x29, x30, [sp, #64] ; 16-byte Folded Reload ; CHECK-NEXT: add sp, sp, #80 ; CHECK-NEXT: ret diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/split-wide-shifts-multiway.ll b/llvm/test/CodeGen/AArch64/GlobalISel/split-wide-shifts-multiway.ll index 41f7ab89094ad..8f358b22a56a0 100644 --- a/llvm/test/CodeGen/AArch64/GlobalISel/split-wide-shifts-multiway.ll +++ b/llvm/test/CodeGen/AArch64/GlobalISel/split-wide-shifts-multiway.ll @@ -1243,7 +1243,7 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: mov w8, w2 ; GISEL-NEXT: lsr x9, x8, #6 ; GISEL-NEXT: and x12, x8, #0x3f -; GISEL-NEXT: str x0, [sp, #144] ; 8-byte Folded Spill +; GISEL-NEXT: str x0, [sp, #144] ; 8-byte Spill ; GISEL-NEXT: and x14, x8, #0x3f ; GISEL-NEXT: mov w13, #64 ; =0x40 ; GISEL-NEXT: and x16, x8, #0x3f @@ -1270,16 +1270,16 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: and x21, x8, #0x3f ; GISEL-NEXT: csel x12, xzr, x12, eq ; GISEL-NEXT: cmp x9, #6 -; GISEL-NEXT: str x6, [sp, #24] ; 8-byte Folded Spill +; GISEL-NEXT: str x6, [sp, #24] ; 8-byte Spill ; GISEL-NEXT: csel x12, xzr, x12, eq ; GISEL-NEXT: cmp x9, #7 -; GISEL-NEXT: str x28, [sp, #304] ; 8-byte Folded Spill +; GISEL-NEXT: str x28, [sp, #304] ; 8-byte Spill ; GISEL-NEXT: csel x12, xzr, x12, eq ; GISEL-NEXT: cmp x9, #8 -; GISEL-NEXT: str x7, [sp, #272] ; 8-byte Folded Spill +; GISEL-NEXT: str x7, [sp, #272] ; 8-byte Spill ; GISEL-NEXT: csel x12, xzr, x12, eq ; GISEL-NEXT: cmp x9, #9 -; GISEL-NEXT: str x20, [sp, #112] ; 8-byte Folded Spill +; GISEL-NEXT: str x20, [sp, #112] ; 8-byte Spill ; GISEL-NEXT: csel x12, xzr, x12, eq ; GISEL-NEXT: cmp x9, #10 ; GISEL-NEXT: csel x12, xzr, x12, eq @@ -1296,7 +1296,7 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: cmp x8, #0 ; GISEL-NEXT: csel x10, x10, x12, eq ; GISEL-NEXT: tst x8, #0x3f -; GISEL-NEXT: str x10, [sp, #232] ; 8-byte Folded Spill +; GISEL-NEXT: str x10, [sp, #232] ; 8-byte Spill ; GISEL-NEXT: csel x10, xzr, x3, eq ; GISEL-NEXT: cmp x9, #0 ; GISEL-NEXT: orr x10, x6, x10 @@ -1336,7 +1336,7 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: lsl x26, x12, x14 ; GISEL-NEXT: csel x11, x11, x13, eq ; GISEL-NEXT: tst x8, #0x3f -; GISEL-NEXT: str x11, [sp, #224] ; 8-byte Folded Spill +; GISEL-NEXT: str x11, [sp, #224] ; 8-byte Spill ; GISEL-NEXT: csel x11, xzr, x20, eq ; GISEL-NEXT: cmp x9, #0 ; GISEL-NEXT: orr x11, x26, x11 @@ -1380,7 +1380,7 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: cmp x8, #0 ; GISEL-NEXT: csel x11, x12, x11, eq ; GISEL-NEXT: tst x8, #0x3f -; GISEL-NEXT: str x11, [sp, #216] ; 8-byte Folded Spill +; GISEL-NEXT: str x11, [sp, #216] ; 8-byte Spill ; GISEL-NEXT: csel x11, xzr, x15, eq ; GISEL-NEXT: cmp x9, #0 ; GISEL-NEXT: orr x11, x30, x11 @@ -1426,7 +1426,7 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: lsl x0, x12, x16 ; GISEL-NEXT: csel x10, x10, x13, eq ; GISEL-NEXT: tst x8, #0x3f -; GISEL-NEXT: str x10, [sp, #208] ; 8-byte Folded Spill +; GISEL-NEXT: str x10, [sp, #208] ; 8-byte Spill ; GISEL-NEXT: csel x10, xzr, x17, eq ; GISEL-NEXT: cmp x9, #0 ; GISEL-NEXT: orr x10, x0, x10 @@ -1437,9 +1437,9 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: mov x16, x15 ; GISEL-NEXT: csel x13, xzr, x15, eq ; GISEL-NEXT: cmp x9, #1 -; GISEL-NEXT: str x4, [sp, #248] ; 8-byte Folded Spill +; GISEL-NEXT: str x4, [sp, #248] ; 8-byte Spill ; GISEL-NEXT: orr x13, x30, x13 -; GISEL-NEXT: str x0, [sp, #48] ; 8-byte Folded Spill +; GISEL-NEXT: str x0, [sp, #48] ; 8-byte Spill ; GISEL-NEXT: csel x10, x13, x10, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x13, xzr, x20, eq @@ -1478,7 +1478,7 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: cmp x8, #0 ; GISEL-NEXT: csel x10, x12, x10, eq ; GISEL-NEXT: tst x8, #0x3f -; GISEL-NEXT: str x10, [sp, #200] ; 8-byte Folded Spill +; GISEL-NEXT: str x10, [sp, #200] ; 8-byte Spill ; GISEL-NEXT: csel x10, xzr, x4, eq ; GISEL-NEXT: cmp x9, #0 ; GISEL-NEXT: orr x10, x19, x10 @@ -1532,7 +1532,7 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: lsl x22, x12, x15 ; GISEL-NEXT: csel x11, x11, x13, eq ; GISEL-NEXT: tst x8, #0x3f -; GISEL-NEXT: str x11, [sp, #192] ; 8-byte Folded Spill +; GISEL-NEXT: str x11, [sp, #192] ; 8-byte Spill ; GISEL-NEXT: csel x11, xzr, x3, eq ; GISEL-NEXT: cmp x9, #0 ; GISEL-NEXT: orr x11, x22, x11 @@ -1545,7 +1545,7 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: mov x25, x27 ; GISEL-NEXT: orr x13, x19, x13 ; GISEL-NEXT: mov x14, x5 -; GISEL-NEXT: str x27, [sp, #328] ; 8-byte Folded Spill +; GISEL-NEXT: str x27, [sp, #328] ; 8-byte Spill ; GISEL-NEXT: csel x11, x13, x11, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x13, xzr, x17, eq @@ -1592,7 +1592,7 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: cmp x8, #0 ; GISEL-NEXT: csel x11, x12, x11, eq ; GISEL-NEXT: tst x8, #0x3f -; GISEL-NEXT: str x11, [sp, #184] ; 8-byte Folded Spill +; GISEL-NEXT: str x11, [sp, #184] ; 8-byte Spill ; GISEL-NEXT: csel x11, xzr, x13, eq ; GISEL-NEXT: cmp x9, #0 ; GISEL-NEXT: orr x11, x5, x11 @@ -1650,12 +1650,12 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: csel x12, x10, x12, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: lsl x23, x11, x21 -; GISEL-NEXT: str x12, [sp, #176] ; 8-byte Folded Spill +; GISEL-NEXT: str x12, [sp, #176] ; 8-byte Spill ; GISEL-NEXT: csel x12, xzr, x27, eq ; GISEL-NEXT: cmp x9, #0 ; GISEL-NEXT: orr x12, x23, x12 ; GISEL-NEXT: lsr x21, x11, x2 -; GISEL-NEXT: str x23, [sp, #288] ; 8-byte Folded Spill +; GISEL-NEXT: str x23, [sp, #288] ; 8-byte Spill ; GISEL-NEXT: csel x12, x12, xzr, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x13, xzr, x13, eq @@ -1714,7 +1714,7 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: cmp x8, #0 ; GISEL-NEXT: csel x11, x11, x12, eq ; GISEL-NEXT: tst x8, #0x3f -; GISEL-NEXT: str x11, [sp, #168] ; 8-byte Folded Spill +; GISEL-NEXT: str x11, [sp, #168] ; 8-byte Spill ; GISEL-NEXT: csel x11, xzr, x21, eq ; GISEL-NEXT: cmp x9, #0 ; GISEL-NEXT: orr x11, x10, x11 @@ -1745,7 +1745,7 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x12, xzr, x4, eq ; GISEL-NEXT: cmp x9, #4 -; GISEL-NEXT: str x22, [sp, #240] ; 8-byte Folded Spill +; GISEL-NEXT: str x22, [sp, #240] ; 8-byte Spill ; GISEL-NEXT: orr x12, x19, x12 ; GISEL-NEXT: csel x11, x12, x11, eq ; GISEL-NEXT: tst x8, #0x3f @@ -1776,7 +1776,7 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: ldr x24, [x6, #88] ; GISEL-NEXT: csel x11, xzr, x11, eq ; GISEL-NEXT: cmp x9, #11 -; GISEL-NEXT: ldr x6, [sp, #272] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x6, [sp, #272] ; 8-byte Reload ; GISEL-NEXT: csel x11, xzr, x11, eq ; GISEL-NEXT: cmp x9, #12 ; GISEL-NEXT: csel x11, xzr, x11, eq @@ -1792,13 +1792,13 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: mov x28, x2 ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: lsl x2, x11, x13 -; GISEL-NEXT: str x12, [sp, #160] ; 8-byte Folded Spill +; GISEL-NEXT: str x12, [sp, #160] ; 8-byte Spill ; GISEL-NEXT: csel x12, xzr, x22, eq ; GISEL-NEXT: cmp x9, #0 -; GISEL-NEXT: ldr x1, [sp, #312] ; 8-byte Folded Reload -; GISEL-NEXT: str x28, [sp, #16] ; 8-byte Folded Spill +; GISEL-NEXT: ldr x1, [sp, #312] ; 8-byte Reload +; GISEL-NEXT: str x28, [sp, #16] ; 8-byte Spill ; GISEL-NEXT: orr x12, x2, x12 -; GISEL-NEXT: str x2, [sp, #280] ; 8-byte Folded Spill +; GISEL-NEXT: str x2, [sp, #280] ; 8-byte Spill ; GISEL-NEXT: csel x12, x12, xzr, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x13, xzr, x21, eq @@ -1811,7 +1811,7 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: mov x25, x16 ; GISEL-NEXT: orr x13, x10, x13 ; GISEL-NEXT: mov x10, x30 -; GISEL-NEXT: str x25, [sp, #80] ; 8-byte Folded Spill +; GISEL-NEXT: str x25, [sp, #80] ; 8-byte Spill ; GISEL-NEXT: csel x12, x13, x12, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x13, xzr, x23, eq @@ -1826,7 +1826,7 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: cmp x9, #4 ; GISEL-NEXT: mov x3, x21 ; GISEL-NEXT: orr x13, x15, x13 -; GISEL-NEXT: str x3, [sp, #32] ; 8-byte Folded Spill +; GISEL-NEXT: str x3, [sp, #32] ; 8-byte Spill ; GISEL-NEXT: csel x12, x13, x12, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x13, xzr, x4, eq @@ -1839,7 +1839,7 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: cmp x9, #6 ; GISEL-NEXT: mov x17, x27 ; GISEL-NEXT: orr x13, x0, x13 -; GISEL-NEXT: ldr x0, [sp, #24] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x0, [sp, #24] ; 8-byte Reload ; GISEL-NEXT: csel x12, x13, x12, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x13, xzr, x16, eq @@ -1863,7 +1863,7 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: cmp x9, #11 ; GISEL-NEXT: csel x12, xzr, x12, eq ; GISEL-NEXT: cmp x9, #12 -; GISEL-NEXT: str x13, [sp, #96] ; 8-byte Folded Spill +; GISEL-NEXT: str x13, [sp, #96] ; 8-byte Spill ; GISEL-NEXT: csel x12, xzr, x12, eq ; GISEL-NEXT: cmp x9, #13 ; GISEL-NEXT: csel x12, xzr, x12, eq @@ -1874,13 +1874,13 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: cmp x8, #0 ; GISEL-NEXT: csel x11, x11, x12, eq ; GISEL-NEXT: tst x8, #0x3f -; GISEL-NEXT: str x11, [sp, #152] ; 8-byte Folded Spill +; GISEL-NEXT: str x11, [sp, #152] ; 8-byte Spill ; GISEL-NEXT: and x11, x8, #0x3f ; GISEL-NEXT: lsl x27, x24, x11 ; GISEL-NEXT: csel x11, xzr, x13, eq ; GISEL-NEXT: cmp x9, #0 ; GISEL-NEXT: orr x11, x27, x11 -; GISEL-NEXT: str x27, [sp, #56] ; 8-byte Folded Spill +; GISEL-NEXT: str x27, [sp, #56] ; 8-byte Spill ; GISEL-NEXT: csel x11, x11, xzr, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x12, xzr, x22, eq @@ -1892,7 +1892,7 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x12, xzr, x21, eq ; GISEL-NEXT: cmp x9, #2 -; GISEL-NEXT: ldr x21, [sp, #288] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x21, [sp, #288] ; 8-byte Reload ; GISEL-NEXT: orr x12, x1, x12 ; GISEL-NEXT: mov x1, x27 ; GISEL-NEXT: csel x11, x12, x11, eq @@ -1908,7 +1908,7 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: mov x7, x15 ; GISEL-NEXT: csel x11, x12, x11, eq ; GISEL-NEXT: tst x8, #0x3f -; GISEL-NEXT: str x7, [sp, #40] ; 8-byte Folded Spill +; GISEL-NEXT: str x7, [sp, #40] ; 8-byte Spill ; GISEL-NEXT: csel x12, xzr, x23, eq ; GISEL-NEXT: cmp x9, #5 ; GISEL-NEXT: orr x12, x15, x12 @@ -1931,7 +1931,7 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: csel x12, xzr, x25, eq ; GISEL-NEXT: cmp x9, #8 ; GISEL-NEXT: orr x12, x10, x12 -; GISEL-NEXT: ldr x10, [sp, #304] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x10, [sp, #304] ; 8-byte Reload ; GISEL-NEXT: csel x11, x12, x11, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x12, xzr, x20, eq @@ -1958,27 +1958,27 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: and x10, x8, #0x3f ; GISEL-NEXT: csel x12, x24, x12, eq ; GISEL-NEXT: tst x8, #0x3f -; GISEL-NEXT: ldr x24, [sp, #248] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x24, [sp, #248] ; 8-byte Reload ; GISEL-NEXT: lsl x15, x11, x10 ; GISEL-NEXT: csel x10, xzr, x14, eq ; GISEL-NEXT: cmp x9, #0 -; GISEL-NEXT: str x12, [sp, #136] ; 8-byte Folded Spill -; GISEL-NEXT: ldr x12, [sp, #312] ; 8-byte Folded Reload +; GISEL-NEXT: str x12, [sp, #136] ; 8-byte Spill +; GISEL-NEXT: ldr x12, [sp, #312] ; 8-byte Reload ; GISEL-NEXT: orr x10, x15, x10 -; GISEL-NEXT: str x15, [sp, #296] ; 8-byte Folded Spill +; GISEL-NEXT: str x15, [sp, #296] ; 8-byte Spill ; GISEL-NEXT: mov x15, x13 ; GISEL-NEXT: csel x10, x10, xzr, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x13, xzr, x13, eq ; GISEL-NEXT: cmp x9, #1 ; GISEL-NEXT: orr x13, x27, x13 -; GISEL-NEXT: ldr x27, [sp, #240] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x27, [sp, #240] ; 8-byte Reload ; GISEL-NEXT: csel x10, x13, x10, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x13, xzr, x27, eq ; GISEL-NEXT: cmp x9, #2 ; GISEL-NEXT: orr x13, x22, x13 -; GISEL-NEXT: ldr x22, [sp, #272] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x22, [sp, #272] ; 8-byte Reload ; GISEL-NEXT: csel x10, x13, x10, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x13, xzr, x3, eq @@ -2008,12 +2008,12 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: csel x13, xzr, x24, eq ; GISEL-NEXT: cmp x9, #7 ; GISEL-NEXT: orr x13, x5, x13 -; GISEL-NEXT: ldr x5, [sp, #48] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x5, [sp, #48] ; 8-byte Reload ; GISEL-NEXT: csel x10, x13, x10, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x13, xzr, x2, eq ; GISEL-NEXT: cmp x9, #8 -; GISEL-NEXT: ldr x2, [sp, #296] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x2, [sp, #296] ; 8-byte Reload ; GISEL-NEXT: orr x13, x5, x13 ; GISEL-NEXT: csel x10, x13, x10, eq ; GISEL-NEXT: tst x8, #0x3f @@ -2036,17 +2036,17 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: lsr x13, x11, x28 ; GISEL-NEXT: csel x10, x17, x10, eq ; GISEL-NEXT: cmp x9, #13 -; GISEL-NEXT: ldr x17, [sp, #80] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x17, [sp, #80] ; 8-byte Reload ; GISEL-NEXT: csel x10, xzr, x10, eq ; GISEL-NEXT: cmp x9, #14 -; GISEL-NEXT: str x13, [sp, #104] ; 8-byte Folded Spill +; GISEL-NEXT: str x13, [sp, #104] ; 8-byte Spill ; GISEL-NEXT: csel x10, xzr, x10, eq ; GISEL-NEXT: cmp x9, #15 ; GISEL-NEXT: csel x10, xzr, x10, eq ; GISEL-NEXT: cmp x8, #0 ; GISEL-NEXT: csel x10, x11, x10, eq ; GISEL-NEXT: tst x8, #0x3f -; GISEL-NEXT: str x10, [sp, #128] ; 8-byte Folded Spill +; GISEL-NEXT: str x10, [sp, #128] ; 8-byte Spill ; GISEL-NEXT: and x10, x8, #0x3f ; GISEL-NEXT: lsl x11, x6, x10 ; GISEL-NEXT: csel x10, xzr, x13, eq @@ -2054,7 +2054,7 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: ldp x0, x13, [sp, #280] ; 16-byte Folded Reload ; GISEL-NEXT: mov x6, x16 ; GISEL-NEXT: orr x10, x11, x10 -; GISEL-NEXT: str x11, [sp, #88] ; 8-byte Folded Spill +; GISEL-NEXT: str x11, [sp, #88] ; 8-byte Spill ; GISEL-NEXT: csel x10, x10, xzr, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x11, xzr, x14, eq @@ -2125,18 +2125,18 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: cmp x9, #13 ; GISEL-NEXT: csel x10, x16, x10, eq ; GISEL-NEXT: cmp x9, #14 -; GISEL-NEXT: ldr x16, [sp, #304] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x16, [sp, #304] ; 8-byte Reload ; GISEL-NEXT: csel x10, xzr, x10, eq ; GISEL-NEXT: cmp x9, #15 ; GISEL-NEXT: csel x11, xzr, x10, eq ; GISEL-NEXT: cmp x8, #0 ; GISEL-NEXT: ldp x10, x4, [x16, #112] ; GISEL-NEXT: csel x11, x25, x11, eq -; GISEL-NEXT: str x11, [sp, #120] ; 8-byte Folded Spill +; GISEL-NEXT: str x11, [sp, #120] ; 8-byte Spill ; GISEL-NEXT: lsr x11, x25, x28 ; GISEL-NEXT: and x16, x8, #0x3f ; GISEL-NEXT: tst x8, #0x3f -; GISEL-NEXT: ldr x25, [sp, #88] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x25, [sp, #88] ; 8-byte Reload ; GISEL-NEXT: lsl x24, x10, x16 ; GISEL-NEXT: csel x1, xzr, x11, eq ; GISEL-NEXT: cmp x9, #0 @@ -2152,7 +2152,7 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: csel x30, xzr, x7, eq ; GISEL-NEXT: cmp x9, #2 ; GISEL-NEXT: orr x30, x2, x30 -; GISEL-NEXT: ldr x2, [sp, #56] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x2, [sp, #56] ; 8-byte Reload ; GISEL-NEXT: csel x1, x30, x1, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x30, xzr, x16, eq @@ -2164,18 +2164,18 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: cmp x9, #4 ; GISEL-NEXT: mov x27, x13 ; GISEL-NEXT: orr x30, x0, x30 -; GISEL-NEXT: ldr x0, [sp, #248] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x0, [sp, #248] ; 8-byte Reload ; GISEL-NEXT: csel x1, x30, x1, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x30, xzr, x15, eq -; GISEL-NEXT: ldr x15, [sp, #312] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x15, [sp, #312] ; 8-byte Reload ; GISEL-NEXT: cmp x9, #5 ; GISEL-NEXT: orr x30, x15, x30 ; GISEL-NEXT: csel x1, x30, x1, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x30, xzr, x3, eq ; GISEL-NEXT: cmp x9, #6 -; GISEL-NEXT: ldr x3, [sp, #40] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x3, [sp, #40] ; 8-byte Reload ; GISEL-NEXT: orr x30, x13, x30 ; GISEL-NEXT: csel x1, x30, x1, eq ; GISEL-NEXT: tst x8, #0x3f @@ -2215,7 +2215,7 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: csel x30, xzr, x22, eq ; GISEL-NEXT: cmp x9, #13 ; GISEL-NEXT: orr x30, x5, x30 -; GISEL-NEXT: ldr x5, [sp, #16] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x5, [sp, #16] ; 8-byte Reload ; GISEL-NEXT: csel x1, x30, x1, eq ; GISEL-NEXT: cmp x9, #14 ; GISEL-NEXT: csel x1, x6, x1, eq @@ -2231,7 +2231,7 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: cmp x9, #0 ; GISEL-NEXT: ldp x29, x30, [sp, #416] ; 16-byte Folded Reload ; GISEL-NEXT: orr x10, x10, x1 -; GISEL-NEXT: ldr x1, [sp, #296] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x1, [sp, #296] ; 8-byte Reload ; GISEL-NEXT: csel x10, x10, xzr, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x11, xzr, x11, eq @@ -2251,34 +2251,34 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x11, xzr, x16, eq ; GISEL-NEXT: cmp x9, #4 -; GISEL-NEXT: ldr x16, [sp, #280] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x16, [sp, #280] ; 8-byte Reload ; GISEL-NEXT: orr x11, x2, x11 ; GISEL-NEXT: csel x10, x11, x10, eq -; GISEL-NEXT: ldr x11, [sp, #240] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x11, [sp, #240] ; 8-byte Reload ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x11, xzr, x11, eq ; GISEL-NEXT: cmp x9, #5 ; GISEL-NEXT: orr x11, x16, x11 ; GISEL-NEXT: csel x10, x11, x10, eq -; GISEL-NEXT: ldr x11, [sp, #32] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x11, [sp, #32] ; 8-byte Reload ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x11, xzr, x11, eq ; GISEL-NEXT: cmp x9, #6 ; GISEL-NEXT: orr x11, x15, x11 ; GISEL-NEXT: csel x10, x11, x10, eq -; GISEL-NEXT: ldr x11, [sp, #328] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x11, [sp, #328] ; 8-byte Reload ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x11, xzr, x11, eq ; GISEL-NEXT: cmp x9, #7 ; GISEL-NEXT: orr x11, x27, x11 ; GISEL-NEXT: ldp x28, x27, [sp, #336] ; 16-byte Folded Reload ; GISEL-NEXT: csel x10, x11, x10, eq -; GISEL-NEXT: ldr x11, [sp, #320] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x11, [sp, #320] ; 8-byte Reload ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x11, xzr, x11, eq ; GISEL-NEXT: cmp x9, #8 ; GISEL-NEXT: orr x11, x13, x11 -; GISEL-NEXT: ldr x13, [sp, #144] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x13, [sp, #144] ; 8-byte Reload ; GISEL-NEXT: csel x10, x11, x10, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x11, xzr, x14, eq @@ -2290,7 +2290,7 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: cmp x9, #10 ; GISEL-NEXT: orr x11, x12, x11 ; GISEL-NEXT: csel x10, x11, x10, eq -; GISEL-NEXT: ldr x11, [sp, #232] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x11, [sp, #232] ; 8-byte Reload ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: str x11, [x13] ; GISEL-NEXT: ldp x12, x11, [sp, #216] ; 16-byte Folded Reload @@ -2300,7 +2300,7 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: orr x11, x23, x11 ; GISEL-NEXT: ldp x24, x23, [sp, #368] ; 16-byte Folded Reload ; GISEL-NEXT: csel x10, x11, x10, eq -; GISEL-NEXT: ldr x11, [sp, #208] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x11, [sp, #208] ; 8-byte Reload ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: str x11, [x13, #24] ; GISEL-NEXT: ldp x12, x11, [sp, #192] ; 16-byte Folded Reload @@ -2309,22 +2309,22 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: cmp x9, #12 ; GISEL-NEXT: orr x11, x21, x11 ; GISEL-NEXT: csel x10, x11, x10, eq -; GISEL-NEXT: ldr x11, [sp, #184] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x11, [sp, #184] ; 8-byte Reload ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: str x11, [x13, #48] ; GISEL-NEXT: ldp x12, x11, [sp, #168] ; 16-byte Folded Reload ; GISEL-NEXT: stp x11, x12, [x13, #56] -; GISEL-NEXT: ldr x11, [sp, #112] ; 8-byte Folded Reload -; GISEL-NEXT: ldr x12, [sp, #136] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x11, [sp, #112] ; 8-byte Reload +; GISEL-NEXT: ldr x12, [sp, #136] ; 8-byte Reload ; GISEL-NEXT: csel x11, xzr, x11, eq ; GISEL-NEXT: cmp x9, #13 ; GISEL-NEXT: orr x11, x20, x11 ; GISEL-NEXT: ldp x20, x19, [sp, #400] ; 16-byte Folded Reload ; GISEL-NEXT: csel x10, x11, x10, eq -; GISEL-NEXT: ldr x11, [sp, #160] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x11, [sp, #160] ; 8-byte Reload ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: str x11, [x13, #72] -; GISEL-NEXT: ldr x11, [sp, #152] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x11, [sp, #152] ; 8-byte Reload ; GISEL-NEXT: str x11, [x13, #80] ; GISEL-NEXT: csel x11, xzr, x22, eq ; GISEL-NEXT: cmp x9, #14 @@ -2332,12 +2332,12 @@ define void @test_shl_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: ldp x22, x21, [sp, #384] ; 16-byte Folded Reload ; GISEL-NEXT: csel x10, x11, x10, eq ; GISEL-NEXT: cmp x9, #15 -; GISEL-NEXT: ldr x9, [sp, #128] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x9, [sp, #128] ; 8-byte Reload ; GISEL-NEXT: ldp x26, x25, [sp, #352] ; 16-byte Folded Reload ; GISEL-NEXT: stp x12, x9, [x13, #88] ; GISEL-NEXT: csel x9, x6, x10, eq ; GISEL-NEXT: cmp x8, #0 -; GISEL-NEXT: ldr x8, [sp, #120] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x8, [sp, #120] ; 8-byte Reload ; GISEL-NEXT: stp x8, x5, [x13, #104] ; GISEL-NEXT: csel x8, x4, x9, eq ; GISEL-NEXT: str x8, [x13, #120] @@ -2513,12 +2513,12 @@ define void @test_lshr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: lsr x9, x8, #6 ; GISEL-NEXT: lsr x11, x20, x14 ; GISEL-NEXT: lsr x19, x16, x14 -; GISEL-NEXT: str x16, [sp, #264] ; 8-byte Folded Spill +; GISEL-NEXT: str x16, [sp, #264] ; 8-byte Spill ; GISEL-NEXT: csel x10, xzr, x10, eq ; GISEL-NEXT: lsl x22, x12, x15 ; GISEL-NEXT: cmp x9, #0 ; GISEL-NEXT: orr x10, x11, x10 -; GISEL-NEXT: str x12, [sp, #240] ; 8-byte Folded Spill +; GISEL-NEXT: str x12, [sp, #240] ; 8-byte Spill ; GISEL-NEXT: lsr x26, x12, x14 ; GISEL-NEXT: csel x10, x10, xzr, eq ; GISEL-NEXT: tst x8, #0x3f @@ -2530,10 +2530,10 @@ define void @test_lshr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: ldp x12, x16, [x1, #32] ; GISEL-NEXT: csel x10, x11, x10, eq ; GISEL-NEXT: tst x8, #0x3f -; GISEL-NEXT: str x0, [sp, #296] ; 8-byte Folded Spill +; GISEL-NEXT: str x0, [sp, #296] ; 8-byte Spill ; GISEL-NEXT: csel x11, xzr, x24, eq ; GISEL-NEXT: cmp x9, #2 -; GISEL-NEXT: str x13, [sp, #216] ; 8-byte Folded Spill +; GISEL-NEXT: str x13, [sp, #216] ; 8-byte Spill ; GISEL-NEXT: lsl x23, x12, x15 ; GISEL-NEXT: orr x11, x26, x11 ; GISEL-NEXT: stp x12, x16, [sp, #176] ; 16-byte Folded Spill @@ -2566,13 +2566,13 @@ define void @test_lshr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: ldp x4, x2, [x1, #64] ; GISEL-NEXT: csel x10, x11, x10, eq ; GISEL-NEXT: tst x8, #0x3f -; GISEL-NEXT: ldr x17, [sp, #144] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x17, [sp, #144] ; 8-byte Reload ; GISEL-NEXT: stp x5, x23, [sp, #24] ; 16-byte Folded Spill ; GISEL-NEXT: csel x11, xzr, x0, eq ; GISEL-NEXT: cmp x9, #6 ; GISEL-NEXT: lsl x3, x4, x15 ; GISEL-NEXT: orr x11, x13, x11 -; GISEL-NEXT: str x4, [sp, #208] ; 8-byte Folded Spill +; GISEL-NEXT: str x4, [sp, #208] ; 8-byte Spill ; GISEL-NEXT: csel x10, x11, x10, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: lsl x6, x2, x15 @@ -2580,7 +2580,7 @@ define void @test_lshr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: cmp x9, #7 ; GISEL-NEXT: lsr x13, x4, x14 ; GISEL-NEXT: orr x11, x12, x11 -; GISEL-NEXT: str x2, [sp, #224] ; 8-byte Folded Spill +; GISEL-NEXT: str x2, [sp, #224] ; 8-byte Spill ; GISEL-NEXT: csel x16, x11, x10, eq ; GISEL-NEXT: ldp x10, x4, [x1, #80] ; GISEL-NEXT: tst x8, #0x3f @@ -2591,16 +2591,16 @@ define void @test_lshr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: lsr x11, x11, x14 ; GISEL-NEXT: orr x2, x13, x2 ; GISEL-NEXT: lsl x12, x10, x15 -; GISEL-NEXT: str x10, [sp, #232] ; 8-byte Folded Spill +; GISEL-NEXT: str x10, [sp, #232] ; 8-byte Spill ; GISEL-NEXT: csel x16, x2, x16, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: lsr x10, x10, x14 ; GISEL-NEXT: csel x2, xzr, x12, eq -; GISEL-NEXT: str x12, [sp, #312] ; 8-byte Folded Spill +; GISEL-NEXT: str x12, [sp, #312] ; 8-byte Spill ; GISEL-NEXT: cmp x9, #9 ; GISEL-NEXT: orr x2, x11, x2 ; GISEL-NEXT: lsl x12, x4, x15 -; GISEL-NEXT: str x10, [sp, #304] ; 8-byte Folded Spill +; GISEL-NEXT: str x10, [sp, #304] ; 8-byte Spill ; GISEL-NEXT: csel x16, x2, x16, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: lsr x13, x4, x14 @@ -2614,7 +2614,7 @@ define void @test_lshr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: stp x4, x11, [sp, #248] ; 16-byte Folded Spill ; GISEL-NEXT: csel x16, x2, x16, eq ; GISEL-NEXT: tst x8, #0x3f -; GISEL-NEXT: str x3, [sp, #16] ; 8-byte Folded Spill +; GISEL-NEXT: str x3, [sp, #16] ; 8-byte Spill ; GISEL-NEXT: csel x2, xzr, x28, eq ; GISEL-NEXT: lsl x12, x10, x15 ; GISEL-NEXT: cmp x9, #11 @@ -2632,7 +2632,7 @@ define void @test_lshr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: lsr x27, x30, x14 ; GISEL-NEXT: orr x4, x13, x2 ; GISEL-NEXT: mov x12, x23 -; GISEL-NEXT: str x28, [sp, #48] ; 8-byte Folded Spill +; GISEL-NEXT: str x28, [sp, #48] ; 8-byte Spill ; GISEL-NEXT: csel x16, x4, x16, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: lsl x25, x11, x15 @@ -2641,10 +2641,10 @@ define void @test_lshr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: stp x10, x13, [sp, #72] ; 16-byte Folded Spill ; GISEL-NEXT: orr x1, x10, x1 ; GISEL-NEXT: lsr x10, x11, x14 -; GISEL-NEXT: str x11, [sp, #288] ; 8-byte Folded Spill +; GISEL-NEXT: str x11, [sp, #288] ; 8-byte Spill ; GISEL-NEXT: csel x1, x1, x16, eq ; GISEL-NEXT: tst x8, #0x3f -; GISEL-NEXT: str x21, [sp, #40] ; 8-byte Folded Spill +; GISEL-NEXT: str x21, [sp, #40] ; 8-byte Spill ; GISEL-NEXT: csel x30, xzr, x25, eq ; GISEL-NEXT: cmp x9, #14 ; GISEL-NEXT: stp x27, x10, [sp, #56] ; 16-byte Folded Spill @@ -2659,7 +2659,7 @@ define void @test_lshr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x1, xzr, x22, eq ; GISEL-NEXT: cmp x9, #0 -; GISEL-NEXT: str x10, [sp, #168] ; 8-byte Folded Spill +; GISEL-NEXT: str x10, [sp, #168] ; 8-byte Spill ; GISEL-NEXT: orr x1, x19, x1 ; GISEL-NEXT: ldp x20, x14, [sp, #112] ; 16-byte Folded Reload ; GISEL-NEXT: csel x1, x1, xzr, eq @@ -2712,7 +2712,7 @@ define void @test_lshr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: csel x19, xzr, x22, eq ; GISEL-NEXT: cmp x9, #9 ; GISEL-NEXT: orr x19, x10, x19 -; GISEL-NEXT: ldr x10, [sp, #264] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x10, [sp, #264] ; 8-byte Reload ; GISEL-NEXT: csel x1, x19, x1, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x19, xzr, x28, eq @@ -2746,8 +2746,8 @@ define void @test_lshr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: cmp x9, #0 ; GISEL-NEXT: mov x24, x11 ; GISEL-NEXT: orr x1, x26, x1 -; GISEL-NEXT: str x10, [sp, #264] ; 8-byte Folded Spill -; GISEL-NEXT: ldr x10, [sp, #240] ; 8-byte Folded Reload +; GISEL-NEXT: str x10, [sp, #264] ; 8-byte Spill +; GISEL-NEXT: ldr x10, [sp, #240] ; 8-byte Reload ; GISEL-NEXT: csel x1, x1, xzr, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: mov x26, x13 @@ -2783,7 +2783,7 @@ define void @test_lshr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: cmp x9, #5 ; GISEL-NEXT: mov x3, x22 ; GISEL-NEXT: orr x19, x23, x19 -; GISEL-NEXT: ldr x23, [sp, #16] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x23, [sp, #16] ; 8-byte Reload ; GISEL-NEXT: csel x1, x19, x1, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x19, xzr, x6, eq @@ -2793,14 +2793,14 @@ define void @test_lshr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x19, xzr, x15, eq ; GISEL-NEXT: cmp x9, #7 -; GISEL-NEXT: ldr x15, [sp, #304] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x15, [sp, #304] ; 8-byte Reload ; GISEL-NEXT: orr x19, x20, x19 ; GISEL-NEXT: ldp x14, x20, [sp, #40] ; 16-byte Folded Reload ; GISEL-NEXT: csel x1, x19, x1, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x19, xzr, x22, eq ; GISEL-NEXT: cmp x9, #8 -; GISEL-NEXT: ldr x22, [sp, #56] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x22, [sp, #56] ; 8-byte Reload ; GISEL-NEXT: orr x19, x15, x19 ; GISEL-NEXT: csel x1, x19, x1, eq ; GISEL-NEXT: tst x8, #0x3f @@ -2832,13 +2832,13 @@ define void @test_lshr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: cmp x8, #0 ; GISEL-NEXT: csel x10, x10, x1, eq ; GISEL-NEXT: tst x8, #0x3f -; GISEL-NEXT: str x10, [sp, #240] ; 8-byte Folded Spill -; GISEL-NEXT: ldr x10, [sp, #32] ; 8-byte Folded Reload +; GISEL-NEXT: str x10, [sp, #240] ; 8-byte Spill +; GISEL-NEXT: ldr x10, [sp, #32] ; 8-byte Reload ; GISEL-NEXT: csel x1, xzr, x10, eq -; GISEL-NEXT: ldr x10, [sp, #24] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x10, [sp, #24] ; 8-byte Reload ; GISEL-NEXT: cmp x9, #0 ; GISEL-NEXT: orr x1, x10, x1 -; GISEL-NEXT: ldr x10, [sp, #216] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x10, [sp, #216] ; 8-byte Reload ; GISEL-NEXT: csel x1, x1, xzr, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x19, xzr, x26, eq @@ -2917,9 +2917,9 @@ define void @test_lshr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x1, xzr, x26, eq ; GISEL-NEXT: cmp x9, #0 -; GISEL-NEXT: str x10, [sp, #216] ; 8-byte Folded Spill +; GISEL-NEXT: str x10, [sp, #216] ; 8-byte Spill ; GISEL-NEXT: orr x1, x24, x1 -; GISEL-NEXT: ldr x10, [sp, #176] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x10, [sp, #176] ; 8-byte Reload ; GISEL-NEXT: mov x24, x3 ; GISEL-NEXT: csel x1, x1, xzr, eq ; GISEL-NEXT: tst x8, #0x3f @@ -2932,7 +2932,7 @@ define void @test_lshr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: csel x19, xzr, x27, eq ; GISEL-NEXT: cmp x9, #2 ; GISEL-NEXT: orr x19, x30, x19 -; GISEL-NEXT: ldr x30, [sp, #312] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x30, [sp, #312] ; 8-byte Reload ; GISEL-NEXT: csel x1, x19, x1, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x19, xzr, x23, eq @@ -2987,7 +2987,7 @@ define void @test_lshr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: cmp x8, #0 ; GISEL-NEXT: csel x19, x10, x1, eq ; GISEL-NEXT: tst x8, #0x3f -; GISEL-NEXT: ldr x10, [sp, #184] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x10, [sp, #184] ; 8-byte Reload ; GISEL-NEXT: csel x1, xzr, x11, eq ; GISEL-NEXT: cmp x9, #0 ; GISEL-NEXT: mov x11, x23 @@ -3058,9 +3058,9 @@ define void @test_lshr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x17, xzr, x27, eq ; GISEL-NEXT: cmp x9, #0 -; GISEL-NEXT: str x10, [sp, #184] ; 8-byte Folded Spill +; GISEL-NEXT: str x10, [sp, #184] ; 8-byte Spill ; GISEL-NEXT: orr x17, x22, x17 -; GISEL-NEXT: ldr x10, [sp, #192] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x10, [sp, #192] ; 8-byte Reload ; GISEL-NEXT: csel x17, x17, xzr, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x0, xzr, x11, eq @@ -3119,7 +3119,7 @@ define void @test_lshr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: cmp x8, #0 ; GISEL-NEXT: csel x17, x10, x17, eq ; GISEL-NEXT: tst x8, #0x3f -; GISEL-NEXT: ldr x10, [sp, #200] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x10, [sp, #200] ; 8-byte Reload ; GISEL-NEXT: csel x13, xzr, x11, eq ; GISEL-NEXT: cmp x9, #0 ; GISEL-NEXT: orr x12, x12, x13 @@ -3201,7 +3201,7 @@ define void @test_lshr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: csel x11, xzr, x2, eq ; GISEL-NEXT: cmp x9, #4 ; GISEL-NEXT: orr x11, x4, x11 -; GISEL-NEXT: ldr x4, [sp, #168] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x4, [sp, #168] ; 8-byte Reload ; GISEL-NEXT: csel x10, x11, x10, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x11, xzr, x20, eq @@ -3214,7 +3214,7 @@ define void @test_lshr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: orr x11, x23, x11 ; GISEL-NEXT: csel x10, x11, x10, eq ; GISEL-NEXT: cmp x9, #7 -; GISEL-NEXT: ldr x11, [sp, #208] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x11, [sp, #208] ; 8-byte Reload ; GISEL-NEXT: csel x10, x28, x10, eq ; GISEL-NEXT: cmp x9, #8 ; GISEL-NEXT: csel x10, xzr, x10, eq @@ -3266,7 +3266,7 @@ define void @test_lshr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: orr x13, x23, x13 ; GISEL-NEXT: csel x11, x13, x11, eq ; GISEL-NEXT: cmp x9, #6 -; GISEL-NEXT: ldr x13, [sp, #224] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x13, [sp, #224] ; 8-byte Reload ; GISEL-NEXT: csel x11, x28, x11, eq ; GISEL-NEXT: cmp x9, #7 ; GISEL-NEXT: csel x11, xzr, x11, eq @@ -3314,7 +3314,7 @@ define void @test_lshr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: orr x0, x23, x0 ; GISEL-NEXT: csel x13, x0, x13, eq ; GISEL-NEXT: cmp x9, #5 -; GISEL-NEXT: ldr x0, [sp, #232] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x0, [sp, #232] ; 8-byte Reload ; GISEL-NEXT: csel x13, x28, x13, eq ; GISEL-NEXT: cmp x9, #6 ; GISEL-NEXT: csel x13, xzr, x13, eq @@ -3342,7 +3342,7 @@ define void @test_lshr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: csel x0, xzr, x24, eq ; GISEL-NEXT: cmp x9, #0 ; GISEL-NEXT: orr x0, x16, x0 -; GISEL-NEXT: ldr x16, [sp, #280] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x16, [sp, #280] ; 8-byte Reload ; GISEL-NEXT: csel x0, x0, xzr, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x1, xzr, x2, eq @@ -3360,7 +3360,7 @@ define void @test_lshr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: orr x1, x23, x1 ; GISEL-NEXT: csel x0, x1, x0, eq ; GISEL-NEXT: cmp x9, #4 -; GISEL-NEXT: ldr x1, [sp, #248] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x1, [sp, #248] ; 8-byte Reload ; GISEL-NEXT: csel x0, x28, x0, eq ; GISEL-NEXT: cmp x9, #5 ; GISEL-NEXT: csel x0, xzr, x0, eq @@ -3402,7 +3402,7 @@ define void @test_lshr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: orr x3, x23, x3 ; GISEL-NEXT: csel x1, x3, x1, eq ; GISEL-NEXT: cmp x9, #3 -; GISEL-NEXT: ldr x3, [sp, #256] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x3, [sp, #256] ; 8-byte Reload ; GISEL-NEXT: csel x1, x28, x1, eq ; GISEL-NEXT: cmp x9, #4 ; GISEL-NEXT: csel x1, xzr, x1, eq @@ -3442,7 +3442,7 @@ define void @test_lshr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: orr x2, x23, x2 ; GISEL-NEXT: csel x1, x2, x1, eq ; GISEL-NEXT: cmp x9, #2 -; GISEL-NEXT: ldr x2, [sp, #272] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x2, [sp, #272] ; 8-byte Reload ; GISEL-NEXT: csel x1, x28, x1, eq ; GISEL-NEXT: cmp x9, #3 ; GISEL-NEXT: csel x1, xzr, x1, eq @@ -3473,7 +3473,7 @@ define void @test_lshr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: cmp x8, #0 ; GISEL-NEXT: csel x2, x2, x1, eq ; GISEL-NEXT: tst x8, #0x3f -; GISEL-NEXT: ldr x1, [sp, #264] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x1, [sp, #264] ; 8-byte Reload ; GISEL-NEXT: csel x15, xzr, x25, eq ; GISEL-NEXT: cmp x9, #0 ; GISEL-NEXT: orr x15, x23, x15 @@ -3512,7 +3512,7 @@ define void @test_lshr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: cmp x8, #0 ; GISEL-NEXT: csel x15, x16, x15, eq ; GISEL-NEXT: cmp x9, #0 -; GISEL-NEXT: ldr x16, [sp, #296] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x16, [sp, #296] ; 8-byte Reload ; GISEL-NEXT: csel x14, x28, xzr, eq ; GISEL-NEXT: cmp x9, #1 ; GISEL-NEXT: csel x14, xzr, x14, eq @@ -3526,10 +3526,10 @@ define void @test_lshr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: stp x4, x1, [x16] ; GISEL-NEXT: csel x14, xzr, x14, eq ; GISEL-NEXT: cmp x9, #5 -; GISEL-NEXT: ldr x4, [sp, #240] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x4, [sp, #240] ; 8-byte Reload ; GISEL-NEXT: csel x14, xzr, x14, eq ; GISEL-NEXT: cmp x9, #6 -; GISEL-NEXT: ldr x1, [sp, #216] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x1, [sp, #216] ; 8-byte Reload ; GISEL-NEXT: csel x14, xzr, x14, eq ; GISEL-NEXT: cmp x9, #7 ; GISEL-NEXT: stp x13, x0, [x16, #80] @@ -3538,7 +3538,7 @@ define void @test_lshr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: stp x4, x1, [x16, #16] ; GISEL-NEXT: csel x14, xzr, x14, eq ; GISEL-NEXT: cmp x9, #9 -; GISEL-NEXT: ldr x1, [sp, #184] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x1, [sp, #184] ; 8-byte Reload ; GISEL-NEXT: csel x12, xzr, x14, eq ; GISEL-NEXT: cmp x9, #10 ; GISEL-NEXT: stp x3, x2, [x16, #96] @@ -3555,7 +3555,7 @@ define void @test_lshr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: cmp x9, #15 ; GISEL-NEXT: csel x9, xzr, x10, eq ; GISEL-NEXT: cmp x8, #0 -; GISEL-NEXT: ldr x8, [sp, #288] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x8, [sp, #288] ; 8-byte Reload ; GISEL-NEXT: ldp x20, x19, [sp, #384] ; 16-byte Folded Reload ; GISEL-NEXT: ldp x26, x25, [sp, #336] ; 16-byte Folded Reload ; GISEL-NEXT: csel x8, x8, x9, eq @@ -3726,7 +3726,7 @@ define void @test_ashr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: .cfi_offset w26, -80 ; GISEL-NEXT: .cfi_offset w27, -88 ; GISEL-NEXT: .cfi_offset w28, -96 -; GISEL-NEXT: str x0, [sp, #264] ; 8-byte Folded Spill +; GISEL-NEXT: str x0, [sp, #264] ; 8-byte Spill ; GISEL-NEXT: mov w8, w2 ; GISEL-NEXT: mov w9, #64 ; =0x40 ; GISEL-NEXT: ldp x7, x0, [x1] @@ -3740,13 +3740,13 @@ define void @test_ashr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: lsr x12, x7, x15 ; GISEL-NEXT: asr x11, x28, #63 ; GISEL-NEXT: lsr x20, x0, x15 -; GISEL-NEXT: str x0, [sp, #232] ; 8-byte Folded Spill +; GISEL-NEXT: str x0, [sp, #232] ; 8-byte Spill ; GISEL-NEXT: lsl x27, x28, x14 ; GISEL-NEXT: csel x9, xzr, x9, eq ; GISEL-NEXT: lsl x19, x17, x14 ; GISEL-NEXT: cmp x10, #0 ; GISEL-NEXT: orr x9, x12, x9 -; GISEL-NEXT: str x17, [sp, #208] ; 8-byte Folded Spill +; GISEL-NEXT: str x17, [sp, #208] ; 8-byte Spill ; GISEL-NEXT: lsr x2, x17, x15 ; GISEL-NEXT: csel x9, x9, x11, eq ; GISEL-NEXT: tst x8, #0x3f @@ -3758,13 +3758,13 @@ define void @test_ashr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: ldp x13, x17, [x1, #32] ; GISEL-NEXT: csel x9, x12, x9, eq ; GISEL-NEXT: tst x8, #0x3f -; GISEL-NEXT: str x16, [sp, #184] ; 8-byte Folded Spill +; GISEL-NEXT: str x16, [sp, #184] ; 8-byte Spill ; GISEL-NEXT: csel x12, xzr, x30, eq ; GISEL-NEXT: cmp x10, #2 -; GISEL-NEXT: str x2, [sp, #88] ; 8-byte Folded Spill +; GISEL-NEXT: str x2, [sp, #88] ; 8-byte Spill ; GISEL-NEXT: lsl x24, x13, x14 ; GISEL-NEXT: orr x12, x2, x12 -; GISEL-NEXT: str x13, [sp, #168] ; 8-byte Folded Spill +; GISEL-NEXT: str x13, [sp, #168] ; 8-byte Spill ; GISEL-NEXT: csel x9, x12, x9, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: lsr x21, x13, x15 @@ -3778,15 +3778,15 @@ define void @test_ashr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: lsr x3, x17, x15 ; GISEL-NEXT: csel x12, xzr, x0, eq ; GISEL-NEXT: cmp x10, #4 -; GISEL-NEXT: str x0, [sp, #128] ; 8-byte Folded Spill +; GISEL-NEXT: str x0, [sp, #128] ; 8-byte Spill ; GISEL-NEXT: lsl x2, x16, x14 ; GISEL-NEXT: orr x12, x21, x12 ; GISEL-NEXT: mov x0, x16 ; GISEL-NEXT: csel x9, x12, x9, eq ; GISEL-NEXT: tst x8, #0x3f -; GISEL-NEXT: str x17, [sp, #144] ; 8-byte Folded Spill +; GISEL-NEXT: str x17, [sp, #144] ; 8-byte Spill ; GISEL-NEXT: csel x12, xzr, x2, eq -; GISEL-NEXT: str x2, [sp, #304] ; 8-byte Folded Spill +; GISEL-NEXT: str x2, [sp, #304] ; 8-byte Spill ; GISEL-NEXT: lsl x2, x13, x14 ; GISEL-NEXT: cmp x10, #5 ; GISEL-NEXT: orr x12, x3, x12 @@ -3812,21 +3812,21 @@ define void @test_ashr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: csel x9, x12, x9, eq ; GISEL-NEXT: lsl x12, x13, x14 ; GISEL-NEXT: mov x16, x13 -; GISEL-NEXT: str x13, [sp, #192] ; 8-byte Folded Spill +; GISEL-NEXT: str x13, [sp, #192] ; 8-byte Spill ; GISEL-NEXT: ldp x13, x5, [x1, #80] ; GISEL-NEXT: tst x8, #0x3f -; GISEL-NEXT: str x17, [sp, #176] ; 8-byte Folded Spill +; GISEL-NEXT: str x17, [sp, #176] ; 8-byte Spill ; GISEL-NEXT: csel x17, xzr, x12, eq -; GISEL-NEXT: str x0, [sp, #112] ; 8-byte Folded Spill +; GISEL-NEXT: str x0, [sp, #112] ; 8-byte Spill ; GISEL-NEXT: cmp x10, #8 ; GISEL-NEXT: orr x17, x0, x17 ; GISEL-NEXT: lsl x0, x13, x14 -; GISEL-NEXT: str x12, [sp, #280] ; 8-byte Folded Spill +; GISEL-NEXT: str x12, [sp, #280] ; 8-byte Spill ; GISEL-NEXT: csel x17, x17, x9, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: lsr x9, x16, x15 ; GISEL-NEXT: csel x4, xzr, x0, eq -; GISEL-NEXT: str x13, [sp, #200] ; 8-byte Folded Spill +; GISEL-NEXT: str x13, [sp, #200] ; 8-byte Spill ; GISEL-NEXT: cmp x10, #9 ; GISEL-NEXT: stp x9, x0, [sp, #96] ; 16-byte Folded Spill ; GISEL-NEXT: orr x4, x9, x4 @@ -3835,10 +3835,10 @@ define void @test_ashr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: ldp x9, x13, [x1, #96] ; GISEL-NEXT: csel x17, x4, x17, eq ; GISEL-NEXT: tst x8, #0x3f -; GISEL-NEXT: str x28, [sp, #256] ; 8-byte Folded Spill +; GISEL-NEXT: str x28, [sp, #256] ; 8-byte Spill ; GISEL-NEXT: csel x4, xzr, x23, eq ; GISEL-NEXT: cmp x10, #10 -; GISEL-NEXT: str x3, [sp, #120] ; 8-byte Folded Spill +; GISEL-NEXT: str x3, [sp, #120] ; 8-byte Spill ; GISEL-NEXT: orr x4, x12, x4 ; GISEL-NEXT: lsl x16, x9, x14 ; GISEL-NEXT: stp x5, x9, [sp, #216] ; 16-byte Folded Spill @@ -3853,13 +3853,13 @@ define void @test_ashr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: cmp x10, #11 ; GISEL-NEXT: orr x4, x9, x4 ; GISEL-NEXT: lsr x12, x12, x15 -; GISEL-NEXT: str x30, [sp, #48] ; 8-byte Folded Spill +; GISEL-NEXT: str x30, [sp, #48] ; 8-byte Spill ; GISEL-NEXT: stp x16, x9, [sp, #56] ; 16-byte Folded Spill ; GISEL-NEXT: ldr x9, [x1, #112] ; GISEL-NEXT: csel x17, x4, x17, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: stp x25, x24, [sp, #16] ; 16-byte Folded Spill -; GISEL-NEXT: ldr x5, [sp, #96] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x5, [sp, #96] ; 8-byte Reload ; GISEL-NEXT: csel x1, xzr, x16, eq ; GISEL-NEXT: lsl x16, x9, x14 ; GISEL-NEXT: cmp x10, #12 @@ -3873,21 +3873,21 @@ define void @test_ashr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: lsr x26, x12, x15 ; GISEL-NEXT: csel x17, xzr, x16, eq ; GISEL-NEXT: cmp x10, #13 -; GISEL-NEXT: str x23, [sp, #272] ; 8-byte Folded Spill +; GISEL-NEXT: str x23, [sp, #272] ; 8-byte Spill ; GISEL-NEXT: orr x13, x9, x17 -; GISEL-NEXT: str x9, [sp, #312] ; 8-byte Folded Spill +; GISEL-NEXT: str x9, [sp, #312] ; 8-byte Spill ; GISEL-NEXT: mov x9, x28 ; GISEL-NEXT: csel x13, x13, x1, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: lsr x22, x9, x15 ; GISEL-NEXT: csel x28, xzr, x27, eq ; GISEL-NEXT: cmp x10, #14 -; GISEL-NEXT: str x2, [sp, #8] ; 8-byte Folded Spill +; GISEL-NEXT: str x2, [sp, #8] ; 8-byte Spill ; GISEL-NEXT: orr x28, x26, x28 ; GISEL-NEXT: ldp x0, x16, [sp, #120] ; 16-byte Folded Reload ; GISEL-NEXT: csel x12, x28, x13, eq ; GISEL-NEXT: tst x8, #0x3f -; GISEL-NEXT: ldr x13, [sp, #304] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x13, [sp, #304] ; 8-byte Reload ; GISEL-NEXT: csel x28, xzr, x3, eq ; GISEL-NEXT: cmp x10, #15 ; GISEL-NEXT: stp x22, x3, [sp, #32] ; 16-byte Folded Spill @@ -3898,12 +3898,12 @@ define void @test_ashr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: mov x28, x24 ; GISEL-NEXT: csel x9, x7, x9, eq ; GISEL-NEXT: tst x8, #0x3f -; GISEL-NEXT: ldr x7, [sp, #88] ; 8-byte Folded Reload -; GISEL-NEXT: str x9, [sp, #136] ; 8-byte Folded Spill +; GISEL-NEXT: ldr x7, [sp, #88] ; 8-byte Reload +; GISEL-NEXT: str x9, [sp, #136] ; 8-byte Spill ; GISEL-NEXT: csel x9, xzr, x19, eq ; GISEL-NEXT: cmp x10, #0 ; GISEL-NEXT: orr x9, x20, x9 -; GISEL-NEXT: ldr x12, [sp, #280] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x12, [sp, #280] ; 8-byte Reload ; GISEL-NEXT: csel x9, x9, x11, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x20, xzr, x30, eq @@ -3954,7 +3954,7 @@ define void @test_ashr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x20, xzr, x23, eq ; GISEL-NEXT: cmp x10, #9 -; GISEL-NEXT: ldr x23, [sp, #328] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x23, [sp, #328] ; 8-byte Reload ; GISEL-NEXT: orr x20, x14, x20 ; GISEL-NEXT: csel x9, x20, x9, eq ; GISEL-NEXT: tst x8, #0x3f @@ -3978,12 +3978,12 @@ define void @test_ashr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: csel x20, xzr, x27, eq ; GISEL-NEXT: cmp x10, #13 ; GISEL-NEXT: orr x20, x26, x20 -; GISEL-NEXT: ldr x26, [sp, #272] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x26, [sp, #272] ; 8-byte Reload ; GISEL-NEXT: csel x9, x20, x9, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x20, xzr, x3, eq ; GISEL-NEXT: cmp x10, #14 -; GISEL-NEXT: ldr x3, [sp, #232] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x3, [sp, #232] ; 8-byte Reload ; GISEL-NEXT: orr x20, x22, x20 ; GISEL-NEXT: mov x22, x23 ; GISEL-NEXT: csel x9, x20, x9, eq @@ -3993,12 +3993,12 @@ define void @test_ashr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: csel x9, x3, x9, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: mov x3, x16 -; GISEL-NEXT: str x9, [sp, #232] ; 8-byte Folded Spill -; GISEL-NEXT: ldr x9, [sp, #48] ; 8-byte Folded Reload +; GISEL-NEXT: str x9, [sp, #232] ; 8-byte Spill +; GISEL-NEXT: ldr x9, [sp, #48] ; 8-byte Reload ; GISEL-NEXT: csel x9, xzr, x9, eq ; GISEL-NEXT: cmp x10, #0 ; GISEL-NEXT: orr x9, x7, x9 -; GISEL-NEXT: ldr x7, [sp, #312] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x7, [sp, #312] ; 8-byte Reload ; GISEL-NEXT: csel x9, x9, x11, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x20, xzr, x28, eq @@ -4034,7 +4034,7 @@ define void @test_ashr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x20, xzr, x12, eq ; GISEL-NEXT: cmp x10, #6 -; GISEL-NEXT: ldr x12, [sp, #208] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x12, [sp, #208] ; 8-byte Reload ; GISEL-NEXT: orr x20, x19, x20 ; GISEL-NEXT: mov x19, x27 ; GISEL-NEXT: csel x9, x20, x9, eq @@ -4083,24 +4083,24 @@ define void @test_ashr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: cmp x8, #0 ; GISEL-NEXT: csel x9, x12, x9, eq ; GISEL-NEXT: tst x8, #0x3f -; GISEL-NEXT: str x9, [sp, #208] ; 8-byte Folded Spill +; GISEL-NEXT: str x9, [sp, #208] ; 8-byte Spill ; GISEL-NEXT: ldp x12, x9, [sp, #16] ; 16-byte Folded Reload ; GISEL-NEXT: csel x9, xzr, x9, eq ; GISEL-NEXT: cmp x10, #0 ; GISEL-NEXT: orr x9, x12, x9 -; GISEL-NEXT: ldr x12, [sp, #184] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x12, [sp, #184] ; 8-byte Reload ; GISEL-NEXT: csel x9, x9, x11, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x20, xzr, x3, eq ; GISEL-NEXT: cmp x10, #1 -; GISEL-NEXT: ldr x3, [sp, #296] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x3, [sp, #296] ; 8-byte Reload ; GISEL-NEXT: orr x20, x25, x20 -; GISEL-NEXT: ldr x25, [sp, #280] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x25, [sp, #280] ; 8-byte Reload ; GISEL-NEXT: csel x9, x20, x9, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x20, xzr, x13, eq ; GISEL-NEXT: cmp x10, #2 -; GISEL-NEXT: ldr x13, [sp, #8] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x13, [sp, #8] ; 8-byte Reload ; GISEL-NEXT: orr x20, x16, x20 ; GISEL-NEXT: csel x9, x20, x9, eq ; GISEL-NEXT: tst x8, #0x3f @@ -4148,7 +4148,7 @@ define void @test_ashr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x20, xzr, x30, eq ; GISEL-NEXT: cmp x10, #10 -; GISEL-NEXT: ldr x30, [sp, #272] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x30, [sp, #272] ; 8-byte Reload ; GISEL-NEXT: orr x20, x7, x20 ; GISEL-NEXT: csel x9, x20, x9, eq ; GISEL-NEXT: tst x8, #0x3f @@ -4170,12 +4170,12 @@ define void @test_ashr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: cmp x8, #0 ; GISEL-NEXT: csel x9, x12, x9, eq ; GISEL-NEXT: tst x8, #0x3f -; GISEL-NEXT: ldr x12, [sp, #168] ; 8-byte Folded Reload -; GISEL-NEXT: str x9, [sp, #184] ; 8-byte Folded Spill +; GISEL-NEXT: ldr x12, [sp, #168] ; 8-byte Reload +; GISEL-NEXT: str x9, [sp, #184] ; 8-byte Spill ; GISEL-NEXT: csel x9, xzr, x5, eq ; GISEL-NEXT: cmp x10, #0 ; GISEL-NEXT: orr x9, x21, x9 -; GISEL-NEXT: ldr x5, [sp, #304] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x5, [sp, #304] ; 8-byte Reload ; GISEL-NEXT: mov x21, x0 ; GISEL-NEXT: csel x9, x9, x11, eq ; GISEL-NEXT: tst x8, #0x3f @@ -4188,7 +4188,7 @@ define void @test_ashr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: csel x20, xzr, x13, eq ; GISEL-NEXT: cmp x10, #2 ; GISEL-NEXT: orr x20, x24, x20 -; GISEL-NEXT: ldr x24, [sp, #288] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x24, [sp, #288] ; 8-byte Reload ; GISEL-NEXT: csel x9, x20, x9, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x20, xzr, x3, eq @@ -4246,8 +4246,8 @@ define void @test_ashr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: cmp x8, #0 ; GISEL-NEXT: csel x9, x12, x9, eq ; GISEL-NEXT: tst x8, #0x3f -; GISEL-NEXT: ldr x12, [sp, #144] ; 8-byte Folded Reload -; GISEL-NEXT: str x9, [sp, #168] ; 8-byte Folded Spill +; GISEL-NEXT: ldr x12, [sp, #144] ; 8-byte Reload +; GISEL-NEXT: str x9, [sp, #168] ; 8-byte Spill ; GISEL-NEXT: csel x9, xzr, x5, eq ; GISEL-NEXT: cmp x10, #0 ; GISEL-NEXT: orr x9, x28, x9 @@ -4320,8 +4320,8 @@ define void @test_ashr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: cmp x8, #0 ; GISEL-NEXT: csel x9, x12, x9, eq ; GISEL-NEXT: tst x8, #0x3f -; GISEL-NEXT: ldr x12, [sp, #152] ; 8-byte Folded Reload -; GISEL-NEXT: str x9, [sp, #304] ; 8-byte Folded Spill +; GISEL-NEXT: ldr x12, [sp, #152] ; 8-byte Reload +; GISEL-NEXT: str x9, [sp, #304] ; 8-byte Spill ; GISEL-NEXT: csel x9, xzr, x13, eq ; GISEL-NEXT: cmp x10, #0 ; GISEL-NEXT: orr x9, x16, x9 @@ -4388,7 +4388,7 @@ define void @test_ashr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: cmp x8, #0 ; GISEL-NEXT: csel x20, x12, x9, eq ; GISEL-NEXT: tst x8, #0x3f -; GISEL-NEXT: ldr x12, [sp, #160] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x12, [sp, #160] ; 8-byte Reload ; GISEL-NEXT: csel x9, xzr, x28, eq ; GISEL-NEXT: cmp x10, #0 ; GISEL-NEXT: orr x9, x24, x9 @@ -4451,11 +4451,11 @@ define void @test_ashr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: cmp x8, #0 ; GISEL-NEXT: csel x2, x12, x9, eq ; GISEL-NEXT: tst x8, #0x3f -; GISEL-NEXT: ldr x12, [sp, #176] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x12, [sp, #176] ; 8-byte Reload ; GISEL-NEXT: csel x9, xzr, x25, eq ; GISEL-NEXT: cmp x10, #0 ; GISEL-NEXT: orr x9, x16, x9 -; GISEL-NEXT: ldr x16, [sp, #216] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x16, [sp, #216] ; 8-byte Reload ; GISEL-NEXT: csel x9, x9, x11, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x13, xzr, x3, eq @@ -4546,7 +4546,7 @@ define void @test_ashr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: orr x12, x27, x12 ; GISEL-NEXT: csel x9, x12, x9, eq ; GISEL-NEXT: cmp x10, #7 -; GISEL-NEXT: ldr x12, [sp, #192] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x12, [sp, #192] ; 8-byte Reload ; GISEL-NEXT: csel x9, x11, x9, eq ; GISEL-NEXT: cmp x10, #8 ; GISEL-NEXT: csel x9, x11, x9, eq @@ -4599,7 +4599,7 @@ define void @test_ashr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: orr x13, x27, x13 ; GISEL-NEXT: csel x12, x13, x12, eq ; GISEL-NEXT: cmp x10, #6 -; GISEL-NEXT: ldr x13, [sp, #200] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x13, [sp, #200] ; 8-byte Reload ; GISEL-NEXT: csel x12, x11, x12, eq ; GISEL-NEXT: cmp x10, #7 ; GISEL-NEXT: csel x12, x11, x12, eq @@ -4624,9 +4624,9 @@ define void @test_ashr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x12, xzr, x14, eq ; GISEL-NEXT: cmp x10, #0 -; GISEL-NEXT: ldr x14, [sp, #264] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x14, [sp, #264] ; 8-byte Reload ; GISEL-NEXT: orr x12, x15, x12 -; GISEL-NEXT: ldr x15, [sp, #136] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x15, [sp, #136] ; 8-byte Reload ; GISEL-NEXT: csel x12, x12, x11, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: stp x9, x13, [x14, #72] @@ -4634,7 +4634,7 @@ define void @test_ashr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: cmp x10, #1 ; GISEL-NEXT: str x15, [x14] ; GISEL-NEXT: orr x0, x1, x0 -; GISEL-NEXT: ldr x15, [sp, #232] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x15, [sp, #232] ; 8-byte Reload ; GISEL-NEXT: stp x2, x6, [x14, #56] ; GISEL-NEXT: csel x12, x0, x12, eq ; GISEL-NEXT: tst x8, #0x3f @@ -4642,21 +4642,21 @@ define void @test_ashr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: cmp x10, #2 ; GISEL-NEXT: str x15, [x14, #8] ; GISEL-NEXT: orr x0, x5, x0 -; GISEL-NEXT: ldr x15, [sp, #208] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x15, [sp, #208] ; 8-byte Reload ; GISEL-NEXT: csel x12, x0, x12, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x0, xzr, x7, eq ; GISEL-NEXT: cmp x10, #3 ; GISEL-NEXT: str x15, [x14, #16] ; GISEL-NEXT: orr x0, x19, x0 -; GISEL-NEXT: ldr x15, [sp, #184] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x15, [sp, #184] ; 8-byte Reload ; GISEL-NEXT: csel x12, x0, x12, eq ; GISEL-NEXT: tst x8, #0x3f ; GISEL-NEXT: csel x0, xzr, x23, eq ; GISEL-NEXT: cmp x10, #4 ; GISEL-NEXT: str x15, [x14, #24] ; GISEL-NEXT: orr x0, x27, x0 -; GISEL-NEXT: ldr x15, [sp, #168] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x15, [sp, #168] ; 8-byte Reload ; GISEL-NEXT: csel x12, x0, x12, eq ; GISEL-NEXT: cmp x10, #5 ; GISEL-NEXT: csel x12, x11, x12, eq @@ -4664,7 +4664,7 @@ define void @test_ashr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: str x15, [x14, #32] ; GISEL-NEXT: csel x12, x11, x12, eq ; GISEL-NEXT: cmp x10, #7 -; GISEL-NEXT: ldr x15, [sp, #304] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x15, [sp, #304] ; 8-byte Reload ; GISEL-NEXT: csel x12, x11, x12, eq ; GISEL-NEXT: cmp x10, #8 ; GISEL-NEXT: csel x12, x11, x12, eq @@ -4686,7 +4686,7 @@ define void @test_ashr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: cmp x8, #0 ; GISEL-NEXT: csel x0, x16, x12, eq ; GISEL-NEXT: tst x8, #0x3f -; GISEL-NEXT: ldr x16, [sp, #224] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x16, [sp, #224] ; 8-byte Reload ; GISEL-NEXT: csel x12, xzr, x17, eq ; GISEL-NEXT: cmp x10, #0 ; GISEL-NEXT: orr x12, x1, x12 @@ -4734,7 +4734,7 @@ define void @test_ashr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: cmp x8, #0 ; GISEL-NEXT: csel x3, x16, x12, eq ; GISEL-NEXT: tst x8, #0x3f -; GISEL-NEXT: ldr x16, [sp, #240] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x16, [sp, #240] ; 8-byte Reload ; GISEL-NEXT: csel x12, xzr, x4, eq ; GISEL-NEXT: cmp x10, #0 ; GISEL-NEXT: stp x0, x3, [x14, #88] @@ -4779,7 +4779,7 @@ define void @test_ashr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: cmp x8, #0 ; GISEL-NEXT: csel x4, x16, x12, eq ; GISEL-NEXT: tst x8, #0x3f -; GISEL-NEXT: ldr x16, [sp, #248] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x16, [sp, #248] ; 8-byte Reload ; GISEL-NEXT: csel x12, xzr, x7, eq ; GISEL-NEXT: cmp x10, #0 ; GISEL-NEXT: orr x12, x19, x12 @@ -4858,7 +4858,7 @@ define void @test_ashr_i1024(ptr %result, ptr %input, i32 %shift) { ; GISEL-NEXT: cmp x10, #15 ; GISEL-NEXT: csel x9, x11, x9, eq ; GISEL-NEXT: cmp x8, #0 -; GISEL-NEXT: ldr x8, [sp, #256] ; 8-byte Folded Reload +; GISEL-NEXT: ldr x8, [sp, #256] ; 8-byte Reload ; GISEL-NEXT: ldp x28, x27, [sp, #336] ; 16-byte Folded Reload ; GISEL-NEXT: csel x8, x8, x9, eq ; GISEL-NEXT: str x8, [x14, #120] diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/stacksave-stackrestore.ll b/llvm/test/CodeGen/AArch64/GlobalISel/stacksave-stackrestore.ll index ae26c363ef56b..e8b91d2fa6871 100644 --- a/llvm/test/CodeGen/AArch64/GlobalISel/stacksave-stackrestore.ll +++ b/llvm/test/CodeGen/AArch64/GlobalISel/stacksave-stackrestore.ll @@ -9,7 +9,7 @@ define void @test_scoped_alloca(i64 %n) { ; CHECK-LABEL: test_scoped_alloca: ; CHECK: // %bb.0: ; CHECK-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill -; CHECK-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-NEXT: mov x29, sp ; CHECK-NEXT: .cfi_def_cfa w29, 32 ; CHECK-NEXT: .cfi_offset w19, -16 @@ -24,7 +24,7 @@ define void @test_scoped_alloca(i64 %n) { ; CHECK-NEXT: bl use_addr ; CHECK-NEXT: mov sp, x19 ; CHECK-NEXT: mov sp, x29 -; CHECK-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-NEXT: ret %sp = call ptr @llvm.stacksave.p0() diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/swifterror.ll b/llvm/test/CodeGen/AArch64/GlobalISel/swifterror.ll index 6d27e4f4d603b..78fc6ccc50663 100644 --- a/llvm/test/CodeGen/AArch64/GlobalISel/swifterror.ll +++ b/llvm/test/CodeGen/AArch64/GlobalISel/swifterror.ll @@ -443,7 +443,7 @@ declare swiftcc void @params_in_reg2(i64, i64, i64, i64, i64, i64, i64, i64, ptr ; CHECK: mov x21, x19 ; CHECK: mov x7, x28 ; CHECK: ldp x29, x30, [sp, #96] ; 16-byte Folded Reload -; CHECK: ldr x28, [sp, #16] ; 8-byte Folded Reload +; CHECK: ldr x28, [sp, #16] ; 8-byte Reload ; CHECK: ldp x20, x19, [sp, #80] ; 16-byte Folded Reload ; CHECK: ldp x23, x22, [sp, #64] ; 16-byte Folded Reload ; CHECK: ldp x25, x24, [sp, #48] ; 16-byte Folded Reload diff --git a/llvm/test/CodeGen/AArch64/aarch64-fastcc-stackup.ll b/llvm/test/CodeGen/AArch64/aarch64-fastcc-stackup.ll index db5289ac4bdca..3cfe10ed8a83d 100644 --- a/llvm/test/CodeGen/AArch64/aarch64-fastcc-stackup.ll +++ b/llvm/test/CodeGen/AArch64/aarch64-fastcc-stackup.ll @@ -21,7 +21,7 @@ define fastcc i64 @baz() { ; CHECK-LABEL: baz: ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: sub sp, sp, #32 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: mov x8, sp @@ -36,10 +36,10 @@ define fastcc i64 @baz() { ; CHECK-NEXT: mov x6, x7 ; CHECK-NEXT: bl foo ; CHECK-NEXT: sub sp, sp, #16 -; CHECK-NEXT: str x0, [sp, #8] // 8-byte Folded Spill +; CHECK-NEXT: str x0, [sp, #8] // 8-byte Spill ; CHECK-NEXT: bl bar -; CHECK-NEXT: ldr x0, [sp, #8] // 8-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x0, [sp, #8] // 8-byte Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: ret entry: diff --git a/llvm/test/CodeGen/AArch64/aarch64-mops.ll b/llvm/test/CodeGen/AArch64/aarch64-mops.ll index 83530049a50d6..1710fad9f2539 100644 --- a/llvm/test/CodeGen/AArch64/aarch64-mops.ll +++ b/llvm/test/CodeGen/AArch64/aarch64-mops.ll @@ -664,14 +664,14 @@ define void @memset_size(ptr %dst, i64 %size, i32 %value) { ; GISel-WITHOUT-MOPS-O0-LABEL: memset_size: ; GISel-WITHOUT-MOPS-O0: // %bb.0: // %entry ; GISel-WITHOUT-MOPS-O0-NEXT: sub sp, sp, #32 -; GISel-WITHOUT-MOPS-O0-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; GISel-WITHOUT-MOPS-O0-NEXT: str x30, [sp, #16] // 8-byte Spill ; GISel-WITHOUT-MOPS-O0-NEXT: .cfi_def_cfa_offset 32 ; GISel-WITHOUT-MOPS-O0-NEXT: .cfi_offset w30, -16 -; GISel-WITHOUT-MOPS-O0-NEXT: str x1, [sp, #8] // 8-byte Folded Spill +; GISel-WITHOUT-MOPS-O0-NEXT: str x1, [sp, #8] // 8-byte Spill ; GISel-WITHOUT-MOPS-O0-NEXT: mov w1, w2 -; GISel-WITHOUT-MOPS-O0-NEXT: ldr x2, [sp, #8] // 8-byte Folded Reload +; GISel-WITHOUT-MOPS-O0-NEXT: ldr x2, [sp, #8] // 8-byte Reload ; GISel-WITHOUT-MOPS-O0-NEXT: bl memset -; GISel-WITHOUT-MOPS-O0-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; GISel-WITHOUT-MOPS-O0-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; GISel-WITHOUT-MOPS-O0-NEXT: add sp, sp, #32 ; GISel-WITHOUT-MOPS-O0-NEXT: ret ; @@ -733,14 +733,14 @@ define void @memset_size_volatile(ptr %dst, i64 %size, i32 %value) { ; GISel-WITHOUT-MOPS-O0-LABEL: memset_size_volatile: ; GISel-WITHOUT-MOPS-O0: // %bb.0: // %entry ; GISel-WITHOUT-MOPS-O0-NEXT: sub sp, sp, #32 -; GISel-WITHOUT-MOPS-O0-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; GISel-WITHOUT-MOPS-O0-NEXT: str x30, [sp, #16] // 8-byte Spill ; GISel-WITHOUT-MOPS-O0-NEXT: .cfi_def_cfa_offset 32 ; GISel-WITHOUT-MOPS-O0-NEXT: .cfi_offset w30, -16 -; GISel-WITHOUT-MOPS-O0-NEXT: str x1, [sp, #8] // 8-byte Folded Spill +; GISel-WITHOUT-MOPS-O0-NEXT: str x1, [sp, #8] // 8-byte Spill ; GISel-WITHOUT-MOPS-O0-NEXT: mov w1, w2 -; GISel-WITHOUT-MOPS-O0-NEXT: ldr x2, [sp, #8] // 8-byte Folded Reload +; GISel-WITHOUT-MOPS-O0-NEXT: ldr x2, [sp, #8] // 8-byte Reload ; GISel-WITHOUT-MOPS-O0-NEXT: bl memset -; GISel-WITHOUT-MOPS-O0-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; GISel-WITHOUT-MOPS-O0-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; GISel-WITHOUT-MOPS-O0-NEXT: add sp, sp, #32 ; GISel-WITHOUT-MOPS-O0-NEXT: ret ; diff --git a/llvm/test/CodeGen/AArch64/addsub-constant-folding.ll b/llvm/test/CodeGen/AArch64/addsub-constant-folding.ll index 10b30b0265de8..47e30e38bc51c 100644 --- a/llvm/test/CodeGen/AArch64/addsub-constant-folding.ll +++ b/llvm/test/CodeGen/AArch64/addsub-constant-folding.ll @@ -50,16 +50,16 @@ define <4 x i32> @vec_add_const_add_const_extrause(<4 x i32> %arg) { ; CHECK-LABEL: vec_add_const_add_const_extrause: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #32 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: movi v1.4s, #8 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: add v0.4s, v0.4s, v1.4s ; CHECK-NEXT: bl vec_use ; CHECK-NEXT: movi v0.4s, #10 -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: add v0.4s, v1.4s, v0.4s ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: ret @@ -127,16 +127,16 @@ define <4 x i32> @vec_add_const_sub_const_extrause(<4 x i32> %arg) { ; CHECK-LABEL: vec_add_const_sub_const_extrause: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #32 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: movi v1.4s, #8 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: add v0.4s, v0.4s, v1.4s ; CHECK-NEXT: bl vec_use ; CHECK-NEXT: movi v0.4s, #6 -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: add v0.4s, v1.4s, v0.4s ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: ret @@ -206,16 +206,16 @@ define <4 x i32> @vec_add_const_const_sub_extrause(<4 x i32> %arg) { ; CHECK-LABEL: vec_add_const_const_sub_extrause: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #32 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: movi v1.4s, #8 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: add v0.4s, v0.4s, v1.4s ; CHECK-NEXT: bl vec_use ; CHECK-NEXT: mvni v0.4s, #5 -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: sub v0.4s, v0.4s, v1.4s ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: ret @@ -283,16 +283,16 @@ define <4 x i32> @vec_sub_const_add_const_extrause(<4 x i32> %arg) { ; CHECK-LABEL: vec_sub_const_add_const_extrause: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #32 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: movi v1.4s, #8 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: sub v0.4s, v0.4s, v1.4s ; CHECK-NEXT: bl vec_use ; CHECK-NEXT: mvni v0.4s, #5 -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: add v0.4s, v1.4s, v0.4s ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: ret @@ -360,16 +360,16 @@ define <4 x i32> @vec_sub_const_sub_const_extrause(<4 x i32> %arg) { ; CHECK-LABEL: vec_sub_const_sub_const_extrause: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #32 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: movi v1.4s, #8 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: sub v0.4s, v0.4s, v1.4s ; CHECK-NEXT: bl vec_use ; CHECK-NEXT: movi v0.4s, #10 -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: sub v0.4s, v1.4s, v0.4s ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: ret @@ -439,16 +439,16 @@ define <4 x i32> @vec_sub_const_const_sub_extrause(<4 x i32> %arg) { ; CHECK-LABEL: vec_sub_const_const_sub_extrause: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #32 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: movi v1.4s, #8 ; CHECK-NEXT: sub v0.4s, v0.4s, v1.4s -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: bl vec_use ; CHECK-NEXT: movi v0.4s, #2 -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: sub v0.4s, v0.4s, v1.4s ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: ret @@ -519,16 +519,16 @@ define <4 x i32> @vec_const_sub_add_const_extrause(<4 x i32> %arg) { ; CHECK-LABEL: vec_const_sub_add_const_extrause: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #32 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: movi v1.4s, #8 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: sub v0.4s, v1.4s, v0.4s ; CHECK-NEXT: bl vec_use ; CHECK-NEXT: movi v0.4s, #10 -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: sub v0.4s, v0.4s, v1.4s ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: ret @@ -599,16 +599,16 @@ define <4 x i32> @vec_const_sub_sub_const_extrause(<4 x i32> %arg) { ; CHECK-LABEL: vec_const_sub_sub_const_extrause: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #32 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: movi v1.4s, #8 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: sub v0.4s, v1.4s, v0.4s ; CHECK-NEXT: bl vec_use ; CHECK-NEXT: movi v0.4s, #6 -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: sub v0.4s, v0.4s, v1.4s ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: ret @@ -678,16 +678,16 @@ define <4 x i32> @vec_const_sub_const_sub_extrause(<4 x i32> %arg) { ; CHECK-LABEL: vec_const_sub_const_sub_extrause: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #32 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: movi v1.4s, #8 ; CHECK-NEXT: sub v0.4s, v1.4s, v0.4s -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: bl vec_use ; CHECK-NEXT: movi v0.4s, #2 -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: sub v0.4s, v0.4s, v1.4s ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: ret diff --git a/llvm/test/CodeGen/AArch64/alias_mask_scalable.ll b/llvm/test/CodeGen/AArch64/alias_mask_scalable.ll index 179dcfa11c108..3435ceca28e17 100644 --- a/llvm/test/CodeGen/AArch64/alias_mask_scalable.ll +++ b/llvm/test/CodeGen/AArch64/alias_mask_scalable.ll @@ -115,10 +115,10 @@ define @whilewr_16_expand(ptr %a, ptr %b) { ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p7, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p7, [sp, #4, mul vl] // 2-byte Spill +; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: index z0.d, #0, #1 @@ -147,18 +147,18 @@ define @whilewr_16_expand(ptr %a, ptr %b) { ; CHECK-NEXT: mov z0.d, z3.d ; CHECK-NEXT: cmphi p6.d, p0/z, z2.d, z3.d ; CHECK-NEXT: uzp1 p2.s, p4.s, p5.s -; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: incd z0.d, all, mul #4 ; CHECK-NEXT: uzp1 p3.s, p3.s, p6.s -; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Reload ; CHECK-NEXT: cmphi p0.d, p0/z, z2.d, z0.d ; CHECK-NEXT: uzp1 p1.h, p1.h, p3.h ; CHECK-NEXT: cmp x8, #1 ; CHECK-NEXT: cset w8, lt ; CHECK-NEXT: sbfx x8, x8, #0, #1 ; CHECK-NEXT: uzp1 p0.s, p7.s, p0.s -; CHECK-NEXT: ldr p7, [sp, #4, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p7, [sp, #4, mul vl] // 2-byte Reload ; CHECK-NEXT: uzp1 p0.h, p2.h, p0.h ; CHECK-NEXT: uzp1 p0.b, p1.b, p0.b ; CHECK-NEXT: whilelo p1.b, xzr, x8 @@ -176,12 +176,12 @@ define @whilewr_16_expand2(ptr %a, ptr %b) { ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p9, [sp, #2, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p8, [sp, #3, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p7, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p9, [sp, #2, mul vl] // 2-byte Spill +; CHECK-NEXT: str p8, [sp, #3, mul vl] // 2-byte Spill +; CHECK-NEXT: str p7, [sp, #4, mul vl] // 2-byte Spill +; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: index z0.d, #0, #1 @@ -236,24 +236,24 @@ define @whilewr_16_expand2(ptr %a, ptr %b) { ; CHECK-NEXT: cmphi p0.d, p0/z, z5.d, z0.d ; CHECK-NEXT: uzp1 p4.s, p5.s, p4.s ; CHECK-NEXT: uzp1 p5.s, p9.s, p6.s -; CHECK-NEXT: ldr p9, [sp, #2, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p9, [sp, #2, mul vl] // 2-byte Reload ; CHECK-NEXT: whilelo p6.b, xzr, x8 ; CHECK-NEXT: uzp1 p3.s, p8.s, p3.s ; CHECK-NEXT: cmp x9, #1 -; CHECK-NEXT: ldr p8, [sp, #3, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #3, mul vl] // 2-byte Reload ; CHECK-NEXT: uzp1 p0.s, p0.s, p7.s ; CHECK-NEXT: cset w8, lt -; CHECK-NEXT: ldr p7, [sp, #4, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p7, [sp, #4, mul vl] // 2-byte Reload ; CHECK-NEXT: uzp1 p4.h, p5.h, p4.h ; CHECK-NEXT: sbfx x8, x8, #0, #1 -; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Reload ; CHECK-NEXT: uzp1 p0.h, p0.h, p3.h ; CHECK-NEXT: uzp1 p1.b, p1.b, p2.b ; CHECK-NEXT: uzp1 p2.b, p0.b, p4.b -; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: whilelo p3.b, xzr, x8 ; CHECK-NEXT: sel p0.b, p1, p1.b, p6.b -; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Reload ; CHECK-NEXT: sel p1.b, p2, p2.b, p3.b ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload @@ -302,10 +302,10 @@ define @whilewr_32_expand2(ptr %a, ptr %b) { ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p7, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p7, [sp, #4, mul vl] // 2-byte Spill +; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: index z0.d, #0, #1 @@ -335,18 +335,18 @@ define @whilewr_32_expand2(ptr %a, ptr %b) { ; CHECK-NEXT: mov z0.d, z3.d ; CHECK-NEXT: cmphi p6.d, p0/z, z2.d, z3.d ; CHECK-NEXT: uzp1 p2.s, p4.s, p5.s -; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: incd z0.d, all, mul #4 ; CHECK-NEXT: uzp1 p3.s, p3.s, p6.s -; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Reload ; CHECK-NEXT: cmphi p0.d, p0/z, z2.d, z0.d ; CHECK-NEXT: uzp1 p1.h, p1.h, p3.h ; CHECK-NEXT: cmp x8, #1 ; CHECK-NEXT: cset w8, lt ; CHECK-NEXT: sbfx x8, x8, #0, #1 ; CHECK-NEXT: uzp1 p0.s, p7.s, p0.s -; CHECK-NEXT: ldr p7, [sp, #4, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p7, [sp, #4, mul vl] // 2-byte Reload ; CHECK-NEXT: uzp1 p0.h, p2.h, p0.h ; CHECK-NEXT: uzp1 p0.b, p1.b, p0.b ; CHECK-NEXT: whilelo p1.b, xzr, x8 @@ -364,13 +364,13 @@ define @whilewr_32_expand3(ptr %a, ptr %b) { ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p10, [sp, #1, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p9, [sp, #2, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p8, [sp, #3, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p7, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p10, [sp, #1, mul vl] // 2-byte Spill +; CHECK-NEXT: str p9, [sp, #2, mul vl] // 2-byte Spill +; CHECK-NEXT: str p8, [sp, #3, mul vl] // 2-byte Spill +; CHECK-NEXT: str p7, [sp, #4, mul vl] // 2-byte Spill +; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: index z0.d, #0, #1 @@ -432,21 +432,21 @@ define @whilewr_32_expand3(ptr %a, ptr %b) { ; CHECK-NEXT: cset w8, lt ; CHECK-NEXT: uzp1 p7.s, p9.s, p8.s ; CHECK-NEXT: sbfx x8, x8, #0, #1 -; CHECK-NEXT: ldr p9, [sp, #2, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p9, [sp, #2, mul vl] // 2-byte Reload ; CHECK-NEXT: uzp1 p4.s, p10.s, p4.s -; CHECK-NEXT: ldr p10, [sp, #1, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p10, [sp, #1, mul vl] // 2-byte Reload ; CHECK-NEXT: uzp1 p0.s, p0.s, p6.s -; CHECK-NEXT: ldr p8, [sp, #3, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #3, mul vl] // 2-byte Reload ; CHECK-NEXT: uzp1 p5.h, p7.h, p5.h -; CHECK-NEXT: ldr p7, [sp, #4, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p7, [sp, #4, mul vl] // 2-byte Reload ; CHECK-NEXT: uzp1 p0.h, p0.h, p4.h -; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Reload ; CHECK-NEXT: whilelo p4.b, xzr, x8 ; CHECK-NEXT: uzp1 p3.b, p0.b, p5.b -; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Reload ; CHECK-NEXT: sel p0.b, p2, p2.b, p1.b ; CHECK-NEXT: sel p1.b, p3, p3.b, p4.b -; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -520,10 +520,10 @@ define @whilewr_64_expand3(ptr %a, ptr %b) { ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p7, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p7, [sp, #4, mul vl] // 2-byte Spill +; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: index z0.d, #0, #1 @@ -553,18 +553,18 @@ define @whilewr_64_expand3(ptr %a, ptr %b) { ; CHECK-NEXT: mov z0.d, z3.d ; CHECK-NEXT: cmphi p6.d, p0/z, z2.d, z3.d ; CHECK-NEXT: uzp1 p2.s, p4.s, p5.s -; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: incd z0.d, all, mul #4 ; CHECK-NEXT: uzp1 p3.s, p3.s, p6.s -; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Reload ; CHECK-NEXT: cmphi p0.d, p0/z, z2.d, z0.d ; CHECK-NEXT: uzp1 p1.h, p1.h, p3.h ; CHECK-NEXT: cmp x8, #1 ; CHECK-NEXT: cset w8, lt ; CHECK-NEXT: sbfx x8, x8, #0, #1 ; CHECK-NEXT: uzp1 p0.s, p7.s, p0.s -; CHECK-NEXT: ldr p7, [sp, #4, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p7, [sp, #4, mul vl] // 2-byte Reload ; CHECK-NEXT: uzp1 p0.h, p2.h, p0.h ; CHECK-NEXT: uzp1 p0.b, p1.b, p0.b ; CHECK-NEXT: whilelo p1.b, xzr, x8 @@ -582,13 +582,13 @@ define @whilewr_64_expand4(ptr %a, ptr %b) { ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p10, [sp, #1, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p9, [sp, #2, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p8, [sp, #3, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p7, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p10, [sp, #1, mul vl] // 2-byte Spill +; CHECK-NEXT: str p9, [sp, #2, mul vl] // 2-byte Spill +; CHECK-NEXT: str p8, [sp, #3, mul vl] // 2-byte Spill +; CHECK-NEXT: str p7, [sp, #4, mul vl] // 2-byte Spill +; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: index z0.d, #0, #1 @@ -650,21 +650,21 @@ define @whilewr_64_expand4(ptr %a, ptr %b) { ; CHECK-NEXT: cset w8, lt ; CHECK-NEXT: uzp1 p7.s, p9.s, p8.s ; CHECK-NEXT: sbfx x8, x8, #0, #1 -; CHECK-NEXT: ldr p9, [sp, #2, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p9, [sp, #2, mul vl] // 2-byte Reload ; CHECK-NEXT: uzp1 p4.s, p10.s, p4.s -; CHECK-NEXT: ldr p10, [sp, #1, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p10, [sp, #1, mul vl] // 2-byte Reload ; CHECK-NEXT: uzp1 p0.s, p0.s, p6.s -; CHECK-NEXT: ldr p8, [sp, #3, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #3, mul vl] // 2-byte Reload ; CHECK-NEXT: uzp1 p5.h, p7.h, p5.h -; CHECK-NEXT: ldr p7, [sp, #4, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p7, [sp, #4, mul vl] // 2-byte Reload ; CHECK-NEXT: uzp1 p0.h, p0.h, p4.h -; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Reload ; CHECK-NEXT: whilelo p4.b, xzr, x8 ; CHECK-NEXT: uzp1 p3.b, p0.b, p5.b -; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Reload ; CHECK-NEXT: sel p0.b, p2, p2.b, p1.b ; CHECK-NEXT: sel p1.b, p3, p3.b, p4.b -; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -708,10 +708,10 @@ define @whilewr_badimm(ptr %a, ptr %b) { ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p7, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p7, [sp, #4, mul vl] // 2-byte Spill +; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: index z0.d, #0, #1 @@ -743,17 +743,17 @@ define @whilewr_badimm(ptr %a, ptr %b) { ; CHECK-NEXT: uzp1 p1.s, p2.s, p1.s ; CHECK-NEXT: incd z0.d, all, mul #4 ; CHECK-NEXT: uzp1 p2.s, p4.s, p5.s -; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Reload ; CHECK-NEXT: uzp1 p3.s, p3.s, p6.s -; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: cmphi p0.d, p0/z, z2.d, z0.d ; CHECK-NEXT: uzp1 p1.h, p1.h, p3.h ; CHECK-NEXT: cmp x8, #1 ; CHECK-NEXT: cset w8, lt ; CHECK-NEXT: sbfx x8, x8, #0, #1 ; CHECK-NEXT: uzp1 p0.s, p7.s, p0.s -; CHECK-NEXT: ldr p7, [sp, #4, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p7, [sp, #4, mul vl] // 2-byte Reload ; CHECK-NEXT: uzp1 p0.h, p2.h, p0.h ; CHECK-NEXT: uzp1 p0.b, p1.b, p0.b ; CHECK-NEXT: whilelo p1.b, xzr, x8 diff --git a/llvm/test/CodeGen/AArch64/alias_mask_scalable_nosve2.ll b/llvm/test/CodeGen/AArch64/alias_mask_scalable_nosve2.ll index 8b5ea0bc3b3ce..d62d0665dd332 100644 --- a/llvm/test/CodeGen/AArch64/alias_mask_scalable_nosve2.ll +++ b/llvm/test/CodeGen/AArch64/alias_mask_scalable_nosve2.ll @@ -6,10 +6,10 @@ define @whilewr_8(ptr %a, ptr %b) { ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p7, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p7, [sp, #4, mul vl] // 2-byte Spill +; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: index z0.d, #0, #1 @@ -35,17 +35,17 @@ define @whilewr_8(ptr %a, ptr %b) { ; CHECK-NEXT: cmphi p4.d, p0/z, z2.d, z4.d ; CHECK-NEXT: incd z4.d, all, mul #4 ; CHECK-NEXT: uzp1 p2.s, p5.s, p6.s -; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Reload ; CHECK-NEXT: cmphi p0.d, p0/z, z2.d, z4.d ; CHECK-NEXT: uzp1 p3.s, p3.s, p4.s ; CHECK-NEXT: cmp x8, #1 -; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: cset w8, lt ; CHECK-NEXT: uzp1 p1.h, p1.h, p3.h ; CHECK-NEXT: sbfx x8, x8, #0, #1 ; CHECK-NEXT: uzp1 p0.s, p7.s, p0.s -; CHECK-NEXT: ldr p7, [sp, #4, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p7, [sp, #4, mul vl] // 2-byte Reload ; CHECK-NEXT: uzp1 p0.h, p2.h, p0.h ; CHECK-NEXT: uzp1 p0.b, p1.b, p0.b ; CHECK-NEXT: whilelo p1.b, xzr, x8 diff --git a/llvm/test/CodeGen/AArch64/argument-blocks-array-of-struct.ll b/llvm/test/CodeGen/AArch64/argument-blocks-array-of-struct.ll index 6019a62f4925e..fb1cb410c5c57 100644 --- a/llvm/test/CodeGen/AArch64/argument-blocks-array-of-struct.ll +++ b/llvm/test/CodeGen/AArch64/argument-blocks-array-of-struct.ll @@ -526,7 +526,7 @@ define void @caller_in_memory() { ; CHECK-SD-LABEL: caller_in_memory: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #96 -; CHECK-SD-NEXT: str x30, [sp, #80] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #80] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 96 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: add x8, sp, #8 @@ -538,7 +538,7 @@ define void @caller_in_memory() { ; CHECK-SD-NEXT: ldr d2, [sp, #72] ; CHECK-SD-NEXT: ldur q3, [sp, #56] ; CHECK-SD-NEXT: ldur q4, [sp, #40] -; CHECK-SD-NEXT: ldr x30, [sp, #80] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #80] // 8-byte Reload ; CHECK-SD-NEXT: stp q1, q0, [x8] ; CHECK-SD-NEXT: str d2, [x8, #64] ; CHECK-SD-NEXT: stp q4, q3, [x8, #32] @@ -548,7 +548,7 @@ define void @caller_in_memory() { ; CHECK-GI-LABEL: caller_in_memory: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #96 -; CHECK-GI-NEXT: str x30, [sp, #80] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #80] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 96 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: add x8, sp, #8 @@ -612,7 +612,7 @@ define void @argument_in_memory() { ; CHECK-SD-LABEL: argument_in_memory: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #96 -; CHECK-SD-NEXT: str x30, [sp, #80] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #80] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 96 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: adrp x8, in_memory_store @@ -624,14 +624,14 @@ define void @argument_in_memory() { ; CHECK-SD-NEXT: stp q0, q1, [sp] ; CHECK-SD-NEXT: stp q2, q3, [sp, #32] ; CHECK-SD-NEXT: bl callee_in_memory -; CHECK-SD-NEXT: ldr x30, [sp, #80] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #80] // 8-byte Reload ; CHECK-SD-NEXT: add sp, sp, #96 ; CHECK-SD-NEXT: ret ; ; CHECK-GI-LABEL: argument_in_memory: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #96 -; CHECK-GI-NEXT: str x30, [sp, #80] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #80] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 96 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: adrp x9, in_memory_store @@ -648,7 +648,7 @@ define void @argument_in_memory() { ; CHECK-GI-NEXT: stp x15, x16, [sp, #48] ; CHECK-GI-NEXT: str x9, [sp, #64] ; CHECK-GI-NEXT: bl callee_in_memory -; CHECK-GI-NEXT: ldr x30, [sp, #80] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #80] // 8-byte Reload ; CHECK-GI-NEXT: add sp, sp, #96 ; CHECK-GI-NEXT: ret %1 = load %T_IN_MEMORY, ptr @in_memory_store diff --git a/llvm/test/CodeGen/AArch64/arm64-fp128.ll b/llvm/test/CodeGen/AArch64/arm64-fp128.ll index 3e4b887fed55d..8dd5c3ac05109 100644 --- a/llvm/test/CodeGen/AArch64/arm64-fp128.ll +++ b/llvm/test/CodeGen/AArch64/arm64-fp128.ll @@ -430,36 +430,36 @@ define <2 x fp128> @vec_add(<2 x fp128> %lhs, <2 x fp128> %rhs) { ; CHECK-SD-LABEL: vec_add: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: stp q1, q3, [sp, #16] // 32-byte Folded Spill ; CHECK-SD-NEXT: mov v1.16b, v2.16b ; CHECK-SD-NEXT: bl __addtf3 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: bl __addtf3 ; CHECK-SD-NEXT: mov v1.16b, v0.16b -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: add sp, sp, #64 ; CHECK-SD-NEXT: ret ; ; CHECK-GI-LABEL: vec_add: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #64 -; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 64 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: stp q3, q1, [sp, #16] // 32-byte Folded Spill ; CHECK-GI-NEXT: mov v1.16b, v2.16b ; CHECK-GI-NEXT: bl __addtf3 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: ldp q1, q0, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: bl __addtf3 ; CHECK-GI-NEXT: mov v1.16b, v0.16b -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: add sp, sp, #64 ; CHECK-GI-NEXT: ret %val = fadd <2 x fp128> %lhs, %rhs @@ -470,36 +470,36 @@ define <2 x fp128> @vec_sub(<2 x fp128> %lhs, <2 x fp128> %rhs) { ; CHECK-SD-LABEL: vec_sub: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: stp q1, q3, [sp, #16] // 32-byte Folded Spill ; CHECK-SD-NEXT: mov v1.16b, v2.16b ; CHECK-SD-NEXT: bl __subtf3 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: bl __subtf3 ; CHECK-SD-NEXT: mov v1.16b, v0.16b -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: add sp, sp, #64 ; CHECK-SD-NEXT: ret ; ; CHECK-GI-LABEL: vec_sub: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #64 -; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 64 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: stp q3, q1, [sp, #16] // 32-byte Folded Spill ; CHECK-GI-NEXT: mov v1.16b, v2.16b ; CHECK-GI-NEXT: bl __subtf3 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: ldp q1, q0, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: bl __subtf3 ; CHECK-GI-NEXT: mov v1.16b, v0.16b -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: add sp, sp, #64 ; CHECK-GI-NEXT: ret %val = fsub <2 x fp128> %lhs, %rhs @@ -510,36 +510,36 @@ define <2 x fp128> @vec_mul(<2 x fp128> %lhs, <2 x fp128> %rhs) { ; CHECK-SD-LABEL: vec_mul: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: stp q1, q3, [sp, #16] // 32-byte Folded Spill ; CHECK-SD-NEXT: mov v1.16b, v2.16b ; CHECK-SD-NEXT: bl __multf3 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: bl __multf3 ; CHECK-SD-NEXT: mov v1.16b, v0.16b -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: add sp, sp, #64 ; CHECK-SD-NEXT: ret ; ; CHECK-GI-LABEL: vec_mul: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #64 -; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 64 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: stp q3, q1, [sp, #16] // 32-byte Folded Spill ; CHECK-GI-NEXT: mov v1.16b, v2.16b ; CHECK-GI-NEXT: bl __multf3 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: ldp q1, q0, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: bl __multf3 ; CHECK-GI-NEXT: mov v1.16b, v0.16b -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: add sp, sp, #64 ; CHECK-GI-NEXT: ret %val = fmul <2 x fp128> %lhs, %rhs @@ -550,36 +550,36 @@ define <2 x fp128> @vec_div(<2 x fp128> %lhs, <2 x fp128> %rhs) { ; CHECK-SD-LABEL: vec_div: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: stp q1, q3, [sp, #16] // 32-byte Folded Spill ; CHECK-SD-NEXT: mov v1.16b, v2.16b ; CHECK-SD-NEXT: bl __divtf3 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: bl __divtf3 ; CHECK-SD-NEXT: mov v1.16b, v0.16b -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: add sp, sp, #64 ; CHECK-SD-NEXT: ret ; ; CHECK-GI-LABEL: vec_div: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #64 -; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 64 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: stp q3, q1, [sp, #16] // 32-byte Folded Spill ; CHECK-GI-NEXT: mov v1.16b, v2.16b ; CHECK-GI-NEXT: bl __divtf3 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: ldp q1, q0, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: bl __divtf3 ; CHECK-GI-NEXT: mov v1.16b, v0.16b -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: add sp, sp, #64 ; CHECK-GI-NEXT: ret %val = fdiv <2 x fp128> %lhs, %rhs @@ -590,17 +590,17 @@ define <2 x i32> @vec_fptosi_32(<2 x fp128> %val) { ; CHECK-SD-LABEL: vec_fptosi_32: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: bl __fixtfsi ; CHECK-SD-NEXT: fmov s0, w0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: bl __fixtfsi -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.s[1], w0 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: add sp, sp, #48 @@ -613,9 +613,9 @@ define <2 x i32> @vec_fptosi_32(<2 x fp128> %val) { ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w19, -8 ; CHECK-GI-NEXT: .cfi_offset w30, -16 -; CHECK-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-GI-NEXT: bl __fixtfsi -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov w19, w0 ; CHECK-GI-NEXT: bl __fixtfsi ; CHECK-GI-NEXT: fmov s0, w19 @@ -632,19 +632,19 @@ define <2 x i64> @vec_fptosi_64(<2 x fp128> %val) { ; CHECK-SD-LABEL: vec_fptosi_64: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov v0.16b, v1.16b ; CHECK-SD-NEXT: bl __fixtfdi ; CHECK-SD-NEXT: fmov d0, x0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: bl __fixtfdi ; CHECK-SD-NEXT: fmov d0, x0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.d[1], v1.d[0] ; CHECK-SD-NEXT: add sp, sp, #48 ; CHECK-SD-NEXT: ret @@ -656,9 +656,9 @@ define <2 x i64> @vec_fptosi_64(<2 x fp128> %val) { ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w19, -8 ; CHECK-GI-NEXT: .cfi_offset w30, -16 -; CHECK-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-GI-NEXT: bl __fixtfdi -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov x19, x0 ; CHECK-GI-NEXT: bl __fixtfdi ; CHECK-GI-NEXT: fmov d0, x19 @@ -674,17 +674,17 @@ define <2 x i32> @vec_fptoui_32(<2 x fp128> %val) { ; CHECK-SD-LABEL: vec_fptoui_32: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: bl __fixunstfsi ; CHECK-SD-NEXT: fmov s0, w0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: bl __fixunstfsi -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.s[1], w0 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: add sp, sp, #48 @@ -697,9 +697,9 @@ define <2 x i32> @vec_fptoui_32(<2 x fp128> %val) { ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w19, -8 ; CHECK-GI-NEXT: .cfi_offset w30, -16 -; CHECK-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-GI-NEXT: bl __fixunstfsi -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov w19, w0 ; CHECK-GI-NEXT: bl __fixunstfsi ; CHECK-GI-NEXT: fmov s0, w19 @@ -716,19 +716,19 @@ define <2 x i64> @vec_fptoui_64(<2 x fp128> %val) { ; CHECK-SD-LABEL: vec_fptoui_64: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov v0.16b, v1.16b ; CHECK-SD-NEXT: bl __fixunstfdi ; CHECK-SD-NEXT: fmov d0, x0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: bl __fixunstfdi ; CHECK-SD-NEXT: fmov d0, x0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.d[1], v1.d[0] ; CHECK-SD-NEXT: add sp, sp, #48 ; CHECK-SD-NEXT: ret @@ -740,9 +740,9 @@ define <2 x i64> @vec_fptoui_64(<2 x fp128> %val) { ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w19, -8 ; CHECK-GI-NEXT: .cfi_offset w30, -16 -; CHECK-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-GI-NEXT: bl __fixunstfdi -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov x19, x0 ; CHECK-GI-NEXT: bl __fixunstfdi ; CHECK-GI-NEXT: fmov d0, x19 @@ -758,28 +758,28 @@ define <2 x fp128> @vec_sitofp_32(<2 x i32> %src32) { ; CHECK-SD-LABEL: vec_sitofp_32: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #32 -; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 32 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-SD-NEXT: fmov w0, s0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl __floatsitf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov w0, v1.s[1] ; CHECK-SD-NEXT: bl __floatsitf ; CHECK-SD-NEXT: mov v1.16b, v0.16b -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-SD-NEXT: add sp, sp, #32 ; CHECK-SD-NEXT: ret ; ; CHECK-GI-LABEL: vec_sitofp_32: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #32 -; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Spill +; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -788,12 +788,12 @@ define <2 x fp128> @vec_sitofp_32(<2 x i32> %src32) { ; CHECK-GI-NEXT: mov s8, v0.s[1] ; CHECK-GI-NEXT: bl __floatsitf ; CHECK-GI-NEXT: fmov w0, s8 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: bl __floatsitf ; CHECK-GI-NEXT: mov v1.16b, v0.16b -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload -; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Reload +; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: add sp, sp, #32 ; CHECK-GI-NEXT: ret %val32 = sitofp <2 x i32> %src32 to <2 x fp128> @@ -804,27 +804,27 @@ define <2 x fp128> @vec_sitofp_64(<2 x i64> %src64) { ; CHECK-SD-LABEL: vec_sitofp_64: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: fmov x0, d0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl __floatditf -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov x0, v0.d[1] ; CHECK-SD-NEXT: bl __floatditf ; CHECK-SD-NEXT: mov v1.16b, v0.16b -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: add sp, sp, #48 ; CHECK-SD-NEXT: ret ; ; CHECK-GI-LABEL: vec_sitofp_64: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #32 -; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Spill +; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -832,12 +832,12 @@ define <2 x fp128> @vec_sitofp_64(<2 x i64> %src64) { ; CHECK-GI-NEXT: mov d8, v0.d[1] ; CHECK-GI-NEXT: bl __floatditf ; CHECK-GI-NEXT: fmov x0, d8 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: bl __floatditf ; CHECK-GI-NEXT: mov v1.16b, v0.16b -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload -; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Reload +; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: add sp, sp, #32 ; CHECK-GI-NEXT: ret %val64 = sitofp <2 x i64> %src64 to <2 x fp128> @@ -848,28 +848,28 @@ define <2 x fp128> @vec_uitofp_32(<2 x i32> %src32) { ; CHECK-SD-LABEL: vec_uitofp_32: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #32 -; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 32 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-SD-NEXT: fmov w0, s0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl __floatunsitf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov w0, v1.s[1] ; CHECK-SD-NEXT: bl __floatunsitf ; CHECK-SD-NEXT: mov v1.16b, v0.16b -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-SD-NEXT: add sp, sp, #32 ; CHECK-SD-NEXT: ret ; ; CHECK-GI-LABEL: vec_uitofp_32: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #32 -; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Spill +; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -878,12 +878,12 @@ define <2 x fp128> @vec_uitofp_32(<2 x i32> %src32) { ; CHECK-GI-NEXT: mov s8, v0.s[1] ; CHECK-GI-NEXT: bl __floatunsitf ; CHECK-GI-NEXT: fmov w0, s8 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: bl __floatunsitf ; CHECK-GI-NEXT: mov v1.16b, v0.16b -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload -; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Reload +; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: add sp, sp, #32 ; CHECK-GI-NEXT: ret %val32 = uitofp <2 x i32> %src32 to <2 x fp128> @@ -894,27 +894,27 @@ define <2 x fp128> @vec_uitofp_64(<2 x i64> %src64) { ; CHECK-SD-LABEL: vec_uitofp_64: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: fmov x0, d0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl __floatunditf -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov x0, v0.d[1] ; CHECK-SD-NEXT: bl __floatunditf ; CHECK-SD-NEXT: mov v1.16b, v0.16b -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: add sp, sp, #48 ; CHECK-SD-NEXT: ret ; ; CHECK-GI-LABEL: vec_uitofp_64: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #32 -; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Spill +; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -922,12 +922,12 @@ define <2 x fp128> @vec_uitofp_64(<2 x i64> %src64) { ; CHECK-GI-NEXT: mov d8, v0.d[1] ; CHECK-GI-NEXT: bl __floatunditf ; CHECK-GI-NEXT: fmov x0, d8 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: bl __floatunditf ; CHECK-GI-NEXT: mov v1.16b, v0.16b -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload -; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Reload +; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: add sp, sp, #32 ; CHECK-GI-NEXT: ret %val64 = uitofp <2 x i64> %src64 to <2 x fp128> @@ -938,8 +938,8 @@ define <2 x i1> @vec_setcc1(<2 x fp128> %lhs, <2 x fp128> %rhs) { ; CHECK-SD-LABEL: vec_setcc1: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str d8, [sp, #32] // 8-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #40] // 8-byte Folded Spill +; CHECK-SD-NEXT: str d8, [sp, #32] // 8-byte Spill +; CHECK-SD-NEXT: str x30, [sp, #40] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -8 ; CHECK-SD-NEXT: .cfi_offset b8, -16 @@ -954,12 +954,12 @@ define <2 x i1> @vec_setcc1(<2 x fp128> %lhs, <2 x fp128> %rhs) { ; CHECK-SD-NEXT: fmov d8, x8 ; CHECK-SD-NEXT: bl __letf2 ; CHECK-SD-NEXT: cmp w0, #0 -; CHECK-SD-NEXT: ldr x30, [sp, #40] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #40] // 8-byte Reload ; CHECK-SD-NEXT: cset w8, le ; CHECK-SD-NEXT: sbfx x8, x8, #0, #1 ; CHECK-SD-NEXT: fmov d0, x8 ; CHECK-SD-NEXT: zip1 v0.2s, v0.2s, v8.2s -; CHECK-SD-NEXT: ldr d8, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr d8, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: add sp, sp, #48 ; CHECK-SD-NEXT: ret ; @@ -993,8 +993,8 @@ define <2 x i1> @vec_setcc2(<2 x fp128> %lhs, <2 x fp128> %rhs) { ; CHECK-SD-LABEL: vec_setcc2: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str d8, [sp, #32] // 8-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #40] // 8-byte Folded Spill +; CHECK-SD-NEXT: str d8, [sp, #32] // 8-byte Spill +; CHECK-SD-NEXT: str x30, [sp, #40] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -8 ; CHECK-SD-NEXT: .cfi_offset b8, -16 @@ -1009,12 +1009,12 @@ define <2 x i1> @vec_setcc2(<2 x fp128> %lhs, <2 x fp128> %rhs) { ; CHECK-SD-NEXT: fmov d8, x8 ; CHECK-SD-NEXT: bl __letf2 ; CHECK-SD-NEXT: cmp w0, #0 -; CHECK-SD-NEXT: ldr x30, [sp, #40] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #40] // 8-byte Reload ; CHECK-SD-NEXT: cset w8, gt ; CHECK-SD-NEXT: sbfx x8, x8, #0, #1 ; CHECK-SD-NEXT: fmov d0, x8 ; CHECK-SD-NEXT: zip1 v0.2s, v0.2s, v8.2s -; CHECK-SD-NEXT: ldr d8, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr d8, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: add sp, sp, #48 ; CHECK-SD-NEXT: ret ; @@ -1048,7 +1048,7 @@ define <2 x i1> @vec_setcc3(<2 x fp128> %lhs, <2 x fp128> %rhs) { ; CHECK-SD-LABEL: vec_setcc3: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #96 -; CHECK-SD-NEXT: str d8, [sp, #64] // 8-byte Folded Spill +; CHECK-SD-NEXT: str d8, [sp, #64] // 8-byte Spill ; CHECK-SD-NEXT: stp x30, x19, [sp, #80] // 16-byte Folded Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 96 ; CHECK-SD-NEXT: .cfi_offset w19, -8 @@ -1079,14 +1079,14 @@ define <2 x i1> @vec_setcc3(<2 x fp128> %lhs, <2 x fp128> %rhs) { ; CHECK-SD-NEXT: sbfx x8, x8, #0, #1 ; CHECK-SD-NEXT: fmov d0, x8 ; CHECK-SD-NEXT: zip1 v0.2s, v0.2s, v8.2s -; CHECK-SD-NEXT: ldr d8, [sp, #64] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr d8, [sp, #64] // 8-byte Reload ; CHECK-SD-NEXT: add sp, sp, #96 ; CHECK-SD-NEXT: ret ; ; CHECK-GI-LABEL: vec_setcc3: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #96 -; CHECK-GI-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-GI-NEXT: stp x20, x19, [sp, #80] // 16-byte Folded Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 96 ; CHECK-GI-NEXT: .cfi_offset w19, -8 @@ -1111,7 +1111,7 @@ define <2 x i1> @vec_setcc3(<2 x fp128> %lhs, <2 x fp128> %rhs) { ; CHECK-GI-NEXT: bl __unordtf2 ; CHECK-GI-NEXT: fmov s0, w19 ; CHECK-GI-NEXT: cmp w0, #0 -; CHECK-GI-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-GI-NEXT: cset w8, ne ; CHECK-GI-NEXT: orr w8, w20, w8 ; CHECK-GI-NEXT: ldp x20, x19, [sp, #80] // 16-byte Folded Reload @@ -1177,19 +1177,19 @@ define <2 x half> @vec_round_f16(<2 x fp128> %val) { ; CHECK-SD-LABEL: vec_round_f16: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov v0.16b, v1.16b ; CHECK-SD-NEXT: bl __trunctfhf2 ; CHECK-SD-NEXT: // kill: def $h0 killed $h0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: bl __trunctfhf2 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $h0 killed $h0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.h[1], v1.h[0] ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: add sp, sp, #48 @@ -1198,26 +1198,26 @@ define <2 x half> @vec_round_f16(<2 x fp128> %val) { ; CHECK-GI-LABEL: vec_round_f16: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #64 -; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 64 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: mov v2.d[0], x8 -; CHECK-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-GI-NEXT: mov v2.d[1], x8 -; CHECK-GI-NEXT: str q2, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q2, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: bl __trunctfhf2 ; CHECK-GI-NEXT: // kill: def $h0 killed $h0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: bl __trunctfhf2 ; CHECK-GI-NEXT: // kill: def $h0 killed $h0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: bl __trunctfhf2 -; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: bl __trunctfhf2 ; CHECK-GI-NEXT: ldp q1, q0, [sp] // 32-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: mov v0.h[1], v1.h[0] ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-GI-NEXT: add sp, sp, #64 @@ -1230,19 +1230,19 @@ define <2 x float> @vec_round_f32(<2 x fp128> %val) { ; CHECK-SD-LABEL: vec_round_f32: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov v0.16b, v1.16b ; CHECK-SD-NEXT: bl __trunctfsf2 ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: bl __trunctfsf2 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: add sp, sp, #48 @@ -1251,18 +1251,18 @@ define <2 x float> @vec_round_f32(<2 x fp128> %val) { ; CHECK-GI-LABEL: vec_round_f32: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #48 -; CHECK-GI-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 48 ; CHECK-GI-NEXT: .cfi_offset w30, -16 -; CHECK-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-GI-NEXT: bl __trunctfsf2 ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: bl __trunctfsf2 -; CHECK-GI-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.s[1], v0.s[0] ; CHECK-GI-NEXT: fmov d0, d1 ; CHECK-GI-NEXT: add sp, sp, #48 @@ -1275,19 +1275,19 @@ define <2 x double> @vec_round_f64(<2 x fp128> %val) { ; CHECK-SD-LABEL: vec_round_f64: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov v0.16b, v1.16b ; CHECK-SD-NEXT: bl __trunctfdf2 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: bl __trunctfdf2 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.d[1], v1.d[0] ; CHECK-SD-NEXT: add sp, sp, #48 ; CHECK-SD-NEXT: ret @@ -1295,18 +1295,18 @@ define <2 x double> @vec_round_f64(<2 x fp128> %val) { ; CHECK-GI-LABEL: vec_round_f64: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #48 -; CHECK-GI-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 48 ; CHECK-GI-NEXT: .cfi_offset w30, -16 -; CHECK-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-GI-NEXT: bl __trunctfdf2 ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: bl __trunctfdf2 -; CHECK-GI-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.d[1], v0.d[0] ; CHECK-GI-NEXT: mov v0.16b, v1.16b ; CHECK-GI-NEXT: add sp, sp, #48 @@ -1319,29 +1319,29 @@ define <2 x fp128> @vec_extend_f16(<2 x half> %val) { ; CHECK-SD-LABEL: vec_extend_f16: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #32 -; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 32 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: // kill: def $h0 killed $h0 killed $q0 ; CHECK-SD-NEXT: bl __extendhftf2 -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov h1, v1.h[1] ; CHECK-SD-NEXT: fmov s0, s1 ; CHECK-SD-NEXT: bl __extendhftf2 ; CHECK-SD-NEXT: mov v1.16b, v0.16b -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-SD-NEXT: add sp, sp, #32 ; CHECK-SD-NEXT: ret ; ; CHECK-GI-LABEL: vec_extend_f16: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #32 -; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Spill +; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -1349,13 +1349,13 @@ define <2 x fp128> @vec_extend_f16(<2 x half> %val) { ; CHECK-GI-NEXT: mov h8, v0.h[1] ; CHECK-GI-NEXT: // kill: def $h0 killed $h0 killed $q0 ; CHECK-GI-NEXT: bl __extendhftf2 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl __extendhftf2 ; CHECK-GI-NEXT: mov v1.16b, v0.16b -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload -; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Reload +; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: add sp, sp, #32 ; CHECK-GI-NEXT: ret %dst = fpext <2 x half> %val to <2 x fp128> @@ -1366,29 +1366,29 @@ define <2 x fp128> @vec_extend_f32(<2 x float> %val) { ; CHECK-SD-LABEL: vec_extend_f32: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #32 -; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 32 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl __extendsftf2 -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov s1, v1.s[1] ; CHECK-SD-NEXT: fmov s0, s1 ; CHECK-SD-NEXT: bl __extendsftf2 ; CHECK-SD-NEXT: mov v1.16b, v0.16b -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-SD-NEXT: add sp, sp, #32 ; CHECK-SD-NEXT: ret ; ; CHECK-GI-LABEL: vec_extend_f32: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #32 -; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Spill +; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -1396,13 +1396,13 @@ define <2 x fp128> @vec_extend_f32(<2 x float> %val) { ; CHECK-GI-NEXT: mov s8, v0.s[1] ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl __extendsftf2 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl __extendsftf2 ; CHECK-GI-NEXT: mov v1.16b, v0.16b -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload -; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Reload +; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: add sp, sp, #32 ; CHECK-GI-NEXT: ret %dst = fpext <2 x float> %val to <2 x fp128> @@ -1413,40 +1413,40 @@ define <2 x fp128> @vec_extend_f64(<2 x double> %val) { ; CHECK-SD-LABEL: vec_extend_f64: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: bl __extenddftf2 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov d0, v0.d[1] ; CHECK-SD-NEXT: bl __extenddftf2 ; CHECK-SD-NEXT: mov v1.16b, v0.16b -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: add sp, sp, #48 ; CHECK-SD-NEXT: ret ; ; CHECK-GI-LABEL: vec_extend_f64: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #32 -; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Spill +; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 ; CHECK-GI-NEXT: mov d8, v0.d[1] ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-GI-NEXT: bl __extenddftf2 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov d0, d8 ; CHECK-GI-NEXT: bl __extenddftf2 ; CHECK-GI-NEXT: mov v1.16b, v0.16b -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload -; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Reload +; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: add sp, sp, #32 ; CHECK-GI-NEXT: ret %dst = fpext <2 x double> %val to <2 x fp128> @@ -1457,45 +1457,45 @@ define <2 x fp128> @vec_neg_sub(<2 x fp128> %in) { ; CHECK-SD-LABEL: vec_neg_sub: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: mov v1.16b, v0.16b ; CHECK-SD-NEXT: adrp x8, .LCPI47_0 ; CHECK-SD-NEXT: ldr q0, [x8, :lo12:.LCPI47_0] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl __subtf3 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: bl __subtf3 ; CHECK-SD-NEXT: mov v1.16b, v0.16b -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: add sp, sp, #64 ; CHECK-SD-NEXT: ret ; ; CHECK-GI-LABEL: vec_neg_sub: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #64 -; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 64 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: mov v2.16b, v0.16b ; CHECK-GI-NEXT: adrp x8, .LCPI47_0 -; CHECK-GI-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: ldr q0, [x8, :lo12:.LCPI47_0] ; CHECK-GI-NEXT: mov v1.16b, v2.16b -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: bl __subtf3 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-GI-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: bl __subtf3 ; CHECK-GI-NEXT: mov v1.16b, v0.16b -; CHECK-GI-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #16] // 16-byte Reload +; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: add sp, sp, #64 ; CHECK-GI-NEXT: ret %ret = fsub <2 x fp128> zeroinitializer, %in diff --git a/llvm/test/CodeGen/AArch64/arm64-memset-inline.ll b/llvm/test/CodeGen/AArch64/arm64-memset-inline.ll index 52b09885ebb1c..c420267837d43 100644 --- a/llvm/test/CodeGen/AArch64/arm64-memset-inline.ll +++ b/llvm/test/CodeGen/AArch64/arm64-memset-inline.ll @@ -96,14 +96,14 @@ define void @bzero_12_stack() { ; CHECK-LABEL: bzero_12_stack: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #32 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: mov x0, sp ; CHECK-NEXT: str wzr, [sp, #8] ; CHECK-NEXT: str xzr, [sp] ; CHECK-NEXT: bl something -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: ret %buf = alloca [12 x i8], align 1 @@ -122,7 +122,7 @@ define void @bzero_16_stack() { ; CHECK-NEXT: mov x0, sp ; CHECK-NEXT: str xzr, [sp] ; CHECK-NEXT: bl something -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: ret %buf = alloca [16 x i8], align 1 @@ -135,14 +135,14 @@ define void @bzero_20_stack() { ; CHECK-LABEL: bzero_20_stack: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: add x0, sp, #8 ; CHECK-NEXT: stp xzr, xzr, [sp, #8] ; CHECK-NEXT: str wzr, [sp, #24] ; CHECK-NEXT: bl something -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #48 ; CHECK-NEXT: ret %buf = alloca [20 x i8], align 1 @@ -155,7 +155,7 @@ define void @bzero_26_stack() { ; CHECK-LABEL: bzero_26_stack: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: mov x0, sp @@ -163,7 +163,7 @@ define void @bzero_26_stack() { ; CHECK-NEXT: strh wzr, [sp, #24] ; CHECK-NEXT: str xzr, [sp, #16] ; CHECK-NEXT: bl something -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #48 ; CHECK-NEXT: ret %buf = alloca [26 x i8], align 1 @@ -176,14 +176,14 @@ define void @bzero_32_stack() { ; CHECK-LABEL: bzero_32_stack: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: movi v0.2d, #0000000000000000 ; CHECK-NEXT: mov x0, sp ; CHECK-NEXT: stp q0, q0, [sp] ; CHECK-NEXT: bl something -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #48 ; CHECK-NEXT: ret %buf = alloca [32 x i8], align 1 @@ -196,7 +196,7 @@ define void @bzero_40_stack() { ; CHECK-LABEL: bzero_40_stack: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #64 -; CHECK-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 64 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: movi v0.2d, #0000000000000000 @@ -204,7 +204,7 @@ define void @bzero_40_stack() { ; CHECK-NEXT: str xzr, [sp, #32] ; CHECK-NEXT: stp q0, q0, [sp] ; CHECK-NEXT: bl something -; CHECK-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #64 ; CHECK-NEXT: ret %buf = alloca [40 x i8], align 1 @@ -217,7 +217,7 @@ define void @bzero_64_stack() { ; CHECK-LABEL: bzero_64_stack: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #80 -; CHECK-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 80 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: movi v0.2d, #0000000000000000 @@ -225,7 +225,7 @@ define void @bzero_64_stack() { ; CHECK-NEXT: stp q0, q0, [sp] ; CHECK-NEXT: stp q0, q0, [sp, #32] ; CHECK-NEXT: bl something -; CHECK-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #80 ; CHECK-NEXT: ret %buf = alloca [64 x i8], align 1 @@ -238,7 +238,7 @@ define void @bzero_72_stack() { ; CHECK-LABEL: bzero_72_stack: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #96 -; CHECK-NEXT: str x30, [sp, #80] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #80] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 96 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: movi v0.2d, #0000000000000000 @@ -247,7 +247,7 @@ define void @bzero_72_stack() { ; CHECK-NEXT: stp q0, q0, [sp] ; CHECK-NEXT: stp q0, q0, [sp, #32] ; CHECK-NEXT: bl something -; CHECK-NEXT: ldr x30, [sp, #80] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #80] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #96 ; CHECK-NEXT: ret %buf = alloca [72 x i8], align 1 @@ -260,7 +260,7 @@ define void @bzero_128_stack() { ; CHECK-LABEL: bzero_128_stack: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #144 -; CHECK-NEXT: str x30, [sp, #128] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #128] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 144 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: movi v0.2d, #0000000000000000 @@ -270,7 +270,7 @@ define void @bzero_128_stack() { ; CHECK-NEXT: stp q0, q0, [sp, #64] ; CHECK-NEXT: stp q0, q0, [sp, #96] ; CHECK-NEXT: bl something -; CHECK-NEXT: ldr x30, [sp, #128] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #128] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #144 ; CHECK-NEXT: ret %buf = alloca [128 x i8], align 1 @@ -346,7 +346,7 @@ define void @memset_12_stack() { ; CHECK-LABEL: memset_12_stack: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #32 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: mov x8, #-6148914691236517206 @@ -354,7 +354,7 @@ define void @memset_12_stack() { ; CHECK-NEXT: str x8, [sp] ; CHECK-NEXT: str w8, [sp, #8] ; CHECK-NEXT: bl something -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: ret %buf = alloca [12 x i8], align 1 @@ -374,7 +374,7 @@ define void @memset_16_stack() { ; CHECK-NEXT: stp x8, x30, [sp, #8] // 8-byte Folded Spill ; CHECK-NEXT: str x8, [sp] ; CHECK-NEXT: bl something -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: ret %buf = alloca [16 x i8], align 1 @@ -387,7 +387,7 @@ define void @memset_20_stack() { ; CHECK-LABEL: memset_20_stack: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: mov x8, #-6148914691236517206 @@ -395,7 +395,7 @@ define void @memset_20_stack() { ; CHECK-NEXT: stp x8, x8, [sp, #8] ; CHECK-NEXT: str w8, [sp, #24] ; CHECK-NEXT: bl something -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #48 ; CHECK-NEXT: ret %buf = alloca [20 x i8], align 1 @@ -408,7 +408,7 @@ define void @memset_26_stack() { ; CHECK-LABEL: memset_26_stack: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: mov x8, #-6148914691236517206 @@ -417,7 +417,7 @@ define void @memset_26_stack() { ; CHECK-NEXT: str x8, [sp] ; CHECK-NEXT: strh w8, [sp, #24] ; CHECK-NEXT: bl something -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #48 ; CHECK-NEXT: ret %buf = alloca [26 x i8], align 1 @@ -430,14 +430,14 @@ define void @memset_32_stack() { ; CHECK-LABEL: memset_32_stack: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: movi v0.16b, #170 ; CHECK-NEXT: mov x0, sp ; CHECK-NEXT: stp q0, q0, [sp] ; CHECK-NEXT: bl something -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #48 ; CHECK-NEXT: ret %buf = alloca [32 x i8], align 1 @@ -450,7 +450,7 @@ define void @memset_40_stack() { ; CHECK-LABEL: memset_40_stack: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #64 -; CHECK-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 64 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: movi v0.16b, #170 @@ -459,7 +459,7 @@ define void @memset_40_stack() { ; CHECK-NEXT: str x8, [sp, #32] ; CHECK-NEXT: stp q0, q0, [sp] ; CHECK-NEXT: bl something -; CHECK-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #64 ; CHECK-NEXT: ret %buf = alloca [40 x i8], align 1 @@ -472,7 +472,7 @@ define void @memset_64_stack() { ; CHECK-LABEL: memset_64_stack: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #80 -; CHECK-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 80 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: movi v0.16b, #170 @@ -480,7 +480,7 @@ define void @memset_64_stack() { ; CHECK-NEXT: stp q0, q0, [sp] ; CHECK-NEXT: stp q0, q0, [sp, #32] ; CHECK-NEXT: bl something -; CHECK-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #80 ; CHECK-NEXT: ret %buf = alloca [64 x i8], align 1 @@ -493,7 +493,7 @@ define void @memset_72_stack() { ; CHECK-LABEL: memset_72_stack: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #96 -; CHECK-NEXT: str x30, [sp, #80] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #80] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 96 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: movi v0.16b, #170 @@ -503,7 +503,7 @@ define void @memset_72_stack() { ; CHECK-NEXT: stp q0, q0, [sp] ; CHECK-NEXT: stp q0, q0, [sp, #32] ; CHECK-NEXT: bl something -; CHECK-NEXT: ldr x30, [sp, #80] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #80] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #96 ; CHECK-NEXT: ret %buf = alloca [72 x i8], align 1 @@ -516,7 +516,7 @@ define void @memset_128_stack() { ; CHECK-LABEL: memset_128_stack: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #144 -; CHECK-NEXT: str x30, [sp, #128] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #128] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 144 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: movi v0.16b, #170 @@ -526,7 +526,7 @@ define void @memset_128_stack() { ; CHECK-NEXT: stp q0, q0, [sp, #64] ; CHECK-NEXT: stp q0, q0, [sp, #96] ; CHECK-NEXT: bl something -; CHECK-NEXT: ldr x30, [sp, #128] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #128] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #144 ; CHECK-NEXT: ret %buf = alloca [128 x i8], align 1 diff --git a/llvm/test/CodeGen/AArch64/arm64-neon-mul-div.ll b/llvm/test/CodeGen/AArch64/arm64-neon-mul-div.ll index 0d427c05e3b77..215590c91b714 100644 --- a/llvm/test/CodeGen/AArch64/arm64-neon-mul-div.ll +++ b/llvm/test/CodeGen/AArch64/arm64-neon-mul-div.ll @@ -1477,7 +1477,7 @@ define <2 x float> @frem2f32(<2 x float> %A, <2 x float> %B) { ; CHECK-LABEL: frem2f32: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #64 -; CHECK-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 64 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: // kill: def $d1 killed $d1 def $q1 @@ -1487,14 +1487,14 @@ define <2 x float> @frem2f32(<2 x float> %A, <2 x float> %B) { ; CHECK-NEXT: mov s1, v1.s[1] ; CHECK-NEXT: bl fmodf ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-NEXT: // kill: def $s1 killed $s1 killed $q1 ; CHECK-NEXT: bl fmodf -; CHECK-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-NEXT: mov v0.s[1], v1.s[0] ; CHECK-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-NEXT: add sp, sp, #64 @@ -1507,7 +1507,7 @@ define <4 x float> @frem4f32(<4 x float> %A, <4 x float> %B) { ; CHECK-LABEL: frem4f32: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #64 -; CHECK-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 64 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: stp q0, q1, [sp, #16] // 32-byte Folded Spill @@ -1515,30 +1515,30 @@ define <4 x float> @frem4f32(<4 x float> %A, <4 x float> %B) { ; CHECK-NEXT: mov s1, v1.s[1] ; CHECK-NEXT: bl fmodf ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-NEXT: // kill: def $s1 killed $s1 killed $q1 ; CHECK-NEXT: bl fmodf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-NEXT: mov v0.s[1], v1.s[0] -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-NEXT: mov s0, v0.s[2] ; CHECK-NEXT: mov s1, v1.s[2] ; CHECK-NEXT: bl fmodf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-NEXT: mov v1.s[2], v0.s[0] -; CHECK-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-NEXT: mov s0, v0.s[3] ; CHECK-NEXT: mov s1, v1.s[3] ; CHECK-NEXT: bl fmodf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-NEXT: mov v1.s[3], v0.s[0] ; CHECK-NEXT: mov v0.16b, v1.16b ; CHECK-NEXT: add sp, sp, #64 @@ -1564,7 +1564,7 @@ define <2 x double> @frem2d64(<2 x double> %A, <2 x double> %B) { ; CHECK-LABEL: frem2d64: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #64 -; CHECK-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 64 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: stp q0, q1, [sp] // 32-byte Folded Spill @@ -1572,14 +1572,14 @@ define <2 x double> @frem2d64(<2 x double> %A, <2 x double> %B) { ; CHECK-NEXT: mov d1, v1.d[1] ; CHECK-NEXT: bl fmod ; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-NEXT: // kill: def $d1 killed $d1 killed $q1 ; CHECK-NEXT: bl fmod -; CHECK-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-NEXT: mov v0.d[1], v1.d[0] ; CHECK-NEXT: add sp, sp, #64 ; CHECK-NEXT: ret diff --git a/llvm/test/CodeGen/AArch64/arm64-register-pairing.ll b/llvm/test/CodeGen/AArch64/arm64-register-pairing.ll index a96cad7e32dcd..1353fd281ff09 100644 --- a/llvm/test/CodeGen/AArch64/arm64-register-pairing.ll +++ b/llvm/test/CodeGen/AArch64/arm64-register-pairing.ll @@ -34,14 +34,14 @@ define void @odd() nounwind { ; CHECK-NOTMACHO: // %bb.0: ; CHECK-NOTMACHO-NEXT: stp d14, d12, [sp, #-80]! // 16-byte Folded Spill ; CHECK-NOTMACHO-NEXT: stp d10, d8, [sp, #16] // 16-byte Folded Spill -; CHECK-NOTMACHO-NEXT: str x27, [sp, #32] // 8-byte Folded Spill +; CHECK-NOTMACHO-NEXT: str x27, [sp, #32] // 8-byte Spill ; CHECK-NOTMACHO-NEXT: stp x25, x23, [sp, #48] // 16-byte Folded Spill ; CHECK-NOTMACHO-NEXT: stp x21, x19, [sp, #64] // 16-byte Folded Spill ; CHECK-NOTMACHO-NEXT: //APP ; CHECK-NOTMACHO-NEXT: mov x0, #42 // =0x2a ; CHECK-NOTMACHO-NEXT: //NO_APP ; CHECK-NOTMACHO-NEXT: ldp x21, x19, [sp, #64] // 16-byte Folded Reload -; CHECK-NOTMACHO-NEXT: ldr x27, [sp, #32] // 8-byte Folded Reload +; CHECK-NOTMACHO-NEXT: ldr x27, [sp, #32] // 8-byte Reload ; CHECK-NOTMACHO-NEXT: ldp x25, x23, [sp, #48] // 16-byte Folded Reload ; CHECK-NOTMACHO-NEXT: ldp d10, d8, [sp, #16] // 16-byte Folded Reload ; CHECK-NOTMACHO-NEXT: ldp d14, d12, [sp], #80 // 16-byte Folded Reload @@ -81,14 +81,14 @@ define void @even() nounwind { ; CHECK-NOTMACHO: // %bb.0: ; CHECK-NOTMACHO-NEXT: stp d15, d13, [sp, #-80]! // 16-byte Folded Spill ; CHECK-NOTMACHO-NEXT: stp d11, d9, [sp, #16] // 16-byte Folded Spill -; CHECK-NOTMACHO-NEXT: str x28, [sp, #32] // 8-byte Folded Spill +; CHECK-NOTMACHO-NEXT: str x28, [sp, #32] // 8-byte Spill ; CHECK-NOTMACHO-NEXT: stp x26, x24, [sp, #48] // 16-byte Folded Spill ; CHECK-NOTMACHO-NEXT: stp x22, x20, [sp, #64] // 16-byte Folded Spill ; CHECK-NOTMACHO-NEXT: //APP ; CHECK-NOTMACHO-NEXT: mov x0, #42 // =0x2a ; CHECK-NOTMACHO-NEXT: //NO_APP ; CHECK-NOTMACHO-NEXT: ldp x22, x20, [sp, #64] // 16-byte Folded Reload -; CHECK-NOTMACHO-NEXT: ldr x28, [sp, #32] // 8-byte Folded Reload +; CHECK-NOTMACHO-NEXT: ldr x28, [sp, #32] // 8-byte Reload ; CHECK-NOTMACHO-NEXT: ldp x26, x24, [sp, #48] // 16-byte Folded Reload ; CHECK-NOTMACHO-NEXT: ldp d11, d9, [sp, #16] // 16-byte Folded Reload ; CHECK-NOTMACHO-NEXT: ldp d15, d13, [sp], #80 // 16-byte Folded Reload diff --git a/llvm/test/CodeGen/AArch64/arm64-windows-calls.ll b/llvm/test/CodeGen/AArch64/arm64-windows-calls.ll index bf559da91901c..666f1cb7bcf6f 100644 --- a/llvm/test/CodeGen/AArch64/arm64-windows-calls.ll +++ b/llvm/test/CodeGen/AArch64/arm64-windows-calls.ll @@ -145,7 +145,7 @@ define void @call_copy_pod() { ; CHECK-NEXT: // %bb.0: ; CHECK-NEXT: str x19, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: .seh_save_reg_x x19, 16 -; CHECK-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-NEXT: .seh_save_reg x30, 8 ; CHECK-NEXT: .seh_endprologue ; CHECK-NEXT: adrp x19, Pod @@ -154,7 +154,7 @@ define void @call_copy_pod() { ; CHECK-NEXT: bl copy_pod ; CHECK-NEXT: stp d0, d1, [x19] ; CHECK-NEXT: .seh_startepilogue -; CHECK-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x30, 8 ; CHECK-NEXT: ldr x19, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: .seh_save_reg_x x19, 16 @@ -175,9 +175,9 @@ define void @call_copy_notcxx14aggregate() { ; CHECK-NEXT: // %bb.0: ; CHECK-NEXT: sub sp, sp, #32 ; CHECK-NEXT: .seh_stackalloc 32 -; CHECK-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .seh_save_reg x19, 16 -; CHECK-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-NEXT: .seh_save_reg x30, 24 ; CHECK-NEXT: .seh_endprologue ; CHECK-NEXT: adrp x19, NotCXX14Aggregate @@ -188,9 +188,9 @@ define void @call_copy_notcxx14aggregate() { ; CHECK-NEXT: ldp d0, d1, [sp] ; CHECK-NEXT: stp d0, d1, [x19] ; CHECK-NEXT: .seh_startepilogue -; CHECK-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #24] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x30, 24 -; CHECK-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x19, 16 ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: .seh_stackalloc 32 @@ -213,7 +213,7 @@ define void @call_copy_notpod() { ; CHECK-NEXT: // %bb.0: ; CHECK-NEXT: str x19, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: .seh_save_reg_x x19, 16 -; CHECK-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-NEXT: .seh_save_reg x30, 8 ; CHECK-NEXT: .seh_endprologue ; CHECK-NEXT: adrp x19, NotPod @@ -222,7 +222,7 @@ define void @call_copy_notpod() { ; CHECK-NEXT: bl copy_notpod ; CHECK-NEXT: stp x0, x1, [x19] ; CHECK-NEXT: .seh_startepilogue -; CHECK-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x30, 8 ; CHECK-NEXT: ldr x19, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: .seh_save_reg_x x19, 16 diff --git a/llvm/test/CodeGen/AArch64/arm64ec-entry-thunks.ll b/llvm/test/CodeGen/AArch64/arm64ec-entry-thunks.ll index 709a17e32f58e..35ffc99f7a405 100644 --- a/llvm/test/CodeGen/AArch64/arm64ec-entry-thunks.ll +++ b/llvm/test/CodeGen/AArch64/arm64ec-entry-thunks.ll @@ -236,7 +236,7 @@ define void @has_aligned_sret(ptr align 32 sret(%TSRet), i32) nounwind { ; CHECK-NEXT: .seh_save_any_reg_p q12, 96 ; CHECK-NEXT: stp q14, q15, [sp, #128] // 32-byte Folded Spill ; CHECK-NEXT: .seh_save_any_reg_p q14, 128 -; CHECK-NEXT: str x19, [sp, #160] // 8-byte Folded Spill +; CHECK-NEXT: str x19, [sp, #160] // 8-byte Spill ; CHECK-NEXT: .seh_save_reg x19, 160 ; CHECK-NEXT: stp x29, x30, [sp, #168] // 16-byte Folded Spill ; CHECK-NEXT: .seh_save_fplr 168 @@ -253,7 +253,7 @@ define void @has_aligned_sret(ptr align 32 sret(%TSRet), i32) nounwind { ; CHECK-NEXT: .seh_startepilogue ; CHECK-NEXT: ldp x29, x30, [sp, #168] // 16-byte Folded Reload ; CHECK-NEXT: .seh_save_fplr 168 -; CHECK-NEXT: ldr x19, [sp, #160] // 8-byte Folded Reload +; CHECK-NEXT: ldr x19, [sp, #160] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x19, 160 ; CHECK-NEXT: ldp q14, q15, [sp, #128] // 32-byte Folded Reload ; CHECK-NEXT: .seh_save_any_reg_p q14, 128 @@ -339,7 +339,7 @@ define [3 x i64] @large_array([3 x i64] %0, [2 x double], [2 x [2 x i64]]) nounw ; CHECK-NEXT: .seh_save_any_reg_p q12, 96 ; CHECK-NEXT: stp q14, q15, [sp, #128] // 32-byte Folded Spill ; CHECK-NEXT: .seh_save_any_reg_p q14, 128 -; CHECK-NEXT: str x19, [sp, #160] // 8-byte Folded Spill +; CHECK-NEXT: str x19, [sp, #160] // 8-byte Spill ; CHECK-NEXT: .seh_save_reg x19, 160 ; CHECK-NEXT: stp x29, x30, [sp, #168] // 16-byte Folded Spill ; CHECK-NEXT: .seh_save_fplr 168 @@ -362,7 +362,7 @@ define [3 x i64] @large_array([3 x i64] %0, [2 x double], [2 x [2 x i64]]) nounw ; CHECK-NEXT: .seh_startepilogue ; CHECK-NEXT: ldp x29, x30, [sp, #168] // 16-byte Folded Reload ; CHECK-NEXT: .seh_save_fplr 168 -; CHECK-NEXT: ldr x19, [sp, #160] // 8-byte Folded Reload +; CHECK-NEXT: ldr x19, [sp, #160] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x19, 160 ; CHECK-NEXT: ldp q14, q15, [sp, #128] // 32-byte Folded Reload ; CHECK-NEXT: .seh_save_any_reg_p q14, 128 @@ -555,7 +555,7 @@ define <8 x i16> @large_vector(<8 x i16> %0) { ; CHECK-NEXT: .seh_save_any_reg_p q12, 96 ; CHECK-NEXT: stp q14, q15, [sp, #128] // 32-byte Folded Spill ; CHECK-NEXT: .seh_save_any_reg_p q14, 128 -; CHECK-NEXT: str x19, [sp, #160] // 8-byte Folded Spill +; CHECK-NEXT: str x19, [sp, #160] // 8-byte Spill ; CHECK-NEXT: .seh_save_reg x19, 160 ; CHECK-NEXT: stp x29, x30, [sp, #168] // 16-byte Folded Spill ; CHECK-NEXT: .seh_save_fplr 168 @@ -571,7 +571,7 @@ define <8 x i16> @large_vector(<8 x i16> %0) { ; CHECK-NEXT: .seh_startepilogue ; CHECK-NEXT: ldp x29, x30, [sp, #168] // 16-byte Folded Reload ; CHECK-NEXT: .seh_save_fplr 168 -; CHECK-NEXT: ldr x19, [sp, #160] // 8-byte Folded Reload +; CHECK-NEXT: ldr x19, [sp, #160] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x19, 160 ; CHECK-NEXT: ldp q14, q15, [sp, #128] // 32-byte Folded Reload ; CHECK-NEXT: .seh_save_any_reg_p q14, 128 diff --git a/llvm/test/CodeGen/AArch64/arm64ec-reservedregs.ll b/llvm/test/CodeGen/AArch64/arm64ec-reservedregs.ll index 91ec870dd6d0c..b07f95e7fe474 100644 --- a/llvm/test/CodeGen/AArch64/arm64ec-reservedregs.ll +++ b/llvm/test/CodeGen/AArch64/arm64ec-reservedregs.ll @@ -10,17 +10,17 @@ define i32 @no_int_regs(i32 %x) nounwind { ; CHECK-LABEL: no_int_regs: ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: stp x30, x29, [sp, #-80]! // 16-byte Folded Spill -; CHECK-NEXT: str x27, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x27, [sp, #16] // 8-byte Spill ; CHECK-NEXT: stp x26, x25, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp x22, x21, [sp, #48] // 16-byte Folded Spill ; CHECK-NEXT: stp x20, x19, [sp, #64] // 16-byte Folded Spill -; CHECK-NEXT: str w0, [sp, #28] // 4-byte Folded Spill +; CHECK-NEXT: str w0, [sp, #28] // 4-byte Spill ; CHECK-NEXT: //APP ; CHECK-NEXT: //NO_APP ; CHECK-NEXT: ldp x20, x19, [sp, #64] // 16-byte Folded Reload -; CHECK-NEXT: ldr w0, [sp, #28] // 4-byte Folded Reload +; CHECK-NEXT: ldr w0, [sp, #28] // 4-byte Reload ; CHECK-NEXT: ldp x22, x21, [sp, #48] // 16-byte Folded Reload -; CHECK-NEXT: ldr x27, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x27, [sp, #16] // 8-byte Reload ; CHECK-NEXT: ldp x26, x25, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp x30, x29, [sp], #80 // 16-byte Folded Reload ; CHECK-NEXT: ret @@ -33,7 +33,7 @@ define i32 @one_int_reg(i32 %x) nounwind { ; CHECK-LABEL: one_int_reg: ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: stp x30, x29, [sp, #-80]! // 16-byte Folded Spill -; CHECK-NEXT: str x27, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x27, [sp, #16] // 8-byte Spill ; CHECK-NEXT: mov w30, w0 ; CHECK-NEXT: stp x26, x25, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp x22, x21, [sp, #48] // 16-byte Folded Spill @@ -41,7 +41,7 @@ define i32 @one_int_reg(i32 %x) nounwind { ; CHECK-NEXT: //APP ; CHECK-NEXT: //NO_APP ; CHECK-NEXT: ldp x20, x19, [sp, #64] // 16-byte Folded Reload -; CHECK-NEXT: ldr x27, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x27, [sp, #16] // 8-byte Reload ; CHECK-NEXT: ldp x22, x21, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: mov w0, w30 ; CHECK-NEXT: ldp x26, x25, [sp, #32] // 16-byte Folded Reload @@ -60,11 +60,11 @@ define float @no_float_regs(float %x) nounwind { ; CHECK-NEXT: stp d13, d12, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #48] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #64] // 16-byte Folded Spill -; CHECK-NEXT: str s0, [sp, #12] // 4-byte Folded Spill +; CHECK-NEXT: str s0, [sp, #12] // 4-byte Spill ; CHECK-NEXT: //APP ; CHECK-NEXT: //NO_APP ; CHECK-NEXT: ldp d9, d8, [sp, #64] // 16-byte Folded Reload -; CHECK-NEXT: ldr s0, [sp, #12] // 4-byte Folded Reload +; CHECK-NEXT: ldr s0, [sp, #12] // 4-byte Reload ; CHECK-NEXT: ldp d11, d10, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d15, d14, [sp, #16] // 16-byte Folded Reload diff --git a/llvm/test/CodeGen/AArch64/arm64ec-varargs.ll b/llvm/test/CodeGen/AArch64/arm64ec-varargs.ll index 389969bebaea4..979e09cfb5fac 100644 --- a/llvm/test/CodeGen/AArch64/arm64ec-varargs.ll +++ b/llvm/test/CodeGen/AArch64/arm64ec-varargs.ll @@ -49,7 +49,7 @@ define void @varargs_caller() nounwind { ; CHECK-NEXT: .weak_anti_dep "#varargs_callee" ; CHECK-NEXT: "#varargs_callee" = varargs_callee ; CHECK-NEXT: bl "#varargs_callee" -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #48 ; CHECK-NEXT: ret call void (double, ...) @varargs_callee(double 1.0, i32 2, double 3.0, i32 4, double 5.0, <2 x double> ) @@ -82,7 +82,7 @@ define void @varargs_many_argscalleer() nounwind { ; CHECK-NEXT: mov x2, #4613937818241073152 // =0x4008000000000000 ; CHECK-NEXT: mov x4, sp ; CHECK-NEXT: mov w5, #16 // =0x10 -; CHECK-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-NEXT: stp x9, x8, [sp] ; CHECK-NEXT: stp q0, q0, [sp, #16] ; CHECK-NEXT: .weak_anti_dep varargs_many_argscallee @@ -90,7 +90,7 @@ define void @varargs_many_argscalleer() nounwind { ; CHECK-NEXT: .weak_anti_dep "#varargs_many_argscallee" ; CHECK-NEXT: "#varargs_many_argscallee" = varargs_many_argscallee ; CHECK-NEXT: bl "#varargs_many_argscallee" -; CHECK-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #64 ; CHECK-NEXT: ret call <2 x double> (double, double, double, <2 x double>, <2 x double>, ...) @@ -120,7 +120,7 @@ define void @varargs_caller_tail() nounwind { ; CHECK-NEXT: .weak_anti_dep "#varargs_callee" ; CHECK-NEXT: "#varargs_callee" = varargs_callee ; CHECK-NEXT: bl "#varargs_callee" -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: add x4, sp, #48 ; CHECK-NEXT: mov x0, #4607182418800017408 // =0x3ff0000000000000 ; CHECK-NEXT: mov w1, #4 // =0x4 diff --git a/llvm/test/CodeGen/AArch64/atomicrmw-O0.ll b/llvm/test/CodeGen/AArch64/atomicrmw-O0.ll index 71e0250b36972..731274149a24a 100644 --- a/llvm/test/CodeGen/AArch64/atomicrmw-O0.ll +++ b/llvm/test/CodeGen/AArch64/atomicrmw-O0.ll @@ -9,15 +9,15 @@ define i8 @test_rmw_add_8(ptr %dst) { ; NOLSE: // %bb.0: // %entry ; NOLSE-NEXT: sub sp, sp, #32 ; NOLSE-NEXT: .cfi_def_cfa_offset 32 -; NOLSE-NEXT: str x0, [sp, #16] // 8-byte Folded Spill +; NOLSE-NEXT: str x0, [sp, #16] // 8-byte Spill ; NOLSE-NEXT: ldrb w8, [x0] -; NOLSE-NEXT: str w8, [sp, #28] // 4-byte Folded Spill +; NOLSE-NEXT: str w8, [sp, #28] // 4-byte Spill ; NOLSE-NEXT: b .LBB0_1 ; NOLSE-NEXT: .LBB0_1: // %atomicrmw.start ; NOLSE-NEXT: // =>This Loop Header: Depth=1 ; NOLSE-NEXT: // Child Loop BB0_2 Depth 2 -; NOLSE-NEXT: ldr w9, [sp, #28] // 4-byte Folded Reload -; NOLSE-NEXT: ldr x11, [sp, #16] // 8-byte Folded Reload +; NOLSE-NEXT: ldr w9, [sp, #28] // 4-byte Reload +; NOLSE-NEXT: ldr x11, [sp, #16] // 8-byte Reload ; NOLSE-NEXT: add w12, w9, #1 ; NOLSE-NEXT: .LBB0_2: // %atomicrmw.start ; NOLSE-NEXT: // Parent Loop BB0_1 Depth=1 @@ -32,12 +32,12 @@ define i8 @test_rmw_add_8(ptr %dst) { ; NOLSE-NEXT: .LBB0_4: // %atomicrmw.start ; NOLSE-NEXT: // in Loop: Header=BB0_1 Depth=1 ; NOLSE-NEXT: subs w9, w8, w9, uxtb -; NOLSE-NEXT: str w8, [sp, #12] // 4-byte Folded Spill -; NOLSE-NEXT: str w8, [sp, #28] // 4-byte Folded Spill +; NOLSE-NEXT: str w8, [sp, #12] // 4-byte Spill +; NOLSE-NEXT: str w8, [sp, #28] // 4-byte Spill ; NOLSE-NEXT: b.ne .LBB0_1 ; NOLSE-NEXT: b .LBB0_5 ; NOLSE-NEXT: .LBB0_5: // %atomicrmw.end -; NOLSE-NEXT: ldr w0, [sp, #12] // 4-byte Folded Reload +; NOLSE-NEXT: ldr w0, [sp, #12] // 4-byte Reload ; NOLSE-NEXT: add sp, sp, #32 ; NOLSE-NEXT: ret ; @@ -56,15 +56,15 @@ define i16 @test_rmw_add_16(ptr %dst) { ; NOLSE: // %bb.0: // %entry ; NOLSE-NEXT: sub sp, sp, #32 ; NOLSE-NEXT: .cfi_def_cfa_offset 32 -; NOLSE-NEXT: str x0, [sp, #16] // 8-byte Folded Spill +; NOLSE-NEXT: str x0, [sp, #16] // 8-byte Spill ; NOLSE-NEXT: ldrh w8, [x0] -; NOLSE-NEXT: str w8, [sp, #28] // 4-byte Folded Spill +; NOLSE-NEXT: str w8, [sp, #28] // 4-byte Spill ; NOLSE-NEXT: b .LBB1_1 ; NOLSE-NEXT: .LBB1_1: // %atomicrmw.start ; NOLSE-NEXT: // =>This Loop Header: Depth=1 ; NOLSE-NEXT: // Child Loop BB1_2 Depth 2 -; NOLSE-NEXT: ldr w9, [sp, #28] // 4-byte Folded Reload -; NOLSE-NEXT: ldr x11, [sp, #16] // 8-byte Folded Reload +; NOLSE-NEXT: ldr w9, [sp, #28] // 4-byte Reload +; NOLSE-NEXT: ldr x11, [sp, #16] // 8-byte Reload ; NOLSE-NEXT: add w12, w9, #1 ; NOLSE-NEXT: .LBB1_2: // %atomicrmw.start ; NOLSE-NEXT: // Parent Loop BB1_1 Depth=1 @@ -79,12 +79,12 @@ define i16 @test_rmw_add_16(ptr %dst) { ; NOLSE-NEXT: .LBB1_4: // %atomicrmw.start ; NOLSE-NEXT: // in Loop: Header=BB1_1 Depth=1 ; NOLSE-NEXT: subs w9, w8, w9, uxth -; NOLSE-NEXT: str w8, [sp, #12] // 4-byte Folded Spill -; NOLSE-NEXT: str w8, [sp, #28] // 4-byte Folded Spill +; NOLSE-NEXT: str w8, [sp, #12] // 4-byte Spill +; NOLSE-NEXT: str w8, [sp, #28] // 4-byte Spill ; NOLSE-NEXT: b.ne .LBB1_1 ; NOLSE-NEXT: b .LBB1_5 ; NOLSE-NEXT: .LBB1_5: // %atomicrmw.end -; NOLSE-NEXT: ldr w0, [sp, #12] // 4-byte Folded Reload +; NOLSE-NEXT: ldr w0, [sp, #12] // 4-byte Reload ; NOLSE-NEXT: add sp, sp, #32 ; NOLSE-NEXT: ret ; @@ -103,15 +103,15 @@ define i32 @test_rmw_add_32(ptr %dst) { ; NOLSE: // %bb.0: // %entry ; NOLSE-NEXT: sub sp, sp, #32 ; NOLSE-NEXT: .cfi_def_cfa_offset 32 -; NOLSE-NEXT: str x0, [sp, #16] // 8-byte Folded Spill +; NOLSE-NEXT: str x0, [sp, #16] // 8-byte Spill ; NOLSE-NEXT: ldr w8, [x0] -; NOLSE-NEXT: str w8, [sp, #28] // 4-byte Folded Spill +; NOLSE-NEXT: str w8, [sp, #28] // 4-byte Spill ; NOLSE-NEXT: b .LBB2_1 ; NOLSE-NEXT: .LBB2_1: // %atomicrmw.start ; NOLSE-NEXT: // =>This Loop Header: Depth=1 ; NOLSE-NEXT: // Child Loop BB2_2 Depth 2 -; NOLSE-NEXT: ldr w9, [sp, #28] // 4-byte Folded Reload -; NOLSE-NEXT: ldr x11, [sp, #16] // 8-byte Folded Reload +; NOLSE-NEXT: ldr w9, [sp, #28] // 4-byte Reload +; NOLSE-NEXT: ldr x11, [sp, #16] // 8-byte Reload ; NOLSE-NEXT: add w12, w9, #1 ; NOLSE-NEXT: .LBB2_2: // %atomicrmw.start ; NOLSE-NEXT: // Parent Loop BB2_1 Depth=1 @@ -126,12 +126,12 @@ define i32 @test_rmw_add_32(ptr %dst) { ; NOLSE-NEXT: .LBB2_4: // %atomicrmw.start ; NOLSE-NEXT: // in Loop: Header=BB2_1 Depth=1 ; NOLSE-NEXT: subs w9, w8, w9 -; NOLSE-NEXT: str w8, [sp, #12] // 4-byte Folded Spill -; NOLSE-NEXT: str w8, [sp, #28] // 4-byte Folded Spill +; NOLSE-NEXT: str w8, [sp, #12] // 4-byte Spill +; NOLSE-NEXT: str w8, [sp, #28] // 4-byte Spill ; NOLSE-NEXT: b.ne .LBB2_1 ; NOLSE-NEXT: b .LBB2_5 ; NOLSE-NEXT: .LBB2_5: // %atomicrmw.end -; NOLSE-NEXT: ldr w0, [sp, #12] // 4-byte Folded Reload +; NOLSE-NEXT: ldr w0, [sp, #12] // 4-byte Reload ; NOLSE-NEXT: add sp, sp, #32 ; NOLSE-NEXT: ret ; @@ -150,15 +150,15 @@ define i64 @test_rmw_add_64(ptr %dst) { ; NOLSE: // %bb.0: // %entry ; NOLSE-NEXT: sub sp, sp, #32 ; NOLSE-NEXT: .cfi_def_cfa_offset 32 -; NOLSE-NEXT: str x0, [sp, #16] // 8-byte Folded Spill +; NOLSE-NEXT: str x0, [sp, #16] // 8-byte Spill ; NOLSE-NEXT: ldr x8, [x0] -; NOLSE-NEXT: str x8, [sp, #24] // 8-byte Folded Spill +; NOLSE-NEXT: str x8, [sp, #24] // 8-byte Spill ; NOLSE-NEXT: b .LBB3_1 ; NOLSE-NEXT: .LBB3_1: // %atomicrmw.start ; NOLSE-NEXT: // =>This Loop Header: Depth=1 ; NOLSE-NEXT: // Child Loop BB3_2 Depth 2 -; NOLSE-NEXT: ldr x9, [sp, #24] // 8-byte Folded Reload -; NOLSE-NEXT: ldr x11, [sp, #16] // 8-byte Folded Reload +; NOLSE-NEXT: ldr x9, [sp, #24] // 8-byte Reload +; NOLSE-NEXT: ldr x11, [sp, #16] // 8-byte Reload ; NOLSE-NEXT: add x12, x9, #1 ; NOLSE-NEXT: .LBB3_2: // %atomicrmw.start ; NOLSE-NEXT: // Parent Loop BB3_1 Depth=1 @@ -173,12 +173,12 @@ define i64 @test_rmw_add_64(ptr %dst) { ; NOLSE-NEXT: .LBB3_4: // %atomicrmw.start ; NOLSE-NEXT: // in Loop: Header=BB3_1 Depth=1 ; NOLSE-NEXT: subs x9, x8, x9 -; NOLSE-NEXT: str x8, [sp, #8] // 8-byte Folded Spill -; NOLSE-NEXT: str x8, [sp, #24] // 8-byte Folded Spill +; NOLSE-NEXT: str x8, [sp, #8] // 8-byte Spill +; NOLSE-NEXT: str x8, [sp, #24] // 8-byte Spill ; NOLSE-NEXT: b.ne .LBB3_1 ; NOLSE-NEXT: b .LBB3_5 ; NOLSE-NEXT: .LBB3_5: // %atomicrmw.end -; NOLSE-NEXT: ldr x0, [sp, #8] // 8-byte Folded Reload +; NOLSE-NEXT: ldr x0, [sp, #8] // 8-byte Reload ; NOLSE-NEXT: add sp, sp, #32 ; NOLSE-NEXT: ret ; @@ -198,18 +198,18 @@ define i128 @test_rmw_add_128(ptr %dst) { ; NOLSE: // %bb.0: // %entry ; NOLSE-NEXT: sub sp, sp, #48 ; NOLSE-NEXT: .cfi_def_cfa_offset 48 -; NOLSE-NEXT: str x0, [sp, #24] // 8-byte Folded Spill +; NOLSE-NEXT: str x0, [sp, #24] // 8-byte Spill ; NOLSE-NEXT: ldr x8, [x0, #8] ; NOLSE-NEXT: ldr x9, [x0] -; NOLSE-NEXT: str x9, [sp, #32] // 8-byte Folded Spill -; NOLSE-NEXT: str x8, [sp, #40] // 8-byte Folded Spill +; NOLSE-NEXT: str x9, [sp, #32] // 8-byte Spill +; NOLSE-NEXT: str x8, [sp, #40] // 8-byte Spill ; NOLSE-NEXT: b .LBB4_1 ; NOLSE-NEXT: .LBB4_1: // %atomicrmw.start ; NOLSE-NEXT: // =>This Loop Header: Depth=1 ; NOLSE-NEXT: // Child Loop BB4_2 Depth 2 -; NOLSE-NEXT: ldr x13, [sp, #40] // 8-byte Folded Reload -; NOLSE-NEXT: ldr x11, [sp, #32] // 8-byte Folded Reload -; NOLSE-NEXT: ldr x9, [sp, #24] // 8-byte Folded Reload +; NOLSE-NEXT: ldr x13, [sp, #40] // 8-byte Reload +; NOLSE-NEXT: ldr x11, [sp, #32] // 8-byte Reload +; NOLSE-NEXT: ldr x9, [sp, #24] // 8-byte Reload ; NOLSE-NEXT: adds x14, x11, #1 ; NOLSE-NEXT: cinc x15, x13, hs ; NOLSE-NEXT: .LBB4_2: // %atomicrmw.start @@ -233,18 +233,18 @@ define i128 @test_rmw_add_128(ptr %dst) { ; NOLSE-NEXT: .LBB4_5: // %atomicrmw.start ; NOLSE-NEXT: // in Loop: Header=BB4_1 Depth=1 ; NOLSE-NEXT: mov x8, x12 -; NOLSE-NEXT: str x8, [sp, #8] // 8-byte Folded Spill +; NOLSE-NEXT: str x8, [sp, #8] // 8-byte Spill ; NOLSE-NEXT: mov x9, x10 -; NOLSE-NEXT: str x9, [sp, #16] // 8-byte Folded Spill +; NOLSE-NEXT: str x9, [sp, #16] // 8-byte Spill ; NOLSE-NEXT: subs x12, x12, x13 ; NOLSE-NEXT: ccmp x10, x11, #0, eq -; NOLSE-NEXT: str x9, [sp, #32] // 8-byte Folded Spill -; NOLSE-NEXT: str x8, [sp, #40] // 8-byte Folded Spill +; NOLSE-NEXT: str x9, [sp, #32] // 8-byte Spill +; NOLSE-NEXT: str x8, [sp, #40] // 8-byte Spill ; NOLSE-NEXT: b.ne .LBB4_1 ; NOLSE-NEXT: b .LBB4_6 ; NOLSE-NEXT: .LBB4_6: // %atomicrmw.end -; NOLSE-NEXT: ldr x1, [sp, #8] // 8-byte Folded Reload -; NOLSE-NEXT: ldr x0, [sp, #16] // 8-byte Folded Reload +; NOLSE-NEXT: ldr x1, [sp, #8] // 8-byte Reload +; NOLSE-NEXT: ldr x0, [sp, #16] // 8-byte Reload ; NOLSE-NEXT: add sp, sp, #48 ; NOLSE-NEXT: ret ; @@ -252,17 +252,17 @@ define i128 @test_rmw_add_128(ptr %dst) { ; LSE: // %bb.0: // %entry ; LSE-NEXT: sub sp, sp, #48 ; LSE-NEXT: .cfi_def_cfa_offset 48 -; LSE-NEXT: str x0, [sp, #24] // 8-byte Folded Spill +; LSE-NEXT: str x0, [sp, #24] // 8-byte Spill ; LSE-NEXT: ldr x8, [x0, #8] ; LSE-NEXT: ldr x9, [x0] -; LSE-NEXT: str x9, [sp, #32] // 8-byte Folded Spill -; LSE-NEXT: str x8, [sp, #40] // 8-byte Folded Spill +; LSE-NEXT: str x9, [sp, #32] // 8-byte Spill +; LSE-NEXT: str x8, [sp, #40] // 8-byte Spill ; LSE-NEXT: b .LBB4_1 ; LSE-NEXT: .LBB4_1: // %atomicrmw.start ; LSE-NEXT: // =>This Inner Loop Header: Depth=1 -; LSE-NEXT: ldr x11, [sp, #40] // 8-byte Folded Reload -; LSE-NEXT: ldr x10, [sp, #32] // 8-byte Folded Reload -; LSE-NEXT: ldr x8, [sp, #24] // 8-byte Folded Reload +; LSE-NEXT: ldr x11, [sp, #40] // 8-byte Reload +; LSE-NEXT: ldr x10, [sp, #32] // 8-byte Reload +; LSE-NEXT: ldr x8, [sp, #24] // 8-byte Reload ; LSE-NEXT: mov x0, x10 ; LSE-NEXT: mov x1, x11 ; LSE-NEXT: adds x2, x10, #1 @@ -271,18 +271,18 @@ define i128 @test_rmw_add_128(ptr %dst) { ; LSE-NEXT: mov x3, x9 ; LSE-NEXT: caspal x0, x1, x2, x3, [x8] ; LSE-NEXT: mov x9, x0 -; LSE-NEXT: str x9, [sp, #8] // 8-byte Folded Spill +; LSE-NEXT: str x9, [sp, #8] // 8-byte Spill ; LSE-NEXT: mov x8, x1 -; LSE-NEXT: str x8, [sp, #16] // 8-byte Folded Spill +; LSE-NEXT: str x8, [sp, #16] // 8-byte Spill ; LSE-NEXT: subs x11, x8, x11 ; LSE-NEXT: ccmp x9, x10, #0, eq -; LSE-NEXT: str x9, [sp, #32] // 8-byte Folded Spill -; LSE-NEXT: str x8, [sp, #40] // 8-byte Folded Spill +; LSE-NEXT: str x9, [sp, #32] // 8-byte Spill +; LSE-NEXT: str x8, [sp, #40] // 8-byte Spill ; LSE-NEXT: b.ne .LBB4_1 ; LSE-NEXT: b .LBB4_2 ; LSE-NEXT: .LBB4_2: // %atomicrmw.end -; LSE-NEXT: ldr x1, [sp, #16] // 8-byte Folded Reload -; LSE-NEXT: ldr x0, [sp, #8] // 8-byte Folded Reload +; LSE-NEXT: ldr x1, [sp, #16] // 8-byte Reload +; LSE-NEXT: ldr x0, [sp, #8] // 8-byte Reload ; LSE-NEXT: add sp, sp, #48 ; LSE-NEXT: ret entry: @@ -294,15 +294,15 @@ define i8 @test_rmw_nand_8(ptr %dst) { ; NOLSE: // %bb.0: // %entry ; NOLSE-NEXT: sub sp, sp, #32 ; NOLSE-NEXT: .cfi_def_cfa_offset 32 -; NOLSE-NEXT: str x0, [sp, #16] // 8-byte Folded Spill +; NOLSE-NEXT: str x0, [sp, #16] // 8-byte Spill ; NOLSE-NEXT: ldrb w8, [x0] -; NOLSE-NEXT: str w8, [sp, #28] // 4-byte Folded Spill +; NOLSE-NEXT: str w8, [sp, #28] // 4-byte Spill ; NOLSE-NEXT: b .LBB5_1 ; NOLSE-NEXT: .LBB5_1: // %atomicrmw.start ; NOLSE-NEXT: // =>This Loop Header: Depth=1 ; NOLSE-NEXT: // Child Loop BB5_2 Depth 2 -; NOLSE-NEXT: ldr w9, [sp, #28] // 4-byte Folded Reload -; NOLSE-NEXT: ldr x11, [sp, #16] // 8-byte Folded Reload +; NOLSE-NEXT: ldr w9, [sp, #28] // 4-byte Reload +; NOLSE-NEXT: ldr x11, [sp, #16] // 8-byte Reload ; NOLSE-NEXT: mvn w8, w9 ; NOLSE-NEXT: orr w12, w8, #0xfffffffe ; NOLSE-NEXT: .LBB5_2: // %atomicrmw.start @@ -318,12 +318,12 @@ define i8 @test_rmw_nand_8(ptr %dst) { ; NOLSE-NEXT: .LBB5_4: // %atomicrmw.start ; NOLSE-NEXT: // in Loop: Header=BB5_1 Depth=1 ; NOLSE-NEXT: subs w9, w8, w9, uxtb -; NOLSE-NEXT: str w8, [sp, #12] // 4-byte Folded Spill -; NOLSE-NEXT: str w8, [sp, #28] // 4-byte Folded Spill +; NOLSE-NEXT: str w8, [sp, #12] // 4-byte Spill +; NOLSE-NEXT: str w8, [sp, #28] // 4-byte Spill ; NOLSE-NEXT: b.ne .LBB5_1 ; NOLSE-NEXT: b .LBB5_5 ; NOLSE-NEXT: .LBB5_5: // %atomicrmw.end -; NOLSE-NEXT: ldr w0, [sp, #12] // 4-byte Folded Reload +; NOLSE-NEXT: ldr w0, [sp, #12] // 4-byte Reload ; NOLSE-NEXT: add sp, sp, #32 ; NOLSE-NEXT: ret ; @@ -331,25 +331,25 @@ define i8 @test_rmw_nand_8(ptr %dst) { ; LSE: // %bb.0: // %entry ; LSE-NEXT: sub sp, sp, #32 ; LSE-NEXT: .cfi_def_cfa_offset 32 -; LSE-NEXT: str x0, [sp, #16] // 8-byte Folded Spill +; LSE-NEXT: str x0, [sp, #16] // 8-byte Spill ; LSE-NEXT: ldrb w8, [x0] -; LSE-NEXT: str w8, [sp, #28] // 4-byte Folded Spill +; LSE-NEXT: str w8, [sp, #28] // 4-byte Spill ; LSE-NEXT: b .LBB5_1 ; LSE-NEXT: .LBB5_1: // %atomicrmw.start ; LSE-NEXT: // =>This Inner Loop Header: Depth=1 -; LSE-NEXT: ldr w9, [sp, #28] // 4-byte Folded Reload -; LSE-NEXT: ldr x11, [sp, #16] // 8-byte Folded Reload +; LSE-NEXT: ldr w9, [sp, #28] // 4-byte Reload +; LSE-NEXT: ldr x11, [sp, #16] // 8-byte Reload ; LSE-NEXT: mvn w8, w9 ; LSE-NEXT: orr w10, w8, #0xfffffffe ; LSE-NEXT: mov w8, w9 ; LSE-NEXT: casalb w8, w10, [x11] ; LSE-NEXT: subs w9, w8, w9, uxtb -; LSE-NEXT: str w8, [sp, #12] // 4-byte Folded Spill -; LSE-NEXT: str w8, [sp, #28] // 4-byte Folded Spill +; LSE-NEXT: str w8, [sp, #12] // 4-byte Spill +; LSE-NEXT: str w8, [sp, #28] // 4-byte Spill ; LSE-NEXT: b.ne .LBB5_1 ; LSE-NEXT: b .LBB5_2 ; LSE-NEXT: .LBB5_2: // %atomicrmw.end -; LSE-NEXT: ldr w0, [sp, #12] // 4-byte Folded Reload +; LSE-NEXT: ldr w0, [sp, #12] // 4-byte Reload ; LSE-NEXT: add sp, sp, #32 ; LSE-NEXT: ret entry: @@ -362,15 +362,15 @@ define i16 @test_rmw_nand_16(ptr %dst) { ; NOLSE: // %bb.0: // %entry ; NOLSE-NEXT: sub sp, sp, #32 ; NOLSE-NEXT: .cfi_def_cfa_offset 32 -; NOLSE-NEXT: str x0, [sp, #16] // 8-byte Folded Spill +; NOLSE-NEXT: str x0, [sp, #16] // 8-byte Spill ; NOLSE-NEXT: ldrh w8, [x0] -; NOLSE-NEXT: str w8, [sp, #28] // 4-byte Folded Spill +; NOLSE-NEXT: str w8, [sp, #28] // 4-byte Spill ; NOLSE-NEXT: b .LBB6_1 ; NOLSE-NEXT: .LBB6_1: // %atomicrmw.start ; NOLSE-NEXT: // =>This Loop Header: Depth=1 ; NOLSE-NEXT: // Child Loop BB6_2 Depth 2 -; NOLSE-NEXT: ldr w9, [sp, #28] // 4-byte Folded Reload -; NOLSE-NEXT: ldr x11, [sp, #16] // 8-byte Folded Reload +; NOLSE-NEXT: ldr w9, [sp, #28] // 4-byte Reload +; NOLSE-NEXT: ldr x11, [sp, #16] // 8-byte Reload ; NOLSE-NEXT: mvn w8, w9 ; NOLSE-NEXT: orr w12, w8, #0xfffffffe ; NOLSE-NEXT: .LBB6_2: // %atomicrmw.start @@ -386,12 +386,12 @@ define i16 @test_rmw_nand_16(ptr %dst) { ; NOLSE-NEXT: .LBB6_4: // %atomicrmw.start ; NOLSE-NEXT: // in Loop: Header=BB6_1 Depth=1 ; NOLSE-NEXT: subs w9, w8, w9, uxth -; NOLSE-NEXT: str w8, [sp, #12] // 4-byte Folded Spill -; NOLSE-NEXT: str w8, [sp, #28] // 4-byte Folded Spill +; NOLSE-NEXT: str w8, [sp, #12] // 4-byte Spill +; NOLSE-NEXT: str w8, [sp, #28] // 4-byte Spill ; NOLSE-NEXT: b.ne .LBB6_1 ; NOLSE-NEXT: b .LBB6_5 ; NOLSE-NEXT: .LBB6_5: // %atomicrmw.end -; NOLSE-NEXT: ldr w0, [sp, #12] // 4-byte Folded Reload +; NOLSE-NEXT: ldr w0, [sp, #12] // 4-byte Reload ; NOLSE-NEXT: add sp, sp, #32 ; NOLSE-NEXT: ret ; @@ -399,25 +399,25 @@ define i16 @test_rmw_nand_16(ptr %dst) { ; LSE: // %bb.0: // %entry ; LSE-NEXT: sub sp, sp, #32 ; LSE-NEXT: .cfi_def_cfa_offset 32 -; LSE-NEXT: str x0, [sp, #16] // 8-byte Folded Spill +; LSE-NEXT: str x0, [sp, #16] // 8-byte Spill ; LSE-NEXT: ldrh w8, [x0] -; LSE-NEXT: str w8, [sp, #28] // 4-byte Folded Spill +; LSE-NEXT: str w8, [sp, #28] // 4-byte Spill ; LSE-NEXT: b .LBB6_1 ; LSE-NEXT: .LBB6_1: // %atomicrmw.start ; LSE-NEXT: // =>This Inner Loop Header: Depth=1 -; LSE-NEXT: ldr w9, [sp, #28] // 4-byte Folded Reload -; LSE-NEXT: ldr x11, [sp, #16] // 8-byte Folded Reload +; LSE-NEXT: ldr w9, [sp, #28] // 4-byte Reload +; LSE-NEXT: ldr x11, [sp, #16] // 8-byte Reload ; LSE-NEXT: mvn w8, w9 ; LSE-NEXT: orr w10, w8, #0xfffffffe ; LSE-NEXT: mov w8, w9 ; LSE-NEXT: casalh w8, w10, [x11] ; LSE-NEXT: subs w9, w8, w9, uxth -; LSE-NEXT: str w8, [sp, #12] // 4-byte Folded Spill -; LSE-NEXT: str w8, [sp, #28] // 4-byte Folded Spill +; LSE-NEXT: str w8, [sp, #12] // 4-byte Spill +; LSE-NEXT: str w8, [sp, #28] // 4-byte Spill ; LSE-NEXT: b.ne .LBB6_1 ; LSE-NEXT: b .LBB6_2 ; LSE-NEXT: .LBB6_2: // %atomicrmw.end -; LSE-NEXT: ldr w0, [sp, #12] // 4-byte Folded Reload +; LSE-NEXT: ldr w0, [sp, #12] // 4-byte Reload ; LSE-NEXT: add sp, sp, #32 ; LSE-NEXT: ret entry: @@ -430,15 +430,15 @@ define i32 @test_rmw_nand_32(ptr %dst) { ; NOLSE: // %bb.0: // %entry ; NOLSE-NEXT: sub sp, sp, #32 ; NOLSE-NEXT: .cfi_def_cfa_offset 32 -; NOLSE-NEXT: str x0, [sp, #16] // 8-byte Folded Spill +; NOLSE-NEXT: str x0, [sp, #16] // 8-byte Spill ; NOLSE-NEXT: ldr w8, [x0] -; NOLSE-NEXT: str w8, [sp, #28] // 4-byte Folded Spill +; NOLSE-NEXT: str w8, [sp, #28] // 4-byte Spill ; NOLSE-NEXT: b .LBB7_1 ; NOLSE-NEXT: .LBB7_1: // %atomicrmw.start ; NOLSE-NEXT: // =>This Loop Header: Depth=1 ; NOLSE-NEXT: // Child Loop BB7_2 Depth 2 -; NOLSE-NEXT: ldr w9, [sp, #28] // 4-byte Folded Reload -; NOLSE-NEXT: ldr x11, [sp, #16] // 8-byte Folded Reload +; NOLSE-NEXT: ldr w9, [sp, #28] // 4-byte Reload +; NOLSE-NEXT: ldr x11, [sp, #16] // 8-byte Reload ; NOLSE-NEXT: mvn w8, w9 ; NOLSE-NEXT: orr w12, w8, #0xfffffffe ; NOLSE-NEXT: .LBB7_2: // %atomicrmw.start @@ -454,12 +454,12 @@ define i32 @test_rmw_nand_32(ptr %dst) { ; NOLSE-NEXT: .LBB7_4: // %atomicrmw.start ; NOLSE-NEXT: // in Loop: Header=BB7_1 Depth=1 ; NOLSE-NEXT: subs w9, w8, w9 -; NOLSE-NEXT: str w8, [sp, #12] // 4-byte Folded Spill -; NOLSE-NEXT: str w8, [sp, #28] // 4-byte Folded Spill +; NOLSE-NEXT: str w8, [sp, #12] // 4-byte Spill +; NOLSE-NEXT: str w8, [sp, #28] // 4-byte Spill ; NOLSE-NEXT: b.ne .LBB7_1 ; NOLSE-NEXT: b .LBB7_5 ; NOLSE-NEXT: .LBB7_5: // %atomicrmw.end -; NOLSE-NEXT: ldr w0, [sp, #12] // 4-byte Folded Reload +; NOLSE-NEXT: ldr w0, [sp, #12] // 4-byte Reload ; NOLSE-NEXT: add sp, sp, #32 ; NOLSE-NEXT: ret ; @@ -467,25 +467,25 @@ define i32 @test_rmw_nand_32(ptr %dst) { ; LSE: // %bb.0: // %entry ; LSE-NEXT: sub sp, sp, #32 ; LSE-NEXT: .cfi_def_cfa_offset 32 -; LSE-NEXT: str x0, [sp, #16] // 8-byte Folded Spill +; LSE-NEXT: str x0, [sp, #16] // 8-byte Spill ; LSE-NEXT: ldr w8, [x0] -; LSE-NEXT: str w8, [sp, #28] // 4-byte Folded Spill +; LSE-NEXT: str w8, [sp, #28] // 4-byte Spill ; LSE-NEXT: b .LBB7_1 ; LSE-NEXT: .LBB7_1: // %atomicrmw.start ; LSE-NEXT: // =>This Inner Loop Header: Depth=1 -; LSE-NEXT: ldr w9, [sp, #28] // 4-byte Folded Reload -; LSE-NEXT: ldr x11, [sp, #16] // 8-byte Folded Reload +; LSE-NEXT: ldr w9, [sp, #28] // 4-byte Reload +; LSE-NEXT: ldr x11, [sp, #16] // 8-byte Reload ; LSE-NEXT: mvn w8, w9 ; LSE-NEXT: orr w10, w8, #0xfffffffe ; LSE-NEXT: mov w8, w9 ; LSE-NEXT: casal w8, w10, [x11] ; LSE-NEXT: subs w9, w8, w9 -; LSE-NEXT: str w8, [sp, #12] // 4-byte Folded Spill -; LSE-NEXT: str w8, [sp, #28] // 4-byte Folded Spill +; LSE-NEXT: str w8, [sp, #12] // 4-byte Spill +; LSE-NEXT: str w8, [sp, #28] // 4-byte Spill ; LSE-NEXT: b.ne .LBB7_1 ; LSE-NEXT: b .LBB7_2 ; LSE-NEXT: .LBB7_2: // %atomicrmw.end -; LSE-NEXT: ldr w0, [sp, #12] // 4-byte Folded Reload +; LSE-NEXT: ldr w0, [sp, #12] // 4-byte Reload ; LSE-NEXT: add sp, sp, #32 ; LSE-NEXT: ret entry: @@ -498,15 +498,15 @@ define i64 @test_rmw_nand_64(ptr %dst) { ; NOLSE: // %bb.0: // %entry ; NOLSE-NEXT: sub sp, sp, #32 ; NOLSE-NEXT: .cfi_def_cfa_offset 32 -; NOLSE-NEXT: str x0, [sp, #16] // 8-byte Folded Spill +; NOLSE-NEXT: str x0, [sp, #16] // 8-byte Spill ; NOLSE-NEXT: ldr x8, [x0] -; NOLSE-NEXT: str x8, [sp, #24] // 8-byte Folded Spill +; NOLSE-NEXT: str x8, [sp, #24] // 8-byte Spill ; NOLSE-NEXT: b .LBB8_1 ; NOLSE-NEXT: .LBB8_1: // %atomicrmw.start ; NOLSE-NEXT: // =>This Loop Header: Depth=1 ; NOLSE-NEXT: // Child Loop BB8_2 Depth 2 -; NOLSE-NEXT: ldr x9, [sp, #24] // 8-byte Folded Reload -; NOLSE-NEXT: ldr x11, [sp, #16] // 8-byte Folded Reload +; NOLSE-NEXT: ldr x9, [sp, #24] // 8-byte Reload +; NOLSE-NEXT: ldr x11, [sp, #16] // 8-byte Reload ; NOLSE-NEXT: mov w8, w9 ; NOLSE-NEXT: mvn w10, w8 ; NOLSE-NEXT: // implicit-def: $x8 @@ -525,12 +525,12 @@ define i64 @test_rmw_nand_64(ptr %dst) { ; NOLSE-NEXT: .LBB8_4: // %atomicrmw.start ; NOLSE-NEXT: // in Loop: Header=BB8_1 Depth=1 ; NOLSE-NEXT: subs x9, x8, x9 -; NOLSE-NEXT: str x8, [sp, #8] // 8-byte Folded Spill -; NOLSE-NEXT: str x8, [sp, #24] // 8-byte Folded Spill +; NOLSE-NEXT: str x8, [sp, #8] // 8-byte Spill +; NOLSE-NEXT: str x8, [sp, #24] // 8-byte Spill ; NOLSE-NEXT: b.ne .LBB8_1 ; NOLSE-NEXT: b .LBB8_5 ; NOLSE-NEXT: .LBB8_5: // %atomicrmw.end -; NOLSE-NEXT: ldr x0, [sp, #8] // 8-byte Folded Reload +; NOLSE-NEXT: ldr x0, [sp, #8] // 8-byte Reload ; NOLSE-NEXT: add sp, sp, #32 ; NOLSE-NEXT: ret ; @@ -538,14 +538,14 @@ define i64 @test_rmw_nand_64(ptr %dst) { ; LSE: // %bb.0: // %entry ; LSE-NEXT: sub sp, sp, #32 ; LSE-NEXT: .cfi_def_cfa_offset 32 -; LSE-NEXT: str x0, [sp, #16] // 8-byte Folded Spill +; LSE-NEXT: str x0, [sp, #16] // 8-byte Spill ; LSE-NEXT: ldr x8, [x0] -; LSE-NEXT: str x8, [sp, #24] // 8-byte Folded Spill +; LSE-NEXT: str x8, [sp, #24] // 8-byte Spill ; LSE-NEXT: b .LBB8_1 ; LSE-NEXT: .LBB8_1: // %atomicrmw.start ; LSE-NEXT: // =>This Inner Loop Header: Depth=1 -; LSE-NEXT: ldr x9, [sp, #24] // 8-byte Folded Reload -; LSE-NEXT: ldr x11, [sp, #16] // 8-byte Folded Reload +; LSE-NEXT: ldr x9, [sp, #24] // 8-byte Reload +; LSE-NEXT: ldr x11, [sp, #16] // 8-byte Reload ; LSE-NEXT: mov w8, w9 ; LSE-NEXT: mvn w10, w8 ; LSE-NEXT: // implicit-def: $x8 @@ -554,12 +554,12 @@ define i64 @test_rmw_nand_64(ptr %dst) { ; LSE-NEXT: mov x8, x9 ; LSE-NEXT: casal x8, x10, [x11] ; LSE-NEXT: subs x9, x8, x9 -; LSE-NEXT: str x8, [sp, #8] // 8-byte Folded Spill -; LSE-NEXT: str x8, [sp, #24] // 8-byte Folded Spill +; LSE-NEXT: str x8, [sp, #8] // 8-byte Spill +; LSE-NEXT: str x8, [sp, #24] // 8-byte Spill ; LSE-NEXT: b.ne .LBB8_1 ; LSE-NEXT: b .LBB8_2 ; LSE-NEXT: .LBB8_2: // %atomicrmw.end -; LSE-NEXT: ldr x0, [sp, #8] // 8-byte Folded Reload +; LSE-NEXT: ldr x0, [sp, #8] // 8-byte Reload ; LSE-NEXT: add sp, sp, #32 ; LSE-NEXT: ret entry: @@ -572,18 +572,18 @@ define i128 @test_rmw_nand_128(ptr %dst) { ; NOLSE: // %bb.0: // %entry ; NOLSE-NEXT: sub sp, sp, #48 ; NOLSE-NEXT: .cfi_def_cfa_offset 48 -; NOLSE-NEXT: str x0, [sp, #24] // 8-byte Folded Spill +; NOLSE-NEXT: str x0, [sp, #24] // 8-byte Spill ; NOLSE-NEXT: ldr x8, [x0, #8] ; NOLSE-NEXT: ldr x9, [x0] -; NOLSE-NEXT: str x9, [sp, #32] // 8-byte Folded Spill -; NOLSE-NEXT: str x8, [sp, #40] // 8-byte Folded Spill +; NOLSE-NEXT: str x9, [sp, #32] // 8-byte Spill +; NOLSE-NEXT: str x8, [sp, #40] // 8-byte Spill ; NOLSE-NEXT: b .LBB9_1 ; NOLSE-NEXT: .LBB9_1: // %atomicrmw.start ; NOLSE-NEXT: // =>This Loop Header: Depth=1 ; NOLSE-NEXT: // Child Loop BB9_2 Depth 2 -; NOLSE-NEXT: ldr x13, [sp, #40] // 8-byte Folded Reload -; NOLSE-NEXT: ldr x11, [sp, #32] // 8-byte Folded Reload -; NOLSE-NEXT: ldr x9, [sp, #24] // 8-byte Folded Reload +; NOLSE-NEXT: ldr x13, [sp, #40] // 8-byte Reload +; NOLSE-NEXT: ldr x11, [sp, #32] // 8-byte Reload +; NOLSE-NEXT: ldr x9, [sp, #24] // 8-byte Reload ; NOLSE-NEXT: mov w8, w11 ; NOLSE-NEXT: mvn w10, w8 ; NOLSE-NEXT: // implicit-def: $x8 @@ -611,18 +611,18 @@ define i128 @test_rmw_nand_128(ptr %dst) { ; NOLSE-NEXT: .LBB9_5: // %atomicrmw.start ; NOLSE-NEXT: // in Loop: Header=BB9_1 Depth=1 ; NOLSE-NEXT: mov x8, x12 -; NOLSE-NEXT: str x8, [sp, #8] // 8-byte Folded Spill +; NOLSE-NEXT: str x8, [sp, #8] // 8-byte Spill ; NOLSE-NEXT: mov x9, x10 -; NOLSE-NEXT: str x9, [sp, #16] // 8-byte Folded Spill +; NOLSE-NEXT: str x9, [sp, #16] // 8-byte Spill ; NOLSE-NEXT: subs x12, x12, x13 ; NOLSE-NEXT: ccmp x10, x11, #0, eq -; NOLSE-NEXT: str x9, [sp, #32] // 8-byte Folded Spill -; NOLSE-NEXT: str x8, [sp, #40] // 8-byte Folded Spill +; NOLSE-NEXT: str x9, [sp, #32] // 8-byte Spill +; NOLSE-NEXT: str x8, [sp, #40] // 8-byte Spill ; NOLSE-NEXT: b.ne .LBB9_1 ; NOLSE-NEXT: b .LBB9_6 ; NOLSE-NEXT: .LBB9_6: // %atomicrmw.end -; NOLSE-NEXT: ldr x1, [sp, #8] // 8-byte Folded Reload -; NOLSE-NEXT: ldr x0, [sp, #16] // 8-byte Folded Reload +; NOLSE-NEXT: ldr x1, [sp, #8] // 8-byte Reload +; NOLSE-NEXT: ldr x0, [sp, #16] // 8-byte Reload ; NOLSE-NEXT: add sp, sp, #48 ; NOLSE-NEXT: ret ; @@ -630,17 +630,17 @@ define i128 @test_rmw_nand_128(ptr %dst) { ; LSE: // %bb.0: // %entry ; LSE-NEXT: sub sp, sp, #48 ; LSE-NEXT: .cfi_def_cfa_offset 48 -; LSE-NEXT: str x0, [sp, #24] // 8-byte Folded Spill +; LSE-NEXT: str x0, [sp, #24] // 8-byte Spill ; LSE-NEXT: ldr x8, [x0, #8] ; LSE-NEXT: ldr x9, [x0] -; LSE-NEXT: str x9, [sp, #32] // 8-byte Folded Spill -; LSE-NEXT: str x8, [sp, #40] // 8-byte Folded Spill +; LSE-NEXT: str x9, [sp, #32] // 8-byte Spill +; LSE-NEXT: str x8, [sp, #40] // 8-byte Spill ; LSE-NEXT: b .LBB9_1 ; LSE-NEXT: .LBB9_1: // %atomicrmw.start ; LSE-NEXT: // =>This Inner Loop Header: Depth=1 -; LSE-NEXT: ldr x11, [sp, #40] // 8-byte Folded Reload -; LSE-NEXT: ldr x10, [sp, #32] // 8-byte Folded Reload -; LSE-NEXT: ldr x8, [sp, #24] // 8-byte Folded Reload +; LSE-NEXT: ldr x11, [sp, #40] // 8-byte Reload +; LSE-NEXT: ldr x10, [sp, #32] // 8-byte Reload +; LSE-NEXT: ldr x8, [sp, #24] // 8-byte Reload ; LSE-NEXT: mov x0, x10 ; LSE-NEXT: mov x1, x11 ; LSE-NEXT: mov w9, w10 @@ -653,18 +653,18 @@ define i128 @test_rmw_nand_128(ptr %dst) { ; LSE-NEXT: mov x3, x9 ; LSE-NEXT: caspal x0, x1, x2, x3, [x8] ; LSE-NEXT: mov x9, x0 -; LSE-NEXT: str x9, [sp, #8] // 8-byte Folded Spill +; LSE-NEXT: str x9, [sp, #8] // 8-byte Spill ; LSE-NEXT: mov x8, x1 -; LSE-NEXT: str x8, [sp, #16] // 8-byte Folded Spill +; LSE-NEXT: str x8, [sp, #16] // 8-byte Spill ; LSE-NEXT: subs x11, x8, x11 ; LSE-NEXT: ccmp x9, x10, #0, eq -; LSE-NEXT: str x9, [sp, #32] // 8-byte Folded Spill -; LSE-NEXT: str x8, [sp, #40] // 8-byte Folded Spill +; LSE-NEXT: str x9, [sp, #32] // 8-byte Spill +; LSE-NEXT: str x8, [sp, #40] // 8-byte Spill ; LSE-NEXT: b.ne .LBB9_1 ; LSE-NEXT: b .LBB9_2 ; LSE-NEXT: .LBB9_2: // %atomicrmw.end -; LSE-NEXT: ldr x1, [sp, #16] // 8-byte Folded Reload -; LSE-NEXT: ldr x0, [sp, #8] // 8-byte Folded Reload +; LSE-NEXT: ldr x1, [sp, #16] // 8-byte Reload +; LSE-NEXT: ldr x0, [sp, #8] // 8-byte Reload ; LSE-NEXT: add sp, sp, #48 ; LSE-NEXT: ret entry: diff --git a/llvm/test/CodeGen/AArch64/atomicrmw-fadd.ll b/llvm/test/CodeGen/AArch64/atomicrmw-fadd.ll index 24a6c3c440e18..c06215204cd76 100644 --- a/llvm/test/CodeGen/AArch64/atomicrmw-fadd.ll +++ b/llvm/test/CodeGen/AArch64/atomicrmw-fadd.ll @@ -521,7 +521,7 @@ define fp128 @test_atomicrmw_fadd_fp128_seq_cst_align16(ptr %ptr, fp128 %value) ; NOLSE-NEXT: ldr q1, [x0] ; NOLSE-NEXT: stp x30, x19, [sp, #80] // 16-byte Folded Spill ; NOLSE-NEXT: mov x19, x0 -; NOLSE-NEXT: str q0, [sp] // 16-byte Folded Spill +; NOLSE-NEXT: str q0, [sp] // 16-byte Spill ; NOLSE-NEXT: b .LBB6_2 ; NOLSE-NEXT: .LBB6_1: // %atomicrmw.start ; NOLSE-NEXT: // in Loop: Header=BB6_2 Depth=1 @@ -534,11 +534,11 @@ define fp128 @test_atomicrmw_fadd_fp128_seq_cst_align16(ptr %ptr, fp128 %value) ; NOLSE-NEXT: // =>This Loop Header: Depth=1 ; NOLSE-NEXT: // Child Loop BB6_3 Depth 2 ; NOLSE-NEXT: mov v0.16b, v1.16b -; NOLSE-NEXT: str q1, [sp, #16] // 16-byte Folded Spill -; NOLSE-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; NOLSE-NEXT: str q1, [sp, #16] // 16-byte Spill +; NOLSE-NEXT: ldr q1, [sp] // 16-byte Reload ; NOLSE-NEXT: bl __addtf3 ; NOLSE-NEXT: str q0, [sp, #48] -; NOLSE-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; NOLSE-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; NOLSE-NEXT: ldp x9, x8, [sp, #48] ; NOLSE-NEXT: str q0, [sp, #64] ; NOLSE-NEXT: ldp x11, x10, [sp, #64] @@ -573,15 +573,15 @@ define fp128 @test_atomicrmw_fadd_fp128_seq_cst_align16(ptr %ptr, fp128 %value) ; LSE-NEXT: ldr q1, [x0] ; LSE-NEXT: stp x30, x19, [sp, #80] // 16-byte Folded Spill ; LSE-NEXT: mov x19, x0 -; LSE-NEXT: str q0, [sp] // 16-byte Folded Spill +; LSE-NEXT: str q0, [sp] // 16-byte Spill ; LSE-NEXT: .LBB6_1: // %atomicrmw.start ; LSE-NEXT: // =>This Inner Loop Header: Depth=1 ; LSE-NEXT: mov v0.16b, v1.16b -; LSE-NEXT: str q1, [sp, #16] // 16-byte Folded Spill -; LSE-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; LSE-NEXT: str q1, [sp, #16] // 16-byte Spill +; LSE-NEXT: ldr q1, [sp] // 16-byte Reload ; LSE-NEXT: bl __addtf3 ; LSE-NEXT: str q0, [sp, #48] -; LSE-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; LSE-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; LSE-NEXT: ldp x0, x1, [sp, #48] ; LSE-NEXT: str q0, [sp, #64] ; LSE-NEXT: ldp x2, x3, [sp, #64] diff --git a/llvm/test/CodeGen/AArch64/atomicrmw-fsub.ll b/llvm/test/CodeGen/AArch64/atomicrmw-fsub.ll index 6bb541684c2bd..c73909603abb1 100644 --- a/llvm/test/CodeGen/AArch64/atomicrmw-fsub.ll +++ b/llvm/test/CodeGen/AArch64/atomicrmw-fsub.ll @@ -521,7 +521,7 @@ define fp128 @test_atomicrmw_fsub_fp128_seq_cst_align16(ptr %ptr, fp128 %value) ; NOLSE-NEXT: ldr q1, [x0] ; NOLSE-NEXT: stp x30, x19, [sp, #80] // 16-byte Folded Spill ; NOLSE-NEXT: mov x19, x0 -; NOLSE-NEXT: str q0, [sp] // 16-byte Folded Spill +; NOLSE-NEXT: str q0, [sp] // 16-byte Spill ; NOLSE-NEXT: b .LBB6_2 ; NOLSE-NEXT: .LBB6_1: // %atomicrmw.start ; NOLSE-NEXT: // in Loop: Header=BB6_2 Depth=1 @@ -534,11 +534,11 @@ define fp128 @test_atomicrmw_fsub_fp128_seq_cst_align16(ptr %ptr, fp128 %value) ; NOLSE-NEXT: // =>This Loop Header: Depth=1 ; NOLSE-NEXT: // Child Loop BB6_3 Depth 2 ; NOLSE-NEXT: mov v0.16b, v1.16b -; NOLSE-NEXT: str q1, [sp, #16] // 16-byte Folded Spill -; NOLSE-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; NOLSE-NEXT: str q1, [sp, #16] // 16-byte Spill +; NOLSE-NEXT: ldr q1, [sp] // 16-byte Reload ; NOLSE-NEXT: bl __subtf3 ; NOLSE-NEXT: str q0, [sp, #48] -; NOLSE-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; NOLSE-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; NOLSE-NEXT: ldp x9, x8, [sp, #48] ; NOLSE-NEXT: str q0, [sp, #64] ; NOLSE-NEXT: ldp x11, x10, [sp, #64] @@ -573,15 +573,15 @@ define fp128 @test_atomicrmw_fsub_fp128_seq_cst_align16(ptr %ptr, fp128 %value) ; LSE-NEXT: ldr q1, [x0] ; LSE-NEXT: stp x30, x19, [sp, #80] // 16-byte Folded Spill ; LSE-NEXT: mov x19, x0 -; LSE-NEXT: str q0, [sp] // 16-byte Folded Spill +; LSE-NEXT: str q0, [sp] // 16-byte Spill ; LSE-NEXT: .LBB6_1: // %atomicrmw.start ; LSE-NEXT: // =>This Inner Loop Header: Depth=1 ; LSE-NEXT: mov v0.16b, v1.16b -; LSE-NEXT: str q1, [sp, #16] // 16-byte Folded Spill -; LSE-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; LSE-NEXT: str q1, [sp, #16] // 16-byte Spill +; LSE-NEXT: ldr q1, [sp] // 16-byte Reload ; LSE-NEXT: bl __subtf3 ; LSE-NEXT: str q0, [sp, #48] -; LSE-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; LSE-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; LSE-NEXT: ldp x0, x1, [sp, #48] ; LSE-NEXT: str q0, [sp, #64] ; LSE-NEXT: ldp x2, x3, [sp, #64] diff --git a/llvm/test/CodeGen/AArch64/cmp-select-sign.ll b/llvm/test/CodeGen/AArch64/cmp-select-sign.ll index c2bb032eed78e..59f6db6bf67a9 100644 --- a/llvm/test/CodeGen/AArch64/cmp-select-sign.ll +++ b/llvm/test/CodeGen/AArch64/cmp-select-sign.ll @@ -173,17 +173,17 @@ define <4 x i32> @sign_4xi32_multi_use(<4 x i32> %a) { ; CHECK-LABEL: sign_4xi32_multi_use: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #32 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: cmlt v1.4s, v0.4s, #0 ; CHECK-NEXT: cmge v0.4s, v0.4s, #0 ; CHECK-NEXT: xtn v0.4h, v0.4s ; CHECK-NEXT: orr v1.4s, #1 -; CHECK-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-NEXT: bl use_4xi1 -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: ret %c = icmp sgt <4 x i32> %a, diff --git a/llvm/test/CodeGen/AArch64/combine-storetomstore.ll b/llvm/test/CodeGen/AArch64/combine-storetomstore.ll index aaa6ba36561df..1e4a695d1f4e8 100644 --- a/llvm/test/CodeGen/AArch64/combine-storetomstore.ll +++ b/llvm/test/CodeGen/AArch64/combine-storetomstore.ll @@ -866,7 +866,7 @@ define void @test_masked_store_intervening(<8 x i32> %x, ptr %ptr, <8 x i1> %mas ; SVE-NEXT: stp q1, q0, [sp, #32] // 32-byte Folded Spill ; SVE-NEXT: ldp q1, q3, [x0] ; SVE-NEXT: movi v0.2d, #0000000000000000 -; SVE-NEXT: str d8, [sp, #64] // 8-byte Folded Spill +; SVE-NEXT: str d8, [sp, #64] // 8-byte Spill ; SVE-NEXT: fmov d8, d2 ; SVE-NEXT: stp x30, x19, [sp, #80] // 16-byte Folded Spill ; SVE-NEXT: mov x19, x0 @@ -878,14 +878,14 @@ define void @test_masked_store_intervening(<8 x i32> %x, ptr %ptr, <8 x i1> %mas ; SVE-NEXT: ldp q3, q2, [sp, #16] // 32-byte Folded Reload ; SVE-NEXT: zip1 v1.8b, v8.8b, v0.8b ; SVE-NEXT: ushll v0.4s, v0.4h, #0 -; SVE-NEXT: ldr d8, [sp, #64] // 8-byte Folded Reload +; SVE-NEXT: ldr d8, [sp, #64] // 8-byte Reload ; SVE-NEXT: shl v0.4s, v0.4s, #31 ; SVE-NEXT: ushll v1.4s, v1.4h, #0 ; SVE-NEXT: cmlt v0.4s, v0.4s, #0 ; SVE-NEXT: shl v1.4s, v1.4s, #31 ; SVE-NEXT: bsl v0.16b, v2.16b, v3.16b -; SVE-NEXT: ldr q2, [sp, #48] // 16-byte Folded Reload -; SVE-NEXT: ldr q3, [sp] // 16-byte Folded Reload +; SVE-NEXT: ldr q2, [sp, #48] // 16-byte Reload +; SVE-NEXT: ldr q3, [sp] // 16-byte Reload ; SVE-NEXT: cmlt v1.4s, v1.4s, #0 ; SVE-NEXT: bsl v1.16b, v2.16b, v3.16b ; SVE-NEXT: stp q1, q0, [x19] diff --git a/llvm/test/CodeGen/AArch64/exception-handling-windows-elf.ll b/llvm/test/CodeGen/AArch64/exception-handling-windows-elf.ll index f38bb8613b7b0..1f1ce4da0f618 100644 --- a/llvm/test/CodeGen/AArch64/exception-handling-windows-elf.ll +++ b/llvm/test/CodeGen/AArch64/exception-handling-windows-elf.ll @@ -13,14 +13,14 @@ define void @bar() personality ptr @__gxx_personality_v0 { ; CHECK-LABEL: bar: ; CHECK: // %bb.0: // %continue ; CHECK-NEXT: sub sp, sp, #32 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: adrp x8, :got:foo ; CHECK-NEXT: mov w0, #42 // =0x2a ; CHECK-NEXT: ldr x8, [x8, :got_lo12:foo] ; CHECK-NEXT: blr x8 -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: ret %exn.slot = alloca ptr diff --git a/llvm/test/CodeGen/AArch64/fadd-combines.ll b/llvm/test/CodeGen/AArch64/fadd-combines.ll index 76d29a50416e3..198b0d58d5ba0 100644 --- a/llvm/test/CodeGen/AArch64/fadd-combines.ll +++ b/llvm/test/CodeGen/AArch64/fadd-combines.ll @@ -185,12 +185,12 @@ define double @test7(double %a, double %b) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: str d8, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: fmov d2, #-2.00000000 -; CHECK-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-NEXT: fmul d1, d1, d2 ; CHECK-NEXT: fadd d8, d0, d1 ; CHECK-NEXT: fmov d0, d1 ; CHECK-NEXT: bl use -; CHECK-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-NEXT: fmov d0, d8 ; CHECK-NEXT: ldr d8, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret diff --git a/llvm/test/CodeGen/AArch64/fcmp-fp128.ll b/llvm/test/CodeGen/AArch64/fcmp-fp128.ll index a2b4b61864741..baaa615f8ec23 100644 --- a/llvm/test/CodeGen/AArch64/fcmp-fp128.ll +++ b/llvm/test/CodeGen/AArch64/fcmp-fp128.ll @@ -8,7 +8,7 @@ define double @oeq(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-SD-LABEL: oeq: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: stp d9, d8, [sp, #-32]! // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 32 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: .cfi_offset b8, -24 @@ -17,7 +17,7 @@ define double @oeq(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-SD-NEXT: fmov d9, d2 ; CHECK-SD-NEXT: bl __eqtf2 ; CHECK-SD-NEXT: cmp w0, #0 -; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-SD-NEXT: fcsel d0, d9, d8, eq ; CHECK-SD-NEXT: ldp d9, d8, [sp], #32 // 16-byte Folded Reload ; CHECK-SD-NEXT: ret @@ -25,7 +25,7 @@ define double @oeq(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-GI-LABEL: oeq: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: stp d9, d8, [sp, #-32]! // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -34,7 +34,7 @@ define double @oeq(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-GI-NEXT: fmov d9, d3 ; CHECK-GI-NEXT: bl __eqtf2 ; CHECK-GI-NEXT: cmp w0, #0 -; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: fcsel d0, d8, d9, eq ; CHECK-GI-NEXT: ldp d9, d8, [sp], #32 // 16-byte Folded Reload ; CHECK-GI-NEXT: ret @@ -48,7 +48,7 @@ define double @ogt(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-SD-LABEL: ogt: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: stp d9, d8, [sp, #-32]! // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 32 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: .cfi_offset b8, -24 @@ -57,7 +57,7 @@ define double @ogt(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-SD-NEXT: fmov d9, d2 ; CHECK-SD-NEXT: bl __gttf2 ; CHECK-SD-NEXT: cmp w0, #0 -; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-SD-NEXT: fcsel d0, d9, d8, gt ; CHECK-SD-NEXT: ldp d9, d8, [sp], #32 // 16-byte Folded Reload ; CHECK-SD-NEXT: ret @@ -65,7 +65,7 @@ define double @ogt(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-GI-LABEL: ogt: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: stp d9, d8, [sp, #-32]! // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -74,7 +74,7 @@ define double @ogt(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-GI-NEXT: fmov d9, d3 ; CHECK-GI-NEXT: bl __gttf2 ; CHECK-GI-NEXT: cmp w0, #0 -; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: fcsel d0, d8, d9, gt ; CHECK-GI-NEXT: ldp d9, d8, [sp], #32 // 16-byte Folded Reload ; CHECK-GI-NEXT: ret @@ -88,7 +88,7 @@ define double @olt(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-SD-LABEL: olt: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: stp d9, d8, [sp, #-32]! // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 32 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: .cfi_offset b8, -24 @@ -97,7 +97,7 @@ define double @olt(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-SD-NEXT: fmov d9, d2 ; CHECK-SD-NEXT: bl __lttf2 ; CHECK-SD-NEXT: cmp w0, #0 -; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-SD-NEXT: fcsel d0, d9, d8, mi ; CHECK-SD-NEXT: ldp d9, d8, [sp], #32 // 16-byte Folded Reload ; CHECK-SD-NEXT: ret @@ -105,7 +105,7 @@ define double @olt(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-GI-LABEL: olt: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: stp d9, d8, [sp, #-32]! // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -114,7 +114,7 @@ define double @olt(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-GI-NEXT: fmov d9, d3 ; CHECK-GI-NEXT: bl __lttf2 ; CHECK-GI-NEXT: cmp w0, #0 -; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: fcsel d0, d8, d9, mi ; CHECK-GI-NEXT: ldp d9, d8, [sp], #32 // 16-byte Folded Reload ; CHECK-GI-NEXT: ret @@ -128,7 +128,7 @@ define double @ole(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-SD-LABEL: ole: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: stp d9, d8, [sp, #-32]! // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 32 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: .cfi_offset b8, -24 @@ -137,7 +137,7 @@ define double @ole(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-SD-NEXT: fmov d9, d2 ; CHECK-SD-NEXT: bl __letf2 ; CHECK-SD-NEXT: cmp w0, #0 -; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-SD-NEXT: fcsel d0, d9, d8, le ; CHECK-SD-NEXT: ldp d9, d8, [sp], #32 // 16-byte Folded Reload ; CHECK-SD-NEXT: ret @@ -145,7 +145,7 @@ define double @ole(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-GI-LABEL: ole: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: stp d9, d8, [sp, #-32]! // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -154,7 +154,7 @@ define double @ole(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-GI-NEXT: fmov d9, d3 ; CHECK-GI-NEXT: bl __letf2 ; CHECK-GI-NEXT: cmp w0, #0 -; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: fcsel d0, d8, d9, le ; CHECK-GI-NEXT: ldp d9, d8, [sp], #32 // 16-byte Folded Reload ; CHECK-GI-NEXT: ret @@ -226,7 +226,7 @@ define double @ord(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-SD-LABEL: ord: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: stp d9, d8, [sp, #-32]! // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 32 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: .cfi_offset b8, -24 @@ -235,7 +235,7 @@ define double @ord(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-SD-NEXT: fmov d9, d2 ; CHECK-SD-NEXT: bl __unordtf2 ; CHECK-SD-NEXT: cmp w0, #0 -; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-SD-NEXT: fcsel d0, d9, d8, eq ; CHECK-SD-NEXT: ldp d9, d8, [sp], #32 // 16-byte Folded Reload ; CHECK-SD-NEXT: ret @@ -243,7 +243,7 @@ define double @ord(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-GI-LABEL: ord: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: stp d9, d8, [sp, #-32]! // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -252,7 +252,7 @@ define double @ord(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-GI-NEXT: fmov d9, d3 ; CHECK-GI-NEXT: bl __unordtf2 ; CHECK-GI-NEXT: cmp w0, #0 -; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: fcsel d0, d8, d9, eq ; CHECK-GI-NEXT: ldp d9, d8, [sp], #32 // 16-byte Folded Reload ; CHECK-GI-NEXT: ret @@ -266,7 +266,7 @@ define double @uno(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-SD-LABEL: uno: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: stp d9, d8, [sp, #-32]! // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 32 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: .cfi_offset b8, -24 @@ -275,7 +275,7 @@ define double @uno(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-SD-NEXT: fmov d9, d2 ; CHECK-SD-NEXT: bl __unordtf2 ; CHECK-SD-NEXT: cmp w0, #0 -; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-SD-NEXT: fcsel d0, d9, d8, ne ; CHECK-SD-NEXT: ldp d9, d8, [sp], #32 // 16-byte Folded Reload ; CHECK-SD-NEXT: ret @@ -283,7 +283,7 @@ define double @uno(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-GI-LABEL: uno: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: stp d9, d8, [sp, #-32]! // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -292,7 +292,7 @@ define double @uno(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-GI-NEXT: fmov d9, d3 ; CHECK-GI-NEXT: bl __unordtf2 ; CHECK-GI-NEXT: cmp w0, #0 -; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: fcsel d0, d8, d9, ne ; CHECK-GI-NEXT: ldp d9, d8, [sp], #32 // 16-byte Folded Reload ; CHECK-GI-NEXT: ret @@ -362,7 +362,7 @@ define double @ugt(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-SD-LABEL: ugt: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: stp d9, d8, [sp, #-32]! // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 32 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: .cfi_offset b8, -24 @@ -371,7 +371,7 @@ define double @ugt(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-SD-NEXT: fmov d9, d2 ; CHECK-SD-NEXT: bl __letf2 ; CHECK-SD-NEXT: cmp w0, #0 -; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-SD-NEXT: fcsel d0, d9, d8, gt ; CHECK-SD-NEXT: ldp d9, d8, [sp], #32 // 16-byte Folded Reload ; CHECK-SD-NEXT: ret @@ -379,7 +379,7 @@ define double @ugt(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-GI-LABEL: ugt: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: stp d9, d8, [sp, #-32]! // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -388,7 +388,7 @@ define double @ugt(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-GI-NEXT: fmov d9, d3 ; CHECK-GI-NEXT: bl __letf2 ; CHECK-GI-NEXT: cmp w0, #0 -; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: fcsel d0, d8, d9, gt ; CHECK-GI-NEXT: ldp d9, d8, [sp], #32 // 16-byte Folded Reload ; CHECK-GI-NEXT: ret @@ -402,7 +402,7 @@ define double @uge(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-SD-LABEL: uge: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: stp d9, d8, [sp, #-32]! // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 32 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: .cfi_offset b8, -24 @@ -411,7 +411,7 @@ define double @uge(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-SD-NEXT: fmov d9, d2 ; CHECK-SD-NEXT: bl __lttf2 ; CHECK-SD-NEXT: cmp w0, #0 -; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-SD-NEXT: fcsel d0, d9, d8, pl ; CHECK-SD-NEXT: ldp d9, d8, [sp], #32 // 16-byte Folded Reload ; CHECK-SD-NEXT: ret @@ -419,7 +419,7 @@ define double @uge(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-GI-LABEL: uge: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: stp d9, d8, [sp, #-32]! // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -428,7 +428,7 @@ define double @uge(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-GI-NEXT: fmov d9, d3 ; CHECK-GI-NEXT: bl __lttf2 ; CHECK-GI-NEXT: cmp w0, #0 -; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: fcsel d0, d8, d9, pl ; CHECK-GI-NEXT: ldp d9, d8, [sp], #32 // 16-byte Folded Reload ; CHECK-GI-NEXT: ret @@ -442,7 +442,7 @@ define double @ult(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-SD-LABEL: ult: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: stp d9, d8, [sp, #-32]! // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 32 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: .cfi_offset b8, -24 @@ -451,7 +451,7 @@ define double @ult(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-SD-NEXT: fmov d9, d2 ; CHECK-SD-NEXT: bl __getf2 ; CHECK-SD-NEXT: cmp w0, #0 -; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-SD-NEXT: fcsel d0, d9, d8, mi ; CHECK-SD-NEXT: ldp d9, d8, [sp], #32 // 16-byte Folded Reload ; CHECK-SD-NEXT: ret @@ -459,7 +459,7 @@ define double @ult(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-GI-LABEL: ult: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: stp d9, d8, [sp, #-32]! // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -468,7 +468,7 @@ define double @ult(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-GI-NEXT: fmov d9, d3 ; CHECK-GI-NEXT: bl __getf2 ; CHECK-GI-NEXT: cmp w0, #0 -; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: fcsel d0, d8, d9, mi ; CHECK-GI-NEXT: ldp d9, d8, [sp], #32 // 16-byte Folded Reload ; CHECK-GI-NEXT: ret @@ -482,7 +482,7 @@ define double @ule(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-SD-LABEL: ule: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: stp d9, d8, [sp, #-32]! // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 32 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: .cfi_offset b8, -24 @@ -491,7 +491,7 @@ define double @ule(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-SD-NEXT: fmov d9, d2 ; CHECK-SD-NEXT: bl __gttf2 ; CHECK-SD-NEXT: cmp w0, #0 -; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-SD-NEXT: fcsel d0, d9, d8, le ; CHECK-SD-NEXT: ldp d9, d8, [sp], #32 // 16-byte Folded Reload ; CHECK-SD-NEXT: ret @@ -499,7 +499,7 @@ define double @ule(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-GI-LABEL: ule: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: stp d9, d8, [sp, #-32]! // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -508,7 +508,7 @@ define double @ule(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-GI-NEXT: fmov d9, d3 ; CHECK-GI-NEXT: bl __gttf2 ; CHECK-GI-NEXT: cmp w0, #0 -; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: fcsel d0, d8, d9, le ; CHECK-GI-NEXT: ldp d9, d8, [sp], #32 // 16-byte Folded Reload ; CHECK-GI-NEXT: ret @@ -522,7 +522,7 @@ define double @une(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-SD-LABEL: une: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: stp d9, d8, [sp, #-32]! // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 32 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: .cfi_offset b8, -24 @@ -531,7 +531,7 @@ define double @une(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-SD-NEXT: fmov d9, d2 ; CHECK-SD-NEXT: bl __netf2 ; CHECK-SD-NEXT: cmp w0, #0 -; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-SD-NEXT: fcsel d0, d9, d8, ne ; CHECK-SD-NEXT: ldp d9, d8, [sp], #32 // 16-byte Folded Reload ; CHECK-SD-NEXT: ret @@ -539,7 +539,7 @@ define double @une(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-GI-LABEL: une: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: stp d9, d8, [sp, #-32]! // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -548,7 +548,7 @@ define double @une(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-GI-NEXT: fmov d9, d3 ; CHECK-GI-NEXT: bl __netf2 ; CHECK-GI-NEXT: cmp w0, #0 -; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: fcsel d0, d8, d9, ne ; CHECK-GI-NEXT: ldp d9, d8, [sp], #32 // 16-byte Folded Reload ; CHECK-GI-NEXT: ret diff --git a/llvm/test/CodeGen/AArch64/fcmp.ll b/llvm/test/CodeGen/AArch64/fcmp.ll index 30fb82ea5c517..69116476d498d 100644 --- a/llvm/test/CodeGen/AArch64/fcmp.ll +++ b/llvm/test/CodeGen/AArch64/fcmp.ll @@ -8,32 +8,32 @@ define fp128 @f128_fp128(fp128 %a, fp128 %b, fp128 %d, fp128 %e) { ; CHECK-SD-LABEL: f128_fp128: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: stp q2, q3, [sp] // 32-byte Folded Spill ; CHECK-SD-NEXT: bl __lttf2 -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: cmp w0, #0 ; CHECK-SD-NEXT: b.pl .LBB0_2 ; CHECK-SD-NEXT: // %bb.1: // %entry -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: .LBB0_2: // %entry -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: add sp, sp, #48 ; CHECK-SD-NEXT: ret ; ; CHECK-GI-LABEL: f128_fp128: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #48 -; CHECK-GI-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 48 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: stp q3, q2, [sp] // 32-byte Folded Spill ; CHECK-GI-NEXT: bl __lttf2 ; CHECK-GI-NEXT: ldp q3, q2, [sp] // 32-byte Folded Reload ; CHECK-GI-NEXT: cmp w0, #0 -; CHECK-GI-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-GI-NEXT: mov d0, v2.d[1] ; CHECK-GI-NEXT: mov d1, v3.d[1] ; CHECK-GI-NEXT: fcsel d2, d2, d3, mi @@ -54,7 +54,7 @@ define i128 @f128_i128(fp128 %a, fp128 %b, i128 %d, i128 %e) { ; CHECK-SD-LABEL: f128_i128: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #80 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: stp x22, x21, [sp, #48] // 16-byte Folded Spill ; CHECK-SD-NEXT: stp x20, x19, [sp, #64] // 16-byte Folded Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 80 @@ -67,15 +67,15 @@ define i128 @f128_i128(fp128 %a, fp128 %b, i128 %d, i128 %e) { ; CHECK-SD-NEXT: mov x20, x2 ; CHECK-SD-NEXT: mov x21, x1 ; CHECK-SD-NEXT: mov x22, x0 -; CHECK-SD-NEXT: stp q0, q1, [sp] // 32-byte Folded Spill +; CHECK-SD-NEXT: stp q0, q1, [sp] // 32-byte Folded Spill ; CHECK-SD-NEXT: bl __lttf2 -; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload +; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: cmp w0, #0 ; CHECK-SD-NEXT: csel x20, x22, x20, mi ; CHECK-SD-NEXT: bl __lttf2 ; CHECK-SD-NEXT: mov w8, w0 ; CHECK-SD-NEXT: mov x0, x20 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: cmp w8, #0 ; CHECK-SD-NEXT: csel x1, x21, x19, mi ; CHECK-SD-NEXT: ldp x20, x19, [sp, #64] // 16-byte Folded Reload @@ -116,7 +116,7 @@ define double @f128_double(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-SD-LABEL: f128_double: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: stp d9, d8, [sp, #-32]! // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 32 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: .cfi_offset b8, -24 @@ -125,7 +125,7 @@ define double @f128_double(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-SD-NEXT: fmov d9, d2 ; CHECK-SD-NEXT: bl __lttf2 ; CHECK-SD-NEXT: cmp w0, #0 -; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-SD-NEXT: fcsel d0, d9, d8, mi ; CHECK-SD-NEXT: ldp d9, d8, [sp], #32 // 16-byte Folded Reload ; CHECK-SD-NEXT: ret @@ -133,7 +133,7 @@ define double @f128_double(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-GI-LABEL: f128_double: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: stp d9, d8, [sp, #-32]! // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -142,7 +142,7 @@ define double @f128_double(fp128 %a, fp128 %b, double %d, double %e) { ; CHECK-GI-NEXT: fmov d9, d3 ; CHECK-GI-NEXT: bl __lttf2 ; CHECK-GI-NEXT: cmp w0, #0 -; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: fcsel d0, d8, d9, mi ; CHECK-GI-NEXT: ldp d9, d8, [sp], #32 // 16-byte Folded Reload ; CHECK-GI-NEXT: ret @@ -156,7 +156,7 @@ define float @f128_float(fp128 %a, fp128 %b, float %d, float %e) { ; CHECK-SD-LABEL: f128_float: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: stp d9, d8, [sp, #-32]! // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 32 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: .cfi_offset b8, -24 @@ -165,7 +165,7 @@ define float @f128_float(fp128 %a, fp128 %b, float %d, float %e) { ; CHECK-SD-NEXT: fmov s9, s2 ; CHECK-SD-NEXT: bl __lttf2 ; CHECK-SD-NEXT: cmp w0, #0 -; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-SD-NEXT: fcsel s0, s9, s8, mi ; CHECK-SD-NEXT: ldp d9, d8, [sp], #32 // 16-byte Folded Reload ; CHECK-SD-NEXT: ret @@ -173,7 +173,7 @@ define float @f128_float(fp128 %a, fp128 %b, float %d, float %e) { ; CHECK-GI-LABEL: f128_float: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: stp d9, d8, [sp, #-32]! // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -182,7 +182,7 @@ define float @f128_float(fp128 %a, fp128 %b, float %d, float %e) { ; CHECK-GI-NEXT: fmov s9, s3 ; CHECK-GI-NEXT: bl __lttf2 ; CHECK-GI-NEXT: cmp w0, #0 -; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: fcsel s0, s8, s9, mi ; CHECK-GI-NEXT: ldp d9, d8, [sp], #32 // 16-byte Folded Reload ; CHECK-GI-NEXT: ret @@ -236,7 +236,7 @@ define half @f128_half(fp128 %a, fp128 %b, half %d, half %e) { ; CHECK-SD-NOFP16-LABEL: f128_half: ; CHECK-SD-NOFP16: // %bb.0: // %entry ; CHECK-SD-NOFP16-NEXT: stp d9, d8, [sp, #-32]! // 16-byte Folded Spill -; CHECK-SD-NOFP16-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-SD-NOFP16-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-SD-NOFP16-NEXT: .cfi_def_cfa_offset 32 ; CHECK-SD-NOFP16-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NOFP16-NEXT: .cfi_offset b8, -24 @@ -245,7 +245,7 @@ define half @f128_half(fp128 %a, fp128 %b, half %d, half %e) { ; CHECK-SD-NOFP16-NEXT: fmov s9, s2 ; CHECK-SD-NOFP16-NEXT: bl __lttf2 ; CHECK-SD-NOFP16-NEXT: cmp w0, #0 -; CHECK-SD-NOFP16-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-SD-NOFP16-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-SD-NOFP16-NEXT: fcsel s0, s9, s8, mi ; CHECK-SD-NOFP16-NEXT: // kill: def $h0 killed $h0 killed $s0 ; CHECK-SD-NOFP16-NEXT: ldp d9, d8, [sp], #32 // 16-byte Folded Reload @@ -254,7 +254,7 @@ define half @f128_half(fp128 %a, fp128 %b, half %d, half %e) { ; CHECK-SD-FP16-LABEL: f128_half: ; CHECK-SD-FP16: // %bb.0: // %entry ; CHECK-SD-FP16-NEXT: stp d9, d8, [sp, #-32]! // 16-byte Folded Spill -; CHECK-SD-FP16-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-SD-FP16-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-SD-FP16-NEXT: .cfi_def_cfa_offset 32 ; CHECK-SD-FP16-NEXT: .cfi_offset w30, -16 ; CHECK-SD-FP16-NEXT: .cfi_offset b8, -24 @@ -263,7 +263,7 @@ define half @f128_half(fp128 %a, fp128 %b, half %d, half %e) { ; CHECK-SD-FP16-NEXT: fmov s9, s2 ; CHECK-SD-FP16-NEXT: bl __lttf2 ; CHECK-SD-FP16-NEXT: cmp w0, #0 -; CHECK-SD-FP16-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-SD-FP16-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-SD-FP16-NEXT: fcsel h0, h9, h8, mi ; CHECK-SD-FP16-NEXT: ldp d9, d8, [sp], #32 // 16-byte Folded Reload ; CHECK-SD-FP16-NEXT: ret @@ -271,7 +271,7 @@ define half @f128_half(fp128 %a, fp128 %b, half %d, half %e) { ; CHECK-GI-LABEL: f128_half: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: stp d9, d8, [sp, #-32]! // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -282,7 +282,7 @@ define half @f128_half(fp128 %a, fp128 %b, half %d, half %e) { ; CHECK-GI-NEXT: fmov w8, s8 ; CHECK-GI-NEXT: fmov w9, s9 ; CHECK-GI-NEXT: cmp w0, #0 -; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: csel w8, w8, w9, mi ; CHECK-GI-NEXT: fmov s0, w8 ; CHECK-GI-NEXT: // kill: def $h0 killed $h0 killed $s0 @@ -429,7 +429,7 @@ define <2 x fp128> @v2f128_fp128(<2 x fp128> %a, <2 x fp128> %b, <2 x fp128> %d, ; CHECK-SD-LABEL: v2f128_fp128: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #112 -; CHECK-SD-NEXT: str x30, [sp, #96] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #96] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 112 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: stp q4, q5, [sp] // 32-byte Folded Spill @@ -440,19 +440,19 @@ define <2 x fp128> @v2f128_fp128(<2 x fp128> %a, <2 x fp128> %b, <2 x fp128> %d, ; CHECK-SD-NEXT: cmp w0, #0 ; CHECK-SD-NEXT: b.pl .LBB12_2 ; CHECK-SD-NEXT: // %bb.1: // %entry -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: str q0, [sp, #80] // 16-byte Folded Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-SD-NEXT: str q0, [sp, #80] // 16-byte Spill ; CHECK-SD-NEXT: .LBB12_2: // %entry ; CHECK-SD-NEXT: ldp q0, q1, [sp, #32] // 32-byte Folded Reload ; CHECK-SD-NEXT: bl __lttf2 -; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-SD-NEXT: cmp w0, #0 ; CHECK-SD-NEXT: b.pl .LBB12_4 ; CHECK-SD-NEXT: // %bb.3: // %entry -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: .LBB12_4: // %entry -; CHECK-SD-NEXT: ldr q0, [sp, #80] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #96] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #80] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #96] // 8-byte Reload ; CHECK-SD-NEXT: add sp, sp, #112 ; CHECK-SD-NEXT: ret ; @@ -504,7 +504,7 @@ define <3 x fp128> @v3f128_fp128(<3 x fp128> %a, <3 x fp128> %b, <3 x fp128> %d, ; CHECK-SD-LABEL: v3f128_fp128: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #112 -; CHECK-SD-NEXT: str x30, [sp, #96] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #96] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 112 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: stp q1, q4, [sp] // 32-byte Folded Spill @@ -516,7 +516,7 @@ define <3 x fp128> @v3f128_fp128(<3 x fp128> %a, <3 x fp128> %b, <3 x fp128> %d, ; CHECK-SD-NEXT: b.mi .LBB13_2 ; CHECK-SD-NEXT: // %bb.1: ; CHECK-SD-NEXT: ldr q0, [sp, #128] -; CHECK-SD-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-SD-NEXT: .LBB13_2: // %entry ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: bl __lttf2 @@ -524,7 +524,7 @@ define <3 x fp128> @v3f128_fp128(<3 x fp128> %a, <3 x fp128> %b, <3 x fp128> %d, ; CHECK-SD-NEXT: b.mi .LBB13_4 ; CHECK-SD-NEXT: // %bb.3: ; CHECK-SD-NEXT: ldr q0, [sp, #144] -; CHECK-SD-NEXT: str q0, [sp, #80] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #80] // 16-byte Spill ; CHECK-SD-NEXT: .LBB13_4: // %entry ; CHECK-SD-NEXT: ldp q0, q1, [sp, #32] // 32-byte Folded Reload ; CHECK-SD-NEXT: bl __lttf2 @@ -534,14 +534,14 @@ define <3 x fp128> @v3f128_fp128(<3 x fp128> %a, <3 x fp128> %b, <3 x fp128> %d, ; CHECK-SD-NEXT: csel x8, x9, x8, mi ; CHECK-SD-NEXT: ldp q0, q1, [sp, #64] // 32-byte Folded Reload ; CHECK-SD-NEXT: ldr q2, [x8] -; CHECK-SD-NEXT: ldr x30, [sp, #96] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #96] // 8-byte Reload ; CHECK-SD-NEXT: add sp, sp, #112 ; CHECK-SD-NEXT: ret ; ; CHECK-GI-LABEL: v3f128_fp128: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #192 -; CHECK-GI-NEXT: str x30, [sp, #160] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #160] // 8-byte Spill ; CHECK-GI-NEXT: stp x20, x19, [sp, #176] // 16-byte Folded Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 192 ; CHECK-GI-NEXT: .cfi_offset w19, -8 @@ -551,13 +551,13 @@ define <3 x fp128> @v3f128_fp128(<3 x fp128> %a, <3 x fp128> %b, <3 x fp128> %d, ; CHECK-GI-NEXT: mov v1.16b, v3.16b ; CHECK-GI-NEXT: stp q5, q2, [sp, #32] // 32-byte Folded Spill ; CHECK-GI-NEXT: ldr q2, [sp, #192] -; CHECK-GI-NEXT: str q2, [sp, #144] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q2, [sp, #144] // 16-byte Spill ; CHECK-GI-NEXT: ldr q2, [sp, #208] ; CHECK-GI-NEXT: stp q2, q6, [sp, #64] // 32-byte Folded Spill ; CHECK-GI-NEXT: ldr q2, [sp, #224] ; CHECK-GI-NEXT: stp q7, q2, [sp, #96] // 32-byte Folded Spill ; CHECK-GI-NEXT: ldr q2, [sp, #240] -; CHECK-GI-NEXT: str q2, [sp, #128] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q2, [sp, #128] // 16-byte Spill ; CHECK-GI-NEXT: bl __lttf2 ; CHECK-GI-NEXT: ldp q1, q0, [sp] // 32-byte Folded Reload ; CHECK-GI-NEXT: mov w19, w0 @@ -568,7 +568,7 @@ define <3 x fp128> @v3f128_fp128(<3 x fp128> %a, <3 x fp128> %b, <3 x fp128> %d, ; CHECK-GI-NEXT: ldp q5, q4, [sp, #64] // 32-byte Folded Reload ; CHECK-GI-NEXT: cmp w19, #0 ; CHECK-GI-NEXT: ldp q7, q6, [sp, #96] // 32-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #160] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #160] // 8-byte Reload ; CHECK-GI-NEXT: mov d0, v4.d[1] ; CHECK-GI-NEXT: mov d1, v5.d[1] ; CHECK-GI-NEXT: fcsel d4, d4, d5, mi @@ -610,26 +610,26 @@ define <2 x double> @v2f128_double(<2 x fp128> %a, <2 x fp128> %b, <2 x double> ; CHECK-SD-LABEL: v2f128_double: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #96 -; CHECK-SD-NEXT: str x30, [sp, #80] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #80] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 96 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov v0.16b, v1.16b ; CHECK-SD-NEXT: mov v1.16b, v3.16b ; CHECK-SD-NEXT: stp q4, q5, [sp, #48] // 32-byte Folded Spill -; CHECK-SD-NEXT: str q2, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q2, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: bl __lttf2 ; CHECK-SD-NEXT: cmp w0, #0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: cset w8, mi ; CHECK-SD-NEXT: sbfx x8, x8, #0, #1 ; CHECK-SD-NEXT: fmov d0, x8 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: bl __lttf2 ; CHECK-SD-NEXT: cmp w0, #0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #80] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #80] // 8-byte Reload ; CHECK-SD-NEXT: cset w8, mi ; CHECK-SD-NEXT: sbfx x8, x8, #0, #1 ; CHECK-SD-NEXT: fmov d0, x8 @@ -675,40 +675,40 @@ define <3 x double> @v3f128_double(<3 x fp128> %a, <3 x fp128> %b, <3 x double> ; CHECK-SD-LABEL: v3f128_double: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #160 -; CHECK-SD-NEXT: str x30, [sp, #144] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #144] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 160 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: stp q2, q5, [sp, #112] // 32-byte Folded Spill ; CHECK-SD-NEXT: // kill: def $d6 killed $d6 def $q6 ; CHECK-SD-NEXT: // kill: def $d7 killed $d7 def $q7 ; CHECK-SD-NEXT: ldr d5, [sp, #184] -; CHECK-SD-NEXT: str q3, [sp, #64] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q3, [sp, #64] // 16-byte Spill ; CHECK-SD-NEXT: ldp d3, d2, [sp, #168] ; CHECK-SD-NEXT: mov v6.d[1], v7.d[0] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: mov v0.16b, v1.16b ; CHECK-SD-NEXT: mov v1.16b, v4.16b -; CHECK-SD-NEXT: str q5, [sp, #96] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q5, [sp, #96] // 16-byte Spill ; CHECK-SD-NEXT: ldr d5, [sp, #160] ; CHECK-SD-NEXT: mov v3.d[1], v2.d[0] -; CHECK-SD-NEXT: str q5, [sp, #80] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q5, [sp, #80] // 16-byte Spill ; CHECK-SD-NEXT: stp q6, q3, [sp, #32] // 32-byte Folded Spill ; CHECK-SD-NEXT: bl __lttf2 ; CHECK-SD-NEXT: cmp w0, #0 -; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-SD-NEXT: cset w8, mi ; CHECK-SD-NEXT: sbfx x8, x8, #0, #1 ; CHECK-SD-NEXT: fmov d0, x8 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: bl __lttf2 ; CHECK-SD-NEXT: cmp w0, #0 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: cset w8, mi ; CHECK-SD-NEXT: sbfx x8, x8, #0, #1 ; CHECK-SD-NEXT: fmov d1, x8 ; CHECK-SD-NEXT: mov v1.d[1], v0.d[0] -; CHECK-SD-NEXT: str q1, [sp, #64] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #64] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #112] // 32-byte Folded Reload ; CHECK-SD-NEXT: bl __lttf2 ; CHECK-SD-NEXT: ldp q1, q0, [sp, #32] // 32-byte Folded Reload @@ -716,8 +716,8 @@ define <3 x double> @v3f128_double(<3 x fp128> %a, <3 x fp128> %b, <3 x double> ; CHECK-SD-NEXT: ldp q2, q4, [sp, #64] // 32-byte Folded Reload ; CHECK-SD-NEXT: cset w8, mi ; CHECK-SD-NEXT: sbfx x8, x8, #0, #1 -; CHECK-SD-NEXT: ldr q3, [sp, #96] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #144] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q3, [sp, #96] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #144] // 8-byte Reload ; CHECK-SD-NEXT: bit v0.16b, v1.16b, v2.16b ; CHECK-SD-NEXT: fmov d2, x8 ; CHECK-SD-NEXT: bsl v2.16b, v4.16b, v3.16b @@ -731,7 +731,7 @@ define <3 x double> @v3f128_double(<3 x fp128> %a, <3 x fp128> %b, <3 x double> ; CHECK-GI-LABEL: v3f128_double: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #176 -; CHECK-GI-NEXT: str x30, [sp, #128] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #128] // 8-byte Spill ; CHECK-GI-NEXT: stp x22, x21, [sp, #144] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp x20, x19, [sp, #160] // 16-byte Folded Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 176 @@ -748,8 +748,8 @@ define <3 x double> @v3f128_double(<3 x fp128> %a, <3 x fp128> %b, <3 x double> ; CHECK-GI-NEXT: ldr x20, [sp, #200] ; CHECK-GI-NEXT: // kill: def $d6 killed $d6 def $q6 ; CHECK-GI-NEXT: // kill: def $d7 killed $d7 def $q7 -; CHECK-GI-NEXT: str q7, [sp, #64] // 16-byte Folded Spill -; CHECK-GI-NEXT: str q2, [sp, #112] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q7, [sp, #64] // 16-byte Spill +; CHECK-GI-NEXT: str q2, [sp, #112] // 16-byte Spill ; CHECK-GI-NEXT: ldr d2, [sp, #192] ; CHECK-GI-NEXT: stp q6, q2, [sp, #80] // 32-byte Folded Spill ; CHECK-GI-NEXT: bl __lttf2 @@ -767,7 +767,7 @@ define <3 x double> @v3f128_double(<3 x fp128> %a, <3 x fp128> %b, <3 x double> ; CHECK-GI-NEXT: sbfx x9, x22, #0, #1 ; CHECK-GI-NEXT: fmov d1, x8 ; CHECK-GI-NEXT: cmp w0, #0 -; CHECK-GI-NEXT: ldr x30, [sp, #128] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #128] // 8-byte Reload ; CHECK-GI-NEXT: mov v2.d[1], v0.d[0] ; CHECK-GI-NEXT: fmov d0, x8 ; CHECK-GI-NEXT: cset w8, mi diff --git a/llvm/test/CodeGen/AArch64/fexplog.ll b/llvm/test/CodeGen/AArch64/fexplog.ll index f13e2fcd1c448..b44534c3d1789 100644 --- a/llvm/test/CodeGen/AArch64/fexplog.ll +++ b/llvm/test/CodeGen/AArch64/fexplog.ll @@ -63,20 +63,20 @@ define <2 x double> @exp_v2f64(<2 x double> %a) { ; CHECK-SD-LABEL: exp_v2f64: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov d0, v0.d[1] ; CHECK-SD-NEXT: bl exp ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: bl exp -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.d[1], v1.d[0] ; CHECK-SD-NEXT: add sp, sp, #48 ; CHECK-SD-NEXT: ret @@ -84,8 +84,8 @@ define <2 x double> @exp_v2f64(<2 x double> %a) { ; CHECK-GI-LABEL: exp_v2f64: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #32 -; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Spill +; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -93,13 +93,13 @@ define <2 x double> @exp_v2f64(<2 x double> %a) { ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-GI-NEXT: bl exp ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov d0, d8 ; CHECK-GI-NEXT: bl exp -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload -; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Reload +; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.d[1], v0.d[0] ; CHECK-GI-NEXT: mov v0.16b, v1.16b ; CHECK-GI-NEXT: add sp, sp, #32 @@ -114,7 +114,7 @@ define <3 x double> @exp_v3f64(<3 x double> %a) { ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: str d10, [sp, #-32]! // 8-byte Folded Spill ; CHECK-SD-NEXT: stp d9, d8, [sp, #8] // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 32 ; CHECK-SD-NEXT: .cfi_offset w30, -8 ; CHECK-SD-NEXT: .cfi_offset b8, -16 @@ -131,7 +131,7 @@ define <3 x double> @exp_v3f64(<3 x double> %a) { ; CHECK-SD-NEXT: bl exp ; CHECK-SD-NEXT: fmov d1, d9 ; CHECK-SD-NEXT: ldp d9, d8, [sp, #8] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #24] // 8-byte Reload ; CHECK-SD-NEXT: fmov d2, d0 ; CHECK-SD-NEXT: fmov d0, d10 ; CHECK-SD-NEXT: ldr d10, [sp], #32 // 8-byte Folded Reload @@ -141,7 +141,7 @@ define <3 x double> @exp_v3f64(<3 x double> %a) { ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: str d10, [sp, #-32]! // 8-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #8] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -158,7 +158,7 @@ define <3 x double> @exp_v3f64(<3 x double> %a) { ; CHECK-GI-NEXT: bl exp ; CHECK-GI-NEXT: fmov d1, d8 ; CHECK-GI-NEXT: ldp d9, d8, [sp, #8] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Reload ; CHECK-GI-NEXT: fmov d2, d0 ; CHECK-GI-NEXT: fmov d0, d10 ; CHECK-GI-NEXT: ldr d10, [sp], #32 // 8-byte Folded Reload @@ -172,33 +172,33 @@ define <4 x double> @exp_v4f64(<4 x double> %a) { ; CHECK-SD-LABEL: exp_v4f64: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov d0, v0.d[1] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: bl exp ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: bl exp -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-SD-NEXT: mov v0.d[1], v1.d[0] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov d0, v0.d[1] ; CHECK-SD-NEXT: bl exp ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: bl exp ; CHECK-SD-NEXT: fmov d1, d0 ; CHECK-SD-NEXT: ldp q2, q0, [sp] // 32-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: mov v1.d[1], v2.d[0] ; CHECK-SD-NEXT: add sp, sp, #64 ; CHECK-SD-NEXT: ret @@ -207,35 +207,35 @@ define <4 x double> @exp_v4f64(<4 x double> %a) { ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #80 ; CHECK-GI-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 80 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 ; CHECK-GI-NEXT: .cfi_offset b9, -32 -; CHECK-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-GI-NEXT: mov d8, v0.d[1] ; CHECK-GI-NEXT: mov d9, v1.d[1] ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-GI-NEXT: bl exp ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov d0, d8 ; CHECK-GI-NEXT: bl exp ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-GI-NEXT: bl exp ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov d0, d9 ; CHECK-GI-NEXT: bl exp ; CHECK-GI-NEXT: ldp q1, q2, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v2.d[1], v1.d[0] -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.d[1], v0.d[0] ; CHECK-GI-NEXT: mov v0.16b, v2.16b ; CHECK-GI-NEXT: add sp, sp, #80 @@ -249,21 +249,21 @@ define <2 x float> @exp_v2f32(<2 x float> %a) { ; CHECK-SD-LABEL: exp_v2f32: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov s0, v0.s[1] ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl expf -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: add sp, sp, #48 @@ -272,8 +272,8 @@ define <2 x float> @exp_v2f32(<2 x float> %a) { ; CHECK-GI-LABEL: exp_v2f32: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #32 -; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Spill +; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -282,13 +282,13 @@ define <2 x float> @exp_v2f32(<2 x float> %a) { ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl expf -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload -; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Reload +; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.s[1], v0.s[0] ; CHECK-GI-NEXT: fmov d0, d1 ; CHECK-GI-NEXT: add sp, sp, #32 @@ -302,27 +302,27 @@ define <3 x float> @exp_v3f32(<3 x float> %a) { ; CHECK-SD-LABEL: exp_v3f32: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: mov s0, v0.s[1] ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl expf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: bl expf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] ; CHECK-SD-NEXT: mov v0.16b, v1.16b ; CHECK-SD-NEXT: add sp, sp, #48 @@ -332,7 +332,7 @@ define <3 x float> @exp_v3f32(<3 x float> %a) { ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #64 ; CHECK-GI-NEXT: stp d9, d8, [sp, #32] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 64 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -342,16 +342,16 @@ define <3 x float> @exp_v3f32(<3 x float> %a) { ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s9 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: ldp q2, q1, [sp] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #32] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.s[1], v2.s[0] ; CHECK-GI-NEXT: mov v1.s[2], v0.s[0] @@ -367,34 +367,34 @@ define <4 x float> @exp_v4f32(<4 x float> %a) { ; CHECK-SD-LABEL: exp_v4f32: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: mov s0, v0.s[1] ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl expf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: bl expf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[3] -; CHECK-SD-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl expf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v1.s[3], v0.s[0] ; CHECK-SD-NEXT: mov v0.16b, v1.16b ; CHECK-SD-NEXT: add sp, sp, #48 @@ -403,9 +403,9 @@ define <4 x float> @exp_v4f32(<4 x float> %a) { ; CHECK-GI-LABEL: exp_v4f32: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #80 -; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #56] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #72] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #72] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 80 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -417,24 +417,24 @@ define <4 x float> @exp_v4f32(<4 x float> %a) { ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s9 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s10 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: ldp q2, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #72] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #72] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #56] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.s[1], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.s[2], v2.s[0] ; CHECK-GI-NEXT: mov v1.s[3], v0.s[0] ; CHECK-GI-NEXT: mov v0.16b, v1.16b @@ -449,61 +449,61 @@ define <8 x float> @exp_v8f32(<8 x float> %a) { ; CHECK-SD-LABEL: exp_v8f32: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: stp q0, q1, [sp] // 32-byte Folded Spill ; CHECK-SD-NEXT: mov s0, v0.s[1] ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl expf -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: bl expf -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[3] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: bl expf -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v1.s[3], v0.s[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[1] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl expf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: bl expf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[3] -; CHECK-SD-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: fmov s2, s0 -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: mov v1.s[3], v2.s[0] ; CHECK-SD-NEXT: add sp, sp, #64 ; CHECK-SD-NEXT: ret @@ -514,7 +514,7 @@ define <8 x float> @exp_v8f32(<8 x float> %a) { ; CHECK-GI-NEXT: stp d13, d12, [sp, #112] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d11, d10, [sp, #128] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #144] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #160] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #160] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 176 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -523,7 +523,7 @@ define <8 x float> @exp_v8f32(<8 x float> %a) { ; CHECK-GI-NEXT: .cfi_offset b11, -48 ; CHECK-GI-NEXT: .cfi_offset b12, -56 ; CHECK-GI-NEXT: .cfi_offset b13, -64 -; CHECK-GI-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: mov s8, v0.s[1] ; CHECK-GI-NEXT: mov s9, v0.s[2] ; CHECK-GI-NEXT: mov s10, v0.s[3] @@ -533,48 +533,48 @@ define <8 x float> @exp_v8f32(<8 x float> %a) { ; CHECK-GI-NEXT: mov s13, v1.s[3] ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s9 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s10 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill +; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s11 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s12 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s13 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: ldp q2, q1, [sp, #48] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #160] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #160] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #144] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #128] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.s[1], v2.s[0] ; CHECK-GI-NEXT: ldp q2, q3, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: ldp d13, d12, [sp, #112] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v3.s[1], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp, #96] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #96] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.s[2], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.s[2], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.s[3], v2.s[0] ; CHECK-GI-NEXT: mov v3.s[3], v0.s[0] ; CHECK-GI-NEXT: mov v2.16b, v1.16b @@ -591,69 +591,69 @@ define <7 x half> @exp_v7f16(<7 x half> %a) { ; CHECK-SD-LABEL: exp_v7f16: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: mov h1, v0.h[1] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h1 ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v0.h[1], v1.h[0] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: fcvt h1, s0 -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.h[7], v1.h[0] ; CHECK-SD-NEXT: add sp, sp, #48 ; CHECK-SD-NEXT: ret @@ -664,7 +664,7 @@ define <7 x half> @exp_v7f16(<7 x half> %a) { ; CHECK-GI-NEXT: stp d13, d12, [sp, #96] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d11, d10, [sp, #112] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #128] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #144] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #144] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 160 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -683,47 +683,47 @@ define <7 x half> @exp_v7f16(<7 x half> %a) { ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: fcvt s1, h8 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: fcvt s1, h9 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: fcvt s1, h10 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: fcvt s1, h11 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: fcvt s1, h12 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: fcvt s1, h13 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: ldp q3, q2, [sp, #48] // 32-byte Folded Reload ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: ldr q1, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #128] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #112] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #144] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #144] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.h[1], v3.h[0] ; CHECK-GI-NEXT: ldp d13, d12, [sp, #96] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] ; CHECK-GI-NEXT: ldp q2, q3, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[3], v3.h[0] ; CHECK-GI-NEXT: mov v1.h[4], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[5], v2.h[0] ; CHECK-GI-NEXT: mov v1.h[6], v0.h[0] ; CHECK-GI-NEXT: mov v0.16b, v1.16b @@ -738,39 +738,39 @@ define <4 x half> @exp_v4f16(<4 x half> %a) { ; CHECK-SD-LABEL: exp_v4f16: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-SD-NEXT: mov h1, v0.h[1] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h1 ; CHECK-SD-NEXT: bl expf -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: fcvt h0, s0 ; CHECK-SD-NEXT: fcvt s1, h1 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: fmov s0, s1 ; CHECK-SD-NEXT: bl expf -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: fcvt h2, s0 ; CHECK-SD-NEXT: mov h1, v1.h[2] ; CHECK-SD-NEXT: fcvt s0, h1 -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov v2.h[1], v1.h[0] -; CHECK-SD-NEXT: str q2, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q2, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl expf -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: fcvt h2, s0 ; CHECK-SD-NEXT: mov h1, v1.h[3] ; CHECK-SD-NEXT: fcvt s0, h1 -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v2.h[0] -; CHECK-SD-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: fcvt h1, s0 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.h[3], v1.h[0] ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: add sp, sp, #48 @@ -779,9 +779,9 @@ define <4 x half> @exp_v4f16(<4 x half> %a) { ; CHECK-GI-LABEL: exp_v4f16: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #80 -; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #56] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #72] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #72] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 80 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -795,25 +795,25 @@ define <4 x half> @exp_v4f16(<4 x half> %a) { ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: fcvt s1, h8 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: fcvt s1, h9 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: fcvt s1, h10 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: ldp q3, q2, [sp] // 32-byte Folded Reload ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #56] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #72] // 8-byte Folded Reload -; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #72] // 8-byte Reload +; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.h[1], v3.h[0] ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] ; CHECK-GI-NEXT: mov v1.h[3], v0.h[0] @@ -830,69 +830,69 @@ define <8 x half> @exp_v8f16(<8 x half> %a) { ; CHECK-SD-LABEL: exp_v8f16: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: mov h1, v0.h[1] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h1 ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v0.h[1], v1.h[0] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: fcvt h1, s0 -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.h[7], v1.h[0] ; CHECK-SD-NEXT: add sp, sp, #48 ; CHECK-SD-NEXT: ret @@ -900,11 +900,11 @@ define <8 x half> @exp_v8f16(<8 x half> %a) { ; CHECK-GI-LABEL: exp_v8f16: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #176 -; CHECK-GI-NEXT: str d14, [sp, #112] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d14, [sp, #112] // 8-byte Spill ; CHECK-GI-NEXT: stp d13, d12, [sp, #120] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d11, d10, [sp, #136] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #152] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #168] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #168] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 176 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -925,47 +925,47 @@ define <8 x half> @exp_v8f16(<8 x half> %a) { ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: fcvt s1, h8 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: fcvt s1, h9 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: fcvt s1, h10 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: fcvt s1, h11 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: fcvt s1, h12 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: fcvt s1, h13 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: fcvt s1, h14 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: ldp q3, q2, [sp, #64] // 32-byte Folded Reload ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: ldr q1, [sp, #96] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #96] // 16-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #152] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #136] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #168] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #168] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.h[1], v3.h[0] -; CHECK-GI-NEXT: ldr d14, [sp, #112] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr d14, [sp, #112] // 8-byte Reload ; CHECK-GI-NEXT: ldp d13, d12, [sp, #120] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] ; CHECK-GI-NEXT: ldp q2, q3, [sp, #32] // 32-byte Folded Reload @@ -987,7 +987,7 @@ define <16 x half> @exp_v16f16(<16 x half> %a) { ; CHECK-SD-LABEL: exp_v16f16: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: stp q1, q0, [sp] // 32-byte Folded Spill @@ -995,121 +995,121 @@ define <16 x half> @exp_v16f16(<16 x half> %a) { ; CHECK-SD-NEXT: fcvt s0, h1 ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v0.h[1], v1.h[0] -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[7], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[1] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v0.h[1], v1.h[0] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl expf ; CHECK-SD-NEXT: fmov s1, s0 -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: fcvt h2, s1 ; CHECK-SD-NEXT: ldp q1, q0, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov v1.h[7], v2.h[0] @@ -1136,7 +1136,7 @@ define <16 x half> @exp_v16f16(<16 x half> %a) { ; CHECK-GI-NEXT: .cfi_offset b14, -72 ; CHECK-GI-NEXT: .cfi_offset b15, -80 ; CHECK-GI-NEXT: mov v2.16b, v1.16b -; CHECK-GI-NEXT: str q1, [sp, #80] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp, #80] // 16-byte Spill ; CHECK-GI-NEXT: mov h14, v1.h[1] ; CHECK-GI-NEXT: mov h1, v1.h[2] ; CHECK-GI-NEXT: mov h15, v0.h[1] @@ -1147,132 +1147,132 @@ define <16 x half> @exp_v16f16(<16 x half> %a) { ; CHECK-GI-NEXT: mov h12, v0.h[6] ; CHECK-GI-NEXT: mov h13, v0.h[7] ; CHECK-GI-NEXT: fcvt s0, h0 -; CHECK-GI-NEXT: str h1, [sp, #16] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #16] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[3] -; CHECK-GI-NEXT: str h1, [sp, #32] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #32] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[4] -; CHECK-GI-NEXT: str h1, [sp, #48] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #48] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[5] -; CHECK-GI-NEXT: str h1, [sp, #64] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #64] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[6] -; CHECK-GI-NEXT: str h1, [sp, #96] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #96] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[7] -; CHECK-GI-NEXT: str h1, [sp, #160] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #160] // 2-byte Spill ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: fcvt s1, h15 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #192] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #192] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: fcvt s1, h8 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #112] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #112] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: fcvt s1, h9 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #224] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #224] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: fcvt s1, h10 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #208] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #208] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: fcvt s1, h11 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #176] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #176] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: fcvt s1, h12 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #144] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #144] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: fcvt s1, h13 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #128] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #128] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl expf -; CHECK-GI-NEXT: ldr q1, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl expf ; CHECK-GI-NEXT: fcvt s1, h14 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl expf -; CHECK-GI-NEXT: ldr h1, [sp, #16] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #16] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl expf -; CHECK-GI-NEXT: ldr h1, [sp, #32] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #32] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl expf -; CHECK-GI-NEXT: ldr h1, [sp, #48] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #48] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl expf -; CHECK-GI-NEXT: ldr h1, [sp, #64] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #64] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl expf -; CHECK-GI-NEXT: ldr h1, [sp, #96] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #96] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl expf -; CHECK-GI-NEXT: ldr h1, [sp, #160] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #160] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #160] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #160] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl expf -; CHECK-GI-NEXT: ldr q3, [sp, #192] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr q2, [sp, #112] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q3, [sp, #192] // 16-byte Reload +; CHECK-GI-NEXT: ldr q2, [sp, #112] // 16-byte Reload ; CHECK-GI-NEXT: ldp x29, x30, [sp, #304] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v3.h[1], v2.h[0] ; CHECK-GI-NEXT: ldp q1, q2, [sp] // 32-byte Folded Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #288] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #272] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[1], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #224] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #224] // 16-byte Reload ; CHECK-GI-NEXT: ldp d13, d12, [sp, #256] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v3.h[2], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: ldp d15, d14, [sp, #240] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #208] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #208] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[3], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #48] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #48] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[3], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #176] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #176] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[4], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #64] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #64] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[4], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #144] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #144] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[5], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #96] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #96] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[5], v2.h[0] ; CHECK-GI-NEXT: fcvt h2, s0 -; CHECK-GI-NEXT: ldr q0, [sp, #128] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #128] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[6], v0.h[0] -; CHECK-GI-NEXT: ldr q0, [sp, #160] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #160] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[6], v0.h[0] -; CHECK-GI-NEXT: ldr q0, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[7], v0.h[0] ; CHECK-GI-NEXT: mov v1.h[7], v2.h[0] ; CHECK-GI-NEXT: mov v0.16b, v3.16b @@ -1287,17 +1287,17 @@ define <2 x fp128> @exp_v2fp128(<2 x fp128> %a) { ; CHECK-LABEL: exp_v2fp128: ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NEXT: .cfi_offset w30, -16 -; CHECK-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-NEXT: bl expl -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: bl expl ; CHECK-NEXT: mov v1.16b, v0.16b -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #48 ; CHECK-NEXT: ret entry: @@ -1366,20 +1366,20 @@ define <2 x double> @exp2_v2f64(<2 x double> %a) { ; CHECK-SD-LABEL: exp2_v2f64: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov d0, v0.d[1] ; CHECK-SD-NEXT: bl exp2 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: bl exp2 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.d[1], v1.d[0] ; CHECK-SD-NEXT: add sp, sp, #48 ; CHECK-SD-NEXT: ret @@ -1387,8 +1387,8 @@ define <2 x double> @exp2_v2f64(<2 x double> %a) { ; CHECK-GI-LABEL: exp2_v2f64: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #32 -; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Spill +; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -1396,13 +1396,13 @@ define <2 x double> @exp2_v2f64(<2 x double> %a) { ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-GI-NEXT: bl exp2 ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov d0, d8 ; CHECK-GI-NEXT: bl exp2 -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload -; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Reload +; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.d[1], v0.d[0] ; CHECK-GI-NEXT: mov v0.16b, v1.16b ; CHECK-GI-NEXT: add sp, sp, #32 @@ -1417,7 +1417,7 @@ define <3 x double> @exp2_v3f64(<3 x double> %a) { ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: str d10, [sp, #-32]! // 8-byte Folded Spill ; CHECK-SD-NEXT: stp d9, d8, [sp, #8] // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 32 ; CHECK-SD-NEXT: .cfi_offset w30, -8 ; CHECK-SD-NEXT: .cfi_offset b8, -16 @@ -1434,7 +1434,7 @@ define <3 x double> @exp2_v3f64(<3 x double> %a) { ; CHECK-SD-NEXT: bl exp2 ; CHECK-SD-NEXT: fmov d1, d9 ; CHECK-SD-NEXT: ldp d9, d8, [sp, #8] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #24] // 8-byte Reload ; CHECK-SD-NEXT: fmov d2, d0 ; CHECK-SD-NEXT: fmov d0, d10 ; CHECK-SD-NEXT: ldr d10, [sp], #32 // 8-byte Folded Reload @@ -1444,7 +1444,7 @@ define <3 x double> @exp2_v3f64(<3 x double> %a) { ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: str d10, [sp, #-32]! // 8-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #8] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -1461,7 +1461,7 @@ define <3 x double> @exp2_v3f64(<3 x double> %a) { ; CHECK-GI-NEXT: bl exp2 ; CHECK-GI-NEXT: fmov d1, d8 ; CHECK-GI-NEXT: ldp d9, d8, [sp, #8] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Reload ; CHECK-GI-NEXT: fmov d2, d0 ; CHECK-GI-NEXT: fmov d0, d10 ; CHECK-GI-NEXT: ldr d10, [sp], #32 // 8-byte Folded Reload @@ -1475,33 +1475,33 @@ define <4 x double> @exp2_v4f64(<4 x double> %a) { ; CHECK-SD-LABEL: exp2_v4f64: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov d0, v0.d[1] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: bl exp2 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: bl exp2 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-SD-NEXT: mov v0.d[1], v1.d[0] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov d0, v0.d[1] ; CHECK-SD-NEXT: bl exp2 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: bl exp2 ; CHECK-SD-NEXT: fmov d1, d0 ; CHECK-SD-NEXT: ldp q2, q0, [sp] // 32-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: mov v1.d[1], v2.d[0] ; CHECK-SD-NEXT: add sp, sp, #64 ; CHECK-SD-NEXT: ret @@ -1510,35 +1510,35 @@ define <4 x double> @exp2_v4f64(<4 x double> %a) { ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #80 ; CHECK-GI-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 80 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 ; CHECK-GI-NEXT: .cfi_offset b9, -32 -; CHECK-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-GI-NEXT: mov d8, v0.d[1] ; CHECK-GI-NEXT: mov d9, v1.d[1] ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-GI-NEXT: bl exp2 ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov d0, d8 ; CHECK-GI-NEXT: bl exp2 ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-GI-NEXT: bl exp2 ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov d0, d9 ; CHECK-GI-NEXT: bl exp2 ; CHECK-GI-NEXT: ldp q1, q2, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v2.d[1], v1.d[0] -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.d[1], v0.d[0] ; CHECK-GI-NEXT: mov v0.16b, v2.16b ; CHECK-GI-NEXT: add sp, sp, #80 @@ -1552,21 +1552,21 @@ define <2 x float> @exp2_v2f32(<2 x float> %a) { ; CHECK-SD-LABEL: exp2_v2f32: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov s0, v0.s[1] ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl exp2f -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: add sp, sp, #48 @@ -1575,8 +1575,8 @@ define <2 x float> @exp2_v2f32(<2 x float> %a) { ; CHECK-GI-LABEL: exp2_v2f32: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #32 -; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Spill +; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -1585,13 +1585,13 @@ define <2 x float> @exp2_v2f32(<2 x float> %a) { ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl exp2f -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload -; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Reload +; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.s[1], v0.s[0] ; CHECK-GI-NEXT: fmov d0, d1 ; CHECK-GI-NEXT: add sp, sp, #32 @@ -1605,27 +1605,27 @@ define <3 x float> @exp2_v3f32(<3 x float> %a) { ; CHECK-SD-LABEL: exp2_v3f32: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: mov s0, v0.s[1] ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl exp2f -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: bl exp2f -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] ; CHECK-SD-NEXT: mov v0.16b, v1.16b ; CHECK-SD-NEXT: add sp, sp, #48 @@ -1635,7 +1635,7 @@ define <3 x float> @exp2_v3f32(<3 x float> %a) { ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #64 ; CHECK-GI-NEXT: stp d9, d8, [sp, #32] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 64 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -1645,16 +1645,16 @@ define <3 x float> @exp2_v3f32(<3 x float> %a) { ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s9 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: ldp q2, q1, [sp] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #32] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.s[1], v2.s[0] ; CHECK-GI-NEXT: mov v1.s[2], v0.s[0] @@ -1670,34 +1670,34 @@ define <4 x float> @exp2_v4f32(<4 x float> %a) { ; CHECK-SD-LABEL: exp2_v4f32: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: mov s0, v0.s[1] ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl exp2f -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: bl exp2f -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[3] -; CHECK-SD-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl exp2f -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v1.s[3], v0.s[0] ; CHECK-SD-NEXT: mov v0.16b, v1.16b ; CHECK-SD-NEXT: add sp, sp, #48 @@ -1706,9 +1706,9 @@ define <4 x float> @exp2_v4f32(<4 x float> %a) { ; CHECK-GI-LABEL: exp2_v4f32: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #80 -; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #56] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #72] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #72] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 80 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -1720,24 +1720,24 @@ define <4 x float> @exp2_v4f32(<4 x float> %a) { ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s9 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s10 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: ldp q2, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #72] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #72] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #56] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.s[1], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.s[2], v2.s[0] ; CHECK-GI-NEXT: mov v1.s[3], v0.s[0] ; CHECK-GI-NEXT: mov v0.16b, v1.16b @@ -1752,61 +1752,61 @@ define <8 x float> @exp2_v8f32(<8 x float> %a) { ; CHECK-SD-LABEL: exp2_v8f32: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: stp q0, q1, [sp] // 32-byte Folded Spill ; CHECK-SD-NEXT: mov s0, v0.s[1] ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl exp2f -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: bl exp2f -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[3] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: bl exp2f -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v1.s[3], v0.s[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[1] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl exp2f -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: bl exp2f -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[3] -; CHECK-SD-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: fmov s2, s0 -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: mov v1.s[3], v2.s[0] ; CHECK-SD-NEXT: add sp, sp, #64 ; CHECK-SD-NEXT: ret @@ -1817,7 +1817,7 @@ define <8 x float> @exp2_v8f32(<8 x float> %a) { ; CHECK-GI-NEXT: stp d13, d12, [sp, #112] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d11, d10, [sp, #128] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #144] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #160] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #160] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 176 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -1826,7 +1826,7 @@ define <8 x float> @exp2_v8f32(<8 x float> %a) { ; CHECK-GI-NEXT: .cfi_offset b11, -48 ; CHECK-GI-NEXT: .cfi_offset b12, -56 ; CHECK-GI-NEXT: .cfi_offset b13, -64 -; CHECK-GI-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: mov s8, v0.s[1] ; CHECK-GI-NEXT: mov s9, v0.s[2] ; CHECK-GI-NEXT: mov s10, v0.s[3] @@ -1836,48 +1836,48 @@ define <8 x float> @exp2_v8f32(<8 x float> %a) { ; CHECK-GI-NEXT: mov s13, v1.s[3] ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s9 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s10 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill +; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s11 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s12 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s13 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: ldp q2, q1, [sp, #48] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #160] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #160] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #144] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #128] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.s[1], v2.s[0] ; CHECK-GI-NEXT: ldp q2, q3, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: ldp d13, d12, [sp, #112] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v3.s[1], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp, #96] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #96] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.s[2], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.s[2], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.s[3], v2.s[0] ; CHECK-GI-NEXT: mov v3.s[3], v0.s[0] ; CHECK-GI-NEXT: mov v2.16b, v1.16b @@ -1894,69 +1894,69 @@ define <7 x half> @exp2_v7f16(<7 x half> %a) { ; CHECK-SD-LABEL: exp2_v7f16: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: mov h1, v0.h[1] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h1 ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v0.h[1], v1.h[0] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: fcvt h1, s0 -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.h[7], v1.h[0] ; CHECK-SD-NEXT: add sp, sp, #48 ; CHECK-SD-NEXT: ret @@ -1967,7 +1967,7 @@ define <7 x half> @exp2_v7f16(<7 x half> %a) { ; CHECK-GI-NEXT: stp d13, d12, [sp, #96] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d11, d10, [sp, #112] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #128] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #144] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #144] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 160 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -1986,47 +1986,47 @@ define <7 x half> @exp2_v7f16(<7 x half> %a) { ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: fcvt s1, h8 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: fcvt s1, h9 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: fcvt s1, h10 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: fcvt s1, h11 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: fcvt s1, h12 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: fcvt s1, h13 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: ldp q3, q2, [sp, #48] // 32-byte Folded Reload ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: ldr q1, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #128] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #112] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #144] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #144] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.h[1], v3.h[0] ; CHECK-GI-NEXT: ldp d13, d12, [sp, #96] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] ; CHECK-GI-NEXT: ldp q2, q3, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[3], v3.h[0] ; CHECK-GI-NEXT: mov v1.h[4], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[5], v2.h[0] ; CHECK-GI-NEXT: mov v1.h[6], v0.h[0] ; CHECK-GI-NEXT: mov v0.16b, v1.16b @@ -2041,39 +2041,39 @@ define <4 x half> @exp2_v4f16(<4 x half> %a) { ; CHECK-SD-LABEL: exp2_v4f16: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-SD-NEXT: mov h1, v0.h[1] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h1 ; CHECK-SD-NEXT: bl exp2f -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: fcvt h0, s0 ; CHECK-SD-NEXT: fcvt s1, h1 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: fmov s0, s1 ; CHECK-SD-NEXT: bl exp2f -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: fcvt h2, s0 ; CHECK-SD-NEXT: mov h1, v1.h[2] ; CHECK-SD-NEXT: fcvt s0, h1 -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov v2.h[1], v1.h[0] -; CHECK-SD-NEXT: str q2, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q2, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl exp2f -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: fcvt h2, s0 ; CHECK-SD-NEXT: mov h1, v1.h[3] ; CHECK-SD-NEXT: fcvt s0, h1 -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v2.h[0] -; CHECK-SD-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: fcvt h1, s0 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.h[3], v1.h[0] ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: add sp, sp, #48 @@ -2082,9 +2082,9 @@ define <4 x half> @exp2_v4f16(<4 x half> %a) { ; CHECK-GI-LABEL: exp2_v4f16: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #80 -; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #56] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #72] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #72] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 80 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -2098,25 +2098,25 @@ define <4 x half> @exp2_v4f16(<4 x half> %a) { ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: fcvt s1, h8 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: fcvt s1, h9 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: fcvt s1, h10 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: ldp q3, q2, [sp] // 32-byte Folded Reload ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #56] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #72] // 8-byte Folded Reload -; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #72] // 8-byte Reload +; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.h[1], v3.h[0] ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] ; CHECK-GI-NEXT: mov v1.h[3], v0.h[0] @@ -2133,69 +2133,69 @@ define <8 x half> @exp2_v8f16(<8 x half> %a) { ; CHECK-SD-LABEL: exp2_v8f16: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: mov h1, v0.h[1] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h1 ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v0.h[1], v1.h[0] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: fcvt h1, s0 -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.h[7], v1.h[0] ; CHECK-SD-NEXT: add sp, sp, #48 ; CHECK-SD-NEXT: ret @@ -2203,11 +2203,11 @@ define <8 x half> @exp2_v8f16(<8 x half> %a) { ; CHECK-GI-LABEL: exp2_v8f16: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #176 -; CHECK-GI-NEXT: str d14, [sp, #112] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d14, [sp, #112] // 8-byte Spill ; CHECK-GI-NEXT: stp d13, d12, [sp, #120] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d11, d10, [sp, #136] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #152] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #168] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #168] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 176 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -2228,47 +2228,47 @@ define <8 x half> @exp2_v8f16(<8 x half> %a) { ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: fcvt s1, h8 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: fcvt s1, h9 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: fcvt s1, h10 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: fcvt s1, h11 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: fcvt s1, h12 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: fcvt s1, h13 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: fcvt s1, h14 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: ldp q3, q2, [sp, #64] // 32-byte Folded Reload ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: ldr q1, [sp, #96] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #96] // 16-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #152] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #136] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #168] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #168] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.h[1], v3.h[0] -; CHECK-GI-NEXT: ldr d14, [sp, #112] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr d14, [sp, #112] // 8-byte Reload ; CHECK-GI-NEXT: ldp d13, d12, [sp, #120] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] ; CHECK-GI-NEXT: ldp q2, q3, [sp, #32] // 32-byte Folded Reload @@ -2290,7 +2290,7 @@ define <16 x half> @exp2_v16f16(<16 x half> %a) { ; CHECK-SD-LABEL: exp2_v16f16: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: stp q1, q0, [sp] // 32-byte Folded Spill @@ -2298,121 +2298,121 @@ define <16 x half> @exp2_v16f16(<16 x half> %a) { ; CHECK-SD-NEXT: fcvt s0, h1 ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v0.h[1], v1.h[0] -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[7], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[1] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v0.h[1], v1.h[0] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl exp2f ; CHECK-SD-NEXT: fmov s1, s0 -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: fcvt h2, s1 ; CHECK-SD-NEXT: ldp q1, q0, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov v1.h[7], v2.h[0] @@ -2439,7 +2439,7 @@ define <16 x half> @exp2_v16f16(<16 x half> %a) { ; CHECK-GI-NEXT: .cfi_offset b14, -72 ; CHECK-GI-NEXT: .cfi_offset b15, -80 ; CHECK-GI-NEXT: mov v2.16b, v1.16b -; CHECK-GI-NEXT: str q1, [sp, #80] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp, #80] // 16-byte Spill ; CHECK-GI-NEXT: mov h14, v1.h[1] ; CHECK-GI-NEXT: mov h1, v1.h[2] ; CHECK-GI-NEXT: mov h15, v0.h[1] @@ -2450,132 +2450,132 @@ define <16 x half> @exp2_v16f16(<16 x half> %a) { ; CHECK-GI-NEXT: mov h12, v0.h[6] ; CHECK-GI-NEXT: mov h13, v0.h[7] ; CHECK-GI-NEXT: fcvt s0, h0 -; CHECK-GI-NEXT: str h1, [sp, #16] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #16] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[3] -; CHECK-GI-NEXT: str h1, [sp, #32] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #32] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[4] -; CHECK-GI-NEXT: str h1, [sp, #48] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #48] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[5] -; CHECK-GI-NEXT: str h1, [sp, #64] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #64] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[6] -; CHECK-GI-NEXT: str h1, [sp, #96] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #96] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[7] -; CHECK-GI-NEXT: str h1, [sp, #160] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #160] // 2-byte Spill ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: fcvt s1, h15 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #192] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #192] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: fcvt s1, h8 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #112] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #112] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: fcvt s1, h9 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #224] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #224] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: fcvt s1, h10 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #208] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #208] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: fcvt s1, h11 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #176] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #176] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: fcvt s1, h12 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #144] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #144] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: fcvt s1, h13 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #128] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #128] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl exp2f -; CHECK-GI-NEXT: ldr q1, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl exp2f ; CHECK-GI-NEXT: fcvt s1, h14 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl exp2f -; CHECK-GI-NEXT: ldr h1, [sp, #16] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #16] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl exp2f -; CHECK-GI-NEXT: ldr h1, [sp, #32] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #32] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl exp2f -; CHECK-GI-NEXT: ldr h1, [sp, #48] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #48] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl exp2f -; CHECK-GI-NEXT: ldr h1, [sp, #64] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #64] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl exp2f -; CHECK-GI-NEXT: ldr h1, [sp, #96] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #96] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl exp2f -; CHECK-GI-NEXT: ldr h1, [sp, #160] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #160] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #160] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #160] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl exp2f -; CHECK-GI-NEXT: ldr q3, [sp, #192] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr q2, [sp, #112] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q3, [sp, #192] // 16-byte Reload +; CHECK-GI-NEXT: ldr q2, [sp, #112] // 16-byte Reload ; CHECK-GI-NEXT: ldp x29, x30, [sp, #304] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v3.h[1], v2.h[0] ; CHECK-GI-NEXT: ldp q1, q2, [sp] // 32-byte Folded Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #288] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #272] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[1], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #224] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #224] // 16-byte Reload ; CHECK-GI-NEXT: ldp d13, d12, [sp, #256] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v3.h[2], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: ldp d15, d14, [sp, #240] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #208] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #208] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[3], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #48] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #48] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[3], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #176] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #176] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[4], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #64] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #64] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[4], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #144] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #144] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[5], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #96] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #96] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[5], v2.h[0] ; CHECK-GI-NEXT: fcvt h2, s0 -; CHECK-GI-NEXT: ldr q0, [sp, #128] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #128] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[6], v0.h[0] -; CHECK-GI-NEXT: ldr q0, [sp, #160] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #160] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[6], v0.h[0] -; CHECK-GI-NEXT: ldr q0, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[7], v0.h[0] ; CHECK-GI-NEXT: mov v1.h[7], v2.h[0] ; CHECK-GI-NEXT: mov v0.16b, v3.16b @@ -2590,17 +2590,17 @@ define <2 x fp128> @exp2_v2fp128(<2 x fp128> %a) { ; CHECK-LABEL: exp2_v2fp128: ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NEXT: .cfi_offset w30, -16 -; CHECK-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-NEXT: bl exp2l -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: bl exp2l ; CHECK-NEXT: mov v1.16b, v0.16b -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #48 ; CHECK-NEXT: ret entry: @@ -2669,20 +2669,20 @@ define <2 x double> @log_v2f64(<2 x double> %a) { ; CHECK-SD-LABEL: log_v2f64: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov d0, v0.d[1] ; CHECK-SD-NEXT: bl log ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: bl log -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.d[1], v1.d[0] ; CHECK-SD-NEXT: add sp, sp, #48 ; CHECK-SD-NEXT: ret @@ -2690,8 +2690,8 @@ define <2 x double> @log_v2f64(<2 x double> %a) { ; CHECK-GI-LABEL: log_v2f64: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #32 -; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Spill +; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -2699,13 +2699,13 @@ define <2 x double> @log_v2f64(<2 x double> %a) { ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-GI-NEXT: bl log ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov d0, d8 ; CHECK-GI-NEXT: bl log -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload -; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Reload +; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.d[1], v0.d[0] ; CHECK-GI-NEXT: mov v0.16b, v1.16b ; CHECK-GI-NEXT: add sp, sp, #32 @@ -2720,7 +2720,7 @@ define <3 x double> @log_v3f64(<3 x double> %a) { ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: str d10, [sp, #-32]! // 8-byte Folded Spill ; CHECK-SD-NEXT: stp d9, d8, [sp, #8] // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 32 ; CHECK-SD-NEXT: .cfi_offset w30, -8 ; CHECK-SD-NEXT: .cfi_offset b8, -16 @@ -2737,7 +2737,7 @@ define <3 x double> @log_v3f64(<3 x double> %a) { ; CHECK-SD-NEXT: bl log ; CHECK-SD-NEXT: fmov d1, d9 ; CHECK-SD-NEXT: ldp d9, d8, [sp, #8] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #24] // 8-byte Reload ; CHECK-SD-NEXT: fmov d2, d0 ; CHECK-SD-NEXT: fmov d0, d10 ; CHECK-SD-NEXT: ldr d10, [sp], #32 // 8-byte Folded Reload @@ -2747,7 +2747,7 @@ define <3 x double> @log_v3f64(<3 x double> %a) { ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: str d10, [sp, #-32]! // 8-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #8] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -2764,7 +2764,7 @@ define <3 x double> @log_v3f64(<3 x double> %a) { ; CHECK-GI-NEXT: bl log ; CHECK-GI-NEXT: fmov d1, d8 ; CHECK-GI-NEXT: ldp d9, d8, [sp, #8] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Reload ; CHECK-GI-NEXT: fmov d2, d0 ; CHECK-GI-NEXT: fmov d0, d10 ; CHECK-GI-NEXT: ldr d10, [sp], #32 // 8-byte Folded Reload @@ -2778,33 +2778,33 @@ define <4 x double> @log_v4f64(<4 x double> %a) { ; CHECK-SD-LABEL: log_v4f64: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov d0, v0.d[1] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: bl log ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: bl log -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-SD-NEXT: mov v0.d[1], v1.d[0] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov d0, v0.d[1] ; CHECK-SD-NEXT: bl log ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: bl log ; CHECK-SD-NEXT: fmov d1, d0 ; CHECK-SD-NEXT: ldp q2, q0, [sp] // 32-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: mov v1.d[1], v2.d[0] ; CHECK-SD-NEXT: add sp, sp, #64 ; CHECK-SD-NEXT: ret @@ -2813,35 +2813,35 @@ define <4 x double> @log_v4f64(<4 x double> %a) { ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #80 ; CHECK-GI-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 80 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 ; CHECK-GI-NEXT: .cfi_offset b9, -32 -; CHECK-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-GI-NEXT: mov d8, v0.d[1] ; CHECK-GI-NEXT: mov d9, v1.d[1] ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-GI-NEXT: bl log ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov d0, d8 ; CHECK-GI-NEXT: bl log ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-GI-NEXT: bl log ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov d0, d9 ; CHECK-GI-NEXT: bl log ; CHECK-GI-NEXT: ldp q1, q2, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v2.d[1], v1.d[0] -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.d[1], v0.d[0] ; CHECK-GI-NEXT: mov v0.16b, v2.16b ; CHECK-GI-NEXT: add sp, sp, #80 @@ -2855,21 +2855,21 @@ define <2 x float> @log_v2f32(<2 x float> %a) { ; CHECK-SD-LABEL: log_v2f32: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov s0, v0.s[1] ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl logf -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: add sp, sp, #48 @@ -2878,8 +2878,8 @@ define <2 x float> @log_v2f32(<2 x float> %a) { ; CHECK-GI-LABEL: log_v2f32: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #32 -; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Spill +; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -2888,13 +2888,13 @@ define <2 x float> @log_v2f32(<2 x float> %a) { ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl logf -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload -; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Reload +; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.s[1], v0.s[0] ; CHECK-GI-NEXT: fmov d0, d1 ; CHECK-GI-NEXT: add sp, sp, #32 @@ -2908,27 +2908,27 @@ define <3 x float> @log_v3f32(<3 x float> %a) { ; CHECK-SD-LABEL: log_v3f32: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: mov s0, v0.s[1] ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl logf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: bl logf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] ; CHECK-SD-NEXT: mov v0.16b, v1.16b ; CHECK-SD-NEXT: add sp, sp, #48 @@ -2938,7 +2938,7 @@ define <3 x float> @log_v3f32(<3 x float> %a) { ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #64 ; CHECK-GI-NEXT: stp d9, d8, [sp, #32] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 64 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -2948,16 +2948,16 @@ define <3 x float> @log_v3f32(<3 x float> %a) { ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s9 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: ldp q2, q1, [sp] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #32] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.s[1], v2.s[0] ; CHECK-GI-NEXT: mov v1.s[2], v0.s[0] @@ -2973,34 +2973,34 @@ define <4 x float> @log_v4f32(<4 x float> %a) { ; CHECK-SD-LABEL: log_v4f32: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: mov s0, v0.s[1] ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl logf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: bl logf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[3] -; CHECK-SD-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl logf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v1.s[3], v0.s[0] ; CHECK-SD-NEXT: mov v0.16b, v1.16b ; CHECK-SD-NEXT: add sp, sp, #48 @@ -3009,9 +3009,9 @@ define <4 x float> @log_v4f32(<4 x float> %a) { ; CHECK-GI-LABEL: log_v4f32: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #80 -; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #56] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #72] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #72] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 80 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -3023,24 +3023,24 @@ define <4 x float> @log_v4f32(<4 x float> %a) { ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s9 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s10 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: ldp q2, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #72] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #72] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #56] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.s[1], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.s[2], v2.s[0] ; CHECK-GI-NEXT: mov v1.s[3], v0.s[0] ; CHECK-GI-NEXT: mov v0.16b, v1.16b @@ -3055,61 +3055,61 @@ define <8 x float> @log_v8f32(<8 x float> %a) { ; CHECK-SD-LABEL: log_v8f32: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: stp q0, q1, [sp] // 32-byte Folded Spill ; CHECK-SD-NEXT: mov s0, v0.s[1] ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl logf -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: bl logf -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[3] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: bl logf -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v1.s[3], v0.s[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[1] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl logf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: bl logf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[3] -; CHECK-SD-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: fmov s2, s0 -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: mov v1.s[3], v2.s[0] ; CHECK-SD-NEXT: add sp, sp, #64 ; CHECK-SD-NEXT: ret @@ -3120,7 +3120,7 @@ define <8 x float> @log_v8f32(<8 x float> %a) { ; CHECK-GI-NEXT: stp d13, d12, [sp, #112] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d11, d10, [sp, #128] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #144] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #160] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #160] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 176 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -3129,7 +3129,7 @@ define <8 x float> @log_v8f32(<8 x float> %a) { ; CHECK-GI-NEXT: .cfi_offset b11, -48 ; CHECK-GI-NEXT: .cfi_offset b12, -56 ; CHECK-GI-NEXT: .cfi_offset b13, -64 -; CHECK-GI-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: mov s8, v0.s[1] ; CHECK-GI-NEXT: mov s9, v0.s[2] ; CHECK-GI-NEXT: mov s10, v0.s[3] @@ -3139,48 +3139,48 @@ define <8 x float> @log_v8f32(<8 x float> %a) { ; CHECK-GI-NEXT: mov s13, v1.s[3] ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s9 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s10 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill +; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s11 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s12 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s13 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: ldp q2, q1, [sp, #48] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #160] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #160] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #144] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #128] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.s[1], v2.s[0] ; CHECK-GI-NEXT: ldp q2, q3, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: ldp d13, d12, [sp, #112] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v3.s[1], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp, #96] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #96] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.s[2], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.s[2], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.s[3], v2.s[0] ; CHECK-GI-NEXT: mov v3.s[3], v0.s[0] ; CHECK-GI-NEXT: mov v2.16b, v1.16b @@ -3197,69 +3197,69 @@ define <7 x half> @log_v7f16(<7 x half> %a) { ; CHECK-SD-LABEL: log_v7f16: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: mov h1, v0.h[1] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h1 ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v0.h[1], v1.h[0] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: fcvt h1, s0 -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.h[7], v1.h[0] ; CHECK-SD-NEXT: add sp, sp, #48 ; CHECK-SD-NEXT: ret @@ -3270,7 +3270,7 @@ define <7 x half> @log_v7f16(<7 x half> %a) { ; CHECK-GI-NEXT: stp d13, d12, [sp, #96] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d11, d10, [sp, #112] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #128] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #144] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #144] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 160 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -3289,47 +3289,47 @@ define <7 x half> @log_v7f16(<7 x half> %a) { ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: fcvt s1, h8 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: fcvt s1, h9 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: fcvt s1, h10 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: fcvt s1, h11 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: fcvt s1, h12 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: fcvt s1, h13 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: ldp q3, q2, [sp, #48] // 32-byte Folded Reload ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: ldr q1, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #128] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #112] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #144] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #144] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.h[1], v3.h[0] ; CHECK-GI-NEXT: ldp d13, d12, [sp, #96] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] ; CHECK-GI-NEXT: ldp q2, q3, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[3], v3.h[0] ; CHECK-GI-NEXT: mov v1.h[4], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[5], v2.h[0] ; CHECK-GI-NEXT: mov v1.h[6], v0.h[0] ; CHECK-GI-NEXT: mov v0.16b, v1.16b @@ -3344,39 +3344,39 @@ define <4 x half> @log_v4f16(<4 x half> %a) { ; CHECK-SD-LABEL: log_v4f16: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-SD-NEXT: mov h1, v0.h[1] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h1 ; CHECK-SD-NEXT: bl logf -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: fcvt h0, s0 ; CHECK-SD-NEXT: fcvt s1, h1 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: fmov s0, s1 ; CHECK-SD-NEXT: bl logf -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: fcvt h2, s0 ; CHECK-SD-NEXT: mov h1, v1.h[2] ; CHECK-SD-NEXT: fcvt s0, h1 -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov v2.h[1], v1.h[0] -; CHECK-SD-NEXT: str q2, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q2, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl logf -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: fcvt h2, s0 ; CHECK-SD-NEXT: mov h1, v1.h[3] ; CHECK-SD-NEXT: fcvt s0, h1 -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v2.h[0] -; CHECK-SD-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: fcvt h1, s0 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.h[3], v1.h[0] ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: add sp, sp, #48 @@ -3385,9 +3385,9 @@ define <4 x half> @log_v4f16(<4 x half> %a) { ; CHECK-GI-LABEL: log_v4f16: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #80 -; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #56] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #72] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #72] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 80 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -3401,25 +3401,25 @@ define <4 x half> @log_v4f16(<4 x half> %a) { ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: fcvt s1, h8 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: fcvt s1, h9 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: fcvt s1, h10 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: ldp q3, q2, [sp] // 32-byte Folded Reload ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #56] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #72] // 8-byte Folded Reload -; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #72] // 8-byte Reload +; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.h[1], v3.h[0] ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] ; CHECK-GI-NEXT: mov v1.h[3], v0.h[0] @@ -3436,69 +3436,69 @@ define <8 x half> @log_v8f16(<8 x half> %a) { ; CHECK-SD-LABEL: log_v8f16: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: mov h1, v0.h[1] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h1 ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v0.h[1], v1.h[0] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: fcvt h1, s0 -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.h[7], v1.h[0] ; CHECK-SD-NEXT: add sp, sp, #48 ; CHECK-SD-NEXT: ret @@ -3506,11 +3506,11 @@ define <8 x half> @log_v8f16(<8 x half> %a) { ; CHECK-GI-LABEL: log_v8f16: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #176 -; CHECK-GI-NEXT: str d14, [sp, #112] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d14, [sp, #112] // 8-byte Spill ; CHECK-GI-NEXT: stp d13, d12, [sp, #120] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d11, d10, [sp, #136] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #152] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #168] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #168] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 176 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -3531,47 +3531,47 @@ define <8 x half> @log_v8f16(<8 x half> %a) { ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: fcvt s1, h8 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: fcvt s1, h9 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: fcvt s1, h10 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: fcvt s1, h11 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: fcvt s1, h12 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: fcvt s1, h13 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: fcvt s1, h14 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: ldp q3, q2, [sp, #64] // 32-byte Folded Reload ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: ldr q1, [sp, #96] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #96] // 16-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #152] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #136] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #168] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #168] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.h[1], v3.h[0] -; CHECK-GI-NEXT: ldr d14, [sp, #112] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr d14, [sp, #112] // 8-byte Reload ; CHECK-GI-NEXT: ldp d13, d12, [sp, #120] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] ; CHECK-GI-NEXT: ldp q2, q3, [sp, #32] // 32-byte Folded Reload @@ -3593,7 +3593,7 @@ define <16 x half> @log_v16f16(<16 x half> %a) { ; CHECK-SD-LABEL: log_v16f16: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: stp q1, q0, [sp] // 32-byte Folded Spill @@ -3601,121 +3601,121 @@ define <16 x half> @log_v16f16(<16 x half> %a) { ; CHECK-SD-NEXT: fcvt s0, h1 ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v0.h[1], v1.h[0] -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[7], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[1] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v0.h[1], v1.h[0] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl logf ; CHECK-SD-NEXT: fmov s1, s0 -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: fcvt h2, s1 ; CHECK-SD-NEXT: ldp q1, q0, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov v1.h[7], v2.h[0] @@ -3742,7 +3742,7 @@ define <16 x half> @log_v16f16(<16 x half> %a) { ; CHECK-GI-NEXT: .cfi_offset b14, -72 ; CHECK-GI-NEXT: .cfi_offset b15, -80 ; CHECK-GI-NEXT: mov v2.16b, v1.16b -; CHECK-GI-NEXT: str q1, [sp, #80] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp, #80] // 16-byte Spill ; CHECK-GI-NEXT: mov h14, v1.h[1] ; CHECK-GI-NEXT: mov h1, v1.h[2] ; CHECK-GI-NEXT: mov h15, v0.h[1] @@ -3753,132 +3753,132 @@ define <16 x half> @log_v16f16(<16 x half> %a) { ; CHECK-GI-NEXT: mov h12, v0.h[6] ; CHECK-GI-NEXT: mov h13, v0.h[7] ; CHECK-GI-NEXT: fcvt s0, h0 -; CHECK-GI-NEXT: str h1, [sp, #16] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #16] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[3] -; CHECK-GI-NEXT: str h1, [sp, #32] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #32] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[4] -; CHECK-GI-NEXT: str h1, [sp, #48] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #48] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[5] -; CHECK-GI-NEXT: str h1, [sp, #64] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #64] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[6] -; CHECK-GI-NEXT: str h1, [sp, #96] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #96] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[7] -; CHECK-GI-NEXT: str h1, [sp, #160] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #160] // 2-byte Spill ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: fcvt s1, h15 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #192] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #192] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: fcvt s1, h8 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #112] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #112] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: fcvt s1, h9 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #224] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #224] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: fcvt s1, h10 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #208] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #208] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: fcvt s1, h11 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #176] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #176] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: fcvt s1, h12 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #144] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #144] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: fcvt s1, h13 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #128] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #128] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl logf -; CHECK-GI-NEXT: ldr q1, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl logf ; CHECK-GI-NEXT: fcvt s1, h14 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl logf -; CHECK-GI-NEXT: ldr h1, [sp, #16] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #16] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl logf -; CHECK-GI-NEXT: ldr h1, [sp, #32] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #32] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl logf -; CHECK-GI-NEXT: ldr h1, [sp, #48] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #48] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl logf -; CHECK-GI-NEXT: ldr h1, [sp, #64] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #64] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl logf -; CHECK-GI-NEXT: ldr h1, [sp, #96] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #96] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl logf -; CHECK-GI-NEXT: ldr h1, [sp, #160] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #160] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #160] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #160] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl logf -; CHECK-GI-NEXT: ldr q3, [sp, #192] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr q2, [sp, #112] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q3, [sp, #192] // 16-byte Reload +; CHECK-GI-NEXT: ldr q2, [sp, #112] // 16-byte Reload ; CHECK-GI-NEXT: ldp x29, x30, [sp, #304] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v3.h[1], v2.h[0] ; CHECK-GI-NEXT: ldp q1, q2, [sp] // 32-byte Folded Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #288] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #272] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[1], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #224] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #224] // 16-byte Reload ; CHECK-GI-NEXT: ldp d13, d12, [sp, #256] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v3.h[2], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: ldp d15, d14, [sp, #240] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #208] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #208] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[3], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #48] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #48] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[3], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #176] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #176] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[4], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #64] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #64] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[4], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #144] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #144] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[5], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #96] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #96] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[5], v2.h[0] ; CHECK-GI-NEXT: fcvt h2, s0 -; CHECK-GI-NEXT: ldr q0, [sp, #128] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #128] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[6], v0.h[0] -; CHECK-GI-NEXT: ldr q0, [sp, #160] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #160] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[6], v0.h[0] -; CHECK-GI-NEXT: ldr q0, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[7], v0.h[0] ; CHECK-GI-NEXT: mov v1.h[7], v2.h[0] ; CHECK-GI-NEXT: mov v0.16b, v3.16b @@ -3893,17 +3893,17 @@ define <2 x fp128> @log_v2fp128(<2 x fp128> %a) { ; CHECK-LABEL: log_v2fp128: ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NEXT: .cfi_offset w30, -16 -; CHECK-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-NEXT: bl logl -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: bl logl ; CHECK-NEXT: mov v1.16b, v0.16b -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #48 ; CHECK-NEXT: ret entry: @@ -3972,20 +3972,20 @@ define <2 x double> @log2_v2f64(<2 x double> %a) { ; CHECK-SD-LABEL: log2_v2f64: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov d0, v0.d[1] ; CHECK-SD-NEXT: bl log2 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: bl log2 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.d[1], v1.d[0] ; CHECK-SD-NEXT: add sp, sp, #48 ; CHECK-SD-NEXT: ret @@ -3993,8 +3993,8 @@ define <2 x double> @log2_v2f64(<2 x double> %a) { ; CHECK-GI-LABEL: log2_v2f64: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #32 -; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Spill +; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -4002,13 +4002,13 @@ define <2 x double> @log2_v2f64(<2 x double> %a) { ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-GI-NEXT: bl log2 ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov d0, d8 ; CHECK-GI-NEXT: bl log2 -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload -; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Reload +; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.d[1], v0.d[0] ; CHECK-GI-NEXT: mov v0.16b, v1.16b ; CHECK-GI-NEXT: add sp, sp, #32 @@ -4023,7 +4023,7 @@ define <3 x double> @log2_v3f64(<3 x double> %a) { ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: str d10, [sp, #-32]! // 8-byte Folded Spill ; CHECK-SD-NEXT: stp d9, d8, [sp, #8] // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 32 ; CHECK-SD-NEXT: .cfi_offset w30, -8 ; CHECK-SD-NEXT: .cfi_offset b8, -16 @@ -4040,7 +4040,7 @@ define <3 x double> @log2_v3f64(<3 x double> %a) { ; CHECK-SD-NEXT: bl log2 ; CHECK-SD-NEXT: fmov d1, d9 ; CHECK-SD-NEXT: ldp d9, d8, [sp, #8] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #24] // 8-byte Reload ; CHECK-SD-NEXT: fmov d2, d0 ; CHECK-SD-NEXT: fmov d0, d10 ; CHECK-SD-NEXT: ldr d10, [sp], #32 // 8-byte Folded Reload @@ -4050,7 +4050,7 @@ define <3 x double> @log2_v3f64(<3 x double> %a) { ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: str d10, [sp, #-32]! // 8-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #8] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -4067,7 +4067,7 @@ define <3 x double> @log2_v3f64(<3 x double> %a) { ; CHECK-GI-NEXT: bl log2 ; CHECK-GI-NEXT: fmov d1, d8 ; CHECK-GI-NEXT: ldp d9, d8, [sp, #8] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Reload ; CHECK-GI-NEXT: fmov d2, d0 ; CHECK-GI-NEXT: fmov d0, d10 ; CHECK-GI-NEXT: ldr d10, [sp], #32 // 8-byte Folded Reload @@ -4081,33 +4081,33 @@ define <4 x double> @log2_v4f64(<4 x double> %a) { ; CHECK-SD-LABEL: log2_v4f64: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov d0, v0.d[1] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: bl log2 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: bl log2 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-SD-NEXT: mov v0.d[1], v1.d[0] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov d0, v0.d[1] ; CHECK-SD-NEXT: bl log2 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: bl log2 ; CHECK-SD-NEXT: fmov d1, d0 ; CHECK-SD-NEXT: ldp q2, q0, [sp] // 32-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: mov v1.d[1], v2.d[0] ; CHECK-SD-NEXT: add sp, sp, #64 ; CHECK-SD-NEXT: ret @@ -4116,35 +4116,35 @@ define <4 x double> @log2_v4f64(<4 x double> %a) { ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #80 ; CHECK-GI-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 80 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 ; CHECK-GI-NEXT: .cfi_offset b9, -32 -; CHECK-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-GI-NEXT: mov d8, v0.d[1] ; CHECK-GI-NEXT: mov d9, v1.d[1] ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-GI-NEXT: bl log2 ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov d0, d8 ; CHECK-GI-NEXT: bl log2 ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-GI-NEXT: bl log2 ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov d0, d9 ; CHECK-GI-NEXT: bl log2 ; CHECK-GI-NEXT: ldp q1, q2, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v2.d[1], v1.d[0] -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.d[1], v0.d[0] ; CHECK-GI-NEXT: mov v0.16b, v2.16b ; CHECK-GI-NEXT: add sp, sp, #80 @@ -4158,21 +4158,21 @@ define <2 x float> @log2_v2f32(<2 x float> %a) { ; CHECK-SD-LABEL: log2_v2f32: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov s0, v0.s[1] ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl log2f -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: add sp, sp, #48 @@ -4181,8 +4181,8 @@ define <2 x float> @log2_v2f32(<2 x float> %a) { ; CHECK-GI-LABEL: log2_v2f32: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #32 -; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Spill +; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -4191,13 +4191,13 @@ define <2 x float> @log2_v2f32(<2 x float> %a) { ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl log2f -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload -; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Reload +; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.s[1], v0.s[0] ; CHECK-GI-NEXT: fmov d0, d1 ; CHECK-GI-NEXT: add sp, sp, #32 @@ -4211,27 +4211,27 @@ define <3 x float> @log2_v3f32(<3 x float> %a) { ; CHECK-SD-LABEL: log2_v3f32: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: mov s0, v0.s[1] ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl log2f -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: bl log2f -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] ; CHECK-SD-NEXT: mov v0.16b, v1.16b ; CHECK-SD-NEXT: add sp, sp, #48 @@ -4241,7 +4241,7 @@ define <3 x float> @log2_v3f32(<3 x float> %a) { ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #64 ; CHECK-GI-NEXT: stp d9, d8, [sp, #32] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 64 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -4251,16 +4251,16 @@ define <3 x float> @log2_v3f32(<3 x float> %a) { ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s9 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: ldp q2, q1, [sp] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #32] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.s[1], v2.s[0] ; CHECK-GI-NEXT: mov v1.s[2], v0.s[0] @@ -4276,34 +4276,34 @@ define <4 x float> @log2_v4f32(<4 x float> %a) { ; CHECK-SD-LABEL: log2_v4f32: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: mov s0, v0.s[1] ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl log2f -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: bl log2f -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[3] -; CHECK-SD-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl log2f -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v1.s[3], v0.s[0] ; CHECK-SD-NEXT: mov v0.16b, v1.16b ; CHECK-SD-NEXT: add sp, sp, #48 @@ -4312,9 +4312,9 @@ define <4 x float> @log2_v4f32(<4 x float> %a) { ; CHECK-GI-LABEL: log2_v4f32: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #80 -; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #56] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #72] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #72] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 80 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -4326,24 +4326,24 @@ define <4 x float> @log2_v4f32(<4 x float> %a) { ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s9 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s10 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: ldp q2, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #72] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #72] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #56] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.s[1], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.s[2], v2.s[0] ; CHECK-GI-NEXT: mov v1.s[3], v0.s[0] ; CHECK-GI-NEXT: mov v0.16b, v1.16b @@ -4358,61 +4358,61 @@ define <8 x float> @log2_v8f32(<8 x float> %a) { ; CHECK-SD-LABEL: log2_v8f32: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: stp q0, q1, [sp] // 32-byte Folded Spill ; CHECK-SD-NEXT: mov s0, v0.s[1] ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl log2f -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: bl log2f -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[3] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: bl log2f -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v1.s[3], v0.s[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[1] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl log2f -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: bl log2f -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[3] -; CHECK-SD-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: fmov s2, s0 -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: mov v1.s[3], v2.s[0] ; CHECK-SD-NEXT: add sp, sp, #64 ; CHECK-SD-NEXT: ret @@ -4423,7 +4423,7 @@ define <8 x float> @log2_v8f32(<8 x float> %a) { ; CHECK-GI-NEXT: stp d13, d12, [sp, #112] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d11, d10, [sp, #128] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #144] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #160] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #160] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 176 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -4432,7 +4432,7 @@ define <8 x float> @log2_v8f32(<8 x float> %a) { ; CHECK-GI-NEXT: .cfi_offset b11, -48 ; CHECK-GI-NEXT: .cfi_offset b12, -56 ; CHECK-GI-NEXT: .cfi_offset b13, -64 -; CHECK-GI-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: mov s8, v0.s[1] ; CHECK-GI-NEXT: mov s9, v0.s[2] ; CHECK-GI-NEXT: mov s10, v0.s[3] @@ -4442,48 +4442,48 @@ define <8 x float> @log2_v8f32(<8 x float> %a) { ; CHECK-GI-NEXT: mov s13, v1.s[3] ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s9 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s10 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill +; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s11 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s12 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s13 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: ldp q2, q1, [sp, #48] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #160] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #160] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #144] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #128] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.s[1], v2.s[0] ; CHECK-GI-NEXT: ldp q2, q3, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: ldp d13, d12, [sp, #112] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v3.s[1], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp, #96] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #96] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.s[2], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.s[2], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.s[3], v2.s[0] ; CHECK-GI-NEXT: mov v3.s[3], v0.s[0] ; CHECK-GI-NEXT: mov v2.16b, v1.16b @@ -4500,69 +4500,69 @@ define <7 x half> @log2_v7f16(<7 x half> %a) { ; CHECK-SD-LABEL: log2_v7f16: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: mov h1, v0.h[1] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h1 ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v0.h[1], v1.h[0] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: fcvt h1, s0 -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.h[7], v1.h[0] ; CHECK-SD-NEXT: add sp, sp, #48 ; CHECK-SD-NEXT: ret @@ -4573,7 +4573,7 @@ define <7 x half> @log2_v7f16(<7 x half> %a) { ; CHECK-GI-NEXT: stp d13, d12, [sp, #96] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d11, d10, [sp, #112] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #128] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #144] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #144] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 160 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -4592,47 +4592,47 @@ define <7 x half> @log2_v7f16(<7 x half> %a) { ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: fcvt s1, h8 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: fcvt s1, h9 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: fcvt s1, h10 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: fcvt s1, h11 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: fcvt s1, h12 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: fcvt s1, h13 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: ldp q3, q2, [sp, #48] // 32-byte Folded Reload ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: ldr q1, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #128] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #112] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #144] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #144] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.h[1], v3.h[0] ; CHECK-GI-NEXT: ldp d13, d12, [sp, #96] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] ; CHECK-GI-NEXT: ldp q2, q3, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[3], v3.h[0] ; CHECK-GI-NEXT: mov v1.h[4], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[5], v2.h[0] ; CHECK-GI-NEXT: mov v1.h[6], v0.h[0] ; CHECK-GI-NEXT: mov v0.16b, v1.16b @@ -4647,39 +4647,39 @@ define <4 x half> @log2_v4f16(<4 x half> %a) { ; CHECK-SD-LABEL: log2_v4f16: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-SD-NEXT: mov h1, v0.h[1] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h1 ; CHECK-SD-NEXT: bl log2f -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: fcvt h0, s0 ; CHECK-SD-NEXT: fcvt s1, h1 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: fmov s0, s1 ; CHECK-SD-NEXT: bl log2f -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: fcvt h2, s0 ; CHECK-SD-NEXT: mov h1, v1.h[2] ; CHECK-SD-NEXT: fcvt s0, h1 -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov v2.h[1], v1.h[0] -; CHECK-SD-NEXT: str q2, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q2, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl log2f -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: fcvt h2, s0 ; CHECK-SD-NEXT: mov h1, v1.h[3] ; CHECK-SD-NEXT: fcvt s0, h1 -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v2.h[0] -; CHECK-SD-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: fcvt h1, s0 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.h[3], v1.h[0] ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: add sp, sp, #48 @@ -4688,9 +4688,9 @@ define <4 x half> @log2_v4f16(<4 x half> %a) { ; CHECK-GI-LABEL: log2_v4f16: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #80 -; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #56] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #72] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #72] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 80 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -4704,25 +4704,25 @@ define <4 x half> @log2_v4f16(<4 x half> %a) { ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: fcvt s1, h8 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: fcvt s1, h9 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: fcvt s1, h10 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: ldp q3, q2, [sp] // 32-byte Folded Reload ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #56] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #72] // 8-byte Folded Reload -; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #72] // 8-byte Reload +; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.h[1], v3.h[0] ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] ; CHECK-GI-NEXT: mov v1.h[3], v0.h[0] @@ -4739,69 +4739,69 @@ define <8 x half> @log2_v8f16(<8 x half> %a) { ; CHECK-SD-LABEL: log2_v8f16: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: mov h1, v0.h[1] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h1 ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v0.h[1], v1.h[0] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: fcvt h1, s0 -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.h[7], v1.h[0] ; CHECK-SD-NEXT: add sp, sp, #48 ; CHECK-SD-NEXT: ret @@ -4809,11 +4809,11 @@ define <8 x half> @log2_v8f16(<8 x half> %a) { ; CHECK-GI-LABEL: log2_v8f16: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #176 -; CHECK-GI-NEXT: str d14, [sp, #112] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d14, [sp, #112] // 8-byte Spill ; CHECK-GI-NEXT: stp d13, d12, [sp, #120] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d11, d10, [sp, #136] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #152] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #168] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #168] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 176 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -4834,47 +4834,47 @@ define <8 x half> @log2_v8f16(<8 x half> %a) { ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: fcvt s1, h8 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: fcvt s1, h9 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: fcvt s1, h10 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: fcvt s1, h11 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: fcvt s1, h12 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: fcvt s1, h13 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: fcvt s1, h14 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: ldp q3, q2, [sp, #64] // 32-byte Folded Reload ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: ldr q1, [sp, #96] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #96] // 16-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #152] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #136] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #168] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #168] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.h[1], v3.h[0] -; CHECK-GI-NEXT: ldr d14, [sp, #112] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr d14, [sp, #112] // 8-byte Reload ; CHECK-GI-NEXT: ldp d13, d12, [sp, #120] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] ; CHECK-GI-NEXT: ldp q2, q3, [sp, #32] // 32-byte Folded Reload @@ -4896,7 +4896,7 @@ define <16 x half> @log2_v16f16(<16 x half> %a) { ; CHECK-SD-LABEL: log2_v16f16: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: stp q1, q0, [sp] // 32-byte Folded Spill @@ -4904,121 +4904,121 @@ define <16 x half> @log2_v16f16(<16 x half> %a) { ; CHECK-SD-NEXT: fcvt s0, h1 ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v0.h[1], v1.h[0] -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[7], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[1] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v0.h[1], v1.h[0] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log2f ; CHECK-SD-NEXT: fmov s1, s0 -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: fcvt h2, s1 ; CHECK-SD-NEXT: ldp q1, q0, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov v1.h[7], v2.h[0] @@ -5045,7 +5045,7 @@ define <16 x half> @log2_v16f16(<16 x half> %a) { ; CHECK-GI-NEXT: .cfi_offset b14, -72 ; CHECK-GI-NEXT: .cfi_offset b15, -80 ; CHECK-GI-NEXT: mov v2.16b, v1.16b -; CHECK-GI-NEXT: str q1, [sp, #80] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp, #80] // 16-byte Spill ; CHECK-GI-NEXT: mov h14, v1.h[1] ; CHECK-GI-NEXT: mov h1, v1.h[2] ; CHECK-GI-NEXT: mov h15, v0.h[1] @@ -5056,132 +5056,132 @@ define <16 x half> @log2_v16f16(<16 x half> %a) { ; CHECK-GI-NEXT: mov h12, v0.h[6] ; CHECK-GI-NEXT: mov h13, v0.h[7] ; CHECK-GI-NEXT: fcvt s0, h0 -; CHECK-GI-NEXT: str h1, [sp, #16] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #16] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[3] -; CHECK-GI-NEXT: str h1, [sp, #32] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #32] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[4] -; CHECK-GI-NEXT: str h1, [sp, #48] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #48] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[5] -; CHECK-GI-NEXT: str h1, [sp, #64] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #64] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[6] -; CHECK-GI-NEXT: str h1, [sp, #96] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #96] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[7] -; CHECK-GI-NEXT: str h1, [sp, #160] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #160] // 2-byte Spill ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: fcvt s1, h15 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #192] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #192] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: fcvt s1, h8 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #112] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #112] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: fcvt s1, h9 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #224] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #224] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: fcvt s1, h10 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #208] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #208] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: fcvt s1, h11 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #176] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #176] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: fcvt s1, h12 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #144] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #144] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: fcvt s1, h13 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #128] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #128] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log2f -; CHECK-GI-NEXT: ldr q1, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log2f ; CHECK-GI-NEXT: fcvt s1, h14 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log2f -; CHECK-GI-NEXT: ldr h1, [sp, #16] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #16] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log2f -; CHECK-GI-NEXT: ldr h1, [sp, #32] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #32] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log2f -; CHECK-GI-NEXT: ldr h1, [sp, #48] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #48] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log2f -; CHECK-GI-NEXT: ldr h1, [sp, #64] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #64] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log2f -; CHECK-GI-NEXT: ldr h1, [sp, #96] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #96] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log2f -; CHECK-GI-NEXT: ldr h1, [sp, #160] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #160] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #160] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #160] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log2f -; CHECK-GI-NEXT: ldr q3, [sp, #192] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr q2, [sp, #112] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q3, [sp, #192] // 16-byte Reload +; CHECK-GI-NEXT: ldr q2, [sp, #112] // 16-byte Reload ; CHECK-GI-NEXT: ldp x29, x30, [sp, #304] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v3.h[1], v2.h[0] ; CHECK-GI-NEXT: ldp q1, q2, [sp] // 32-byte Folded Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #288] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #272] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[1], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #224] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #224] // 16-byte Reload ; CHECK-GI-NEXT: ldp d13, d12, [sp, #256] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v3.h[2], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: ldp d15, d14, [sp, #240] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #208] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #208] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[3], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #48] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #48] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[3], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #176] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #176] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[4], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #64] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #64] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[4], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #144] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #144] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[5], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #96] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #96] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[5], v2.h[0] ; CHECK-GI-NEXT: fcvt h2, s0 -; CHECK-GI-NEXT: ldr q0, [sp, #128] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #128] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[6], v0.h[0] -; CHECK-GI-NEXT: ldr q0, [sp, #160] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #160] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[6], v0.h[0] -; CHECK-GI-NEXT: ldr q0, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[7], v0.h[0] ; CHECK-GI-NEXT: mov v1.h[7], v2.h[0] ; CHECK-GI-NEXT: mov v0.16b, v3.16b @@ -5196,17 +5196,17 @@ define <2 x fp128> @log2_v2fp128(<2 x fp128> %a) { ; CHECK-LABEL: log2_v2fp128: ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NEXT: .cfi_offset w30, -16 -; CHECK-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-NEXT: bl log2l -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: bl log2l ; CHECK-NEXT: mov v1.16b, v0.16b -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #48 ; CHECK-NEXT: ret entry: @@ -5275,20 +5275,20 @@ define <2 x double> @log10_v2f64(<2 x double> %a) { ; CHECK-SD-LABEL: log10_v2f64: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov d0, v0.d[1] ; CHECK-SD-NEXT: bl log10 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: bl log10 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.d[1], v1.d[0] ; CHECK-SD-NEXT: add sp, sp, #48 ; CHECK-SD-NEXT: ret @@ -5296,8 +5296,8 @@ define <2 x double> @log10_v2f64(<2 x double> %a) { ; CHECK-GI-LABEL: log10_v2f64: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #32 -; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Spill +; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -5305,13 +5305,13 @@ define <2 x double> @log10_v2f64(<2 x double> %a) { ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-GI-NEXT: bl log10 ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov d0, d8 ; CHECK-GI-NEXT: bl log10 -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload -; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Reload +; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.d[1], v0.d[0] ; CHECK-GI-NEXT: mov v0.16b, v1.16b ; CHECK-GI-NEXT: add sp, sp, #32 @@ -5326,7 +5326,7 @@ define <3 x double> @log10_v3f64(<3 x double> %a) { ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: str d10, [sp, #-32]! // 8-byte Folded Spill ; CHECK-SD-NEXT: stp d9, d8, [sp, #8] // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 32 ; CHECK-SD-NEXT: .cfi_offset w30, -8 ; CHECK-SD-NEXT: .cfi_offset b8, -16 @@ -5343,7 +5343,7 @@ define <3 x double> @log10_v3f64(<3 x double> %a) { ; CHECK-SD-NEXT: bl log10 ; CHECK-SD-NEXT: fmov d1, d9 ; CHECK-SD-NEXT: ldp d9, d8, [sp, #8] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #24] // 8-byte Reload ; CHECK-SD-NEXT: fmov d2, d0 ; CHECK-SD-NEXT: fmov d0, d10 ; CHECK-SD-NEXT: ldr d10, [sp], #32 // 8-byte Folded Reload @@ -5353,7 +5353,7 @@ define <3 x double> @log10_v3f64(<3 x double> %a) { ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: str d10, [sp, #-32]! // 8-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #8] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -5370,7 +5370,7 @@ define <3 x double> @log10_v3f64(<3 x double> %a) { ; CHECK-GI-NEXT: bl log10 ; CHECK-GI-NEXT: fmov d1, d8 ; CHECK-GI-NEXT: ldp d9, d8, [sp, #8] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Reload ; CHECK-GI-NEXT: fmov d2, d0 ; CHECK-GI-NEXT: fmov d0, d10 ; CHECK-GI-NEXT: ldr d10, [sp], #32 // 8-byte Folded Reload @@ -5384,33 +5384,33 @@ define <4 x double> @log10_v4f64(<4 x double> %a) { ; CHECK-SD-LABEL: log10_v4f64: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov d0, v0.d[1] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: bl log10 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: bl log10 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-SD-NEXT: mov v0.d[1], v1.d[0] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov d0, v0.d[1] ; CHECK-SD-NEXT: bl log10 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: bl log10 ; CHECK-SD-NEXT: fmov d1, d0 ; CHECK-SD-NEXT: ldp q2, q0, [sp] // 32-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: mov v1.d[1], v2.d[0] ; CHECK-SD-NEXT: add sp, sp, #64 ; CHECK-SD-NEXT: ret @@ -5419,35 +5419,35 @@ define <4 x double> @log10_v4f64(<4 x double> %a) { ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #80 ; CHECK-GI-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 80 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 ; CHECK-GI-NEXT: .cfi_offset b9, -32 -; CHECK-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-GI-NEXT: mov d8, v0.d[1] ; CHECK-GI-NEXT: mov d9, v1.d[1] ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-GI-NEXT: bl log10 ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov d0, d8 ; CHECK-GI-NEXT: bl log10 ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-GI-NEXT: bl log10 ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov d0, d9 ; CHECK-GI-NEXT: bl log10 ; CHECK-GI-NEXT: ldp q1, q2, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v2.d[1], v1.d[0] -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.d[1], v0.d[0] ; CHECK-GI-NEXT: mov v0.16b, v2.16b ; CHECK-GI-NEXT: add sp, sp, #80 @@ -5461,21 +5461,21 @@ define <2 x float> @log10_v2f32(<2 x float> %a) { ; CHECK-SD-LABEL: log10_v2f32: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov s0, v0.s[1] ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl log10f -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: add sp, sp, #48 @@ -5484,8 +5484,8 @@ define <2 x float> @log10_v2f32(<2 x float> %a) { ; CHECK-GI-LABEL: log10_v2f32: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #32 -; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Spill +; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -5494,13 +5494,13 @@ define <2 x float> @log10_v2f32(<2 x float> %a) { ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl log10f -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload -; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Reload +; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.s[1], v0.s[0] ; CHECK-GI-NEXT: fmov d0, d1 ; CHECK-GI-NEXT: add sp, sp, #32 @@ -5514,27 +5514,27 @@ define <3 x float> @log10_v3f32(<3 x float> %a) { ; CHECK-SD-LABEL: log10_v3f32: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: mov s0, v0.s[1] ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl log10f -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: bl log10f -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] ; CHECK-SD-NEXT: mov v0.16b, v1.16b ; CHECK-SD-NEXT: add sp, sp, #48 @@ -5544,7 +5544,7 @@ define <3 x float> @log10_v3f32(<3 x float> %a) { ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #64 ; CHECK-GI-NEXT: stp d9, d8, [sp, #32] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 64 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -5554,16 +5554,16 @@ define <3 x float> @log10_v3f32(<3 x float> %a) { ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s9 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: ldp q2, q1, [sp] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #32] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.s[1], v2.s[0] ; CHECK-GI-NEXT: mov v1.s[2], v0.s[0] @@ -5579,34 +5579,34 @@ define <4 x float> @log10_v4f32(<4 x float> %a) { ; CHECK-SD-LABEL: log10_v4f32: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: mov s0, v0.s[1] ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl log10f -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: bl log10f -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[3] -; CHECK-SD-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl log10f -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v1.s[3], v0.s[0] ; CHECK-SD-NEXT: mov v0.16b, v1.16b ; CHECK-SD-NEXT: add sp, sp, #48 @@ -5615,9 +5615,9 @@ define <4 x float> @log10_v4f32(<4 x float> %a) { ; CHECK-GI-LABEL: log10_v4f32: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #80 -; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #56] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #72] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #72] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 80 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -5629,24 +5629,24 @@ define <4 x float> @log10_v4f32(<4 x float> %a) { ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s9 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s10 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: ldp q2, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #72] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #72] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #56] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.s[1], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.s[2], v2.s[0] ; CHECK-GI-NEXT: mov v1.s[3], v0.s[0] ; CHECK-GI-NEXT: mov v0.16b, v1.16b @@ -5661,61 +5661,61 @@ define <8 x float> @log10_v8f32(<8 x float> %a) { ; CHECK-SD-LABEL: log10_v8f32: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: stp q0, q1, [sp] // 32-byte Folded Spill ; CHECK-SD-NEXT: mov s0, v0.s[1] ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl log10f -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: bl log10f -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[3] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: bl log10f -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v1.s[3], v0.s[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[1] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl log10f -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: bl log10f -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[3] -; CHECK-SD-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: fmov s2, s0 -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: mov v1.s[3], v2.s[0] ; CHECK-SD-NEXT: add sp, sp, #64 ; CHECK-SD-NEXT: ret @@ -5726,7 +5726,7 @@ define <8 x float> @log10_v8f32(<8 x float> %a) { ; CHECK-GI-NEXT: stp d13, d12, [sp, #112] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d11, d10, [sp, #128] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #144] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #160] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #160] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 176 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -5735,7 +5735,7 @@ define <8 x float> @log10_v8f32(<8 x float> %a) { ; CHECK-GI-NEXT: .cfi_offset b11, -48 ; CHECK-GI-NEXT: .cfi_offset b12, -56 ; CHECK-GI-NEXT: .cfi_offset b13, -64 -; CHECK-GI-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: mov s8, v0.s[1] ; CHECK-GI-NEXT: mov s9, v0.s[2] ; CHECK-GI-NEXT: mov s10, v0.s[3] @@ -5745,48 +5745,48 @@ define <8 x float> @log10_v8f32(<8 x float> %a) { ; CHECK-GI-NEXT: mov s13, v1.s[3] ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s9 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s10 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill +; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s11 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s12 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s13 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: ldp q2, q1, [sp, #48] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #160] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #160] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #144] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #128] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.s[1], v2.s[0] ; CHECK-GI-NEXT: ldp q2, q3, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: ldp d13, d12, [sp, #112] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v3.s[1], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp, #96] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #96] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.s[2], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.s[2], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.s[3], v2.s[0] ; CHECK-GI-NEXT: mov v3.s[3], v0.s[0] ; CHECK-GI-NEXT: mov v2.16b, v1.16b @@ -5803,69 +5803,69 @@ define <7 x half> @log10_v7f16(<7 x half> %a) { ; CHECK-SD-LABEL: log10_v7f16: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: mov h1, v0.h[1] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h1 ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v0.h[1], v1.h[0] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: fcvt h1, s0 -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.h[7], v1.h[0] ; CHECK-SD-NEXT: add sp, sp, #48 ; CHECK-SD-NEXT: ret @@ -5876,7 +5876,7 @@ define <7 x half> @log10_v7f16(<7 x half> %a) { ; CHECK-GI-NEXT: stp d13, d12, [sp, #96] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d11, d10, [sp, #112] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #128] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #144] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #144] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 160 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -5895,47 +5895,47 @@ define <7 x half> @log10_v7f16(<7 x half> %a) { ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: fcvt s1, h8 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: fcvt s1, h9 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: fcvt s1, h10 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: fcvt s1, h11 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: fcvt s1, h12 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: fcvt s1, h13 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: ldp q3, q2, [sp, #48] // 32-byte Folded Reload ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: ldr q1, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #128] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #112] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #144] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #144] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.h[1], v3.h[0] ; CHECK-GI-NEXT: ldp d13, d12, [sp, #96] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] ; CHECK-GI-NEXT: ldp q2, q3, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[3], v3.h[0] ; CHECK-GI-NEXT: mov v1.h[4], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[5], v2.h[0] ; CHECK-GI-NEXT: mov v1.h[6], v0.h[0] ; CHECK-GI-NEXT: mov v0.16b, v1.16b @@ -5950,39 +5950,39 @@ define <4 x half> @log10_v4f16(<4 x half> %a) { ; CHECK-SD-LABEL: log10_v4f16: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-SD-NEXT: mov h1, v0.h[1] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h1 ; CHECK-SD-NEXT: bl log10f -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: fcvt h0, s0 ; CHECK-SD-NEXT: fcvt s1, h1 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: fmov s0, s1 ; CHECK-SD-NEXT: bl log10f -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: fcvt h2, s0 ; CHECK-SD-NEXT: mov h1, v1.h[2] ; CHECK-SD-NEXT: fcvt s0, h1 -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov v2.h[1], v1.h[0] -; CHECK-SD-NEXT: str q2, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q2, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl log10f -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: fcvt h2, s0 ; CHECK-SD-NEXT: mov h1, v1.h[3] ; CHECK-SD-NEXT: fcvt s0, h1 -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v2.h[0] -; CHECK-SD-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: fcvt h1, s0 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.h[3], v1.h[0] ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: add sp, sp, #48 @@ -5991,9 +5991,9 @@ define <4 x half> @log10_v4f16(<4 x half> %a) { ; CHECK-GI-LABEL: log10_v4f16: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #80 -; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #56] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #72] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #72] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 80 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -6007,25 +6007,25 @@ define <4 x half> @log10_v4f16(<4 x half> %a) { ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: fcvt s1, h8 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: fcvt s1, h9 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: fcvt s1, h10 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: ldp q3, q2, [sp] // 32-byte Folded Reload ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #56] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #72] // 8-byte Folded Reload -; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #72] // 8-byte Reload +; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.h[1], v3.h[0] ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] ; CHECK-GI-NEXT: mov v1.h[3], v0.h[0] @@ -6042,69 +6042,69 @@ define <8 x half> @log10_v8f16(<8 x half> %a) { ; CHECK-SD-LABEL: log10_v8f16: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: mov h1, v0.h[1] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h1 ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v0.h[1], v1.h[0] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: fcvt h1, s0 -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.h[7], v1.h[0] ; CHECK-SD-NEXT: add sp, sp, #48 ; CHECK-SD-NEXT: ret @@ -6112,11 +6112,11 @@ define <8 x half> @log10_v8f16(<8 x half> %a) { ; CHECK-GI-LABEL: log10_v8f16: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #176 -; CHECK-GI-NEXT: str d14, [sp, #112] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d14, [sp, #112] // 8-byte Spill ; CHECK-GI-NEXT: stp d13, d12, [sp, #120] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d11, d10, [sp, #136] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #152] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #168] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #168] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 176 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -6137,47 +6137,47 @@ define <8 x half> @log10_v8f16(<8 x half> %a) { ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: fcvt s1, h8 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: fcvt s1, h9 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: fcvt s1, h10 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: fcvt s1, h11 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: fcvt s1, h12 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: fcvt s1, h13 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: fcvt s1, h14 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: ldp q3, q2, [sp, #64] // 32-byte Folded Reload ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: ldr q1, [sp, #96] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #96] // 16-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #152] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #136] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #168] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #168] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.h[1], v3.h[0] -; CHECK-GI-NEXT: ldr d14, [sp, #112] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr d14, [sp, #112] // 8-byte Reload ; CHECK-GI-NEXT: ldp d13, d12, [sp, #120] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] ; CHECK-GI-NEXT: ldp q2, q3, [sp, #32] // 32-byte Folded Reload @@ -6199,7 +6199,7 @@ define <16 x half> @log10_v16f16(<16 x half> %a) { ; CHECK-SD-LABEL: log10_v16f16: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: stp q1, q0, [sp] // 32-byte Folded Spill @@ -6207,121 +6207,121 @@ define <16 x half> @log10_v16f16(<16 x half> %a) { ; CHECK-SD-NEXT: fcvt s0, h1 ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v0.h[1], v1.h[0] -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[7], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[1] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v0.h[1], v1.h[0] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl log10f ; CHECK-SD-NEXT: fmov s1, s0 -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: fcvt h2, s1 ; CHECK-SD-NEXT: ldp q1, q0, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov v1.h[7], v2.h[0] @@ -6348,7 +6348,7 @@ define <16 x half> @log10_v16f16(<16 x half> %a) { ; CHECK-GI-NEXT: .cfi_offset b14, -72 ; CHECK-GI-NEXT: .cfi_offset b15, -80 ; CHECK-GI-NEXT: mov v2.16b, v1.16b -; CHECK-GI-NEXT: str q1, [sp, #80] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp, #80] // 16-byte Spill ; CHECK-GI-NEXT: mov h14, v1.h[1] ; CHECK-GI-NEXT: mov h1, v1.h[2] ; CHECK-GI-NEXT: mov h15, v0.h[1] @@ -6359,132 +6359,132 @@ define <16 x half> @log10_v16f16(<16 x half> %a) { ; CHECK-GI-NEXT: mov h12, v0.h[6] ; CHECK-GI-NEXT: mov h13, v0.h[7] ; CHECK-GI-NEXT: fcvt s0, h0 -; CHECK-GI-NEXT: str h1, [sp, #16] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #16] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[3] -; CHECK-GI-NEXT: str h1, [sp, #32] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #32] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[4] -; CHECK-GI-NEXT: str h1, [sp, #48] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #48] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[5] -; CHECK-GI-NEXT: str h1, [sp, #64] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #64] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[6] -; CHECK-GI-NEXT: str h1, [sp, #96] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #96] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[7] -; CHECK-GI-NEXT: str h1, [sp, #160] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #160] // 2-byte Spill ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: fcvt s1, h15 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #192] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #192] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: fcvt s1, h8 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #112] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #112] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: fcvt s1, h9 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #224] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #224] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: fcvt s1, h10 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #208] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #208] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: fcvt s1, h11 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #176] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #176] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: fcvt s1, h12 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #144] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #144] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: fcvt s1, h13 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #128] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #128] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log10f -; CHECK-GI-NEXT: ldr q1, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log10f ; CHECK-GI-NEXT: fcvt s1, h14 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log10f -; CHECK-GI-NEXT: ldr h1, [sp, #16] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #16] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log10f -; CHECK-GI-NEXT: ldr h1, [sp, #32] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #32] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log10f -; CHECK-GI-NEXT: ldr h1, [sp, #48] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #48] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log10f -; CHECK-GI-NEXT: ldr h1, [sp, #64] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #64] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log10f -; CHECK-GI-NEXT: ldr h1, [sp, #96] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #96] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log10f -; CHECK-GI-NEXT: ldr h1, [sp, #160] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #160] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #160] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #160] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl log10f -; CHECK-GI-NEXT: ldr q3, [sp, #192] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr q2, [sp, #112] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q3, [sp, #192] // 16-byte Reload +; CHECK-GI-NEXT: ldr q2, [sp, #112] // 16-byte Reload ; CHECK-GI-NEXT: ldp x29, x30, [sp, #304] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v3.h[1], v2.h[0] ; CHECK-GI-NEXT: ldp q1, q2, [sp] // 32-byte Folded Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #288] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #272] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[1], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #224] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #224] // 16-byte Reload ; CHECK-GI-NEXT: ldp d13, d12, [sp, #256] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v3.h[2], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: ldp d15, d14, [sp, #240] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #208] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #208] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[3], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #48] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #48] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[3], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #176] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #176] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[4], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #64] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #64] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[4], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #144] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #144] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[5], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #96] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #96] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[5], v2.h[0] ; CHECK-GI-NEXT: fcvt h2, s0 -; CHECK-GI-NEXT: ldr q0, [sp, #128] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #128] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[6], v0.h[0] -; CHECK-GI-NEXT: ldr q0, [sp, #160] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #160] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[6], v0.h[0] -; CHECK-GI-NEXT: ldr q0, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[7], v0.h[0] ; CHECK-GI-NEXT: mov v1.h[7], v2.h[0] ; CHECK-GI-NEXT: mov v0.16b, v3.16b @@ -6499,17 +6499,17 @@ define <2 x fp128> @log10_v2fp128(<2 x fp128> %a) { ; CHECK-LABEL: log10_v2fp128: ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NEXT: .cfi_offset w30, -16 -; CHECK-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-NEXT: bl log10l -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: bl log10l ; CHECK-NEXT: mov v1.16b, v0.16b -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #48 ; CHECK-NEXT: ret entry: diff --git a/llvm/test/CodeGen/AArch64/fold-int-pow2-with-fmul-or-fdiv.ll b/llvm/test/CodeGen/AArch64/fold-int-pow2-with-fmul-or-fdiv.ll index b65334e2461fd..118c627f1041b 100644 --- a/llvm/test/CodeGen/AArch64/fold-int-pow2-with-fmul-or-fdiv.ll +++ b/llvm/test/CodeGen/AArch64/fold-int-pow2-with-fmul-or-fdiv.ll @@ -44,38 +44,38 @@ define <4 x float> @fmul_pow2_ldexp_4xfloat(<4 x i32> %i) { ; CHECK-NEON-LABEL: fmul_pow2_ldexp_4xfloat: ; CHECK-NEON: // %bb.0: ; CHECK-NEON-NEXT: sub sp, sp, #48 -; CHECK-NEON-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEON-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEON-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NEON-NEXT: .cfi_offset w30, -16 ; CHECK-NEON-NEXT: mov w0, v0.s[1] -; CHECK-NEON-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-NEON-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-NEON-NEXT: fmov s0, #9.00000000 ; CHECK-NEON-NEXT: bl ldexpf -; CHECK-NEON-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-NEON-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-NEON-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEON-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEON-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEON-NEXT: fmov s0, #9.00000000 ; CHECK-NEON-NEXT: fmov w0, s1 ; CHECK-NEON-NEXT: bl ldexpf -; CHECK-NEON-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEON-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEON-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-NEON-NEXT: mov v0.s[1], v1.s[0] -; CHECK-NEON-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEON-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEON-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEON-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEON-NEXT: mov w0, v0.s[2] ; CHECK-NEON-NEXT: fmov s0, #9.00000000 ; CHECK-NEON-NEXT: bl ldexpf -; CHECK-NEON-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEON-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEON-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-NEON-NEXT: mov v1.s[2], v0.s[0] -; CHECK-NEON-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEON-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEON-NEXT: mov w0, v0.s[3] ; CHECK-NEON-NEXT: fmov s0, #9.00000000 -; CHECK-NEON-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-NEON-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-NEON-NEXT: bl ldexpf -; CHECK-NEON-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEON-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEON-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEON-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEON-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEON-NEXT: mov v1.s[3], v0.s[0] ; CHECK-NEON-NEXT: mov v0.16b, v1.16b ; CHECK-NEON-NEXT: add sp, sp, #48 diff --git a/llvm/test/CodeGen/AArch64/fp8-sme2-cvtn.ll b/llvm/test/CodeGen/AArch64/fp8-sme2-cvtn.ll index 6a91d85a71baf..3afeaf4e5043e 100644 --- a/llvm/test/CodeGen/AArch64/fp8-sme2-cvtn.ll +++ b/llvm/test/CodeGen/AArch64/fp8-sme2-cvtn.ll @@ -8,7 +8,7 @@ define { , } @cvtn_f16_tuple(i64 %stride, p ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-3 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: str z11, [sp, #1, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z10, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x48, 0x1e, 0x22 // sp + 16 + 24 * VG @@ -23,7 +23,7 @@ define { , } @cvtn_f16_tuple(i64 %stride, p ; CHECK-NEXT: fcvtn z1.b, { z10.h, z11.h } ; CHECK-NEXT: ldr z11, [sp, #1, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z10, [sp, #2, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #3 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -49,7 +49,7 @@ define { , } @cvtnt_f32_tuple(i64 %stride, ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-3 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: str z11, [sp, #1, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z10, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x48, 0x1e, 0x22 // sp + 16 + 24 * VG @@ -65,7 +65,7 @@ define { , } @cvtnt_f32_tuple(i64 %stride, ; CHECK-NEXT: fcvtnt z1.b, { z10.s, z11.s } ; CHECK-NEXT: ldr z11, [sp, #1, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z10, [sp, #2, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #3 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret diff --git a/llvm/test/CodeGen/AArch64/fpclamptosat_vec.ll b/llvm/test/CodeGen/AArch64/fpclamptosat_vec.ll index 637c02875b84e..21c1b82dc4404 100644 --- a/llvm/test/CodeGen/AArch64/fpclamptosat_vec.ll +++ b/llvm/test/CodeGen/AArch64/fpclamptosat_vec.ll @@ -698,7 +698,7 @@ define <2 x i64> @stest_f64i64(<2 x double> %x) { ; CHECK-CVT-GI-LABEL: stest_f64i64: ; CHECK-CVT-GI: // %bb.0: // %entry ; CHECK-CVT-GI-NEXT: str d8, [sp, #-48]! // 8-byte Folded Spill -; CHECK-CVT-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-CVT-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-CVT-GI-NEXT: stp x22, x21, [sp, #16] // 16-byte Folded Spill ; CHECK-CVT-GI-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-CVT-GI-NEXT: .cfi_def_cfa_offset 48 @@ -718,7 +718,7 @@ define <2 x i64> @stest_f64i64(<2 x double> %x) { ; CHECK-CVT-GI-NEXT: mov x20, x1 ; CHECK-CVT-GI-NEXT: bl __fixdfti ; CHECK-CVT-GI-NEXT: cmp x19, x21 -; CHECK-CVT-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-CVT-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-CVT-GI-NEXT: cset w8, lo ; CHECK-CVT-GI-NEXT: cmp x20, #0 ; CHECK-CVT-GI-NEXT: cset w9, mi @@ -760,7 +760,7 @@ define <2 x i64> @stest_f64i64(<2 x double> %x) { ; CHECK-FP16-GI-LABEL: stest_f64i64: ; CHECK-FP16-GI: // %bb.0: // %entry ; CHECK-FP16-GI-NEXT: str d8, [sp, #-48]! // 8-byte Folded Spill -; CHECK-FP16-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-FP16-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-FP16-GI-NEXT: stp x22, x21, [sp, #16] // 16-byte Folded Spill ; CHECK-FP16-GI-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-GI-NEXT: .cfi_def_cfa_offset 48 @@ -780,7 +780,7 @@ define <2 x i64> @stest_f64i64(<2 x double> %x) { ; CHECK-FP16-GI-NEXT: mov x20, x1 ; CHECK-FP16-GI-NEXT: bl __fixdfti ; CHECK-FP16-GI-NEXT: cmp x19, x21 -; CHECK-FP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-FP16-GI-NEXT: cset w8, lo ; CHECK-FP16-GI-NEXT: cmp x20, #0 ; CHECK-FP16-GI-NEXT: cset w9, mi @@ -832,22 +832,22 @@ define <2 x i64> @utest_f64i64(<2 x double> %x) { ; CHECK-CVT-SD-LABEL: utest_f64i64: ; CHECK-CVT-SD: // %bb.0: // %entry ; CHECK-CVT-SD-NEXT: sub sp, sp, #48 -; CHECK-CVT-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-CVT-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-CVT-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-CVT-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-CVT-SD-NEXT: .cfi_offset w19, -8 ; CHECK-CVT-SD-NEXT: .cfi_offset w20, -16 ; CHECK-CVT-SD-NEXT: .cfi_offset w30, -32 -; CHECK-CVT-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-CVT-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-CVT-SD-NEXT: mov d0, v0.d[1] ; CHECK-CVT-SD-NEXT: bl __fixunsdfti -; CHECK-CVT-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-CVT-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-CVT-SD-NEXT: mov x19, x0 ; CHECK-CVT-SD-NEXT: mov x20, x1 ; CHECK-CVT-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-CVT-SD-NEXT: bl __fixunsdfti ; CHECK-CVT-SD-NEXT: cmp x1, #0 -; CHECK-CVT-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-CVT-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-CVT-SD-NEXT: csel x8, x0, xzr, eq ; CHECK-CVT-SD-NEXT: cmp x20, #0 ; CHECK-CVT-SD-NEXT: csel x9, x19, xzr, eq @@ -861,22 +861,22 @@ define <2 x i64> @utest_f64i64(<2 x double> %x) { ; CHECK-FP16-SD-LABEL: utest_f64i64: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #48 -; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-FP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-SD-NEXT: .cfi_offset w19, -8 ; CHECK-FP16-SD-NEXT: .cfi_offset w20, -16 ; CHECK-FP16-SD-NEXT: .cfi_offset w30, -32 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-SD-NEXT: mov d0, v0.d[1] ; CHECK-FP16-SD-NEXT: bl __fixunsdfti -; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-FP16-SD-NEXT: mov x19, x0 ; CHECK-FP16-SD-NEXT: mov x20, x1 ; CHECK-FP16-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-FP16-SD-NEXT: bl __fixunsdfti ; CHECK-FP16-SD-NEXT: cmp x1, #0 -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-FP16-SD-NEXT: csel x8, x0, xzr, eq ; CHECK-FP16-SD-NEXT: cmp x20, #0 ; CHECK-FP16-SD-NEXT: csel x9, x19, xzr, eq @@ -890,7 +890,7 @@ define <2 x i64> @utest_f64i64(<2 x double> %x) { ; CHECK-CVT-GI-LABEL: utest_f64i64: ; CHECK-CVT-GI: // %bb.0: // %entry ; CHECK-CVT-GI-NEXT: str d8, [sp, #-32]! // 8-byte Folded Spill -; CHECK-CVT-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-CVT-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-CVT-GI-NEXT: stp x20, x19, [sp, #16] // 16-byte Folded Spill ; CHECK-CVT-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-CVT-GI-NEXT: .cfi_offset w19, -8 @@ -905,7 +905,7 @@ define <2 x i64> @utest_f64i64(<2 x double> %x) { ; CHECK-CVT-GI-NEXT: mov x20, x1 ; CHECK-CVT-GI-NEXT: bl __fixunsdfti ; CHECK-CVT-GI-NEXT: cmp x20, #1 -; CHECK-CVT-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-CVT-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-CVT-GI-NEXT: cset w8, lo ; CHECK-CVT-GI-NEXT: csel w8, wzr, w8, eq ; CHECK-CVT-GI-NEXT: cmp x1, #1 @@ -924,7 +924,7 @@ define <2 x i64> @utest_f64i64(<2 x double> %x) { ; CHECK-FP16-GI-LABEL: utest_f64i64: ; CHECK-FP16-GI: // %bb.0: // %entry ; CHECK-FP16-GI-NEXT: str d8, [sp, #-32]! // 8-byte Folded Spill -; CHECK-FP16-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-FP16-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-FP16-GI-NEXT: stp x20, x19, [sp, #16] // 16-byte Folded Spill ; CHECK-FP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-FP16-GI-NEXT: .cfi_offset w19, -8 @@ -939,7 +939,7 @@ define <2 x i64> @utest_f64i64(<2 x double> %x) { ; CHECK-FP16-GI-NEXT: mov x20, x1 ; CHECK-FP16-GI-NEXT: bl __fixunsdfti ; CHECK-FP16-GI-NEXT: cmp x20, #1 -; CHECK-FP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-FP16-GI-NEXT: cset w8, lo ; CHECK-FP16-GI-NEXT: csel w8, wzr, w8, eq ; CHECK-FP16-GI-NEXT: cmp x1, #1 @@ -966,22 +966,22 @@ define <2 x i64> @ustest_f64i64(<2 x double> %x) { ; CHECK-CVT-SD-LABEL: ustest_f64i64: ; CHECK-CVT-SD: // %bb.0: // %entry ; CHECK-CVT-SD-NEXT: sub sp, sp, #48 -; CHECK-CVT-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-CVT-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-CVT-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-CVT-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-CVT-SD-NEXT: .cfi_offset w19, -8 ; CHECK-CVT-SD-NEXT: .cfi_offset w20, -16 ; CHECK-CVT-SD-NEXT: .cfi_offset w30, -32 -; CHECK-CVT-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-CVT-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-CVT-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-CVT-SD-NEXT: bl __fixdfti -; CHECK-CVT-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-CVT-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-CVT-SD-NEXT: mov x19, x0 ; CHECK-CVT-SD-NEXT: mov x20, x1 ; CHECK-CVT-SD-NEXT: mov d0, v0.d[1] ; CHECK-CVT-SD-NEXT: bl __fixdfti ; CHECK-CVT-SD-NEXT: cmp x1, #1 -; CHECK-CVT-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-CVT-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-CVT-SD-NEXT: csel x8, x0, xzr, lt ; CHECK-CVT-SD-NEXT: csinc x9, x1, xzr, lt ; CHECK-CVT-SD-NEXT: cmp x20, #1 @@ -1003,22 +1003,22 @@ define <2 x i64> @ustest_f64i64(<2 x double> %x) { ; CHECK-FP16-SD-LABEL: ustest_f64i64: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #48 -; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-FP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-SD-NEXT: .cfi_offset w19, -8 ; CHECK-FP16-SD-NEXT: .cfi_offset w20, -16 ; CHECK-FP16-SD-NEXT: .cfi_offset w30, -32 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-FP16-SD-NEXT: bl __fixdfti -; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-FP16-SD-NEXT: mov x19, x0 ; CHECK-FP16-SD-NEXT: mov x20, x1 ; CHECK-FP16-SD-NEXT: mov d0, v0.d[1] ; CHECK-FP16-SD-NEXT: bl __fixdfti ; CHECK-FP16-SD-NEXT: cmp x1, #1 -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-FP16-SD-NEXT: csel x8, x0, xzr, lt ; CHECK-FP16-SD-NEXT: csinc x9, x1, xzr, lt ; CHECK-FP16-SD-NEXT: cmp x20, #1 @@ -1040,7 +1040,7 @@ define <2 x i64> @ustest_f64i64(<2 x double> %x) { ; CHECK-CVT-GI-LABEL: ustest_f64i64: ; CHECK-CVT-GI: // %bb.0: // %entry ; CHECK-CVT-GI-NEXT: str d8, [sp, #-32]! // 8-byte Folded Spill -; CHECK-CVT-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-CVT-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-CVT-GI-NEXT: stp x20, x19, [sp, #16] // 16-byte Folded Spill ; CHECK-CVT-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-CVT-GI-NEXT: .cfi_offset w19, -8 @@ -1055,7 +1055,7 @@ define <2 x i64> @ustest_f64i64(<2 x double> %x) { ; CHECK-CVT-GI-NEXT: mov x20, x1 ; CHECK-CVT-GI-NEXT: bl __fixdfti ; CHECK-CVT-GI-NEXT: cmp x20, #1 -; CHECK-CVT-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-CVT-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-CVT-GI-NEXT: cset w8, lt ; CHECK-CVT-GI-NEXT: csel w8, wzr, w8, eq ; CHECK-CVT-GI-NEXT: cmp x1, #1 @@ -1090,7 +1090,7 @@ define <2 x i64> @ustest_f64i64(<2 x double> %x) { ; CHECK-FP16-GI-LABEL: ustest_f64i64: ; CHECK-FP16-GI: // %bb.0: // %entry ; CHECK-FP16-GI-NEXT: str d8, [sp, #-32]! // 8-byte Folded Spill -; CHECK-FP16-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-FP16-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-FP16-GI-NEXT: stp x20, x19, [sp, #16] // 16-byte Folded Spill ; CHECK-FP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-FP16-GI-NEXT: .cfi_offset w19, -8 @@ -1105,7 +1105,7 @@ define <2 x i64> @ustest_f64i64(<2 x double> %x) { ; CHECK-FP16-GI-NEXT: mov x20, x1 ; CHECK-FP16-GI-NEXT: bl __fixdfti ; CHECK-FP16-GI-NEXT: cmp x20, #1 -; CHECK-FP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-FP16-GI-NEXT: cset w8, lt ; CHECK-FP16-GI-NEXT: csel w8, wzr, w8, eq ; CHECK-FP16-GI-NEXT: cmp x1, #1 @@ -1162,7 +1162,7 @@ define <2 x i64> @stest_f32i64(<2 x float> %x) { ; CHECK-CVT-GI-LABEL: stest_f32i64: ; CHECK-CVT-GI: // %bb.0: // %entry ; CHECK-CVT-GI-NEXT: str d8, [sp, #-48]! // 8-byte Folded Spill -; CHECK-CVT-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-CVT-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-CVT-GI-NEXT: stp x22, x21, [sp, #16] // 16-byte Folded Spill ; CHECK-CVT-GI-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-CVT-GI-NEXT: .cfi_def_cfa_offset 48 @@ -1183,7 +1183,7 @@ define <2 x i64> @stest_f32i64(<2 x float> %x) { ; CHECK-CVT-GI-NEXT: mov x20, x1 ; CHECK-CVT-GI-NEXT: bl __fixsfti ; CHECK-CVT-GI-NEXT: cmp x19, x21 -; CHECK-CVT-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-CVT-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-CVT-GI-NEXT: cset w8, lo ; CHECK-CVT-GI-NEXT: cmp x20, #0 ; CHECK-CVT-GI-NEXT: cset w9, mi @@ -1225,7 +1225,7 @@ define <2 x i64> @stest_f32i64(<2 x float> %x) { ; CHECK-FP16-GI-LABEL: stest_f32i64: ; CHECK-FP16-GI: // %bb.0: // %entry ; CHECK-FP16-GI-NEXT: str d8, [sp, #-48]! // 8-byte Folded Spill -; CHECK-FP16-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-FP16-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-FP16-GI-NEXT: stp x22, x21, [sp, #16] // 16-byte Folded Spill ; CHECK-FP16-GI-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-GI-NEXT: .cfi_def_cfa_offset 48 @@ -1246,7 +1246,7 @@ define <2 x i64> @stest_f32i64(<2 x float> %x) { ; CHECK-FP16-GI-NEXT: mov x20, x1 ; CHECK-FP16-GI-NEXT: bl __fixsfti ; CHECK-FP16-GI-NEXT: cmp x19, x21 -; CHECK-FP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-FP16-GI-NEXT: cset w8, lo ; CHECK-FP16-GI-NEXT: cmp x20, #0 ; CHECK-FP16-GI-NEXT: cset w9, mi @@ -1298,23 +1298,23 @@ define <2 x i64> @utest_f32i64(<2 x float> %x) { ; CHECK-CVT-SD-LABEL: utest_f32i64: ; CHECK-CVT-SD: // %bb.0: // %entry ; CHECK-CVT-SD-NEXT: sub sp, sp, #48 -; CHECK-CVT-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-CVT-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-CVT-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-CVT-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-CVT-SD-NEXT: .cfi_offset w19, -8 ; CHECK-CVT-SD-NEXT: .cfi_offset w20, -16 ; CHECK-CVT-SD-NEXT: .cfi_offset w30, -32 ; CHECK-CVT-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-CVT-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-CVT-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-CVT-SD-NEXT: mov s0, v0.s[1] ; CHECK-CVT-SD-NEXT: bl __fixunssfti -; CHECK-CVT-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-CVT-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-CVT-SD-NEXT: mov x19, x0 ; CHECK-CVT-SD-NEXT: mov x20, x1 ; CHECK-CVT-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-CVT-SD-NEXT: bl __fixunssfti ; CHECK-CVT-SD-NEXT: cmp x1, #0 -; CHECK-CVT-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-CVT-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-CVT-SD-NEXT: csel x8, x0, xzr, eq ; CHECK-CVT-SD-NEXT: cmp x20, #0 ; CHECK-CVT-SD-NEXT: csel x9, x19, xzr, eq @@ -1328,23 +1328,23 @@ define <2 x i64> @utest_f32i64(<2 x float> %x) { ; CHECK-FP16-SD-LABEL: utest_f32i64: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #48 -; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-FP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-SD-NEXT: .cfi_offset w19, -8 ; CHECK-FP16-SD-NEXT: .cfi_offset w20, -16 ; CHECK-FP16-SD-NEXT: .cfi_offset w30, -32 ; CHECK-FP16-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-SD-NEXT: mov s0, v0.s[1] ; CHECK-FP16-SD-NEXT: bl __fixunssfti -; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-FP16-SD-NEXT: mov x19, x0 ; CHECK-FP16-SD-NEXT: mov x20, x1 ; CHECK-FP16-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-FP16-SD-NEXT: bl __fixunssfti ; CHECK-FP16-SD-NEXT: cmp x1, #0 -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-FP16-SD-NEXT: csel x8, x0, xzr, eq ; CHECK-FP16-SD-NEXT: cmp x20, #0 ; CHECK-FP16-SD-NEXT: csel x9, x19, xzr, eq @@ -1358,7 +1358,7 @@ define <2 x i64> @utest_f32i64(<2 x float> %x) { ; CHECK-CVT-GI-LABEL: utest_f32i64: ; CHECK-CVT-GI: // %bb.0: // %entry ; CHECK-CVT-GI-NEXT: str d8, [sp, #-32]! // 8-byte Folded Spill -; CHECK-CVT-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-CVT-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-CVT-GI-NEXT: stp x20, x19, [sp, #16] // 16-byte Folded Spill ; CHECK-CVT-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-CVT-GI-NEXT: .cfi_offset w19, -8 @@ -1374,7 +1374,7 @@ define <2 x i64> @utest_f32i64(<2 x float> %x) { ; CHECK-CVT-GI-NEXT: mov x20, x1 ; CHECK-CVT-GI-NEXT: bl __fixunssfti ; CHECK-CVT-GI-NEXT: cmp x20, #1 -; CHECK-CVT-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-CVT-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-CVT-GI-NEXT: cset w8, lo ; CHECK-CVT-GI-NEXT: csel w8, wzr, w8, eq ; CHECK-CVT-GI-NEXT: cmp x1, #1 @@ -1393,7 +1393,7 @@ define <2 x i64> @utest_f32i64(<2 x float> %x) { ; CHECK-FP16-GI-LABEL: utest_f32i64: ; CHECK-FP16-GI: // %bb.0: // %entry ; CHECK-FP16-GI-NEXT: str d8, [sp, #-32]! // 8-byte Folded Spill -; CHECK-FP16-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-FP16-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-FP16-GI-NEXT: stp x20, x19, [sp, #16] // 16-byte Folded Spill ; CHECK-FP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-FP16-GI-NEXT: .cfi_offset w19, -8 @@ -1409,7 +1409,7 @@ define <2 x i64> @utest_f32i64(<2 x float> %x) { ; CHECK-FP16-GI-NEXT: mov x20, x1 ; CHECK-FP16-GI-NEXT: bl __fixunssfti ; CHECK-FP16-GI-NEXT: cmp x20, #1 -; CHECK-FP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-FP16-GI-NEXT: cset w8, lo ; CHECK-FP16-GI-NEXT: csel w8, wzr, w8, eq ; CHECK-FP16-GI-NEXT: cmp x1, #1 @@ -1436,23 +1436,23 @@ define <2 x i64> @ustest_f32i64(<2 x float> %x) { ; CHECK-CVT-SD-LABEL: ustest_f32i64: ; CHECK-CVT-SD: // %bb.0: // %entry ; CHECK-CVT-SD-NEXT: sub sp, sp, #48 -; CHECK-CVT-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-CVT-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-CVT-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-CVT-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-CVT-SD-NEXT: .cfi_offset w19, -8 ; CHECK-CVT-SD-NEXT: .cfi_offset w20, -16 ; CHECK-CVT-SD-NEXT: .cfi_offset w30, -32 ; CHECK-CVT-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-CVT-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-CVT-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-CVT-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-CVT-SD-NEXT: bl __fixsfti -; CHECK-CVT-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-CVT-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-CVT-SD-NEXT: mov x19, x0 ; CHECK-CVT-SD-NEXT: mov x20, x1 ; CHECK-CVT-SD-NEXT: mov s0, v0.s[1] ; CHECK-CVT-SD-NEXT: bl __fixsfti ; CHECK-CVT-SD-NEXT: cmp x1, #1 -; CHECK-CVT-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-CVT-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-CVT-SD-NEXT: csinc x8, x1, xzr, lt ; CHECK-CVT-SD-NEXT: csel x9, x0, xzr, lt ; CHECK-CVT-SD-NEXT: cmp x20, #1 @@ -1474,23 +1474,23 @@ define <2 x i64> @ustest_f32i64(<2 x float> %x) { ; CHECK-FP16-SD-LABEL: ustest_f32i64: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #48 -; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-FP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-SD-NEXT: .cfi_offset w19, -8 ; CHECK-FP16-SD-NEXT: .cfi_offset w20, -16 ; CHECK-FP16-SD-NEXT: .cfi_offset w30, -32 ; CHECK-FP16-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-FP16-SD-NEXT: bl __fixsfti -; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-FP16-SD-NEXT: mov x19, x0 ; CHECK-FP16-SD-NEXT: mov x20, x1 ; CHECK-FP16-SD-NEXT: mov s0, v0.s[1] ; CHECK-FP16-SD-NEXT: bl __fixsfti ; CHECK-FP16-SD-NEXT: cmp x1, #1 -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-FP16-SD-NEXT: csinc x8, x1, xzr, lt ; CHECK-FP16-SD-NEXT: csel x9, x0, xzr, lt ; CHECK-FP16-SD-NEXT: cmp x20, #1 @@ -1512,7 +1512,7 @@ define <2 x i64> @ustest_f32i64(<2 x float> %x) { ; CHECK-CVT-GI-LABEL: ustest_f32i64: ; CHECK-CVT-GI: // %bb.0: // %entry ; CHECK-CVT-GI-NEXT: str d8, [sp, #-32]! // 8-byte Folded Spill -; CHECK-CVT-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-CVT-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-CVT-GI-NEXT: stp x20, x19, [sp, #16] // 16-byte Folded Spill ; CHECK-CVT-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-CVT-GI-NEXT: .cfi_offset w19, -8 @@ -1528,7 +1528,7 @@ define <2 x i64> @ustest_f32i64(<2 x float> %x) { ; CHECK-CVT-GI-NEXT: mov x20, x1 ; CHECK-CVT-GI-NEXT: bl __fixsfti ; CHECK-CVT-GI-NEXT: cmp x20, #1 -; CHECK-CVT-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-CVT-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-CVT-GI-NEXT: cset w8, lt ; CHECK-CVT-GI-NEXT: csel w8, wzr, w8, eq ; CHECK-CVT-GI-NEXT: cmp x1, #1 @@ -1563,7 +1563,7 @@ define <2 x i64> @ustest_f32i64(<2 x float> %x) { ; CHECK-FP16-GI-LABEL: ustest_f32i64: ; CHECK-FP16-GI: // %bb.0: // %entry ; CHECK-FP16-GI-NEXT: str d8, [sp, #-32]! // 8-byte Folded Spill -; CHECK-FP16-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-FP16-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-FP16-GI-NEXT: stp x20, x19, [sp, #16] // 16-byte Folded Spill ; CHECK-FP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-FP16-GI-NEXT: .cfi_offset w19, -8 @@ -1579,7 +1579,7 @@ define <2 x i64> @ustest_f32i64(<2 x float> %x) { ; CHECK-FP16-GI-NEXT: mov x20, x1 ; CHECK-FP16-GI-NEXT: bl __fixsfti ; CHECK-FP16-GI-NEXT: cmp x20, #1 -; CHECK-FP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-FP16-GI-NEXT: cset w8, lt ; CHECK-FP16-GI-NEXT: csel w8, wzr, w8, eq ; CHECK-FP16-GI-NEXT: cmp x1, #1 @@ -1750,23 +1750,23 @@ define <2 x i64> @utest_f16i64(<2 x half> %x) { ; CHECK-CVT-SD-LABEL: utest_f16i64: ; CHECK-CVT-SD: // %bb.0: // %entry ; CHECK-CVT-SD-NEXT: sub sp, sp, #48 -; CHECK-CVT-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-CVT-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-CVT-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-CVT-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-CVT-SD-NEXT: .cfi_offset w19, -8 ; CHECK-CVT-SD-NEXT: .cfi_offset w20, -16 ; CHECK-CVT-SD-NEXT: .cfi_offset w30, -32 ; CHECK-CVT-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-CVT-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-CVT-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-CVT-SD-NEXT: mov h0, v0.h[1] ; CHECK-CVT-SD-NEXT: bl __fixunshfti -; CHECK-CVT-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-CVT-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-CVT-SD-NEXT: mov x19, x0 ; CHECK-CVT-SD-NEXT: mov x20, x1 ; CHECK-CVT-SD-NEXT: // kill: def $h0 killed $h0 killed $q0 ; CHECK-CVT-SD-NEXT: bl __fixunshfti ; CHECK-CVT-SD-NEXT: cmp x1, #0 -; CHECK-CVT-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-CVT-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-CVT-SD-NEXT: csel x8, x0, xzr, eq ; CHECK-CVT-SD-NEXT: cmp x20, #0 ; CHECK-CVT-SD-NEXT: csel x9, x19, xzr, eq @@ -1780,23 +1780,23 @@ define <2 x i64> @utest_f16i64(<2 x half> %x) { ; CHECK-FP16-SD-LABEL: utest_f16i64: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #48 -; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-FP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-SD-NEXT: .cfi_offset w19, -8 ; CHECK-FP16-SD-NEXT: .cfi_offset w20, -16 ; CHECK-FP16-SD-NEXT: .cfi_offset w30, -32 ; CHECK-FP16-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-SD-NEXT: mov h0, v0.h[1] ; CHECK-FP16-SD-NEXT: bl __fixunshfti -; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-FP16-SD-NEXT: mov x19, x0 ; CHECK-FP16-SD-NEXT: mov x20, x1 ; CHECK-FP16-SD-NEXT: // kill: def $h0 killed $h0 killed $q0 ; CHECK-FP16-SD-NEXT: bl __fixunshfti ; CHECK-FP16-SD-NEXT: cmp x1, #0 -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-FP16-SD-NEXT: csel x8, x0, xzr, eq ; CHECK-FP16-SD-NEXT: cmp x20, #0 ; CHECK-FP16-SD-NEXT: csel x9, x19, xzr, eq @@ -1840,23 +1840,23 @@ define <2 x i64> @ustest_f16i64(<2 x half> %x) { ; CHECK-CVT-SD-LABEL: ustest_f16i64: ; CHECK-CVT-SD: // %bb.0: // %entry ; CHECK-CVT-SD-NEXT: sub sp, sp, #48 -; CHECK-CVT-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-CVT-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-CVT-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-CVT-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-CVT-SD-NEXT: .cfi_offset w19, -8 ; CHECK-CVT-SD-NEXT: .cfi_offset w20, -16 ; CHECK-CVT-SD-NEXT: .cfi_offset w30, -32 ; CHECK-CVT-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-CVT-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-CVT-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-CVT-SD-NEXT: // kill: def $h0 killed $h0 killed $q0 ; CHECK-CVT-SD-NEXT: bl __fixhfti -; CHECK-CVT-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-CVT-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-CVT-SD-NEXT: mov x19, x0 ; CHECK-CVT-SD-NEXT: mov x20, x1 ; CHECK-CVT-SD-NEXT: mov h0, v0.h[1] ; CHECK-CVT-SD-NEXT: bl __fixhfti ; CHECK-CVT-SD-NEXT: cmp x1, #1 -; CHECK-CVT-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-CVT-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-CVT-SD-NEXT: csinc x8, x1, xzr, lt ; CHECK-CVT-SD-NEXT: csel x9, x0, xzr, lt ; CHECK-CVT-SD-NEXT: cmp x20, #1 @@ -1878,23 +1878,23 @@ define <2 x i64> @ustest_f16i64(<2 x half> %x) { ; CHECK-FP16-SD-LABEL: ustest_f16i64: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #48 -; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-FP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-SD-NEXT: .cfi_offset w19, -8 ; CHECK-FP16-SD-NEXT: .cfi_offset w20, -16 ; CHECK-FP16-SD-NEXT: .cfi_offset w30, -32 ; CHECK-FP16-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-SD-NEXT: // kill: def $h0 killed $h0 killed $q0 ; CHECK-FP16-SD-NEXT: bl __fixhfti -; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-FP16-SD-NEXT: mov x19, x0 ; CHECK-FP16-SD-NEXT: mov x20, x1 ; CHECK-FP16-SD-NEXT: mov h0, v0.h[1] ; CHECK-FP16-SD-NEXT: bl __fixhfti ; CHECK-FP16-SD-NEXT: cmp x1, #1 -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-FP16-SD-NEXT: csinc x8, x1, xzr, lt ; CHECK-FP16-SD-NEXT: csel x9, x0, xzr, lt ; CHECK-FP16-SD-NEXT: cmp x20, #1 @@ -2666,7 +2666,7 @@ define <2 x i64> @stest_f64i64_mm(<2 x double> %x) { ; CHECK-CVT-GI-LABEL: stest_f64i64_mm: ; CHECK-CVT-GI: // %bb.0: // %entry ; CHECK-CVT-GI-NEXT: str d8, [sp, #-48]! // 8-byte Folded Spill -; CHECK-CVT-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-CVT-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-CVT-GI-NEXT: stp x22, x21, [sp, #16] // 16-byte Folded Spill ; CHECK-CVT-GI-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-CVT-GI-NEXT: .cfi_def_cfa_offset 48 @@ -2686,7 +2686,7 @@ define <2 x i64> @stest_f64i64_mm(<2 x double> %x) { ; CHECK-CVT-GI-NEXT: mov x20, x1 ; CHECK-CVT-GI-NEXT: bl __fixdfti ; CHECK-CVT-GI-NEXT: cmp x19, x21 -; CHECK-CVT-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-CVT-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-CVT-GI-NEXT: cset w8, lo ; CHECK-CVT-GI-NEXT: cmp x20, #0 ; CHECK-CVT-GI-NEXT: cset w9, mi @@ -2728,7 +2728,7 @@ define <2 x i64> @stest_f64i64_mm(<2 x double> %x) { ; CHECK-FP16-GI-LABEL: stest_f64i64_mm: ; CHECK-FP16-GI: // %bb.0: // %entry ; CHECK-FP16-GI-NEXT: str d8, [sp, #-48]! // 8-byte Folded Spill -; CHECK-FP16-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-FP16-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-FP16-GI-NEXT: stp x22, x21, [sp, #16] // 16-byte Folded Spill ; CHECK-FP16-GI-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-GI-NEXT: .cfi_def_cfa_offset 48 @@ -2748,7 +2748,7 @@ define <2 x i64> @stest_f64i64_mm(<2 x double> %x) { ; CHECK-FP16-GI-NEXT: mov x20, x1 ; CHECK-FP16-GI-NEXT: bl __fixdfti ; CHECK-FP16-GI-NEXT: cmp x19, x21 -; CHECK-FP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-FP16-GI-NEXT: cset w8, lo ; CHECK-FP16-GI-NEXT: cmp x20, #0 ; CHECK-FP16-GI-NEXT: cset w9, mi @@ -2798,22 +2798,22 @@ define <2 x i64> @utest_f64i64_mm(<2 x double> %x) { ; CHECK-CVT-SD-LABEL: utest_f64i64_mm: ; CHECK-CVT-SD: // %bb.0: // %entry ; CHECK-CVT-SD-NEXT: sub sp, sp, #48 -; CHECK-CVT-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-CVT-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-CVT-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-CVT-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-CVT-SD-NEXT: .cfi_offset w19, -8 ; CHECK-CVT-SD-NEXT: .cfi_offset w20, -16 ; CHECK-CVT-SD-NEXT: .cfi_offset w30, -32 -; CHECK-CVT-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-CVT-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-CVT-SD-NEXT: mov d0, v0.d[1] ; CHECK-CVT-SD-NEXT: bl __fixunsdfti -; CHECK-CVT-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-CVT-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-CVT-SD-NEXT: mov x19, x0 ; CHECK-CVT-SD-NEXT: mov x20, x1 ; CHECK-CVT-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-CVT-SD-NEXT: bl __fixunsdfti ; CHECK-CVT-SD-NEXT: cmp x1, #0 -; CHECK-CVT-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-CVT-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-CVT-SD-NEXT: csel x8, x0, xzr, eq ; CHECK-CVT-SD-NEXT: cmp x20, #0 ; CHECK-CVT-SD-NEXT: csel x9, x19, xzr, eq @@ -2827,22 +2827,22 @@ define <2 x i64> @utest_f64i64_mm(<2 x double> %x) { ; CHECK-FP16-SD-LABEL: utest_f64i64_mm: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #48 -; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-FP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-SD-NEXT: .cfi_offset w19, -8 ; CHECK-FP16-SD-NEXT: .cfi_offset w20, -16 ; CHECK-FP16-SD-NEXT: .cfi_offset w30, -32 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-SD-NEXT: mov d0, v0.d[1] ; CHECK-FP16-SD-NEXT: bl __fixunsdfti -; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-FP16-SD-NEXT: mov x19, x0 ; CHECK-FP16-SD-NEXT: mov x20, x1 ; CHECK-FP16-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-FP16-SD-NEXT: bl __fixunsdfti ; CHECK-FP16-SD-NEXT: cmp x1, #0 -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-FP16-SD-NEXT: csel x8, x0, xzr, eq ; CHECK-FP16-SD-NEXT: cmp x20, #0 ; CHECK-FP16-SD-NEXT: csel x9, x19, xzr, eq @@ -2856,7 +2856,7 @@ define <2 x i64> @utest_f64i64_mm(<2 x double> %x) { ; CHECK-CVT-GI-LABEL: utest_f64i64_mm: ; CHECK-CVT-GI: // %bb.0: // %entry ; CHECK-CVT-GI-NEXT: str d8, [sp, #-32]! // 8-byte Folded Spill -; CHECK-CVT-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-CVT-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-CVT-GI-NEXT: stp x20, x19, [sp, #16] // 16-byte Folded Spill ; CHECK-CVT-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-CVT-GI-NEXT: .cfi_offset w19, -8 @@ -2871,7 +2871,7 @@ define <2 x i64> @utest_f64i64_mm(<2 x double> %x) { ; CHECK-CVT-GI-NEXT: mov x20, x1 ; CHECK-CVT-GI-NEXT: bl __fixunsdfti ; CHECK-CVT-GI-NEXT: cmp x20, #1 -; CHECK-CVT-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-CVT-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-CVT-GI-NEXT: cset w8, lo ; CHECK-CVT-GI-NEXT: csel w8, wzr, w8, eq ; CHECK-CVT-GI-NEXT: cmp x1, #1 @@ -2890,7 +2890,7 @@ define <2 x i64> @utest_f64i64_mm(<2 x double> %x) { ; CHECK-FP16-GI-LABEL: utest_f64i64_mm: ; CHECK-FP16-GI: // %bb.0: // %entry ; CHECK-FP16-GI-NEXT: str d8, [sp, #-32]! // 8-byte Folded Spill -; CHECK-FP16-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-FP16-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-FP16-GI-NEXT: stp x20, x19, [sp, #16] // 16-byte Folded Spill ; CHECK-FP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-FP16-GI-NEXT: .cfi_offset w19, -8 @@ -2905,7 +2905,7 @@ define <2 x i64> @utest_f64i64_mm(<2 x double> %x) { ; CHECK-FP16-GI-NEXT: mov x20, x1 ; CHECK-FP16-GI-NEXT: bl __fixunsdfti ; CHECK-FP16-GI-NEXT: cmp x20, #1 -; CHECK-FP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-FP16-GI-NEXT: cset w8, lo ; CHECK-FP16-GI-NEXT: csel w8, wzr, w8, eq ; CHECK-FP16-GI-NEXT: cmp x1, #1 @@ -2931,22 +2931,22 @@ define <2 x i64> @ustest_f64i64_mm(<2 x double> %x) { ; CHECK-CVT-SD-LABEL: ustest_f64i64_mm: ; CHECK-CVT-SD: // %bb.0: // %entry ; CHECK-CVT-SD-NEXT: sub sp, sp, #48 -; CHECK-CVT-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-CVT-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-CVT-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-CVT-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-CVT-SD-NEXT: .cfi_offset w19, -8 ; CHECK-CVT-SD-NEXT: .cfi_offset w20, -16 ; CHECK-CVT-SD-NEXT: .cfi_offset w30, -32 -; CHECK-CVT-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-CVT-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-CVT-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-CVT-SD-NEXT: bl __fixdfti -; CHECK-CVT-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-CVT-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-CVT-SD-NEXT: mov x19, x0 ; CHECK-CVT-SD-NEXT: mov x20, x1 ; CHECK-CVT-SD-NEXT: mov d0, v0.d[1] ; CHECK-CVT-SD-NEXT: bl __fixdfti ; CHECK-CVT-SD-NEXT: cmp x1, #1 -; CHECK-CVT-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-CVT-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-CVT-SD-NEXT: csel x8, x0, xzr, lt ; CHECK-CVT-SD-NEXT: csinc x9, x1, xzr, lt ; CHECK-CVT-SD-NEXT: cmp x20, #1 @@ -2966,22 +2966,22 @@ define <2 x i64> @ustest_f64i64_mm(<2 x double> %x) { ; CHECK-FP16-SD-LABEL: ustest_f64i64_mm: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #48 -; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-FP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-SD-NEXT: .cfi_offset w19, -8 ; CHECK-FP16-SD-NEXT: .cfi_offset w20, -16 ; CHECK-FP16-SD-NEXT: .cfi_offset w30, -32 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-FP16-SD-NEXT: bl __fixdfti -; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-FP16-SD-NEXT: mov x19, x0 ; CHECK-FP16-SD-NEXT: mov x20, x1 ; CHECK-FP16-SD-NEXT: mov d0, v0.d[1] ; CHECK-FP16-SD-NEXT: bl __fixdfti ; CHECK-FP16-SD-NEXT: cmp x1, #1 -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-FP16-SD-NEXT: csel x8, x0, xzr, lt ; CHECK-FP16-SD-NEXT: csinc x9, x1, xzr, lt ; CHECK-FP16-SD-NEXT: cmp x20, #1 @@ -3001,7 +3001,7 @@ define <2 x i64> @ustest_f64i64_mm(<2 x double> %x) { ; CHECK-CVT-GI-LABEL: ustest_f64i64_mm: ; CHECK-CVT-GI: // %bb.0: // %entry ; CHECK-CVT-GI-NEXT: str d8, [sp, #-32]! // 8-byte Folded Spill -; CHECK-CVT-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-CVT-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-CVT-GI-NEXT: stp x20, x19, [sp, #16] // 16-byte Folded Spill ; CHECK-CVT-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-CVT-GI-NEXT: .cfi_offset w19, -8 @@ -3016,7 +3016,7 @@ define <2 x i64> @ustest_f64i64_mm(<2 x double> %x) { ; CHECK-CVT-GI-NEXT: mov x20, x1 ; CHECK-CVT-GI-NEXT: bl __fixdfti ; CHECK-CVT-GI-NEXT: cmp x20, #1 -; CHECK-CVT-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-CVT-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-CVT-GI-NEXT: cset w8, lt ; CHECK-CVT-GI-NEXT: csel w8, wzr, w8, eq ; CHECK-CVT-GI-NEXT: cmp x1, #1 @@ -3051,7 +3051,7 @@ define <2 x i64> @ustest_f64i64_mm(<2 x double> %x) { ; CHECK-FP16-GI-LABEL: ustest_f64i64_mm: ; CHECK-FP16-GI: // %bb.0: // %entry ; CHECK-FP16-GI-NEXT: str d8, [sp, #-32]! // 8-byte Folded Spill -; CHECK-FP16-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-FP16-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-FP16-GI-NEXT: stp x20, x19, [sp, #16] // 16-byte Folded Spill ; CHECK-FP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-FP16-GI-NEXT: .cfi_offset w19, -8 @@ -3066,7 +3066,7 @@ define <2 x i64> @ustest_f64i64_mm(<2 x double> %x) { ; CHECK-FP16-GI-NEXT: mov x20, x1 ; CHECK-FP16-GI-NEXT: bl __fixdfti ; CHECK-FP16-GI-NEXT: cmp x20, #1 -; CHECK-FP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-FP16-GI-NEXT: cset w8, lt ; CHECK-FP16-GI-NEXT: csel w8, wzr, w8, eq ; CHECK-FP16-GI-NEXT: cmp x1, #1 @@ -3121,7 +3121,7 @@ define <2 x i64> @stest_f32i64_mm(<2 x float> %x) { ; CHECK-CVT-GI-LABEL: stest_f32i64_mm: ; CHECK-CVT-GI: // %bb.0: // %entry ; CHECK-CVT-GI-NEXT: str d8, [sp, #-48]! // 8-byte Folded Spill -; CHECK-CVT-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-CVT-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-CVT-GI-NEXT: stp x22, x21, [sp, #16] // 16-byte Folded Spill ; CHECK-CVT-GI-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-CVT-GI-NEXT: .cfi_def_cfa_offset 48 @@ -3142,7 +3142,7 @@ define <2 x i64> @stest_f32i64_mm(<2 x float> %x) { ; CHECK-CVT-GI-NEXT: mov x20, x1 ; CHECK-CVT-GI-NEXT: bl __fixsfti ; CHECK-CVT-GI-NEXT: cmp x19, x21 -; CHECK-CVT-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-CVT-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-CVT-GI-NEXT: cset w8, lo ; CHECK-CVT-GI-NEXT: cmp x20, #0 ; CHECK-CVT-GI-NEXT: cset w9, mi @@ -3184,7 +3184,7 @@ define <2 x i64> @stest_f32i64_mm(<2 x float> %x) { ; CHECK-FP16-GI-LABEL: stest_f32i64_mm: ; CHECK-FP16-GI: // %bb.0: // %entry ; CHECK-FP16-GI-NEXT: str d8, [sp, #-48]! // 8-byte Folded Spill -; CHECK-FP16-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-FP16-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-FP16-GI-NEXT: stp x22, x21, [sp, #16] // 16-byte Folded Spill ; CHECK-FP16-GI-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-GI-NEXT: .cfi_def_cfa_offset 48 @@ -3205,7 +3205,7 @@ define <2 x i64> @stest_f32i64_mm(<2 x float> %x) { ; CHECK-FP16-GI-NEXT: mov x20, x1 ; CHECK-FP16-GI-NEXT: bl __fixsfti ; CHECK-FP16-GI-NEXT: cmp x19, x21 -; CHECK-FP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-FP16-GI-NEXT: cset w8, lo ; CHECK-FP16-GI-NEXT: cmp x20, #0 ; CHECK-FP16-GI-NEXT: cset w9, mi @@ -3255,23 +3255,23 @@ define <2 x i64> @utest_f32i64_mm(<2 x float> %x) { ; CHECK-CVT-SD-LABEL: utest_f32i64_mm: ; CHECK-CVT-SD: // %bb.0: // %entry ; CHECK-CVT-SD-NEXT: sub sp, sp, #48 -; CHECK-CVT-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-CVT-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-CVT-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-CVT-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-CVT-SD-NEXT: .cfi_offset w19, -8 ; CHECK-CVT-SD-NEXT: .cfi_offset w20, -16 ; CHECK-CVT-SD-NEXT: .cfi_offset w30, -32 ; CHECK-CVT-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-CVT-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-CVT-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-CVT-SD-NEXT: mov s0, v0.s[1] ; CHECK-CVT-SD-NEXT: bl __fixunssfti -; CHECK-CVT-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-CVT-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-CVT-SD-NEXT: mov x19, x0 ; CHECK-CVT-SD-NEXT: mov x20, x1 ; CHECK-CVT-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-CVT-SD-NEXT: bl __fixunssfti ; CHECK-CVT-SD-NEXT: cmp x1, #0 -; CHECK-CVT-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-CVT-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-CVT-SD-NEXT: csel x8, x0, xzr, eq ; CHECK-CVT-SD-NEXT: cmp x20, #0 ; CHECK-CVT-SD-NEXT: csel x9, x19, xzr, eq @@ -3285,23 +3285,23 @@ define <2 x i64> @utest_f32i64_mm(<2 x float> %x) { ; CHECK-FP16-SD-LABEL: utest_f32i64_mm: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #48 -; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-FP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-SD-NEXT: .cfi_offset w19, -8 ; CHECK-FP16-SD-NEXT: .cfi_offset w20, -16 ; CHECK-FP16-SD-NEXT: .cfi_offset w30, -32 ; CHECK-FP16-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-SD-NEXT: mov s0, v0.s[1] ; CHECK-FP16-SD-NEXT: bl __fixunssfti -; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-FP16-SD-NEXT: mov x19, x0 ; CHECK-FP16-SD-NEXT: mov x20, x1 ; CHECK-FP16-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-FP16-SD-NEXT: bl __fixunssfti ; CHECK-FP16-SD-NEXT: cmp x1, #0 -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-FP16-SD-NEXT: csel x8, x0, xzr, eq ; CHECK-FP16-SD-NEXT: cmp x20, #0 ; CHECK-FP16-SD-NEXT: csel x9, x19, xzr, eq @@ -3315,7 +3315,7 @@ define <2 x i64> @utest_f32i64_mm(<2 x float> %x) { ; CHECK-CVT-GI-LABEL: utest_f32i64_mm: ; CHECK-CVT-GI: // %bb.0: // %entry ; CHECK-CVT-GI-NEXT: str d8, [sp, #-32]! // 8-byte Folded Spill -; CHECK-CVT-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-CVT-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-CVT-GI-NEXT: stp x20, x19, [sp, #16] // 16-byte Folded Spill ; CHECK-CVT-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-CVT-GI-NEXT: .cfi_offset w19, -8 @@ -3331,7 +3331,7 @@ define <2 x i64> @utest_f32i64_mm(<2 x float> %x) { ; CHECK-CVT-GI-NEXT: mov x20, x1 ; CHECK-CVT-GI-NEXT: bl __fixunssfti ; CHECK-CVT-GI-NEXT: cmp x20, #1 -; CHECK-CVT-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-CVT-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-CVT-GI-NEXT: cset w8, lo ; CHECK-CVT-GI-NEXT: csel w8, wzr, w8, eq ; CHECK-CVT-GI-NEXT: cmp x1, #1 @@ -3350,7 +3350,7 @@ define <2 x i64> @utest_f32i64_mm(<2 x float> %x) { ; CHECK-FP16-GI-LABEL: utest_f32i64_mm: ; CHECK-FP16-GI: // %bb.0: // %entry ; CHECK-FP16-GI-NEXT: str d8, [sp, #-32]! // 8-byte Folded Spill -; CHECK-FP16-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-FP16-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-FP16-GI-NEXT: stp x20, x19, [sp, #16] // 16-byte Folded Spill ; CHECK-FP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-FP16-GI-NEXT: .cfi_offset w19, -8 @@ -3366,7 +3366,7 @@ define <2 x i64> @utest_f32i64_mm(<2 x float> %x) { ; CHECK-FP16-GI-NEXT: mov x20, x1 ; CHECK-FP16-GI-NEXT: bl __fixunssfti ; CHECK-FP16-GI-NEXT: cmp x20, #1 -; CHECK-FP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-FP16-GI-NEXT: cset w8, lo ; CHECK-FP16-GI-NEXT: csel w8, wzr, w8, eq ; CHECK-FP16-GI-NEXT: cmp x1, #1 @@ -3392,23 +3392,23 @@ define <2 x i64> @ustest_f32i64_mm(<2 x float> %x) { ; CHECK-CVT-SD-LABEL: ustest_f32i64_mm: ; CHECK-CVT-SD: // %bb.0: // %entry ; CHECK-CVT-SD-NEXT: sub sp, sp, #48 -; CHECK-CVT-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-CVT-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-CVT-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-CVT-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-CVT-SD-NEXT: .cfi_offset w19, -8 ; CHECK-CVT-SD-NEXT: .cfi_offset w20, -16 ; CHECK-CVT-SD-NEXT: .cfi_offset w30, -32 ; CHECK-CVT-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-CVT-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-CVT-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-CVT-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-CVT-SD-NEXT: bl __fixsfti -; CHECK-CVT-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-CVT-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-CVT-SD-NEXT: mov x19, x0 ; CHECK-CVT-SD-NEXT: mov x20, x1 ; CHECK-CVT-SD-NEXT: mov s0, v0.s[1] ; CHECK-CVT-SD-NEXT: bl __fixsfti ; CHECK-CVT-SD-NEXT: cmp x1, #1 -; CHECK-CVT-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-CVT-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-CVT-SD-NEXT: csel x8, x0, xzr, lt ; CHECK-CVT-SD-NEXT: csinc x9, x1, xzr, lt ; CHECK-CVT-SD-NEXT: cmp x20, #1 @@ -3428,23 +3428,23 @@ define <2 x i64> @ustest_f32i64_mm(<2 x float> %x) { ; CHECK-FP16-SD-LABEL: ustest_f32i64_mm: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #48 -; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-FP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-SD-NEXT: .cfi_offset w19, -8 ; CHECK-FP16-SD-NEXT: .cfi_offset w20, -16 ; CHECK-FP16-SD-NEXT: .cfi_offset w30, -32 ; CHECK-FP16-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-FP16-SD-NEXT: bl __fixsfti -; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-FP16-SD-NEXT: mov x19, x0 ; CHECK-FP16-SD-NEXT: mov x20, x1 ; CHECK-FP16-SD-NEXT: mov s0, v0.s[1] ; CHECK-FP16-SD-NEXT: bl __fixsfti ; CHECK-FP16-SD-NEXT: cmp x1, #1 -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-FP16-SD-NEXT: csel x8, x0, xzr, lt ; CHECK-FP16-SD-NEXT: csinc x9, x1, xzr, lt ; CHECK-FP16-SD-NEXT: cmp x20, #1 @@ -3464,7 +3464,7 @@ define <2 x i64> @ustest_f32i64_mm(<2 x float> %x) { ; CHECK-CVT-GI-LABEL: ustest_f32i64_mm: ; CHECK-CVT-GI: // %bb.0: // %entry ; CHECK-CVT-GI-NEXT: str d8, [sp, #-32]! // 8-byte Folded Spill -; CHECK-CVT-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-CVT-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-CVT-GI-NEXT: stp x20, x19, [sp, #16] // 16-byte Folded Spill ; CHECK-CVT-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-CVT-GI-NEXT: .cfi_offset w19, -8 @@ -3480,7 +3480,7 @@ define <2 x i64> @ustest_f32i64_mm(<2 x float> %x) { ; CHECK-CVT-GI-NEXT: mov x20, x1 ; CHECK-CVT-GI-NEXT: bl __fixsfti ; CHECK-CVT-GI-NEXT: cmp x20, #1 -; CHECK-CVT-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-CVT-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-CVT-GI-NEXT: cset w8, lt ; CHECK-CVT-GI-NEXT: csel w8, wzr, w8, eq ; CHECK-CVT-GI-NEXT: cmp x1, #1 @@ -3515,7 +3515,7 @@ define <2 x i64> @ustest_f32i64_mm(<2 x float> %x) { ; CHECK-FP16-GI-LABEL: ustest_f32i64_mm: ; CHECK-FP16-GI: // %bb.0: // %entry ; CHECK-FP16-GI-NEXT: str d8, [sp, #-32]! // 8-byte Folded Spill -; CHECK-FP16-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-FP16-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-FP16-GI-NEXT: stp x20, x19, [sp, #16] // 16-byte Folded Spill ; CHECK-FP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-FP16-GI-NEXT: .cfi_offset w19, -8 @@ -3531,7 +3531,7 @@ define <2 x i64> @ustest_f32i64_mm(<2 x float> %x) { ; CHECK-FP16-GI-NEXT: mov x20, x1 ; CHECK-FP16-GI-NEXT: bl __fixsfti ; CHECK-FP16-GI-NEXT: cmp x20, #1 -; CHECK-FP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-FP16-GI-NEXT: cset w8, lt ; CHECK-FP16-GI-NEXT: csel w8, wzr, w8, eq ; CHECK-FP16-GI-NEXT: cmp x1, #1 @@ -3698,23 +3698,23 @@ define <2 x i64> @utest_f16i64_mm(<2 x half> %x) { ; CHECK-CVT-SD-LABEL: utest_f16i64_mm: ; CHECK-CVT-SD: // %bb.0: // %entry ; CHECK-CVT-SD-NEXT: sub sp, sp, #48 -; CHECK-CVT-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-CVT-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-CVT-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-CVT-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-CVT-SD-NEXT: .cfi_offset w19, -8 ; CHECK-CVT-SD-NEXT: .cfi_offset w20, -16 ; CHECK-CVT-SD-NEXT: .cfi_offset w30, -32 ; CHECK-CVT-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-CVT-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-CVT-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-CVT-SD-NEXT: mov h0, v0.h[1] ; CHECK-CVT-SD-NEXT: bl __fixunshfti -; CHECK-CVT-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-CVT-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-CVT-SD-NEXT: mov x19, x0 ; CHECK-CVT-SD-NEXT: mov x20, x1 ; CHECK-CVT-SD-NEXT: // kill: def $h0 killed $h0 killed $q0 ; CHECK-CVT-SD-NEXT: bl __fixunshfti ; CHECK-CVT-SD-NEXT: cmp x1, #0 -; CHECK-CVT-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-CVT-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-CVT-SD-NEXT: csel x8, x0, xzr, eq ; CHECK-CVT-SD-NEXT: cmp x20, #0 ; CHECK-CVT-SD-NEXT: csel x9, x19, xzr, eq @@ -3728,23 +3728,23 @@ define <2 x i64> @utest_f16i64_mm(<2 x half> %x) { ; CHECK-FP16-SD-LABEL: utest_f16i64_mm: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #48 -; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-FP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-SD-NEXT: .cfi_offset w19, -8 ; CHECK-FP16-SD-NEXT: .cfi_offset w20, -16 ; CHECK-FP16-SD-NEXT: .cfi_offset w30, -32 ; CHECK-FP16-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-SD-NEXT: mov h0, v0.h[1] ; CHECK-FP16-SD-NEXT: bl __fixunshfti -; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-FP16-SD-NEXT: mov x19, x0 ; CHECK-FP16-SD-NEXT: mov x20, x1 ; CHECK-FP16-SD-NEXT: // kill: def $h0 killed $h0 killed $q0 ; CHECK-FP16-SD-NEXT: bl __fixunshfti ; CHECK-FP16-SD-NEXT: cmp x1, #0 -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-FP16-SD-NEXT: csel x8, x0, xzr, eq ; CHECK-FP16-SD-NEXT: cmp x20, #0 ; CHECK-FP16-SD-NEXT: csel x9, x19, xzr, eq @@ -3787,23 +3787,23 @@ define <2 x i64> @ustest_f16i64_mm(<2 x half> %x) { ; CHECK-CVT-SD-LABEL: ustest_f16i64_mm: ; CHECK-CVT-SD: // %bb.0: // %entry ; CHECK-CVT-SD-NEXT: sub sp, sp, #48 -; CHECK-CVT-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-CVT-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-CVT-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-CVT-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-CVT-SD-NEXT: .cfi_offset w19, -8 ; CHECK-CVT-SD-NEXT: .cfi_offset w20, -16 ; CHECK-CVT-SD-NEXT: .cfi_offset w30, -32 ; CHECK-CVT-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-CVT-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-CVT-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-CVT-SD-NEXT: // kill: def $h0 killed $h0 killed $q0 ; CHECK-CVT-SD-NEXT: bl __fixhfti -; CHECK-CVT-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-CVT-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-CVT-SD-NEXT: mov x19, x0 ; CHECK-CVT-SD-NEXT: mov x20, x1 ; CHECK-CVT-SD-NEXT: mov h0, v0.h[1] ; CHECK-CVT-SD-NEXT: bl __fixhfti ; CHECK-CVT-SD-NEXT: cmp x1, #1 -; CHECK-CVT-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-CVT-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-CVT-SD-NEXT: csel x8, x0, xzr, lt ; CHECK-CVT-SD-NEXT: csinc x9, x1, xzr, lt ; CHECK-CVT-SD-NEXT: cmp x20, #1 @@ -3823,23 +3823,23 @@ define <2 x i64> @ustest_f16i64_mm(<2 x half> %x) { ; CHECK-FP16-SD-LABEL: ustest_f16i64_mm: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #48 -; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-FP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-SD-NEXT: .cfi_offset w19, -8 ; CHECK-FP16-SD-NEXT: .cfi_offset w20, -16 ; CHECK-FP16-SD-NEXT: .cfi_offset w30, -32 ; CHECK-FP16-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-SD-NEXT: // kill: def $h0 killed $h0 killed $q0 ; CHECK-FP16-SD-NEXT: bl __fixhfti -; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-FP16-SD-NEXT: mov x19, x0 ; CHECK-FP16-SD-NEXT: mov x20, x1 ; CHECK-FP16-SD-NEXT: mov h0, v0.h[1] ; CHECK-FP16-SD-NEXT: bl __fixhfti ; CHECK-FP16-SD-NEXT: cmp x1, #1 -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-FP16-SD-NEXT: csel x8, x0, xzr, lt ; CHECK-FP16-SD-NEXT: csinc x9, x1, xzr, lt ; CHECK-FP16-SD-NEXT: cmp x20, #1 diff --git a/llvm/test/CodeGen/AArch64/fpext.ll b/llvm/test/CodeGen/AArch64/fpext.ll index df90f9d5f0910..549f20f99acdb 100644 --- a/llvm/test/CodeGen/AArch64/fpext.ll +++ b/llvm/test/CodeGen/AArch64/fpext.ll @@ -97,41 +97,41 @@ define <4 x fp128> @fpext_v4f16_v4f128(<4 x half> %a) { ; CHECK-SD-LABEL: fpext_v4f16_v4f128: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: // kill: def $h0 killed $h0 killed $q0 ; CHECK-SD-NEXT: bl __extendhftf2 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: mov h1, v1.h[1] ; CHECK-SD-NEXT: fmov s0, s1 ; CHECK-SD-NEXT: bl __extendhftf2 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov h1, v1.h[2] ; CHECK-SD-NEXT: fmov s0, s1 ; CHECK-SD-NEXT: bl __extendhftf2 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: mov h1, v1.h[3] ; CHECK-SD-NEXT: fmov s0, s1 ; CHECK-SD-NEXT: bl __extendhftf2 ; CHECK-SD-NEXT: mov v3.16b, v0.16b ; CHECK-SD-NEXT: ldp q1, q0, [sp] // 32-byte Folded Reload -; CHECK-SD-NEXT: ldr q2, [sp, #32] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q2, [sp, #32] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: add sp, sp, #64 ; CHECK-SD-NEXT: ret ; ; CHECK-GI-LABEL: fpext_v4f16_v4f128: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #80 -; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #56] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #72] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #72] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 80 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -143,21 +143,21 @@ define <4 x fp128> @fpext_v4f16_v4f128(<4 x half> %a) { ; CHECK-GI-NEXT: mov h10, v0.h[3] ; CHECK-GI-NEXT: // kill: def $h0 killed $h0 killed $q0 ; CHECK-GI-NEXT: bl __extendhftf2 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl __extendhftf2 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s9 ; CHECK-GI-NEXT: bl __extendhftf2 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s10 ; CHECK-GI-NEXT: bl __extendhftf2 ; CHECK-GI-NEXT: mov v3.16b, v0.16b ; CHECK-GI-NEXT: ldp q1, q0, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #56] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #72] // 8-byte Folded Reload -; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Reload +; CHECK-GI-NEXT: ldr x30, [sp, #72] // 8-byte Reload +; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: add sp, sp, #80 ; CHECK-GI-NEXT: ret entry: @@ -169,40 +169,40 @@ define <4 x fp128> @fpext_v4f32_v4f128(<4 x float> %a) { ; CHECK-SD-LABEL: fpext_v4f32_v4f128: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #80 -; CHECK-SD-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 80 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-SD-NEXT: ext v0.16b, v0.16b, v0.16b, #8 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl __extendsftf2 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: mov s1, v1.s[1] ; CHECK-SD-NEXT: fmov s0, s1 ; CHECK-SD-NEXT: bl __extendsftf2 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl __extendsftf2 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[1] ; CHECK-SD-NEXT: bl __extendsftf2 ; CHECK-SD-NEXT: mov v1.16b, v0.16b ; CHECK-SD-NEXT: ldp q0, q3, [sp] // 32-byte Folded Reload -; CHECK-SD-NEXT: ldr q2, [sp, #32] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q2, [sp, #32] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-SD-NEXT: add sp, sp, #80 ; CHECK-SD-NEXT: ret ; ; CHECK-GI-LABEL: fpext_v4f32_v4f128: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #80 -; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #56] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #72] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #72] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 80 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -213,21 +213,21 @@ define <4 x fp128> @fpext_v4f32_v4f128(<4 x float> %a) { ; CHECK-GI-NEXT: mov s10, v0.s[3] ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl __extendsftf2 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl __extendsftf2 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s9 ; CHECK-GI-NEXT: bl __extendsftf2 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s10 ; CHECK-GI-NEXT: bl __extendsftf2 ; CHECK-GI-NEXT: mov v3.16b, v0.16b ; CHECK-GI-NEXT: ldp q1, q0, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #56] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #72] // 8-byte Folded Reload -; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Reload +; CHECK-GI-NEXT: ldr x30, [sp, #72] // 8-byte Reload +; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: add sp, sp, #80 ; CHECK-GI-NEXT: ret entry: @@ -239,29 +239,29 @@ define <4 x fp128> @fpext_v4f64_v4f128(<4 x double> %a) { ; CHECK-SD-LABEL: fpext_v4f64_v4f128: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #80 -; CHECK-SD-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 80 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q1, [sp, #48] // 16-byte Folded Spill -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #48] // 16-byte Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: bl __extenddftf2 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov d0, v0.d[1] ; CHECK-SD-NEXT: bl __extenddftf2 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: bl __extenddftf2 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: mov d0, v0.d[1] ; CHECK-SD-NEXT: bl __extenddftf2 ; CHECK-SD-NEXT: mov v3.16b, v0.16b ; CHECK-SD-NEXT: ldp q1, q0, [sp, #16] // 32-byte Folded Reload -; CHECK-SD-NEXT: ldr q2, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q2, [sp] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-SD-NEXT: add sp, sp, #80 ; CHECK-SD-NEXT: ret ; @@ -269,31 +269,31 @@ define <4 x fp128> @fpext_v4f64_v4f128(<4 x double> %a) { ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #80 ; CHECK-GI-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 80 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 ; CHECK-GI-NEXT: .cfi_offset b9, -32 -; CHECK-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-GI-NEXT: mov d8, v0.d[1] ; CHECK-GI-NEXT: mov d9, v1.d[1] ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-GI-NEXT: bl __extenddftf2 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov d0, d8 ; CHECK-GI-NEXT: bl __extenddftf2 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-GI-NEXT: bl __extenddftf2 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov d0, d9 ; CHECK-GI-NEXT: bl __extenddftf2 ; CHECK-GI-NEXT: mov v3.16b, v0.16b ; CHECK-GI-NEXT: ldp q1, q0, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Reload +; CHECK-GI-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-GI-NEXT: add sp, sp, #80 ; CHECK-GI-NEXT: ret entry: diff --git a/llvm/test/CodeGen/AArch64/fpow.ll b/llvm/test/CodeGen/AArch64/fpow.ll index dc93d5be9b3f3..3e9e1da87cd75 100644 --- a/llvm/test/CodeGen/AArch64/fpow.ll +++ b/llvm/test/CodeGen/AArch64/fpow.ll @@ -65,7 +65,7 @@ define <2 x double> @pow_v2f64(<2 x double> %a, <2 x double> %b) { ; CHECK-SD-LABEL: pow_v2f64: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: stp q0, q1, [sp] // 32-byte Folded Spill @@ -73,14 +73,14 @@ define <2 x double> @pow_v2f64(<2 x double> %a, <2 x double> %b) { ; CHECK-SD-NEXT: mov d1, v1.d[1] ; CHECK-SD-NEXT: bl pow ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: // kill: def $d1 killed $d1 killed $q1 ; CHECK-SD-NEXT: bl pow -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.d[1], v1.d[0] ; CHECK-SD-NEXT: add sp, sp, #64 ; CHECK-SD-NEXT: ret @@ -89,7 +89,7 @@ define <2 x double> @pow_v2f64(<2 x double> %a, <2 x double> %b) { ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #48 ; CHECK-GI-NEXT: stp d9, d8, [sp, #16] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 48 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -100,14 +100,14 @@ define <2 x double> @pow_v2f64(<2 x double> %a, <2 x double> %b) { ; CHECK-GI-NEXT: // kill: def $d1 killed $d1 killed $q1 ; CHECK-GI-NEXT: bl pow ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov d1, d9 ; CHECK-GI-NEXT: fmov d0, d8 ; CHECK-GI-NEXT: bl pow -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-GI-NEXT: ldp d9, d8, [sp, #16] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.d[1], v0.d[0] ; CHECK-GI-NEXT: mov v0.16b, v1.16b ; CHECK-GI-NEXT: add sp, sp, #48 @@ -123,7 +123,7 @@ define <3 x double> @pow_v3f64(<3 x double> %a, <3 x double> %b) { ; CHECK-SD-NEXT: str d12, [sp, #-48]! // 8-byte Folded Spill ; CHECK-SD-NEXT: stp d11, d10, [sp, #8] // 16-byte Folded Spill ; CHECK-SD-NEXT: stp d9, d8, [sp, #24] // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #40] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #40] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -8 ; CHECK-SD-NEXT: .cfi_offset b8, -16 @@ -149,7 +149,7 @@ define <3 x double> @pow_v3f64(<3 x double> %a, <3 x double> %b) { ; CHECK-SD-NEXT: ldp d9, d8, [sp, #24] // 16-byte Folded Reload ; CHECK-SD-NEXT: ldp d11, d10, [sp, #8] // 16-byte Folded Reload ; CHECK-SD-NEXT: fmov d2, d0 -; CHECK-SD-NEXT: ldr x30, [sp, #40] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #40] // 8-byte Reload ; CHECK-SD-NEXT: fmov d0, d12 ; CHECK-SD-NEXT: ldr d12, [sp], #48 // 8-byte Folded Reload ; CHECK-SD-NEXT: ret @@ -159,7 +159,7 @@ define <3 x double> @pow_v3f64(<3 x double> %a, <3 x double> %b) { ; CHECK-GI-NEXT: str d12, [sp, #-48]! // 8-byte Folded Spill ; CHECK-GI-NEXT: stp d11, d10, [sp, #8] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #24] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #40] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #40] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 48 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -185,7 +185,7 @@ define <3 x double> @pow_v3f64(<3 x double> %a, <3 x double> %b) { ; CHECK-GI-NEXT: ldp d9, d8, [sp, #24] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #8] // 16-byte Folded Reload ; CHECK-GI-NEXT: fmov d2, d0 -; CHECK-GI-NEXT: ldr x30, [sp, #40] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #40] // 8-byte Reload ; CHECK-GI-NEXT: fmov d0, d12 ; CHECK-GI-NEXT: ldr d12, [sp], #48 // 8-byte Folded Reload ; CHECK-GI-NEXT: ret @@ -198,7 +198,7 @@ define <4 x double> @pow_v4f64(<4 x double> %a, <4 x double> %b) { ; CHECK-SD-LABEL: pow_v4f64: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #96 -; CHECK-SD-NEXT: str x30, [sp, #80] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #80] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 96 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: stp q0, q2, [sp] // 32-byte Folded Spill @@ -207,28 +207,28 @@ define <4 x double> @pow_v4f64(<4 x double> %a, <4 x double> %b) { ; CHECK-SD-NEXT: mov d1, v2.d[1] ; CHECK-SD-NEXT: bl pow ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: // kill: def $d1 killed $d1 killed $q1 ; CHECK-SD-NEXT: bl pow -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-SD-NEXT: mov v0.d[1], v1.d[0] -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #48] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov d0, v0.d[1] ; CHECK-SD-NEXT: mov d1, v1.d[1] ; CHECK-SD-NEXT: bl pow ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #48] // 32-byte Folded Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: // kill: def $d1 killed $d1 killed $q1 ; CHECK-SD-NEXT: bl pow ; CHECK-SD-NEXT: fmov d1, d0 ; CHECK-SD-NEXT: ldp q2, q0, [sp, #16] // 32-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #80] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #80] // 8-byte Reload ; CHECK-SD-NEXT: mov v1.d[1], v2.d[0] ; CHECK-SD-NEXT: add sp, sp, #96 ; CHECK-SD-NEXT: ret @@ -238,7 +238,7 @@ define <4 x double> @pow_v4f64(<4 x double> %a, <4 x double> %b) { ; CHECK-GI-NEXT: sub sp, sp, #112 ; CHECK-GI-NEXT: stp d11, d10, [sp, #64] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #80] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #96] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #96] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 112 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -246,9 +246,9 @@ define <4 x double> @pow_v4f64(<4 x double> %a, <4 x double> %b) { ; CHECK-GI-NEXT: .cfi_offset b10, -40 ; CHECK-GI-NEXT: .cfi_offset b11, -48 ; CHECK-GI-NEXT: mov v4.16b, v1.16b -; CHECK-GI-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: mov v1.16b, v2.16b -; CHECK-GI-NEXT: str q3, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q3, [sp] // 16-byte Spill ; CHECK-GI-NEXT: mov d8, v0.d[1] ; CHECK-GI-NEXT: mov d10, v2.d[1] ; CHECK-GI-NEXT: mov d11, v3.d[1] @@ -257,27 +257,27 @@ define <4 x double> @pow_v4f64(<4 x double> %a, <4 x double> %b) { ; CHECK-GI-NEXT: mov d9, v4.d[1] ; CHECK-GI-NEXT: bl pow ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: fmov d1, d10 ; CHECK-GI-NEXT: fmov d0, d8 ; CHECK-GI-NEXT: bl pow ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload +; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $d1 killed $d1 killed $q1 ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-GI-NEXT: bl pow ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov d1, d11 ; CHECK-GI-NEXT: fmov d0, d9 ; CHECK-GI-NEXT: bl pow ; CHECK-GI-NEXT: ldp q3, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: ldr q2, [sp, #48] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #48] // 16-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #80] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #96] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #96] // 8-byte Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #64] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v2.d[1], v3.d[0] ; CHECK-GI-NEXT: mov v1.d[1], v0.d[0] @@ -293,7 +293,7 @@ define <2 x float> @pow_v2f32(<2 x float> %a, <2 x float> %b) { ; CHECK-SD-LABEL: pow_v2f32: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: // kill: def $d1 killed $d1 def $q1 @@ -303,14 +303,14 @@ define <2 x float> @pow_v2f32(<2 x float> %a, <2 x float> %b) { ; CHECK-SD-NEXT: mov s1, v1.s[1] ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: // kill: def $s1 killed $s1 killed $q1 ; CHECK-SD-NEXT: bl powf -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: add sp, sp, #64 @@ -320,7 +320,7 @@ define <2 x float> @pow_v2f32(<2 x float> %a, <2 x float> %b) { ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #48 ; CHECK-GI-NEXT: stp d9, d8, [sp, #16] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 48 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -333,14 +333,14 @@ define <2 x float> @pow_v2f32(<2 x float> %a, <2 x float> %b) { ; CHECK-GI-NEXT: // kill: def $s1 killed $s1 killed $q1 ; CHECK-GI-NEXT: bl powf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s1, s9 ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl powf -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-GI-NEXT: ldp d9, d8, [sp, #16] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.s[1], v0.s[0] ; CHECK-GI-NEXT: fmov d0, d1 ; CHECK-GI-NEXT: add sp, sp, #48 @@ -354,7 +354,7 @@ define <3 x float> @pow_v3f32(<3 x float> %a, <3 x float> %b) { ; CHECK-SD-LABEL: pow_v3f32: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: stp q0, q1, [sp, #16] // 32-byte Folded Spill @@ -362,22 +362,22 @@ define <3 x float> @pow_v3f32(<3 x float> %a, <3 x float> %b) { ; CHECK-SD-NEXT: mov s1, v1.s[1] ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: // kill: def $s1 killed $s1 killed $q1 ; CHECK-SD-NEXT: bl powf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: mov s1, v1.s[2] ; CHECK-SD-NEXT: bl powf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] ; CHECK-SD-NEXT: mov v0.16b, v1.16b ; CHECK-SD-NEXT: add sp, sp, #64 @@ -388,7 +388,7 @@ define <3 x float> @pow_v3f32(<3 x float> %a, <3 x float> %b) { ; CHECK-GI-NEXT: sub sp, sp, #80 ; CHECK-GI-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 80 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -403,18 +403,18 @@ define <3 x float> @pow_v3f32(<3 x float> %a, <3 x float> %b) { ; CHECK-GI-NEXT: // kill: def $s1 killed $s1 killed $q1 ; CHECK-GI-NEXT: bl powf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s1, s10 ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl powf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s1, s11 ; CHECK-GI-NEXT: fmov s0, s9 ; CHECK-GI-NEXT: bl powf ; CHECK-GI-NEXT: ldp q2, q1, [sp] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.s[1], v2.s[0] @@ -431,7 +431,7 @@ define <4 x float> @pow_v4f32(<4 x float> %a, <4 x float> %b) { ; CHECK-SD-LABEL: pow_v4f32: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: stp q0, q1, [sp, #16] // 32-byte Folded Spill @@ -439,30 +439,30 @@ define <4 x float> @pow_v4f32(<4 x float> %a, <4 x float> %b) { ; CHECK-SD-NEXT: mov s1, v1.s[1] ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: // kill: def $s1 killed $s1 killed $q1 ; CHECK-SD-NEXT: bl powf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: mov s1, v1.s[2] ; CHECK-SD-NEXT: bl powf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] -; CHECK-SD-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov s0, v0.s[3] ; CHECK-SD-NEXT: mov s1, v1.s[3] ; CHECK-SD-NEXT: bl powf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: mov v1.s[3], v0.s[0] ; CHECK-SD-NEXT: mov v0.16b, v1.16b ; CHECK-SD-NEXT: add sp, sp, #64 @@ -474,7 +474,7 @@ define <4 x float> @pow_v4f32(<4 x float> %a, <4 x float> %b) { ; CHECK-GI-NEXT: stp d13, d12, [sp, #48] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d11, d10, [sp, #64] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #80] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #96] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #96] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 112 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -493,27 +493,27 @@ define <4 x float> @pow_v4f32(<4 x float> %a, <4 x float> %b) { ; CHECK-GI-NEXT: // kill: def $s1 killed $s1 killed $q1 ; CHECK-GI-NEXT: bl powf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s1, s11 ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl powf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s1, s12 ; CHECK-GI-NEXT: fmov s0, s9 ; CHECK-GI-NEXT: bl powf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s1, s13 ; CHECK-GI-NEXT: fmov s0, s10 ; CHECK-GI-NEXT: bl powf ; CHECK-GI-NEXT: ldp q2, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #96] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #96] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #80] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #64] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.s[1], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Reload ; CHECK-GI-NEXT: ldp d13, d12, [sp, #48] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.s[2], v2.s[0] ; CHECK-GI-NEXT: mov v1.s[3], v0.s[0] @@ -529,7 +529,7 @@ define <8 x float> @pow_v8f32(<8 x float> %a, <8 x float> %b) { ; CHECK-SD-LABEL: pow_v8f32: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #96 -; CHECK-SD-NEXT: str x30, [sp, #80] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #80] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 96 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: stp q0, q2, [sp] // 32-byte Folded Spill @@ -538,61 +538,61 @@ define <8 x float> @pow_v8f32(<8 x float> %a, <8 x float> %b) { ; CHECK-SD-NEXT: mov s1, v2.s[1] ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: // kill: def $s1 killed $s1 killed $q1 ; CHECK-SD-NEXT: bl powf -; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: mov s1, v1.s[2] ; CHECK-SD-NEXT: bl powf -; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] -; CHECK-SD-NEXT: str q1, [sp, #64] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #64] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov s0, v0.s[3] ; CHECK-SD-NEXT: mov s1, v1.s[3] ; CHECK-SD-NEXT: bl powf -; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v1.s[3], v0.s[0] -; CHECK-SD-NEXT: str q1, [sp, #64] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #64] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #32] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov s0, v0.s[1] ; CHECK-SD-NEXT: mov s1, v1.s[1] ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #32] // 32-byte Folded Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: // kill: def $s1 killed $s1 killed $q1 ; CHECK-SD-NEXT: bl powf -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #32] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: mov s1, v1.s[2] ; CHECK-SD-NEXT: bl powf -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #32] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov s0, v0.s[3] ; CHECK-SD-NEXT: mov s1, v1.s[3] ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: fmov s2, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr q0, [sp, #64] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #80] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload +; CHECK-SD-NEXT: ldr q0, [sp, #64] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #80] // 8-byte Reload ; CHECK-SD-NEXT: mov v1.s[3], v2.s[0] ; CHECK-SD-NEXT: add sp, sp, #96 ; CHECK-SD-NEXT: ret @@ -604,7 +604,7 @@ define <8 x float> @pow_v8f32(<8 x float> %a, <8 x float> %b) { ; CHECK-GI-NEXT: stp d13, d12, [sp, #144] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d11, d10, [sp, #160] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #176] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #192] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #192] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 208 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -630,63 +630,63 @@ define <8 x float> @pow_v8f32(<8 x float> %a, <8 x float> %b) { ; CHECK-GI-NEXT: mov s15, v1.s[2] ; CHECK-GI-NEXT: mov s13, v1.s[3] ; CHECK-GI-NEXT: // kill: def $s1 killed $s1 killed $q1 -; CHECK-GI-NEXT: str s2, [sp, #48] // 4-byte Folded Spill +; CHECK-GI-NEXT: str s2, [sp, #48] // 4-byte Spill ; CHECK-GI-NEXT: mov s2, v4.s[2] -; CHECK-GI-NEXT: str s2, [sp, #112] // 4-byte Folded Spill +; CHECK-GI-NEXT: str s2, [sp, #112] // 4-byte Spill ; CHECK-GI-NEXT: mov s2, v3.s[3] ; CHECK-GI-NEXT: stp s2, s5, [sp, #200] // 8-byte Folded Spill ; CHECK-GI-NEXT: bl powf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Spill ; CHECK-GI-NEXT: fmov s1, s14 ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl powf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s1, s15 ; CHECK-GI-NEXT: fmov s0, s9 ; CHECK-GI-NEXT: bl powf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill ; CHECK-GI-NEXT: fmov s1, s13 ; CHECK-GI-NEXT: fmov s0, s10 ; CHECK-GI-NEXT: bl powf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: ldp q1, q0, [sp] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: // kill: def $s1 killed $s1 killed $q1 ; CHECK-GI-NEXT: bl powf ; CHECK-GI-NEXT: fmov s1, s12 ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr s0, [sp, #48] // 4-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-GI-NEXT: ldr s0, [sp, #48] // 4-byte Reload ; CHECK-GI-NEXT: bl powf ; CHECK-GI-NEXT: fmov s1, s11 ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr s0, [sp, #112] // 4-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill +; CHECK-GI-NEXT: ldr s0, [sp, #112] // 4-byte Reload ; CHECK-GI-NEXT: bl powf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #112] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #112] // 16-byte Spill ; CHECK-GI-NEXT: ldp s1, s0, [sp, #200] // 8-byte Folded Reload ; CHECK-GI-NEXT: bl powf ; CHECK-GI-NEXT: ldp q3, q2, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr q1, [sp, #96] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #96] // 16-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #176] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #192] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #192] // 8-byte Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #160] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.s[1], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp, #48] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #48] // 16-byte Reload ; CHECK-GI-NEXT: ldp d13, d12, [sp, #144] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v3.s[1], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: ldp d15, d14, [sp, #128] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.s[2], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp, #112] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #112] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.s[2], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp, #64] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #64] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.s[3], v2.s[0] ; CHECK-GI-NEXT: mov v3.s[3], v0.s[0] ; CHECK-GI-NEXT: mov v2.16b, v1.16b @@ -703,7 +703,7 @@ define <7 x half> @pow_v7f16(<7 x half> %a, <7 x half> %b) { ; CHECK-SD-LABEL: pow_v7f16: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: mov h3, v0.h[1] @@ -713,7 +713,7 @@ define <7 x half> @pow_v7f16(<7 x half> %a, <7 x half> %b) { ; CHECK-SD-NEXT: fcvt s1, h2 ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: fcvt s1, h1 @@ -723,15 +723,15 @@ define <7 x half> @pow_v7f16(<7 x half> %a, <7 x half> %b) { ; CHECK-SD-NEXT: mov h1, v1.h[2] ; CHECK-SD-NEXT: mov v0.h[1], v2.h[0] ; CHECK-SD-NEXT: fcvt s1, h1 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] ; CHECK-SD-NEXT: mov h1, v1.h[3] @@ -739,9 +739,9 @@ define <7 x half> @pow_v7f16(<7 x half> %a, <7 x half> %b) { ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] ; CHECK-SD-NEXT: mov h1, v1.h[4] @@ -749,9 +749,9 @@ define <7 x half> @pow_v7f16(<7 x half> %a, <7 x half> %b) { ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] ; CHECK-SD-NEXT: mov h1, v1.h[5] @@ -759,9 +759,9 @@ define <7 x half> @pow_v7f16(<7 x half> %a, <7 x half> %b) { ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] ; CHECK-SD-NEXT: mov h1, v1.h[6] @@ -769,9 +769,9 @@ define <7 x half> @pow_v7f16(<7 x half> %a, <7 x half> %b) { ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] ; CHECK-SD-NEXT: mov h1, v1.h[7] @@ -779,8 +779,8 @@ define <7 x half> @pow_v7f16(<7 x half> %a, <7 x half> %b) { ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: fcvt h1, s0 -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.h[7], v1.h[0] ; CHECK-SD-NEXT: add sp, sp, #64 ; CHECK-SD-NEXT: ret @@ -792,7 +792,7 @@ define <7 x half> @pow_v7f16(<7 x half> %a, <7 x half> %b) { ; CHECK-GI-NEXT: stp d13, d12, [sp, #112] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d11, d10, [sp, #128] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #144] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #160] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #160] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 176 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -812,71 +812,71 @@ define <7 x half> @pow_v7f16(<7 x half> %a, <7 x half> %b) { ; CHECK-GI-NEXT: mov h15, v1.h[2] ; CHECK-GI-NEXT: mov h8, v1.h[3] ; CHECK-GI-NEXT: mov h13, v1.h[4] -; CHECK-GI-NEXT: str h2, [sp, #48] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h2, [sp, #48] // 2-byte Spill ; CHECK-GI-NEXT: mov h2, v0.h[6] ; CHECK-GI-NEXT: fcvt s0, h0 -; CHECK-GI-NEXT: str h2, [sp, #80] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h2, [sp, #80] // 2-byte Spill ; CHECK-GI-NEXT: mov h2, v1.h[5] -; CHECK-GI-NEXT: str h2, [sp, #172] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h2, [sp, #172] // 2-byte Spill ; CHECK-GI-NEXT: mov h2, v1.h[6] ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str h2, [sp, #174] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h2, [sp, #174] // 2-byte Spill ; CHECK-GI-NEXT: bl powf ; CHECK-GI-NEXT: fcvt s2, h9 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h14 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl powf ; CHECK-GI-NEXT: fcvt s2, h10 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h15 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl powf ; CHECK-GI-NEXT: fcvt s2, h11 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h8 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl powf ; CHECK-GI-NEXT: fcvt s2, h12 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h13 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl powf -; CHECK-GI-NEXT: ldr h1, [sp, #48] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #48] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s2, h1 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr h0, [sp, #172] // 2-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill +; CHECK-GI-NEXT: ldr h0, [sp, #172] // 2-byte Reload ; CHECK-GI-NEXT: fcvt s1, h0 ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl powf -; CHECK-GI-NEXT: ldr h1, [sp, #80] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #80] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s2, h1 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr h0, [sp, #174] // 2-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill +; CHECK-GI-NEXT: ldr h0, [sp, #174] // 2-byte Reload ; CHECK-GI-NEXT: fcvt s1, h0 ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl powf ; CHECK-GI-NEXT: ldp q2, q3, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #144] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #128] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #160] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #160] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.h[1], v3.h[0] ; CHECK-GI-NEXT: ldp d13, d12, [sp, #112] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d15, d14, [sp, #96] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[3], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #48] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #48] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[4], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[5], v2.h[0] ; CHECK-GI-NEXT: mov v1.h[6], v0.h[0] ; CHECK-GI-NEXT: mov v0.16b, v1.16b @@ -891,7 +891,7 @@ define <4 x half> @pow_v4f16(<4 x half> %a, <4 x half> %b) { ; CHECK-SD-LABEL: pow_v4f16: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: // kill: def $d1 killed $d1 def $q1 @@ -902,38 +902,38 @@ define <4 x half> @pow_v4f16(<4 x half> %a, <4 x half> %b) { ; CHECK-SD-NEXT: fcvt s0, h3 ; CHECK-SD-NEXT: fcvt s1, h2 ; CHECK-SD-NEXT: bl powf -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: fcvt h0, s0 ; CHECK-SD-NEXT: fcvt s2, h1 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s1, h0 ; CHECK-SD-NEXT: fmov s0, s2 ; CHECK-SD-NEXT: bl powf -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: fcvt h3, s0 -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov h1, v1.h[2] ; CHECK-SD-NEXT: mov h2, v0.h[2] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov v3.h[1], v0.h[0] ; CHECK-SD-NEXT: fcvt s0, h1 ; CHECK-SD-NEXT: fcvt s1, h2 -; CHECK-SD-NEXT: str q3, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q3, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: ldp q1, q2, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q3, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q3, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h1, v1.h[3] ; CHECK-SD-NEXT: mov h2, v2.h[3] ; CHECK-SD-NEXT: mov v3.h[2], v0.h[0] ; CHECK-SD-NEXT: fcvt s0, h1 ; CHECK-SD-NEXT: fcvt s1, h2 -; CHECK-SD-NEXT: str q3, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q3, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: fcvt h1, s0 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.h[3], v1.h[0] ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: add sp, sp, #64 @@ -945,7 +945,7 @@ define <4 x half> @pow_v4f16(<4 x half> %a, <4 x half> %b) { ; CHECK-GI-NEXT: stp d13, d12, [sp, #48] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d11, d10, [sp, #64] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #80] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #96] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #96] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 112 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -968,27 +968,27 @@ define <4 x half> @pow_v4f16(<4 x half> %a, <4 x half> %b) { ; CHECK-GI-NEXT: fcvt s2, h8 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h11 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl powf ; CHECK-GI-NEXT: fcvt s2, h9 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h12 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl powf ; CHECK-GI-NEXT: fcvt s2, h10 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h13 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl powf ; CHECK-GI-NEXT: ldp q3, q2, [sp] // 32-byte Folded Reload ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #80] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #64] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #96] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #96] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.h[1], v3.h[0] ; CHECK-GI-NEXT: ldp d13, d12, [sp, #48] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] @@ -1006,7 +1006,7 @@ define <8 x half> @pow_v8f16(<8 x half> %a, <8 x half> %b) { ; CHECK-SD-LABEL: pow_v8f16: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: mov h3, v0.h[1] @@ -1016,7 +1016,7 @@ define <8 x half> @pow_v8f16(<8 x half> %a, <8 x half> %b) { ; CHECK-SD-NEXT: fcvt s1, h2 ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: fcvt s1, h1 @@ -1026,15 +1026,15 @@ define <8 x half> @pow_v8f16(<8 x half> %a, <8 x half> %b) { ; CHECK-SD-NEXT: mov h1, v1.h[2] ; CHECK-SD-NEXT: mov v0.h[1], v2.h[0] ; CHECK-SD-NEXT: fcvt s1, h1 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] ; CHECK-SD-NEXT: mov h1, v1.h[3] @@ -1042,9 +1042,9 @@ define <8 x half> @pow_v8f16(<8 x half> %a, <8 x half> %b) { ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] ; CHECK-SD-NEXT: mov h1, v1.h[4] @@ -1052,9 +1052,9 @@ define <8 x half> @pow_v8f16(<8 x half> %a, <8 x half> %b) { ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] ; CHECK-SD-NEXT: mov h1, v1.h[5] @@ -1062,9 +1062,9 @@ define <8 x half> @pow_v8f16(<8 x half> %a, <8 x half> %b) { ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] ; CHECK-SD-NEXT: mov h1, v1.h[6] @@ -1072,9 +1072,9 @@ define <8 x half> @pow_v8f16(<8 x half> %a, <8 x half> %b) { ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] ; CHECK-SD-NEXT: mov h1, v1.h[7] @@ -1082,8 +1082,8 @@ define <8 x half> @pow_v8f16(<8 x half> %a, <8 x half> %b) { ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: fcvt h1, s0 -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.h[7], v1.h[0] ; CHECK-SD-NEXT: add sp, sp, #64 ; CHECK-SD-NEXT: ret @@ -1095,7 +1095,7 @@ define <8 x half> @pow_v8f16(<8 x half> %a, <8 x half> %b) { ; CHECK-GI-NEXT: stp d13, d12, [sp, #128] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d11, d10, [sp, #144] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #160] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #176] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #176] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 192 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -1115,84 +1115,84 @@ define <8 x half> @pow_v8f16(<8 x half> %a, <8 x half> %b) { ; CHECK-GI-NEXT: mov h9, v1.h[2] ; CHECK-GI-NEXT: mov h10, v1.h[3] ; CHECK-GI-NEXT: mov h15, v1.h[4] -; CHECK-GI-NEXT: str h2, [sp, #48] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h2, [sp, #48] // 2-byte Spill ; CHECK-GI-NEXT: mov h2, v0.h[6] -; CHECK-GI-NEXT: str h2, [sp, #64] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h2, [sp, #64] // 2-byte Spill ; CHECK-GI-NEXT: mov h2, v0.h[7] ; CHECK-GI-NEXT: fcvt s0, h0 -; CHECK-GI-NEXT: str h2, [sp, #96] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h2, [sp, #96] // 2-byte Spill ; CHECK-GI-NEXT: mov h2, v1.h[5] -; CHECK-GI-NEXT: str h2, [sp, #186] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h2, [sp, #186] // 2-byte Spill ; CHECK-GI-NEXT: mov h2, v1.h[6] -; CHECK-GI-NEXT: str h2, [sp, #188] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h2, [sp, #188] // 2-byte Spill ; CHECK-GI-NEXT: mov h2, v1.h[7] ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str h2, [sp, #190] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h2, [sp, #190] // 2-byte Spill ; CHECK-GI-NEXT: bl powf ; CHECK-GI-NEXT: fcvt s2, h11 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h8 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl powf ; CHECK-GI-NEXT: fcvt s2, h12 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h9 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl powf ; CHECK-GI-NEXT: fcvt s2, h13 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h10 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl powf ; CHECK-GI-NEXT: fcvt s2, h14 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h15 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl powf -; CHECK-GI-NEXT: ldr h1, [sp, #48] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #48] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s2, h1 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr h0, [sp, #186] // 2-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill +; CHECK-GI-NEXT: ldr h0, [sp, #186] // 2-byte Reload ; CHECK-GI-NEXT: fcvt s1, h0 ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl powf -; CHECK-GI-NEXT: ldr h1, [sp, #64] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #64] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s2, h1 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr h0, [sp, #188] // 2-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill +; CHECK-GI-NEXT: ldr h0, [sp, #188] // 2-byte Reload ; CHECK-GI-NEXT: fcvt s1, h0 ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl powf -; CHECK-GI-NEXT: ldr h1, [sp, #96] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #96] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s2, h1 -; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr h0, [sp, #190] // 2-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Spill +; CHECK-GI-NEXT: ldr h0, [sp, #190] // 2-byte Reload ; CHECK-GI-NEXT: fcvt s1, h0 ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl powf ; CHECK-GI-NEXT: ldp q2, q3, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: ldr q1, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #160] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #144] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #176] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #176] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.h[1], v3.h[0] ; CHECK-GI-NEXT: ldp d13, d12, [sp, #128] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d15, d14, [sp, #112] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[3], v2.h[0] ; CHECK-GI-NEXT: ldp q3, q2, [sp, #48] // 32-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[4], v3.h[0] ; CHECK-GI-NEXT: mov v1.h[5], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #96] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #96] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[6], v2.h[0] ; CHECK-GI-NEXT: mov v1.h[7], v0.h[0] ; CHECK-GI-NEXT: mov v0.16b, v1.16b @@ -1207,7 +1207,7 @@ define <16 x half> @pow_v16f16(<16 x half> %a, <16 x half> %b) { ; CHECK-SD-LABEL: pow_v16f16: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #96 -; CHECK-SD-NEXT: str x30, [sp, #80] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #80] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 96 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: stp q0, q1, [sp] // 32-byte Folded Spill @@ -1218,10 +1218,10 @@ define <16 x half> @pow_v16f16(<16 x half> %a, <16 x half> %b) { ; CHECK-SD-NEXT: fcvt s0, h3 ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s1, h1 -; CHECK-SD-NEXT: str q0, [sp, #64] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #64] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: fcvt h0, s0 @@ -1229,70 +1229,70 @@ define <16 x half> @pow_v16f16(<16 x half> %a, <16 x half> %b) { ; CHECK-SD-NEXT: mov h1, v1.h[2] ; CHECK-SD-NEXT: mov v0.h[1], v2.h[0] ; CHECK-SD-NEXT: fcvt s1, h1 -; CHECK-SD-NEXT: str q0, [sp, #64] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #64] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] -; CHECK-SD-NEXT: str q1, [sp, #64] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q1, [sp, #64] // 16-byte Spill +; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: mov h1, v1.h[3] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] -; CHECK-SD-NEXT: str q1, [sp, #64] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q1, [sp, #64] // 16-byte Spill +; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: mov h1, v1.h[4] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] -; CHECK-SD-NEXT: str q1, [sp, #64] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q1, [sp, #64] // 16-byte Spill +; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: mov h1, v1.h[5] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] -; CHECK-SD-NEXT: str q1, [sp, #64] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q1, [sp, #64] // 16-byte Spill +; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: mov h1, v1.h[6] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] -; CHECK-SD-NEXT: str q1, [sp, #64] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q1, [sp, #64] // 16-byte Spill +; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: mov h1, v1.h[7] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[7], v0.h[0] -; CHECK-SD-NEXT: str q1, [sp, #64] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #64] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov h0, v0.h[1] ; CHECK-SD-NEXT: mov h1, v1.h[1] @@ -1300,7 +1300,7 @@ define <16 x half> @pow_v16f16(<16 x half> %a, <16 x half> %b) { ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: fcvt s1, h1 @@ -1310,15 +1310,15 @@ define <16 x half> @pow_v16f16(<16 x half> %a, <16 x half> %b) { ; CHECK-SD-NEXT: mov h1, v1.h[2] ; CHECK-SD-NEXT: mov v0.h[1], v2.h[0] ; CHECK-SD-NEXT: fcvt s1, h1 -; CHECK-SD-NEXT: str q0, [sp, #48] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #48] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: str q1, [sp, #48] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #48] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] ; CHECK-SD-NEXT: mov h1, v1.h[3] @@ -1326,9 +1326,9 @@ define <16 x half> @pow_v16f16(<16 x half> %a, <16 x half> %b) { ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: str q1, [sp, #48] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #48] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] ; CHECK-SD-NEXT: mov h1, v1.h[4] @@ -1336,9 +1336,9 @@ define <16 x half> @pow_v16f16(<16 x half> %a, <16 x half> %b) { ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: str q1, [sp, #48] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #48] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] ; CHECK-SD-NEXT: mov h1, v1.h[5] @@ -1346,9 +1346,9 @@ define <16 x half> @pow_v16f16(<16 x half> %a, <16 x half> %b) { ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: str q1, [sp, #48] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #48] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] ; CHECK-SD-NEXT: mov h1, v1.h[6] @@ -1356,9 +1356,9 @@ define <16 x half> @pow_v16f16(<16 x half> %a, <16 x half> %b) { ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: str q1, [sp, #48] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #48] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] ; CHECK-SD-NEXT: mov h1, v1.h[7] @@ -1366,7 +1366,7 @@ define <16 x half> @pow_v16f16(<16 x half> %a, <16 x half> %b) { ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl powf ; CHECK-SD-NEXT: fmov s1, s0 -; CHECK-SD-NEXT: ldr x30, [sp, #80] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #80] // 8-byte Reload ; CHECK-SD-NEXT: fcvt h2, s1 ; CHECK-SD-NEXT: ldp q1, q0, [sp, #48] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov v1.h[7], v2.h[0] @@ -1393,203 +1393,203 @@ define <16 x half> @pow_v16f16(<16 x half> %a, <16 x half> %b) { ; CHECK-GI-NEXT: .cfi_offset b14, -72 ; CHECK-GI-NEXT: .cfi_offset b15, -80 ; CHECK-GI-NEXT: mov v4.16b, v1.16b -; CHECK-GI-NEXT: str q1, [sp, #112] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp, #112] // 16-byte Spill ; CHECK-GI-NEXT: mov h1, v0.h[4] ; CHECK-GI-NEXT: mov h12, v0.h[1] ; CHECK-GI-NEXT: mov h13, v0.h[2] -; CHECK-GI-NEXT: str q3, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q3, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: mov h14, v0.h[3] ; CHECK-GI-NEXT: mov h15, v2.h[1] ; CHECK-GI-NEXT: mov h8, v2.h[2] ; CHECK-GI-NEXT: mov h9, v2.h[3] ; CHECK-GI-NEXT: mov h10, v2.h[4] ; CHECK-GI-NEXT: mov h11, v2.h[5] -; CHECK-GI-NEXT: str h1, [sp, #272] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #272] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v0.h[5] -; CHECK-GI-NEXT: str h1, [sp, #240] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #240] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v0.h[6] -; CHECK-GI-NEXT: str h1, [sp, #176] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #176] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v0.h[7] ; CHECK-GI-NEXT: fcvt s0, h0 -; CHECK-GI-NEXT: str h1, [sp, #144] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #144] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v4.h[1] -; CHECK-GI-NEXT: str h1, [sp, #48] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #48] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v4.h[2] -; CHECK-GI-NEXT: str h1, [sp, #80] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #80] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v4.h[3] -; CHECK-GI-NEXT: str h1, [sp, #128] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #128] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v4.h[4] -; CHECK-GI-NEXT: str h1, [sp, #192] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #192] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v4.h[5] -; CHECK-GI-NEXT: str h1, [sp, #256] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #256] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v4.h[6] -; CHECK-GI-NEXT: str h1, [sp, #336] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #336] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v4.h[7] -; CHECK-GI-NEXT: str h1, [sp, #352] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #352] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[6] -; CHECK-GI-NEXT: str h1, [sp, #12] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #12] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[7] -; CHECK-GI-NEXT: str h1, [sp, #14] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #14] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v3.h[1] -; CHECK-GI-NEXT: str h1, [sp, #44] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #44] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v3.h[2] -; CHECK-GI-NEXT: str h1, [sp, #46] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #46] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v3.h[3] -; CHECK-GI-NEXT: str h1, [sp, #78] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #78] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v3.h[4] -; CHECK-GI-NEXT: str h1, [sp, #110] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #110] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v3.h[5] -; CHECK-GI-NEXT: str h1, [sp, #174] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #174] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v3.h[6] -; CHECK-GI-NEXT: str h1, [sp, #238] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #238] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v3.h[7] -; CHECK-GI-NEXT: str h1, [sp, #302] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #302] // 2-byte Spill ; CHECK-GI-NEXT: fcvt s1, h2 ; CHECK-GI-NEXT: bl powf ; CHECK-GI-NEXT: fcvt s2, h12 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h15 -; CHECK-GI-NEXT: str q0, [sp, #304] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #304] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl powf ; CHECK-GI-NEXT: fcvt s2, h13 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h8 -; CHECK-GI-NEXT: str q0, [sp, #208] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #208] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl powf ; CHECK-GI-NEXT: fcvt s2, h14 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h9 -; CHECK-GI-NEXT: str q0, [sp, #320] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #320] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl powf -; CHECK-GI-NEXT: ldr h1, [sp, #272] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #272] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s2, h1 ; CHECK-GI-NEXT: fcvt s1, h10 -; CHECK-GI-NEXT: str q0, [sp, #272] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #272] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl powf -; CHECK-GI-NEXT: ldr h1, [sp, #240] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #240] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s2, h1 ; CHECK-GI-NEXT: fcvt s1, h11 -; CHECK-GI-NEXT: str q0, [sp, #240] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #240] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl powf -; CHECK-GI-NEXT: ldr h1, [sp, #176] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #176] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s2, h1 -; CHECK-GI-NEXT: str q0, [sp, #176] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr h0, [sp, #12] // 2-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #176] // 16-byte Spill +; CHECK-GI-NEXT: ldr h0, [sp, #12] // 2-byte Reload ; CHECK-GI-NEXT: fcvt s1, h0 ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl powf -; CHECK-GI-NEXT: ldr h1, [sp, #144] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #144] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s2, h1 -; CHECK-GI-NEXT: str q0, [sp, #144] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr h0, [sp, #14] // 2-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #144] // 16-byte Spill +; CHECK-GI-NEXT: ldr h0, [sp, #14] // 2-byte Reload ; CHECK-GI-NEXT: fcvt s1, h0 ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl powf -; CHECK-GI-NEXT: ldr q1, [sp, #112] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #112] // 16-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s2, h1 -; CHECK-GI-NEXT: str q0, [sp, #112] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #112] // 16-byte Spill +; CHECK-GI-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-GI-NEXT: fcvt s1, h0 ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl powf -; CHECK-GI-NEXT: ldr h1, [sp, #48] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #48] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s2, h1 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr h0, [sp, #44] // 2-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill +; CHECK-GI-NEXT: ldr h0, [sp, #44] // 2-byte Reload ; CHECK-GI-NEXT: fcvt s1, h0 ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl powf -; CHECK-GI-NEXT: ldr h1, [sp, #80] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #80] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s2, h1 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr h0, [sp, #46] // 2-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill +; CHECK-GI-NEXT: ldr h0, [sp, #46] // 2-byte Reload ; CHECK-GI-NEXT: fcvt s1, h0 ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl powf -; CHECK-GI-NEXT: ldr h1, [sp, #128] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #128] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s2, h1 -; CHECK-GI-NEXT: str q0, [sp, #128] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr h0, [sp, #78] // 2-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #128] // 16-byte Spill +; CHECK-GI-NEXT: ldr h0, [sp, #78] // 2-byte Reload ; CHECK-GI-NEXT: fcvt s1, h0 ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl powf -; CHECK-GI-NEXT: ldr h1, [sp, #192] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #192] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s2, h1 -; CHECK-GI-NEXT: str q0, [sp, #192] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr h0, [sp, #110] // 2-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #192] // 16-byte Spill +; CHECK-GI-NEXT: ldr h0, [sp, #110] // 2-byte Reload ; CHECK-GI-NEXT: fcvt s1, h0 ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl powf -; CHECK-GI-NEXT: ldr h1, [sp, #256] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #256] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s2, h1 -; CHECK-GI-NEXT: str q0, [sp, #256] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr h0, [sp, #174] // 2-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #256] // 16-byte Spill +; CHECK-GI-NEXT: ldr h0, [sp, #174] // 2-byte Reload ; CHECK-GI-NEXT: fcvt s1, h0 ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl powf -; CHECK-GI-NEXT: ldr h1, [sp, #336] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #336] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s2, h1 -; CHECK-GI-NEXT: str q0, [sp, #336] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr h0, [sp, #238] // 2-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #336] // 16-byte Spill +; CHECK-GI-NEXT: ldr h0, [sp, #238] // 2-byte Reload ; CHECK-GI-NEXT: fcvt s1, h0 ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl powf -; CHECK-GI-NEXT: ldr h1, [sp, #352] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #352] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s2, h1 -; CHECK-GI-NEXT: str q0, [sp, #352] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr h0, [sp, #302] // 2-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #352] // 16-byte Spill +; CHECK-GI-NEXT: ldr h0, [sp, #302] // 2-byte Reload ; CHECK-GI-NEXT: fcvt s1, h0 ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl powf -; CHECK-GI-NEXT: ldr q3, [sp, #304] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr q2, [sp, #208] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr q1, [sp, #48] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q3, [sp, #304] // 16-byte Reload +; CHECK-GI-NEXT: ldr q2, [sp, #208] // 16-byte Reload +; CHECK-GI-NEXT: ldr q1, [sp, #48] // 16-byte Reload ; CHECK-GI-NEXT: ldp x29, x30, [sp, #432] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v3.h[1], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #416] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[1], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #320] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #320] // 16-byte Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #400] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v3.h[2], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #128] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #128] // 16-byte Reload ; CHECK-GI-NEXT: ldp d13, d12, [sp, #384] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #272] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #272] // 16-byte Reload ; CHECK-GI-NEXT: ldp d15, d14, [sp, #368] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v3.h[3], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #192] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #192] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[3], v2.h[0] ; CHECK-GI-NEXT: ldp q4, q2, [sp, #240] // 32-byte Folded Reload ; CHECK-GI-NEXT: mov v3.h[4], v4.h[0] ; CHECK-GI-NEXT: mov v1.h[4], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #176] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #176] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[5], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #336] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #336] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[5], v2.h[0] ; CHECK-GI-NEXT: fcvt h2, s0 -; CHECK-GI-NEXT: ldr q0, [sp, #144] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #144] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[6], v0.h[0] -; CHECK-GI-NEXT: ldr q0, [sp, #352] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #352] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[6], v0.h[0] -; CHECK-GI-NEXT: ldr q0, [sp, #112] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #112] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[7], v0.h[0] ; CHECK-GI-NEXT: mov v1.h[7], v2.h[0] ; CHECK-GI-NEXT: mov v0.16b, v3.16b @@ -1604,36 +1604,36 @@ define <2 x fp128> @pow_v2fp128(<2 x fp128> %a, <2 x fp128> %b) { ; CHECK-SD-LABEL: pow_v2fp128: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: stp q1, q3, [sp, #16] // 32-byte Folded Spill ; CHECK-SD-NEXT: mov v1.16b, v2.16b ; CHECK-SD-NEXT: bl powl -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: bl powl ; CHECK-SD-NEXT: mov v1.16b, v0.16b -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: add sp, sp, #64 ; CHECK-SD-NEXT: ret ; ; CHECK-GI-LABEL: pow_v2fp128: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #64 -; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 64 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: stp q3, q1, [sp, #16] // 32-byte Folded Spill ; CHECK-GI-NEXT: mov v1.16b, v2.16b ; CHECK-GI-NEXT: bl powl -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: ldp q1, q0, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: bl powl ; CHECK-GI-NEXT: mov v1.16b, v0.16b -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: add sp, sp, #64 ; CHECK-GI-NEXT: ret entry: diff --git a/llvm/test/CodeGen/AArch64/fpowi.ll b/llvm/test/CodeGen/AArch64/fpowi.ll index 8948556d1b380..f76e3a8679886 100644 --- a/llvm/test/CodeGen/AArch64/fpowi.ll +++ b/llvm/test/CodeGen/AArch64/fpowi.ll @@ -67,17 +67,17 @@ define <2 x double> @powi_v2f64(<2 x double> %a, i32 %b) { ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w19, -8 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov d0, v0.d[1] ; CHECK-SD-NEXT: mov w19, w0 ; CHECK-SD-NEXT: bl __powidf2 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: mov w0, w19 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: bl __powidf2 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: ldp x30, x19, [sp, #32] // 16-byte Folded Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-SD-NEXT: mov v0.d[1], v1.d[0] @@ -87,7 +87,7 @@ define <2 x double> @powi_v2f64(<2 x double> %a, i32 %b) { ; CHECK-GI-LABEL: powi_v2f64: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #48 -; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Spill ; CHECK-GI-NEXT: stp x30, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 48 ; CHECK-GI-NEXT: .cfi_offset w19, -8 @@ -98,14 +98,14 @@ define <2 x double> @powi_v2f64(<2 x double> %a, i32 %b) { ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-GI-NEXT: bl __powidf2 ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: mov w0, w19 ; CHECK-GI-NEXT: fmov d0, d8 ; CHECK-GI-NEXT: bl __powidf2 -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-GI-NEXT: ldp x30, x19, [sp, #32] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.d[1], v0.d[0] ; CHECK-GI-NEXT: mov v0.16b, v1.16b ; CHECK-GI-NEXT: add sp, sp, #48 @@ -190,29 +190,29 @@ define <4 x double> @powi_v4f64(<4 x double> %a, i32 %b) { ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w19, -8 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov d0, v0.d[1] ; CHECK-SD-NEXT: mov w19, w0 -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: bl __powidf2 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: mov w0, w19 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: bl __powidf2 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: mov v0.d[1], v1.d[0] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov d0, v0.d[1] ; CHECK-SD-NEXT: bl __powidf2 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov w0, w19 -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: bl __powidf2 ; CHECK-SD-NEXT: fmov d1, d0 @@ -232,25 +232,25 @@ define <4 x double> @powi_v4f64(<4 x double> %a, i32 %b) { ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 ; CHECK-GI-NEXT: .cfi_offset b9, -32 -; CHECK-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-GI-NEXT: mov d8, v0.d[1] ; CHECK-GI-NEXT: mov d9, v1.d[1] ; CHECK-GI-NEXT: mov w19, w0 ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-GI-NEXT: bl __powidf2 ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: mov w0, w19 ; CHECK-GI-NEXT: fmov d0, d8 ; CHECK-GI-NEXT: bl __powidf2 ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: mov w0, w19 -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-GI-NEXT: bl __powidf2 ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: mov w0, w19 ; CHECK-GI-NEXT: fmov d0, d9 ; CHECK-GI-NEXT: bl __powidf2 @@ -259,7 +259,7 @@ define <4 x double> @powi_v4f64(<4 x double> %a, i32 %b) { ; CHECK-GI-NEXT: ldp x30, x19, [sp, #64] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v2.d[1], v1.d[0] -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.d[1], v0.d[0] ; CHECK-GI-NEXT: mov v0.16b, v2.16b ; CHECK-GI-NEXT: add sp, sp, #80 @@ -278,17 +278,17 @@ define <2 x float> @powi_v2f32(<2 x float> %a, i32 %b) { ; CHECK-SD-NEXT: .cfi_offset w19, -8 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov w19, w0 ; CHECK-SD-NEXT: mov s0, v0.s[1] ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: mov w0, w19 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl __powisf2 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: ldp x30, x19, [sp, #32] // 16-byte Folded Reload ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] @@ -299,7 +299,7 @@ define <2 x float> @powi_v2f32(<2 x float> %a, i32 %b) { ; CHECK-GI-LABEL: powi_v2f32: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #48 -; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Spill ; CHECK-GI-NEXT: stp x30, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 48 ; CHECK-GI-NEXT: .cfi_offset w19, -8 @@ -311,14 +311,14 @@ define <2 x float> @powi_v2f32(<2 x float> %a, i32 %b) { ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: mov w0, w19 ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl __powisf2 -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-GI-NEXT: ldp x30, x19, [sp, #32] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.s[1], v0.s[0] ; CHECK-GI-NEXT: fmov d0, d1 ; CHECK-GI-NEXT: add sp, sp, #48 @@ -336,25 +336,25 @@ define <3 x float> @powi_v3f32(<3 x float> %a, i32 %b) { ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w19, -8 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: mov s0, v0.s[1] ; CHECK-SD-NEXT: mov w19, w0 ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov w0, w19 -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl __powisf2 -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: bl __powisf2 -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: ldp x30, x19, [sp, #32] // 16-byte Folded Reload ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] @@ -378,12 +378,12 @@ define <3 x float> @powi_v3f32(<3 x float> %a, i32 %b) { ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: mov w0, w19 ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: mov w0, w19 ; CHECK-GI-NEXT: fmov s0, s9 ; CHECK-GI-NEXT: bl __powisf2 @@ -409,33 +409,33 @@ define <4 x float> @powi_v4f32(<4 x float> %a, i32 %b) { ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w19, -8 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: mov s0, v0.s[1] ; CHECK-SD-NEXT: mov w19, w0 ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov w0, w19 -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl __powisf2 -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: bl __powisf2 -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[3] -; CHECK-SD-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl __powisf2 -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: ldp x30, x19, [sp, #32] // 16-byte Folded Reload ; CHECK-SD-NEXT: mov v1.s[3], v0.s[0] @@ -446,7 +446,7 @@ define <4 x float> @powi_v4f32(<4 x float> %a, i32 %b) { ; CHECK-GI-LABEL: powi_v4f32: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #96 -; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #64] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp x30, x19, [sp, #80] // 16-byte Folded Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 96 @@ -462,27 +462,27 @@ define <4 x float> @powi_v4f32(<4 x float> %a, i32 %b) { ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: mov w0, w19 ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: mov w0, w19 ; CHECK-GI-NEXT: fmov s0, s9 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: mov w0, w19 ; CHECK-GI-NEXT: fmov s0, s10 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: ldp q2, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: ldp x30, x19, [sp, #80] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #64] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.s[1], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.s[2], v2.s[0] ; CHECK-GI-NEXT: mov v1.s[3], v0.s[0] ; CHECK-GI-NEXT: mov v0.16b, v1.16b @@ -506,60 +506,60 @@ define <8 x float> @powi_v8f32(<8 x float> %a, i32 %b) { ; CHECK-SD-NEXT: mov w19, w0 ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: mov w0, w19 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl __powisf2 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: bl __powisf2 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[3] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: bl __powisf2 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: mov v1.s[3], v0.s[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[1] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov w0, w19 -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl __powisf2 -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: bl __powisf2 -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[3] -; CHECK-SD-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: fmov s2, s0 -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: ldp x30, x19, [sp, #48] // 16-byte Folded Reload ; CHECK-SD-NEXT: mov v1.s[3], v2.s[0] ; CHECK-SD-NEXT: add sp, sp, #64 @@ -581,7 +581,7 @@ define <8 x float> @powi_v8f32(<8 x float> %a, i32 %b) { ; CHECK-GI-NEXT: .cfi_offset b11, -48 ; CHECK-GI-NEXT: .cfi_offset b12, -56 ; CHECK-GI-NEXT: .cfi_offset b13, -64 -; CHECK-GI-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: mov s8, v0.s[1] ; CHECK-GI-NEXT: mov s9, v0.s[2] ; CHECK-GI-NEXT: mov s10, v0.s[3] @@ -592,56 +592,56 @@ define <8 x float> @powi_v8f32(<8 x float> %a, i32 %b) { ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Spill ; CHECK-GI-NEXT: mov w0, w19 ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: mov w0, w19 ; CHECK-GI-NEXT: fmov s0, s9 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill ; CHECK-GI-NEXT: mov w0, w19 ; CHECK-GI-NEXT: fmov s0, s10 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: mov w0, w19 -; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: mov w0, w19 ; CHECK-GI-NEXT: fmov s0, s11 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: mov w0, w19 ; CHECK-GI-NEXT: fmov s0, s12 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: mov w0, w19 ; CHECK-GI-NEXT: fmov s0, s13 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: ldp q3, q2, [sp, #32] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr q1, [sp, #96] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #96] // 16-byte Reload ; CHECK-GI-NEXT: ldp x30, x19, [sp, #160] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #144] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.s[1], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp, #16] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #16] // 16-byte Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #128] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v3.s[1], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: ldp d13, d12, [sp, #112] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.s[2], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.s[2], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp, #64] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #64] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.s[3], v2.s[0] ; CHECK-GI-NEXT: mov v3.s[3], v0.s[0] ; CHECK-GI-NEXT: mov v2.16b, v1.16b @@ -663,72 +663,72 @@ define <7 x half> @powi_v7f16(<7 x half> %a, i32 %b) { ; CHECK-SD-NEXT: .cfi_offset w19, -8 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: mov h1, v0.h[1] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov w19, w0 ; CHECK-SD-NEXT: fcvt s0, h1 ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: fcvt h0, s0 ; CHECK-SD-NEXT: mov w0, w19 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: mov v0.h[1], v1.h[0] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: fcvt h1, s0 -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: ldp x30, x19, [sp, #32] // 16-byte Folded Reload ; CHECK-SD-NEXT: mov v0.h[7], v1.h[0] ; CHECK-SD-NEXT: add sp, sp, #48 @@ -762,37 +762,37 @@ define <7 x half> @powi_v7f16(<7 x half> %a, i32 %b) { ; CHECK-GI-NEXT: fcvt s1, h8 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: mov w0, w19 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: fcvt s1, h9 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: mov w0, w19 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: fcvt s1, h10 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: mov w0, w19 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: fcvt s1, h11 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: mov w0, w19 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: fcvt s1, h12 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: mov w0, w19 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: fcvt s1, h13 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: mov w0, w19 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: ldp q2, q1, [sp, #64] // 32-byte Folded Reload @@ -827,37 +827,37 @@ define <4 x half> @powi_v4f16(<4 x half> %a, i32 %b) { ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-SD-NEXT: mov h1, v0.h[1] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: mov w19, w0 ; CHECK-SD-NEXT: fcvt s0, h1 ; CHECK-SD-NEXT: bl __powisf2 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: fcvt h0, s0 ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: fcvt s1, h1 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: fmov s0, s1 ; CHECK-SD-NEXT: bl __powisf2 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: fcvt h2, s0 ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: mov h1, v1.h[2] ; CHECK-SD-NEXT: fcvt s0, h1 -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov v2.h[1], v1.h[0] -; CHECK-SD-NEXT: str q2, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q2, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl __powisf2 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: fcvt h2, s0 ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: mov h1, v1.h[3] ; CHECK-SD-NEXT: fcvt s0, h1 -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v2.h[0] -; CHECK-SD-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: fcvt h1, s0 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: ldp x30, x19, [sp, #32] // 16-byte Folded Reload ; CHECK-SD-NEXT: mov v0.h[3], v1.h[0] ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 @@ -867,7 +867,7 @@ define <4 x half> @powi_v4f16(<4 x half> %a, i32 %b) { ; CHECK-GI-LABEL: powi_v4f16: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #96 -; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #64] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp x30, x19, [sp, #80] // 16-byte Folded Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 96 @@ -886,27 +886,27 @@ define <4 x half> @powi_v4f16(<4 x half> %a, i32 %b) { ; CHECK-GI-NEXT: fcvt s1, h8 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: mov w0, w19 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: fcvt s1, h9 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: mov w0, w19 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: fcvt s1, h10 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: mov w0, w19 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: ldp q3, q2, [sp] // 32-byte Folded Reload ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: ldp x30, x19, [sp, #80] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #64] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.h[1], v3.h[0] ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] ; CHECK-GI-NEXT: mov v1.h[3], v0.h[0] @@ -928,72 +928,72 @@ define <8 x half> @powi_v8f16(<8 x half> %a, i32 %b) { ; CHECK-SD-NEXT: .cfi_offset w19, -8 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: mov h1, v0.h[1] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov w19, w0 ; CHECK-SD-NEXT: fcvt s0, h1 ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: fcvt h0, s0 ; CHECK-SD-NEXT: mov w0, w19 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: mov v0.h[1], v1.h[0] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: fcvt h1, s0 -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: ldp x30, x19, [sp, #32] // 16-byte Folded Reload ; CHECK-SD-NEXT: mov v0.h[7], v1.h[0] ; CHECK-SD-NEXT: add sp, sp, #48 @@ -1002,7 +1002,7 @@ define <8 x half> @powi_v8f16(<8 x half> %a, i32 %b) { ; CHECK-GI-LABEL: powi_v8f16: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #192 -; CHECK-GI-NEXT: str d14, [sp, #112] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d14, [sp, #112] // 8-byte Spill ; CHECK-GI-NEXT: stp d13, d12, [sp, #128] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d11, d10, [sp, #144] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #160] // 16-byte Folded Spill @@ -1030,49 +1030,49 @@ define <8 x half> @powi_v8f16(<8 x half> %a, i32 %b) { ; CHECK-GI-NEXT: fcvt s1, h8 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: mov w0, w19 -; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: fcvt s1, h9 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: mov w0, w19 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: fcvt s1, h10 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: mov w0, w19 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: fcvt s1, h11 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: mov w0, w19 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: fcvt s1, h12 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: mov w0, w19 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: fcvt s1, h13 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: mov w0, w19 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: fcvt s1, h14 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: mov w0, w19 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: ldp q2, q1, [sp, #80] // 32-byte Folded Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: ldp x30, x19, [sp, #176] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr d14, [sp, #112] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr d14, [sp, #112] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #160] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[1], v2.h[0] ; CHECK-GI-NEXT: ldp q2, q3, [sp, #48] // 32-byte Folded Reload @@ -1083,7 +1083,7 @@ define <8 x half> @powi_v8f16(<8 x half> %a, i32 %b) { ; CHECK-GI-NEXT: ldp q2, q3, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[4], v3.h[0] ; CHECK-GI-NEXT: mov v1.h[5], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[6], v2.h[0] ; CHECK-GI-NEXT: mov v1.h[7], v0.h[0] ; CHECK-GI-NEXT: mov v0.16b, v1.16b @@ -1109,131 +1109,131 @@ define <16 x half> @powi_v16f16(<16 x half> %a, i32 %b) { ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: fcvt h0, s0 ; CHECK-SD-NEXT: mov w0, w19 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: mov v0.h[1], v1.h[0] -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: mov v1.h[7], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[1] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: fcvt h0, s0 ; CHECK-SD-NEXT: mov w0, w19 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: mov v0.h[1], v1.h[0] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl __powisf2 ; CHECK-SD-NEXT: fmov s1, s0 @@ -1251,7 +1251,7 @@ define <16 x half> @powi_v16f16(<16 x half> %a, i32 %b) { ; CHECK-GI-NEXT: stp d13, d12, [sp, #256] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d11, d10, [sp, #272] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #288] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x29, [sp, #304] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x29, [sp, #304] // 8-byte Spill ; CHECK-GI-NEXT: stp x30, x19, [sp, #320] // 16-byte Folded Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 336 ; CHECK-GI-NEXT: .cfi_offset w19, -8 @@ -1266,7 +1266,7 @@ define <16 x half> @powi_v16f16(<16 x half> %a, i32 %b) { ; CHECK-GI-NEXT: .cfi_offset b14, -88 ; CHECK-GI-NEXT: .cfi_offset b15, -96 ; CHECK-GI-NEXT: mov v2.16b, v1.16b -; CHECK-GI-NEXT: str q1, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: mov h14, v1.h[1] ; CHECK-GI-NEXT: mov h1, v1.h[2] ; CHECK-GI-NEXT: mov h8, v0.h[1] @@ -1278,147 +1278,147 @@ define <16 x half> @powi_v16f16(<16 x half> %a, i32 %b) { ; CHECK-GI-NEXT: mov h13, v0.h[6] ; CHECK-GI-NEXT: mov h15, v0.h[7] ; CHECK-GI-NEXT: fcvt s0, h0 -; CHECK-GI-NEXT: str h1, [sp, #16] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #16] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[3] -; CHECK-GI-NEXT: str h1, [sp, #32] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #32] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[4] -; CHECK-GI-NEXT: str h1, [sp, #48] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #48] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[5] -; CHECK-GI-NEXT: str h1, [sp, #80] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #80] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[6] -; CHECK-GI-NEXT: str h1, [sp, #112] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #112] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[7] -; CHECK-GI-NEXT: str h1, [sp, #176] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #176] // 2-byte Spill ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: fcvt s1, h8 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: mov w0, w19 -; CHECK-GI-NEXT: str q0, [sp, #192] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #192] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: fcvt s1, h9 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: mov w0, w19 -; CHECK-GI-NEXT: str q0, [sp, #144] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #144] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: fcvt s1, h10 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: mov w0, w19 -; CHECK-GI-NEXT: str q0, [sp, #224] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #224] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: fcvt s1, h11 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: mov w0, w19 -; CHECK-GI-NEXT: str q0, [sp, #208] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #208] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: fcvt s1, h12 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: mov w0, w19 -; CHECK-GI-NEXT: str q0, [sp, #160] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #160] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: fcvt s1, h13 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: mov w0, w19 -; CHECK-GI-NEXT: str q0, [sp, #128] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #128] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: fcvt s1, h15 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: mov w0, w19 -; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl __powisf2 -; CHECK-GI-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: mov w0, w19 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl __powisf2 ; CHECK-GI-NEXT: fcvt s1, h14 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: mov w0, w19 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl __powisf2 -; CHECK-GI-NEXT: ldr h1, [sp, #16] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #16] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: mov w0, w19 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl __powisf2 -; CHECK-GI-NEXT: ldr h1, [sp, #32] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #32] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: mov w0, w19 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl __powisf2 -; CHECK-GI-NEXT: ldr h1, [sp, #48] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #48] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: mov w0, w19 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl __powisf2 -; CHECK-GI-NEXT: ldr h1, [sp, #80] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #80] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: mov w0, w19 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl __powisf2 -; CHECK-GI-NEXT: ldr h1, [sp, #112] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #112] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: mov w0, w19 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #112] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #112] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl __powisf2 -; CHECK-GI-NEXT: ldr h1, [sp, #176] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #176] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: mov w0, w19 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #176] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #176] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl __powisf2 -; CHECK-GI-NEXT: ldr q3, [sp, #192] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr q2, [sp, #144] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x29, [sp, #304] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr q3, [sp, #192] // 16-byte Reload +; CHECK-GI-NEXT: ldr q2, [sp, #144] // 16-byte Reload +; CHECK-GI-NEXT: ldr x29, [sp, #304] // 8-byte Reload ; CHECK-GI-NEXT: ldp x30, x19, [sp, #320] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v3.h[1], v2.h[0] ; CHECK-GI-NEXT: ldp q1, q2, [sp] // 32-byte Folded Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #288] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #272] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[1], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #224] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #224] // 16-byte Reload ; CHECK-GI-NEXT: ldp d13, d12, [sp, #256] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v3.h[2], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: ldp d15, d14, [sp, #240] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #208] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #208] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[3], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #48] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #48] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[3], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #160] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #160] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[4], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[4], v2.h[0] ; CHECK-GI-NEXT: ldp q2, q4, [sp, #112] // 32-byte Folded Reload ; CHECK-GI-NEXT: mov v3.h[5], v4.h[0] ; CHECK-GI-NEXT: mov v1.h[5], v2.h[0] ; CHECK-GI-NEXT: fcvt h2, s0 -; CHECK-GI-NEXT: ldr q0, [sp, #96] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #96] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[6], v0.h[0] -; CHECK-GI-NEXT: ldr q0, [sp, #176] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #176] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[6], v0.h[0] -; CHECK-GI-NEXT: ldr q0, [sp, #64] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #64] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[7], v0.h[0] ; CHECK-GI-NEXT: mov v1.h[7], v2.h[0] ; CHECK-GI-NEXT: mov v0.16b, v3.16b @@ -1438,15 +1438,15 @@ define <2 x fp128> @powi_v2fp128(<2 x fp128> %a, i32 %b) { ; CHECK-SD-NEXT: .cfi_offset w19, -8 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: mov w19, w0 -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: bl __powitf2 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov w0, w19 ; CHECK-SD-NEXT: bl __powitf2 ; CHECK-SD-NEXT: ldp x30, x19, [sp, #32] // 16-byte Folded Reload ; CHECK-SD-NEXT: mov v1.16b, v0.16b -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: add sp, sp, #48 ; CHECK-SD-NEXT: ret ; @@ -1457,16 +1457,16 @@ define <2 x fp128> @powi_v2fp128(<2 x fp128> %a, i32 %b) { ; CHECK-GI-NEXT: .cfi_def_cfa_offset 48 ; CHECK-GI-NEXT: .cfi_offset w19, -8 ; CHECK-GI-NEXT: .cfi_offset w30, -16 -; CHECK-GI-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: mov w19, w0 ; CHECK-GI-NEXT: bl __powitf2 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-GI-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-GI-NEXT: mov w0, w19 ; CHECK-GI-NEXT: bl __powitf2 ; CHECK-GI-NEXT: ldp x30, x19, [sp, #32] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.16b, v0.16b -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: add sp, sp, #48 ; CHECK-GI-NEXT: ret entry: diff --git a/llvm/test/CodeGen/AArch64/fptoi.ll b/llvm/test/CodeGen/AArch64/fptoi.ll index f6053cee50dae..ae6f796e0b394 100644 --- a/llvm/test/CodeGen/AArch64/fptoi.ll +++ b/llvm/test/CodeGen/AArch64/fptoi.ll @@ -3026,16 +3026,16 @@ define <2 x i128> @fptos_v2f64_v2i128(<2 x double> %a) { ; CHECK-NOFP16-SD-LABEL: fptos_v2f64_v2i128: ; CHECK-NOFP16-SD: // %bb.0: // %entry ; CHECK-NOFP16-SD-NEXT: sub sp, sp, #48 -; CHECK-NOFP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NOFP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-NOFP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w19, -8 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w20, -16 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w30, -32 -; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NOFP16-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-NOFP16-SD-NEXT: bl __fixdfti -; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NOFP16-SD-NEXT: mov x19, x0 ; CHECK-NOFP16-SD-NEXT: mov x20, x1 ; CHECK-NOFP16-SD-NEXT: mov d0, v0.d[1] @@ -3045,23 +3045,23 @@ define <2 x i128> @fptos_v2f64_v2i128(<2 x double> %a) { ; CHECK-NOFP16-SD-NEXT: mov x0, x19 ; CHECK-NOFP16-SD-NEXT: mov x1, x20 ; CHECK-NOFP16-SD-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload -; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NOFP16-SD-NEXT: add sp, sp, #48 ; CHECK-NOFP16-SD-NEXT: ret ; ; CHECK-FP16-SD-LABEL: fptos_v2f64_v2i128: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #48 -; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-FP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-SD-NEXT: .cfi_offset w19, -8 ; CHECK-FP16-SD-NEXT: .cfi_offset w20, -16 ; CHECK-FP16-SD-NEXT: .cfi_offset w30, -32 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-FP16-SD-NEXT: bl __fixdfti -; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-FP16-SD-NEXT: mov x19, x0 ; CHECK-FP16-SD-NEXT: mov x20, x1 ; CHECK-FP16-SD-NEXT: mov d0, v0.d[1] @@ -3071,14 +3071,14 @@ define <2 x i128> @fptos_v2f64_v2i128(<2 x double> %a) { ; CHECK-FP16-SD-NEXT: mov x0, x19 ; CHECK-FP16-SD-NEXT: mov x1, x20 ; CHECK-FP16-SD-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-FP16-SD-NEXT: add sp, sp, #48 ; CHECK-FP16-SD-NEXT: ret ; ; CHECK-NOFP16-GI-LABEL: fptos_v2f64_v2i128: ; CHECK-NOFP16-GI: // %bb.0: // %entry ; CHECK-NOFP16-GI-NEXT: str d8, [sp, #-32]! // 8-byte Folded Spill -; CHECK-NOFP16-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-NOFP16-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-NOFP16-GI-NEXT: stp x20, x19, [sp, #16] // 16-byte Folded Spill ; CHECK-NOFP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NOFP16-GI-NEXT: .cfi_offset w19, -8 @@ -3097,14 +3097,14 @@ define <2 x i128> @fptos_v2f64_v2i128(<2 x double> %a) { ; CHECK-NOFP16-GI-NEXT: mov x0, x19 ; CHECK-NOFP16-GI-NEXT: mov x1, x20 ; CHECK-NOFP16-GI-NEXT: ldp x20, x19, [sp, #16] // 16-byte Folded Reload -; CHECK-NOFP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-NOFP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-NOFP16-GI-NEXT: ldr d8, [sp], #32 // 8-byte Folded Reload ; CHECK-NOFP16-GI-NEXT: ret ; ; CHECK-FP16-GI-LABEL: fptos_v2f64_v2i128: ; CHECK-FP16-GI: // %bb.0: // %entry ; CHECK-FP16-GI-NEXT: str d8, [sp, #-32]! // 8-byte Folded Spill -; CHECK-FP16-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-FP16-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-FP16-GI-NEXT: stp x20, x19, [sp, #16] // 16-byte Folded Spill ; CHECK-FP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-FP16-GI-NEXT: .cfi_offset w19, -8 @@ -3123,7 +3123,7 @@ define <2 x i128> @fptos_v2f64_v2i128(<2 x double> %a) { ; CHECK-FP16-GI-NEXT: mov x0, x19 ; CHECK-FP16-GI-NEXT: mov x1, x20 ; CHECK-FP16-GI-NEXT: ldp x20, x19, [sp, #16] // 16-byte Folded Reload -; CHECK-FP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-FP16-GI-NEXT: ldr d8, [sp], #32 // 8-byte Folded Reload ; CHECK-FP16-GI-NEXT: ret entry: @@ -3135,16 +3135,16 @@ define <2 x i128> @fptou_v2f64_v2i128(<2 x double> %a) { ; CHECK-NOFP16-SD-LABEL: fptou_v2f64_v2i128: ; CHECK-NOFP16-SD: // %bb.0: // %entry ; CHECK-NOFP16-SD-NEXT: sub sp, sp, #48 -; CHECK-NOFP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NOFP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-NOFP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w19, -8 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w20, -16 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w30, -32 -; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NOFP16-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-NOFP16-SD-NEXT: bl __fixunsdfti -; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NOFP16-SD-NEXT: mov x19, x0 ; CHECK-NOFP16-SD-NEXT: mov x20, x1 ; CHECK-NOFP16-SD-NEXT: mov d0, v0.d[1] @@ -3154,23 +3154,23 @@ define <2 x i128> @fptou_v2f64_v2i128(<2 x double> %a) { ; CHECK-NOFP16-SD-NEXT: mov x0, x19 ; CHECK-NOFP16-SD-NEXT: mov x1, x20 ; CHECK-NOFP16-SD-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload -; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NOFP16-SD-NEXT: add sp, sp, #48 ; CHECK-NOFP16-SD-NEXT: ret ; ; CHECK-FP16-SD-LABEL: fptou_v2f64_v2i128: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #48 -; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-FP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-SD-NEXT: .cfi_offset w19, -8 ; CHECK-FP16-SD-NEXT: .cfi_offset w20, -16 ; CHECK-FP16-SD-NEXT: .cfi_offset w30, -32 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-FP16-SD-NEXT: bl __fixunsdfti -; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-FP16-SD-NEXT: mov x19, x0 ; CHECK-FP16-SD-NEXT: mov x20, x1 ; CHECK-FP16-SD-NEXT: mov d0, v0.d[1] @@ -3180,14 +3180,14 @@ define <2 x i128> @fptou_v2f64_v2i128(<2 x double> %a) { ; CHECK-FP16-SD-NEXT: mov x0, x19 ; CHECK-FP16-SD-NEXT: mov x1, x20 ; CHECK-FP16-SD-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-FP16-SD-NEXT: add sp, sp, #48 ; CHECK-FP16-SD-NEXT: ret ; ; CHECK-NOFP16-GI-LABEL: fptou_v2f64_v2i128: ; CHECK-NOFP16-GI: // %bb.0: // %entry ; CHECK-NOFP16-GI-NEXT: str d8, [sp, #-32]! // 8-byte Folded Spill -; CHECK-NOFP16-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-NOFP16-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-NOFP16-GI-NEXT: stp x20, x19, [sp, #16] // 16-byte Folded Spill ; CHECK-NOFP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NOFP16-GI-NEXT: .cfi_offset w19, -8 @@ -3206,14 +3206,14 @@ define <2 x i128> @fptou_v2f64_v2i128(<2 x double> %a) { ; CHECK-NOFP16-GI-NEXT: mov x0, x19 ; CHECK-NOFP16-GI-NEXT: mov x1, x20 ; CHECK-NOFP16-GI-NEXT: ldp x20, x19, [sp, #16] // 16-byte Folded Reload -; CHECK-NOFP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-NOFP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-NOFP16-GI-NEXT: ldr d8, [sp], #32 // 8-byte Folded Reload ; CHECK-NOFP16-GI-NEXT: ret ; ; CHECK-FP16-GI-LABEL: fptou_v2f64_v2i128: ; CHECK-FP16-GI: // %bb.0: // %entry ; CHECK-FP16-GI-NEXT: str d8, [sp, #-32]! // 8-byte Folded Spill -; CHECK-FP16-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-FP16-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-FP16-GI-NEXT: stp x20, x19, [sp, #16] // 16-byte Folded Spill ; CHECK-FP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-FP16-GI-NEXT: .cfi_offset w19, -8 @@ -3232,7 +3232,7 @@ define <2 x i128> @fptou_v2f64_v2i128(<2 x double> %a) { ; CHECK-FP16-GI-NEXT: mov x0, x19 ; CHECK-FP16-GI-NEXT: mov x1, x20 ; CHECK-FP16-GI-NEXT: ldp x20, x19, [sp, #16] // 16-byte Folded Reload -; CHECK-FP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-FP16-GI-NEXT: ldr d8, [sp], #32 // 8-byte Folded Reload ; CHECK-FP16-GI-NEXT: ret entry: @@ -4356,17 +4356,17 @@ define <2 x i128> @fptos_v2f32_v2i128(<2 x float> %a) { ; CHECK-NOFP16-SD-LABEL: fptos_v2f32_v2i128: ; CHECK-NOFP16-SD: // %bb.0: // %entry ; CHECK-NOFP16-SD-NEXT: sub sp, sp, #48 -; CHECK-NOFP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NOFP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-NOFP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w19, -8 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w20, -16 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w30, -32 ; CHECK-NOFP16-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NOFP16-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-NOFP16-SD-NEXT: bl __fixsfti -; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NOFP16-SD-NEXT: mov x19, x0 ; CHECK-NOFP16-SD-NEXT: mov x20, x1 ; CHECK-NOFP16-SD-NEXT: mov s0, v0.s[1] @@ -4376,24 +4376,24 @@ define <2 x i128> @fptos_v2f32_v2i128(<2 x float> %a) { ; CHECK-NOFP16-SD-NEXT: mov x0, x19 ; CHECK-NOFP16-SD-NEXT: mov x1, x20 ; CHECK-NOFP16-SD-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload -; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NOFP16-SD-NEXT: add sp, sp, #48 ; CHECK-NOFP16-SD-NEXT: ret ; ; CHECK-FP16-SD-LABEL: fptos_v2f32_v2i128: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #48 -; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-FP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-SD-NEXT: .cfi_offset w19, -8 ; CHECK-FP16-SD-NEXT: .cfi_offset w20, -16 ; CHECK-FP16-SD-NEXT: .cfi_offset w30, -32 ; CHECK-FP16-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-FP16-SD-NEXT: bl __fixsfti -; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-FP16-SD-NEXT: mov x19, x0 ; CHECK-FP16-SD-NEXT: mov x20, x1 ; CHECK-FP16-SD-NEXT: mov s0, v0.s[1] @@ -4403,14 +4403,14 @@ define <2 x i128> @fptos_v2f32_v2i128(<2 x float> %a) { ; CHECK-FP16-SD-NEXT: mov x0, x19 ; CHECK-FP16-SD-NEXT: mov x1, x20 ; CHECK-FP16-SD-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-FP16-SD-NEXT: add sp, sp, #48 ; CHECK-FP16-SD-NEXT: ret ; ; CHECK-NOFP16-GI-LABEL: fptos_v2f32_v2i128: ; CHECK-NOFP16-GI: // %bb.0: // %entry ; CHECK-NOFP16-GI-NEXT: str d8, [sp, #-32]! // 8-byte Folded Spill -; CHECK-NOFP16-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-NOFP16-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-NOFP16-GI-NEXT: stp x20, x19, [sp, #16] // 16-byte Folded Spill ; CHECK-NOFP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NOFP16-GI-NEXT: .cfi_offset w19, -8 @@ -4430,14 +4430,14 @@ define <2 x i128> @fptos_v2f32_v2i128(<2 x float> %a) { ; CHECK-NOFP16-GI-NEXT: mov x0, x19 ; CHECK-NOFP16-GI-NEXT: mov x1, x20 ; CHECK-NOFP16-GI-NEXT: ldp x20, x19, [sp, #16] // 16-byte Folded Reload -; CHECK-NOFP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-NOFP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-NOFP16-GI-NEXT: ldr d8, [sp], #32 // 8-byte Folded Reload ; CHECK-NOFP16-GI-NEXT: ret ; ; CHECK-FP16-GI-LABEL: fptos_v2f32_v2i128: ; CHECK-FP16-GI: // %bb.0: // %entry ; CHECK-FP16-GI-NEXT: str d8, [sp, #-32]! // 8-byte Folded Spill -; CHECK-FP16-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-FP16-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-FP16-GI-NEXT: stp x20, x19, [sp, #16] // 16-byte Folded Spill ; CHECK-FP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-FP16-GI-NEXT: .cfi_offset w19, -8 @@ -4457,7 +4457,7 @@ define <2 x i128> @fptos_v2f32_v2i128(<2 x float> %a) { ; CHECK-FP16-GI-NEXT: mov x0, x19 ; CHECK-FP16-GI-NEXT: mov x1, x20 ; CHECK-FP16-GI-NEXT: ldp x20, x19, [sp, #16] // 16-byte Folded Reload -; CHECK-FP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-FP16-GI-NEXT: ldr d8, [sp], #32 // 8-byte Folded Reload ; CHECK-FP16-GI-NEXT: ret entry: @@ -4469,17 +4469,17 @@ define <2 x i128> @fptou_v2f32_v2i128(<2 x float> %a) { ; CHECK-NOFP16-SD-LABEL: fptou_v2f32_v2i128: ; CHECK-NOFP16-SD: // %bb.0: // %entry ; CHECK-NOFP16-SD-NEXT: sub sp, sp, #48 -; CHECK-NOFP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NOFP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-NOFP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w19, -8 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w20, -16 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w30, -32 ; CHECK-NOFP16-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NOFP16-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-NOFP16-SD-NEXT: bl __fixunssfti -; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NOFP16-SD-NEXT: mov x19, x0 ; CHECK-NOFP16-SD-NEXT: mov x20, x1 ; CHECK-NOFP16-SD-NEXT: mov s0, v0.s[1] @@ -4489,24 +4489,24 @@ define <2 x i128> @fptou_v2f32_v2i128(<2 x float> %a) { ; CHECK-NOFP16-SD-NEXT: mov x0, x19 ; CHECK-NOFP16-SD-NEXT: mov x1, x20 ; CHECK-NOFP16-SD-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload -; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NOFP16-SD-NEXT: add sp, sp, #48 ; CHECK-NOFP16-SD-NEXT: ret ; ; CHECK-FP16-SD-LABEL: fptou_v2f32_v2i128: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #48 -; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-FP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-SD-NEXT: .cfi_offset w19, -8 ; CHECK-FP16-SD-NEXT: .cfi_offset w20, -16 ; CHECK-FP16-SD-NEXT: .cfi_offset w30, -32 ; CHECK-FP16-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-FP16-SD-NEXT: bl __fixunssfti -; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-FP16-SD-NEXT: mov x19, x0 ; CHECK-FP16-SD-NEXT: mov x20, x1 ; CHECK-FP16-SD-NEXT: mov s0, v0.s[1] @@ -4516,14 +4516,14 @@ define <2 x i128> @fptou_v2f32_v2i128(<2 x float> %a) { ; CHECK-FP16-SD-NEXT: mov x0, x19 ; CHECK-FP16-SD-NEXT: mov x1, x20 ; CHECK-FP16-SD-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-FP16-SD-NEXT: add sp, sp, #48 ; CHECK-FP16-SD-NEXT: ret ; ; CHECK-NOFP16-GI-LABEL: fptou_v2f32_v2i128: ; CHECK-NOFP16-GI: // %bb.0: // %entry ; CHECK-NOFP16-GI-NEXT: str d8, [sp, #-32]! // 8-byte Folded Spill -; CHECK-NOFP16-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-NOFP16-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-NOFP16-GI-NEXT: stp x20, x19, [sp, #16] // 16-byte Folded Spill ; CHECK-NOFP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NOFP16-GI-NEXT: .cfi_offset w19, -8 @@ -4543,14 +4543,14 @@ define <2 x i128> @fptou_v2f32_v2i128(<2 x float> %a) { ; CHECK-NOFP16-GI-NEXT: mov x0, x19 ; CHECK-NOFP16-GI-NEXT: mov x1, x20 ; CHECK-NOFP16-GI-NEXT: ldp x20, x19, [sp, #16] // 16-byte Folded Reload -; CHECK-NOFP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-NOFP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-NOFP16-GI-NEXT: ldr d8, [sp], #32 // 8-byte Folded Reload ; CHECK-NOFP16-GI-NEXT: ret ; ; CHECK-FP16-GI-LABEL: fptou_v2f32_v2i128: ; CHECK-FP16-GI: // %bb.0: // %entry ; CHECK-FP16-GI-NEXT: str d8, [sp, #-32]! // 8-byte Folded Spill -; CHECK-FP16-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-FP16-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-FP16-GI-NEXT: stp x20, x19, [sp, #16] // 16-byte Folded Spill ; CHECK-FP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-FP16-GI-NEXT: .cfi_offset w19, -8 @@ -4570,7 +4570,7 @@ define <2 x i128> @fptou_v2f32_v2i128(<2 x float> %a) { ; CHECK-FP16-GI-NEXT: mov x0, x19 ; CHECK-FP16-GI-NEXT: mov x1, x20 ; CHECK-FP16-GI-NEXT: ldp x20, x19, [sp, #16] // 16-byte Folded Reload -; CHECK-FP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-FP16-GI-NEXT: ldr d8, [sp], #32 // 8-byte Folded Reload ; CHECK-FP16-GI-NEXT: ret entry: @@ -6588,17 +6588,17 @@ define <2 x i128> @fptos_v2f16_v2i128(<2 x half> %a) { ; CHECK-NOFP16-SD-LABEL: fptos_v2f16_v2i128: ; CHECK-NOFP16-SD: // %bb.0: // %entry ; CHECK-NOFP16-SD-NEXT: sub sp, sp, #48 -; CHECK-NOFP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NOFP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-NOFP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w19, -8 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w20, -16 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w30, -32 ; CHECK-NOFP16-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NOFP16-SD-NEXT: // kill: def $h0 killed $h0 killed $q0 ; CHECK-NOFP16-SD-NEXT: bl __fixhfti -; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NOFP16-SD-NEXT: mov x19, x0 ; CHECK-NOFP16-SD-NEXT: mov x20, x1 ; CHECK-NOFP16-SD-NEXT: mov h0, v0.h[1] @@ -6608,24 +6608,24 @@ define <2 x i128> @fptos_v2f16_v2i128(<2 x half> %a) { ; CHECK-NOFP16-SD-NEXT: mov x0, x19 ; CHECK-NOFP16-SD-NEXT: mov x1, x20 ; CHECK-NOFP16-SD-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload -; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NOFP16-SD-NEXT: add sp, sp, #48 ; CHECK-NOFP16-SD-NEXT: ret ; ; CHECK-FP16-SD-LABEL: fptos_v2f16_v2i128: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #48 -; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-FP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-SD-NEXT: .cfi_offset w19, -8 ; CHECK-FP16-SD-NEXT: .cfi_offset w20, -16 ; CHECK-FP16-SD-NEXT: .cfi_offset w30, -32 ; CHECK-FP16-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-SD-NEXT: // kill: def $h0 killed $h0 killed $q0 ; CHECK-FP16-SD-NEXT: bl __fixhfti -; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-FP16-SD-NEXT: mov x19, x0 ; CHECK-FP16-SD-NEXT: mov x20, x1 ; CHECK-FP16-SD-NEXT: mov h0, v0.h[1] @@ -6635,7 +6635,7 @@ define <2 x i128> @fptos_v2f16_v2i128(<2 x half> %a) { ; CHECK-FP16-SD-NEXT: mov x0, x19 ; CHECK-FP16-SD-NEXT: mov x1, x20 ; CHECK-FP16-SD-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-FP16-SD-NEXT: add sp, sp, #48 ; CHECK-FP16-SD-NEXT: ret ; @@ -6669,17 +6669,17 @@ define <2 x i128> @fptou_v2f16_v2i128(<2 x half> %a) { ; CHECK-NOFP16-SD-LABEL: fptou_v2f16_v2i128: ; CHECK-NOFP16-SD: // %bb.0: // %entry ; CHECK-NOFP16-SD-NEXT: sub sp, sp, #48 -; CHECK-NOFP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NOFP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-NOFP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w19, -8 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w20, -16 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w30, -32 ; CHECK-NOFP16-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NOFP16-SD-NEXT: // kill: def $h0 killed $h0 killed $q0 ; CHECK-NOFP16-SD-NEXT: bl __fixunshfti -; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NOFP16-SD-NEXT: mov x19, x0 ; CHECK-NOFP16-SD-NEXT: mov x20, x1 ; CHECK-NOFP16-SD-NEXT: mov h0, v0.h[1] @@ -6689,24 +6689,24 @@ define <2 x i128> @fptou_v2f16_v2i128(<2 x half> %a) { ; CHECK-NOFP16-SD-NEXT: mov x0, x19 ; CHECK-NOFP16-SD-NEXT: mov x1, x20 ; CHECK-NOFP16-SD-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload -; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NOFP16-SD-NEXT: add sp, sp, #48 ; CHECK-NOFP16-SD-NEXT: ret ; ; CHECK-FP16-SD-LABEL: fptou_v2f16_v2i128: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #48 -; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-FP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-SD-NEXT: .cfi_offset w19, -8 ; CHECK-FP16-SD-NEXT: .cfi_offset w20, -16 ; CHECK-FP16-SD-NEXT: .cfi_offset w30, -32 ; CHECK-FP16-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-SD-NEXT: // kill: def $h0 killed $h0 killed $q0 ; CHECK-FP16-SD-NEXT: bl __fixunshfti -; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-FP16-SD-NEXT: mov x19, x0 ; CHECK-FP16-SD-NEXT: mov x20, x1 ; CHECK-FP16-SD-NEXT: mov h0, v0.h[1] @@ -6716,7 +6716,7 @@ define <2 x i128> @fptou_v2f16_v2i128(<2 x half> %a) { ; CHECK-FP16-SD-NEXT: mov x0, x19 ; CHECK-FP16-SD-NEXT: mov x1, x20 ; CHECK-FP16-SD-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-FP16-SD-NEXT: add sp, sp, #48 ; CHECK-FP16-SD-NEXT: ret ; @@ -6750,19 +6750,19 @@ define <2 x i64> @fptos_v2f128_v2i64(<2 x fp128> %a) { ; CHECK-NOFP16-SD-LABEL: fptos_v2f128_v2i64: ; CHECK-NOFP16-SD: // %bb.0: // %entry ; CHECK-NOFP16-SD-NEXT: sub sp, sp, #48 -; CHECK-NOFP16-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NOFP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w30, -16 -; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NOFP16-SD-NEXT: mov v0.16b, v1.16b ; CHECK-NOFP16-SD-NEXT: bl __fixtfdi ; CHECK-NOFP16-SD-NEXT: fmov d0, x0 -; CHECK-NOFP16-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NOFP16-SD-NEXT: bl __fixtfdi ; CHECK-NOFP16-SD-NEXT: fmov d0, x0 -; CHECK-NOFP16-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload -; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload +; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NOFP16-SD-NEXT: mov v0.d[1], v1.d[0] ; CHECK-NOFP16-SD-NEXT: add sp, sp, #48 ; CHECK-NOFP16-SD-NEXT: ret @@ -6770,19 +6770,19 @@ define <2 x i64> @fptos_v2f128_v2i64(<2 x fp128> %a) { ; CHECK-FP16-SD-LABEL: fptos_v2f128_v2i64: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #48 -; CHECK-FP16-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-SD-NEXT: .cfi_offset w30, -16 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-SD-NEXT: mov v0.16b, v1.16b ; CHECK-FP16-SD-NEXT: bl __fixtfdi ; CHECK-FP16-SD-NEXT: fmov d0, x0 -; CHECK-FP16-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-FP16-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-FP16-SD-NEXT: bl __fixtfdi ; CHECK-FP16-SD-NEXT: fmov d0, x0 -; CHECK-FP16-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-FP16-SD-NEXT: mov v0.d[1], v1.d[0] ; CHECK-FP16-SD-NEXT: add sp, sp, #48 ; CHECK-FP16-SD-NEXT: ret @@ -6794,9 +6794,9 @@ define <2 x i64> @fptos_v2f128_v2i64(<2 x fp128> %a) { ; CHECK-NOFP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NOFP16-GI-NEXT: .cfi_offset w19, -8 ; CHECK-NOFP16-GI-NEXT: .cfi_offset w30, -16 -; CHECK-NOFP16-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-NOFP16-GI-NEXT: bl __fixtfdi -; CHECK-NOFP16-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NOFP16-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NOFP16-GI-NEXT: mov x19, x0 ; CHECK-NOFP16-GI-NEXT: bl __fixtfdi ; CHECK-NOFP16-GI-NEXT: fmov d0, x19 @@ -6812,9 +6812,9 @@ define <2 x i64> @fptos_v2f128_v2i64(<2 x fp128> %a) { ; CHECK-FP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-FP16-GI-NEXT: .cfi_offset w19, -8 ; CHECK-FP16-GI-NEXT: .cfi_offset w30, -16 -; CHECK-FP16-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-FP16-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-FP16-GI-NEXT: bl __fixtfdi -; CHECK-FP16-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-FP16-GI-NEXT: mov x19, x0 ; CHECK-FP16-GI-NEXT: bl __fixtfdi ; CHECK-FP16-GI-NEXT: fmov d0, x19 @@ -6831,19 +6831,19 @@ define <2 x i64> @fptou_v2f128_v2i64(<2 x fp128> %a) { ; CHECK-NOFP16-SD-LABEL: fptou_v2f128_v2i64: ; CHECK-NOFP16-SD: // %bb.0: // %entry ; CHECK-NOFP16-SD-NEXT: sub sp, sp, #48 -; CHECK-NOFP16-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NOFP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w30, -16 -; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NOFP16-SD-NEXT: mov v0.16b, v1.16b ; CHECK-NOFP16-SD-NEXT: bl __fixunstfdi ; CHECK-NOFP16-SD-NEXT: fmov d0, x0 -; CHECK-NOFP16-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NOFP16-SD-NEXT: bl __fixunstfdi ; CHECK-NOFP16-SD-NEXT: fmov d0, x0 -; CHECK-NOFP16-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload -; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload +; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NOFP16-SD-NEXT: mov v0.d[1], v1.d[0] ; CHECK-NOFP16-SD-NEXT: add sp, sp, #48 ; CHECK-NOFP16-SD-NEXT: ret @@ -6851,19 +6851,19 @@ define <2 x i64> @fptou_v2f128_v2i64(<2 x fp128> %a) { ; CHECK-FP16-SD-LABEL: fptou_v2f128_v2i64: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #48 -; CHECK-FP16-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-SD-NEXT: .cfi_offset w30, -16 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-SD-NEXT: mov v0.16b, v1.16b ; CHECK-FP16-SD-NEXT: bl __fixunstfdi ; CHECK-FP16-SD-NEXT: fmov d0, x0 -; CHECK-FP16-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-FP16-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-FP16-SD-NEXT: bl __fixunstfdi ; CHECK-FP16-SD-NEXT: fmov d0, x0 -; CHECK-FP16-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-FP16-SD-NEXT: mov v0.d[1], v1.d[0] ; CHECK-FP16-SD-NEXT: add sp, sp, #48 ; CHECK-FP16-SD-NEXT: ret @@ -6875,9 +6875,9 @@ define <2 x i64> @fptou_v2f128_v2i64(<2 x fp128> %a) { ; CHECK-NOFP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NOFP16-GI-NEXT: .cfi_offset w19, -8 ; CHECK-NOFP16-GI-NEXT: .cfi_offset w30, -16 -; CHECK-NOFP16-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-NOFP16-GI-NEXT: bl __fixunstfdi -; CHECK-NOFP16-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NOFP16-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NOFP16-GI-NEXT: mov x19, x0 ; CHECK-NOFP16-GI-NEXT: bl __fixunstfdi ; CHECK-NOFP16-GI-NEXT: fmov d0, x19 @@ -6893,9 +6893,9 @@ define <2 x i64> @fptou_v2f128_v2i64(<2 x fp128> %a) { ; CHECK-FP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-FP16-GI-NEXT: .cfi_offset w19, -8 ; CHECK-FP16-GI-NEXT: .cfi_offset w30, -16 -; CHECK-FP16-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-FP16-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-FP16-GI-NEXT: bl __fixunstfdi -; CHECK-FP16-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-FP16-GI-NEXT: mov x19, x0 ; CHECK-FP16-GI-NEXT: bl __fixunstfdi ; CHECK-FP16-GI-NEXT: fmov d0, x19 @@ -6912,17 +6912,17 @@ define <2 x i32> @fptos_v2f128_v2i32(<2 x fp128> %a) { ; CHECK-NOFP16-SD-LABEL: fptos_v2f128_v2i32: ; CHECK-NOFP16-SD: // %bb.0: // %entry ; CHECK-NOFP16-SD-NEXT: sub sp, sp, #48 -; CHECK-NOFP16-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NOFP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w30, -16 -; CHECK-NOFP16-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-NOFP16-SD-NEXT: bl __fixtfsi ; CHECK-NOFP16-SD-NEXT: fmov s0, w0 -; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NOFP16-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NOFP16-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NOFP16-SD-NEXT: bl __fixtfsi -; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NOFP16-SD-NEXT: mov v0.s[1], w0 ; CHECK-NOFP16-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-NOFP16-SD-NEXT: add sp, sp, #48 @@ -6931,17 +6931,17 @@ define <2 x i32> @fptos_v2f128_v2i32(<2 x fp128> %a) { ; CHECK-FP16-SD-LABEL: fptos_v2f128_v2i32: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #48 -; CHECK-FP16-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-SD-NEXT: .cfi_offset w30, -16 -; CHECK-FP16-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-FP16-SD-NEXT: bl __fixtfsi ; CHECK-FP16-SD-NEXT: fmov s0, w0 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-FP16-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-FP16-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-FP16-SD-NEXT: bl __fixtfsi -; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-FP16-SD-NEXT: mov v0.s[1], w0 ; CHECK-FP16-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-FP16-SD-NEXT: add sp, sp, #48 @@ -6954,9 +6954,9 @@ define <2 x i32> @fptos_v2f128_v2i32(<2 x fp128> %a) { ; CHECK-NOFP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NOFP16-GI-NEXT: .cfi_offset w19, -8 ; CHECK-NOFP16-GI-NEXT: .cfi_offset w30, -16 -; CHECK-NOFP16-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-NOFP16-GI-NEXT: bl __fixtfsi -; CHECK-NOFP16-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NOFP16-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NOFP16-GI-NEXT: mov w19, w0 ; CHECK-NOFP16-GI-NEXT: bl __fixtfsi ; CHECK-NOFP16-GI-NEXT: fmov s0, w19 @@ -6973,9 +6973,9 @@ define <2 x i32> @fptos_v2f128_v2i32(<2 x fp128> %a) { ; CHECK-FP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-FP16-GI-NEXT: .cfi_offset w19, -8 ; CHECK-FP16-GI-NEXT: .cfi_offset w30, -16 -; CHECK-FP16-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-FP16-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-FP16-GI-NEXT: bl __fixtfsi -; CHECK-FP16-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-FP16-GI-NEXT: mov w19, w0 ; CHECK-FP16-GI-NEXT: bl __fixtfsi ; CHECK-FP16-GI-NEXT: fmov s0, w19 @@ -6993,17 +6993,17 @@ define <2 x i32> @fptou_v2f128_v2i32(<2 x fp128> %a) { ; CHECK-NOFP16-SD-LABEL: fptou_v2f128_v2i32: ; CHECK-NOFP16-SD: // %bb.0: // %entry ; CHECK-NOFP16-SD-NEXT: sub sp, sp, #48 -; CHECK-NOFP16-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NOFP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w30, -16 -; CHECK-NOFP16-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-NOFP16-SD-NEXT: bl __fixunstfsi ; CHECK-NOFP16-SD-NEXT: fmov s0, w0 -; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NOFP16-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NOFP16-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NOFP16-SD-NEXT: bl __fixunstfsi -; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NOFP16-SD-NEXT: mov v0.s[1], w0 ; CHECK-NOFP16-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-NOFP16-SD-NEXT: add sp, sp, #48 @@ -7012,17 +7012,17 @@ define <2 x i32> @fptou_v2f128_v2i32(<2 x fp128> %a) { ; CHECK-FP16-SD-LABEL: fptou_v2f128_v2i32: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #48 -; CHECK-FP16-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-SD-NEXT: .cfi_offset w30, -16 -; CHECK-FP16-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-FP16-SD-NEXT: bl __fixunstfsi ; CHECK-FP16-SD-NEXT: fmov s0, w0 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-FP16-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-FP16-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-FP16-SD-NEXT: bl __fixunstfsi -; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-FP16-SD-NEXT: mov v0.s[1], w0 ; CHECK-FP16-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-FP16-SD-NEXT: add sp, sp, #48 @@ -7035,9 +7035,9 @@ define <2 x i32> @fptou_v2f128_v2i32(<2 x fp128> %a) { ; CHECK-NOFP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NOFP16-GI-NEXT: .cfi_offset w19, -8 ; CHECK-NOFP16-GI-NEXT: .cfi_offset w30, -16 -; CHECK-NOFP16-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-NOFP16-GI-NEXT: bl __fixunstfsi -; CHECK-NOFP16-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NOFP16-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NOFP16-GI-NEXT: mov w19, w0 ; CHECK-NOFP16-GI-NEXT: bl __fixunstfsi ; CHECK-NOFP16-GI-NEXT: fmov s0, w19 @@ -7054,9 +7054,9 @@ define <2 x i32> @fptou_v2f128_v2i32(<2 x fp128> %a) { ; CHECK-FP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-FP16-GI-NEXT: .cfi_offset w19, -8 ; CHECK-FP16-GI-NEXT: .cfi_offset w30, -16 -; CHECK-FP16-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-FP16-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-FP16-GI-NEXT: bl __fixunstfsi -; CHECK-FP16-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-FP16-GI-NEXT: mov w19, w0 ; CHECK-FP16-GI-NEXT: bl __fixunstfsi ; CHECK-FP16-GI-NEXT: fmov s0, w19 @@ -7074,17 +7074,17 @@ define <2 x i16> @fptos_v2f128_v2i16(<2 x fp128> %a) { ; CHECK-NOFP16-SD-LABEL: fptos_v2f128_v2i16: ; CHECK-NOFP16-SD: // %bb.0: // %entry ; CHECK-NOFP16-SD-NEXT: sub sp, sp, #48 -; CHECK-NOFP16-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NOFP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w30, -16 -; CHECK-NOFP16-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-NOFP16-SD-NEXT: bl __fixtfsi ; CHECK-NOFP16-SD-NEXT: fmov s0, w0 -; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NOFP16-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NOFP16-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NOFP16-SD-NEXT: bl __fixtfsi -; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NOFP16-SD-NEXT: mov v0.s[1], w0 ; CHECK-NOFP16-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-NOFP16-SD-NEXT: add sp, sp, #48 @@ -7093,17 +7093,17 @@ define <2 x i16> @fptos_v2f128_v2i16(<2 x fp128> %a) { ; CHECK-FP16-SD-LABEL: fptos_v2f128_v2i16: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #48 -; CHECK-FP16-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-SD-NEXT: .cfi_offset w30, -16 -; CHECK-FP16-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-FP16-SD-NEXT: bl __fixtfsi ; CHECK-FP16-SD-NEXT: fmov s0, w0 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-FP16-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-FP16-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-FP16-SD-NEXT: bl __fixtfsi -; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-FP16-SD-NEXT: mov v0.s[1], w0 ; CHECK-FP16-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-FP16-SD-NEXT: add sp, sp, #48 @@ -7116,9 +7116,9 @@ define <2 x i16> @fptos_v2f128_v2i16(<2 x fp128> %a) { ; CHECK-NOFP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NOFP16-GI-NEXT: .cfi_offset w19, -8 ; CHECK-NOFP16-GI-NEXT: .cfi_offset w30, -16 -; CHECK-NOFP16-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-NOFP16-GI-NEXT: bl __fixtfsi -; CHECK-NOFP16-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NOFP16-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NOFP16-GI-NEXT: mov w19, w0 ; CHECK-NOFP16-GI-NEXT: bl __fixtfsi ; CHECK-NOFP16-GI-NEXT: fmov s0, w19 @@ -7135,9 +7135,9 @@ define <2 x i16> @fptos_v2f128_v2i16(<2 x fp128> %a) { ; CHECK-FP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-FP16-GI-NEXT: .cfi_offset w19, -8 ; CHECK-FP16-GI-NEXT: .cfi_offset w30, -16 -; CHECK-FP16-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-FP16-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-FP16-GI-NEXT: bl __fixtfsi -; CHECK-FP16-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-FP16-GI-NEXT: mov w19, w0 ; CHECK-FP16-GI-NEXT: bl __fixtfsi ; CHECK-FP16-GI-NEXT: fmov s0, w19 @@ -7155,17 +7155,17 @@ define <2 x i16> @fptou_v2f128_v2i16(<2 x fp128> %a) { ; CHECK-NOFP16-SD-LABEL: fptou_v2f128_v2i16: ; CHECK-NOFP16-SD: // %bb.0: // %entry ; CHECK-NOFP16-SD-NEXT: sub sp, sp, #48 -; CHECK-NOFP16-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NOFP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w30, -16 -; CHECK-NOFP16-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-NOFP16-SD-NEXT: bl __fixtfsi ; CHECK-NOFP16-SD-NEXT: fmov s0, w0 -; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NOFP16-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NOFP16-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NOFP16-SD-NEXT: bl __fixtfsi -; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NOFP16-SD-NEXT: mov v0.s[1], w0 ; CHECK-NOFP16-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-NOFP16-SD-NEXT: add sp, sp, #48 @@ -7174,17 +7174,17 @@ define <2 x i16> @fptou_v2f128_v2i16(<2 x fp128> %a) { ; CHECK-FP16-SD-LABEL: fptou_v2f128_v2i16: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #48 -; CHECK-FP16-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-SD-NEXT: .cfi_offset w30, -16 -; CHECK-FP16-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-FP16-SD-NEXT: bl __fixtfsi ; CHECK-FP16-SD-NEXT: fmov s0, w0 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-FP16-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-FP16-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-FP16-SD-NEXT: bl __fixtfsi -; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-FP16-SD-NEXT: mov v0.s[1], w0 ; CHECK-FP16-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-FP16-SD-NEXT: add sp, sp, #48 @@ -7197,9 +7197,9 @@ define <2 x i16> @fptou_v2f128_v2i16(<2 x fp128> %a) { ; CHECK-NOFP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NOFP16-GI-NEXT: .cfi_offset w19, -8 ; CHECK-NOFP16-GI-NEXT: .cfi_offset w30, -16 -; CHECK-NOFP16-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-NOFP16-GI-NEXT: bl __fixunstfsi -; CHECK-NOFP16-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NOFP16-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NOFP16-GI-NEXT: mov w19, w0 ; CHECK-NOFP16-GI-NEXT: bl __fixunstfsi ; CHECK-NOFP16-GI-NEXT: fmov s0, w19 @@ -7216,9 +7216,9 @@ define <2 x i16> @fptou_v2f128_v2i16(<2 x fp128> %a) { ; CHECK-FP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-FP16-GI-NEXT: .cfi_offset w19, -8 ; CHECK-FP16-GI-NEXT: .cfi_offset w30, -16 -; CHECK-FP16-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-FP16-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-FP16-GI-NEXT: bl __fixunstfsi -; CHECK-FP16-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-FP16-GI-NEXT: mov w19, w0 ; CHECK-FP16-GI-NEXT: bl __fixunstfsi ; CHECK-FP16-GI-NEXT: fmov s0, w19 @@ -7236,17 +7236,17 @@ define <2 x i8> @fptos_v2f128_v2i8(<2 x fp128> %a) { ; CHECK-NOFP16-SD-LABEL: fptos_v2f128_v2i8: ; CHECK-NOFP16-SD: // %bb.0: // %entry ; CHECK-NOFP16-SD-NEXT: sub sp, sp, #48 -; CHECK-NOFP16-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NOFP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w30, -16 -; CHECK-NOFP16-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-NOFP16-SD-NEXT: bl __fixtfsi ; CHECK-NOFP16-SD-NEXT: fmov s0, w0 -; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NOFP16-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NOFP16-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NOFP16-SD-NEXT: bl __fixtfsi -; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NOFP16-SD-NEXT: mov v0.s[1], w0 ; CHECK-NOFP16-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-NOFP16-SD-NEXT: add sp, sp, #48 @@ -7255,17 +7255,17 @@ define <2 x i8> @fptos_v2f128_v2i8(<2 x fp128> %a) { ; CHECK-FP16-SD-LABEL: fptos_v2f128_v2i8: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #48 -; CHECK-FP16-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-SD-NEXT: .cfi_offset w30, -16 -; CHECK-FP16-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-FP16-SD-NEXT: bl __fixtfsi ; CHECK-FP16-SD-NEXT: fmov s0, w0 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-FP16-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-FP16-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-FP16-SD-NEXT: bl __fixtfsi -; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-FP16-SD-NEXT: mov v0.s[1], w0 ; CHECK-FP16-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-FP16-SD-NEXT: add sp, sp, #48 @@ -7278,9 +7278,9 @@ define <2 x i8> @fptos_v2f128_v2i8(<2 x fp128> %a) { ; CHECK-NOFP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NOFP16-GI-NEXT: .cfi_offset w19, -8 ; CHECK-NOFP16-GI-NEXT: .cfi_offset w30, -16 -; CHECK-NOFP16-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-NOFP16-GI-NEXT: bl __fixtfsi -; CHECK-NOFP16-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NOFP16-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NOFP16-GI-NEXT: mov w19, w0 ; CHECK-NOFP16-GI-NEXT: bl __fixtfsi ; CHECK-NOFP16-GI-NEXT: fmov s0, w19 @@ -7297,9 +7297,9 @@ define <2 x i8> @fptos_v2f128_v2i8(<2 x fp128> %a) { ; CHECK-FP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-FP16-GI-NEXT: .cfi_offset w19, -8 ; CHECK-FP16-GI-NEXT: .cfi_offset w30, -16 -; CHECK-FP16-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-FP16-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-FP16-GI-NEXT: bl __fixtfsi -; CHECK-FP16-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-FP16-GI-NEXT: mov w19, w0 ; CHECK-FP16-GI-NEXT: bl __fixtfsi ; CHECK-FP16-GI-NEXT: fmov s0, w19 @@ -7317,17 +7317,17 @@ define <2 x i8> @fptou_v2f128_v2i8(<2 x fp128> %a) { ; CHECK-NOFP16-SD-LABEL: fptou_v2f128_v2i8: ; CHECK-NOFP16-SD: // %bb.0: // %entry ; CHECK-NOFP16-SD-NEXT: sub sp, sp, #48 -; CHECK-NOFP16-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NOFP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w30, -16 -; CHECK-NOFP16-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-NOFP16-SD-NEXT: bl __fixtfsi ; CHECK-NOFP16-SD-NEXT: fmov s0, w0 -; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NOFP16-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NOFP16-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NOFP16-SD-NEXT: bl __fixtfsi -; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NOFP16-SD-NEXT: mov v0.s[1], w0 ; CHECK-NOFP16-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-NOFP16-SD-NEXT: add sp, sp, #48 @@ -7336,17 +7336,17 @@ define <2 x i8> @fptou_v2f128_v2i8(<2 x fp128> %a) { ; CHECK-FP16-SD-LABEL: fptou_v2f128_v2i8: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #48 -; CHECK-FP16-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-SD-NEXT: .cfi_offset w30, -16 -; CHECK-FP16-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-FP16-SD-NEXT: bl __fixtfsi ; CHECK-FP16-SD-NEXT: fmov s0, w0 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-FP16-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-FP16-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-FP16-SD-NEXT: bl __fixtfsi -; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-FP16-SD-NEXT: mov v0.s[1], w0 ; CHECK-FP16-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-FP16-SD-NEXT: add sp, sp, #48 @@ -7359,9 +7359,9 @@ define <2 x i8> @fptou_v2f128_v2i8(<2 x fp128> %a) { ; CHECK-NOFP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NOFP16-GI-NEXT: .cfi_offset w19, -8 ; CHECK-NOFP16-GI-NEXT: .cfi_offset w30, -16 -; CHECK-NOFP16-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-NOFP16-GI-NEXT: bl __fixunstfsi -; CHECK-NOFP16-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NOFP16-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NOFP16-GI-NEXT: mov w19, w0 ; CHECK-NOFP16-GI-NEXT: bl __fixunstfsi ; CHECK-NOFP16-GI-NEXT: fmov s0, w19 @@ -7378,9 +7378,9 @@ define <2 x i8> @fptou_v2f128_v2i8(<2 x fp128> %a) { ; CHECK-FP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-FP16-GI-NEXT: .cfi_offset w19, -8 ; CHECK-FP16-GI-NEXT: .cfi_offset w30, -16 -; CHECK-FP16-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-FP16-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-FP16-GI-NEXT: bl __fixunstfsi -; CHECK-FP16-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-FP16-GI-NEXT: mov w19, w0 ; CHECK-FP16-GI-NEXT: bl __fixunstfsi ; CHECK-FP16-GI-NEXT: fmov s0, w19 @@ -7398,15 +7398,15 @@ define <2 x i128> @fptos_v2f128_v2i128(<2 x fp128> %a) { ; CHECK-LABEL: fptos_v2f128_v2i128: ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NEXT: .cfi_offset w19, -8 ; CHECK-NEXT: .cfi_offset w20, -16 ; CHECK-NEXT: .cfi_offset w30, -32 -; CHECK-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-NEXT: bl __fixtfti -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: mov x20, x1 ; CHECK-NEXT: bl __fixtfti @@ -7415,7 +7415,7 @@ define <2 x i128> @fptos_v2f128_v2i128(<2 x fp128> %a) { ; CHECK-NEXT: mov x0, x19 ; CHECK-NEXT: mov x1, x20 ; CHECK-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #48 ; CHECK-NEXT: ret entry: @@ -7427,15 +7427,15 @@ define <2 x i128> @fptou_v2f128_v2i128(<2 x fp128> %a) { ; CHECK-LABEL: fptou_v2f128_v2i128: ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NEXT: .cfi_offset w19, -8 ; CHECK-NEXT: .cfi_offset w20, -16 ; CHECK-NEXT: .cfi_offset w30, -32 -; CHECK-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-NEXT: bl __fixunstfti -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: mov x20, x1 ; CHECK-NEXT: bl __fixunstfti @@ -7444,7 +7444,7 @@ define <2 x i128> @fptou_v2f128_v2i128(<2 x fp128> %a) { ; CHECK-NEXT: mov x0, x19 ; CHECK-NEXT: mov x1, x20 ; CHECK-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #48 ; CHECK-NEXT: ret entry: diff --git a/llvm/test/CodeGen/AArch64/fptosi-sat-scalar.ll b/llvm/test/CodeGen/AArch64/fptosi-sat-scalar.ll index ddee23cc3fc50..b6cbe9eb46389 100644 --- a/llvm/test/CodeGen/AArch64/fptosi-sat-scalar.ll +++ b/llvm/test/CodeGen/AArch64/fptosi-sat-scalar.ll @@ -149,13 +149,13 @@ define i100 @test_signed_i100_f32(float %f) nounwind { ; CHECK-SD-LABEL: test_signed_i100_f32: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: str d8, [sp, #-16]! // 8-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-SD-NEXT: fmov s8, s0 ; CHECK-SD-NEXT: bl __fixsfti ; CHECK-SD-NEXT: movi v0.2s, #241, lsl #24 ; CHECK-SD-NEXT: mov w8, #1895825407 // =0x70ffffff ; CHECK-SD-NEXT: mov x10, #34359738367 // =0x7ffffffff -; CHECK-SD-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-SD-NEXT: fcmp s8, s0 ; CHECK-SD-NEXT: fmov s0, w8 ; CHECK-SD-NEXT: mov x8, #-34359738368 // =0xfffffff800000000 @@ -173,13 +173,13 @@ define i100 @test_signed_i100_f32(float %f) nounwind { ; CHECK-GI-LABEL: test_signed_i100_f32: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: str d8, [sp, #-16]! // 8-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-GI-NEXT: fmov s8, s0 ; CHECK-GI-NEXT: bl __fixsfti ; CHECK-GI-NEXT: movi v0.2s, #241, lsl #24 ; CHECK-GI-NEXT: mov w8, #1895825407 // =0x70ffffff ; CHECK-GI-NEXT: mov x10, #34359738367 // =0x7ffffffff -; CHECK-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-GI-NEXT: fcmp s8, s0 ; CHECK-GI-NEXT: fmov s0, w8 ; CHECK-GI-NEXT: mov x8, #34359738368 // =0x800000000 @@ -201,13 +201,13 @@ define i128 @test_signed_i128_f32(float %f) nounwind { ; CHECK-SD-LABEL: test_signed_i128_f32: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: str d8, [sp, #-16]! // 8-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-SD-NEXT: fmov s8, s0 ; CHECK-SD-NEXT: bl __fixsfti ; CHECK-SD-NEXT: movi v0.2s, #255, lsl #24 ; CHECK-SD-NEXT: mov w8, #2130706431 // =0x7effffff ; CHECK-SD-NEXT: mov x10, #9223372036854775807 // =0x7fffffffffffffff -; CHECK-SD-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-SD-NEXT: fcmp s8, s0 ; CHECK-SD-NEXT: fmov s0, w8 ; CHECK-SD-NEXT: mov x8, #-9223372036854775808 // =0x8000000000000000 @@ -225,13 +225,13 @@ define i128 @test_signed_i128_f32(float %f) nounwind { ; CHECK-GI-LABEL: test_signed_i128_f32: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: str d8, [sp, #-16]! // 8-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-GI-NEXT: fmov s8, s0 ; CHECK-GI-NEXT: bl __fixsfti ; CHECK-GI-NEXT: movi v0.2s, #255, lsl #24 ; CHECK-GI-NEXT: mov w8, #2130706431 // =0x7effffff ; CHECK-GI-NEXT: mov x10, #9223372036854775807 // =0x7fffffffffffffff -; CHECK-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-GI-NEXT: fcmp s8, s0 ; CHECK-GI-NEXT: fmov s0, w8 ; CHECK-GI-NEXT: mov x8, #-9223372036854775808 // =0x8000000000000000 @@ -394,12 +394,12 @@ define i100 @test_signed_i100_f64(double %f) nounwind { ; CHECK-SD-LABEL: test_signed_i100_f64: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: str d8, [sp, #-16]! // 8-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-SD-NEXT: fmov d8, d0 ; CHECK-SD-NEXT: bl __fixdfti ; CHECK-SD-NEXT: mov x8, #-4170333254945079296 // =0xc620000000000000 ; CHECK-SD-NEXT: mov x10, #34359738367 // =0x7ffffffff -; CHECK-SD-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-SD-NEXT: fmov d0, x8 ; CHECK-SD-NEXT: mov x8, #5053038781909696511 // =0x461fffffffffffff ; CHECK-SD-NEXT: fcmp d8, d0 @@ -419,12 +419,12 @@ define i100 @test_signed_i100_f64(double %f) nounwind { ; CHECK-GI-LABEL: test_signed_i100_f64: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: str d8, [sp, #-16]! // 8-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-GI-NEXT: fmov d8, d0 ; CHECK-GI-NEXT: bl __fixdfti ; CHECK-GI-NEXT: mov x8, #-4170333254945079296 // =0xc620000000000000 ; CHECK-GI-NEXT: mov x10, #34359738367 // =0x7ffffffff -; CHECK-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-GI-NEXT: fmov d0, x8 ; CHECK-GI-NEXT: mov x8, #5053038781909696511 // =0x461fffffffffffff ; CHECK-GI-NEXT: fcmp d8, d0 @@ -448,12 +448,12 @@ define i128 @test_signed_i128_f64(double %f) nounwind { ; CHECK-SD-LABEL: test_signed_i128_f64: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: str d8, [sp, #-16]! // 8-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-SD-NEXT: fmov d8, d0 ; CHECK-SD-NEXT: bl __fixdfti ; CHECK-SD-NEXT: mov x8, #-4044232465378705408 // =0xc7e0000000000000 ; CHECK-SD-NEXT: mov x10, #9223372036854775807 // =0x7fffffffffffffff -; CHECK-SD-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-SD-NEXT: fmov d0, x8 ; CHECK-SD-NEXT: mov x8, #5179139571476070399 // =0x47dfffffffffffff ; CHECK-SD-NEXT: fcmp d8, d0 @@ -473,12 +473,12 @@ define i128 @test_signed_i128_f64(double %f) nounwind { ; CHECK-GI-LABEL: test_signed_i128_f64: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: str d8, [sp, #-16]! // 8-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-GI-NEXT: fmov d8, d0 ; CHECK-GI-NEXT: bl __fixdfti ; CHECK-GI-NEXT: mov x8, #-4044232465378705408 // =0xc7e0000000000000 ; CHECK-GI-NEXT: mov x10, #9223372036854775807 // =0x7fffffffffffffff -; CHECK-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-GI-NEXT: fmov d0, x8 ; CHECK-GI-NEXT: mov x8, #5179139571476070399 // =0x47dfffffffffffff ; CHECK-GI-NEXT: fcmp d8, d0 @@ -853,13 +853,13 @@ define i100 @test_signed_i100_f16(half %f) nounwind { ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: str d8, [sp, #-16]! // 8-byte Folded Spill ; CHECK-SD-NEXT: fcvt s8, h0 -; CHECK-SD-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-SD-NEXT: fmov s0, s8 ; CHECK-SD-NEXT: bl __fixsfti ; CHECK-SD-NEXT: movi v0.2s, #241, lsl #24 ; CHECK-SD-NEXT: mov w8, #1895825407 // =0x70ffffff ; CHECK-SD-NEXT: mov x10, #34359738367 // =0x7ffffffff -; CHECK-SD-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-SD-NEXT: fcmp s8, s0 ; CHECK-SD-NEXT: fmov s0, w8 ; CHECK-SD-NEXT: mov x8, #-34359738368 // =0xfffffff800000000 @@ -895,13 +895,13 @@ define i128 @test_signed_i128_f16(half %f) nounwind { ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: str d8, [sp, #-16]! // 8-byte Folded Spill ; CHECK-SD-NEXT: fcvt s8, h0 -; CHECK-SD-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-SD-NEXT: fmov s0, s8 ; CHECK-SD-NEXT: bl __fixsfti ; CHECK-SD-NEXT: movi v0.2s, #255, lsl #24 ; CHECK-SD-NEXT: mov w8, #2130706431 // =0x7effffff ; CHECK-SD-NEXT: mov x10, #9223372036854775807 // =0x7fffffffffffffff -; CHECK-SD-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-SD-NEXT: fcmp s8, s0 ; CHECK-SD-NEXT: fmov s0, w8 ; CHECK-SD-NEXT: mov x8, #-9223372036854775808 // =0x8000000000000000 @@ -941,20 +941,20 @@ define i32 @test_signed_f128_i32(fp128 %f) { ; CHECK-SD-NEXT: .cfi_offset w19, -8 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: adrp x8, .LCPI30_0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: ldr q1, [x8, :lo12:.LCPI30_0] ; CHECK-SD-NEXT: bl __getf2 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov w19, w0 ; CHECK-SD-NEXT: bl __fixtfsi ; CHECK-SD-NEXT: cmp w19, #0 ; CHECK-SD-NEXT: mov w8, #-2147483648 // =0x80000000 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: csel w19, w8, w0, mi ; CHECK-SD-NEXT: adrp x8, .LCPI30_1 ; CHECK-SD-NEXT: ldr q1, [x8, :lo12:.LCPI30_1] ; CHECK-SD-NEXT: bl __gttf2 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov w8, #2147483647 // =0x7fffffff ; CHECK-SD-NEXT: cmp w0, #0 ; CHECK-SD-NEXT: csel w19, w8, w19, gt @@ -969,17 +969,17 @@ define i32 @test_signed_f128_i32(fp128 %f) { ; CHECK-GI-LABEL: test_signed_f128_i32: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #48 -; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-GI-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 48 ; CHECK-GI-NEXT: .cfi_offset w19, -8 ; CHECK-GI-NEXT: .cfi_offset w20, -16 ; CHECK-GI-NEXT: .cfi_offset w30, -32 ; CHECK-GI-NEXT: adrp x8, .LCPI30_1 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: ldr q1, [x8, :lo12:.LCPI30_1] ; CHECK-GI-NEXT: bl __gttf2 -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: cmp w0, #0 ; CHECK-GI-NEXT: mov x9, #-4603241769126068224 // =0xc01e000000000000 ; CHECK-GI-NEXT: fmov x8, d0 @@ -999,12 +999,12 @@ define i32 @test_signed_f128_i32(fp128 %f) { ; CHECK-GI-NEXT: csel x8, x20, x8, mi ; CHECK-GI-NEXT: mov v0.d[1], x8 ; CHECK-GI-NEXT: bl __fixtfsi -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov w19, w0 ; CHECK-GI-NEXT: mov v1.16b, v0.16b ; CHECK-GI-NEXT: bl __unordtf2 ; CHECK-GI-NEXT: cmp w0, #0 -; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: csel w0, wzr, w19, ne ; CHECK-GI-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload ; CHECK-GI-NEXT: add sp, sp, #48 diff --git a/llvm/test/CodeGen/AArch64/fptosi-sat-vector.ll b/llvm/test/CodeGen/AArch64/fptosi-sat-vector.ll index c74112937ba53..994b4e25293d9 100644 --- a/llvm/test/CodeGen/AArch64/fptosi-sat-vector.ll +++ b/llvm/test/CodeGen/AArch64/fptosi-sat-vector.ll @@ -490,20 +490,20 @@ define <1 x i32> @test_signed_v1f128_v1i32(<1 x fp128> %f) { ; CHECK-SD-NEXT: .cfi_offset w19, -8 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: adrp x8, .LCPI14_0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: ldr q1, [x8, :lo12:.LCPI14_0] ; CHECK-SD-NEXT: bl __getf2 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov w19, w0 ; CHECK-SD-NEXT: bl __fixtfsi ; CHECK-SD-NEXT: cmp w19, #0 ; CHECK-SD-NEXT: mov w8, #-2147483648 // =0x80000000 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: csel w19, w8, w0, mi ; CHECK-SD-NEXT: adrp x8, .LCPI14_1 ; CHECK-SD-NEXT: ldr q1, [x8, :lo12:.LCPI14_1] ; CHECK-SD-NEXT: bl __gttf2 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov w8, #2147483647 // =0x7fffffff ; CHECK-SD-NEXT: cmp w0, #0 ; CHECK-SD-NEXT: csel w19, w8, w19, gt @@ -519,17 +519,17 @@ define <1 x i32> @test_signed_v1f128_v1i32(<1 x fp128> %f) { ; CHECK-GI-LABEL: test_signed_v1f128_v1i32: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #48 -; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-GI-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 48 ; CHECK-GI-NEXT: .cfi_offset w19, -8 ; CHECK-GI-NEXT: .cfi_offset w20, -16 ; CHECK-GI-NEXT: .cfi_offset w30, -32 ; CHECK-GI-NEXT: adrp x8, .LCPI14_1 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: ldr q1, [x8, :lo12:.LCPI14_1] ; CHECK-GI-NEXT: bl __gttf2 -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: cmp w0, #0 ; CHECK-GI-NEXT: mov x9, #-4603241769126068224 // =0xc01e000000000000 ; CHECK-GI-NEXT: fmov x8, d0 @@ -549,12 +549,12 @@ define <1 x i32> @test_signed_v1f128_v1i32(<1 x fp128> %f) { ; CHECK-GI-NEXT: csel x8, x20, x8, mi ; CHECK-GI-NEXT: mov v0.d[1], x8 ; CHECK-GI-NEXT: bl __fixtfsi -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov w19, w0 ; CHECK-GI-NEXT: mov v1.16b, v0.16b ; CHECK-GI-NEXT: bl __unordtf2 ; CHECK-GI-NEXT: cmp w0, #0 -; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: csel w8, wzr, w19, ne ; CHECK-GI-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload ; CHECK-GI-NEXT: fmov s0, w8 @@ -568,7 +568,7 @@ define <2 x i32> @test_signed_v2f128_v2i32(<2 x fp128> %f) { ; CHECK-SD-LABEL: test_signed_v2f128_v2i32: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #112 -; CHECK-SD-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-SD-NEXT: stp x22, x21, [sp, #80] // 16-byte Folded Spill ; CHECK-SD-NEXT: stp x20, x19, [sp, #96] // 16-byte Folded Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 112 @@ -582,45 +582,45 @@ define <2 x i32> @test_signed_v2f128_v2i32(<2 x fp128> %f) { ; CHECK-SD-NEXT: adrp x8, .LCPI15_0 ; CHECK-SD-NEXT: ldr q1, [x8, :lo12:.LCPI15_0] ; CHECK-SD-NEXT: mov v0.16b, v2.16b -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: bl __getf2 -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov w19, w0 ; CHECK-SD-NEXT: bl __fixtfsi ; CHECK-SD-NEXT: adrp x8, .LCPI15_1 -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: cmp w19, #0 ; CHECK-SD-NEXT: ldr q1, [x8, :lo12:.LCPI15_1] ; CHECK-SD-NEXT: mov w20, #-2147483648 // =0x80000000 ; CHECK-SD-NEXT: csel w19, w20, w0, mi -; CHECK-SD-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl __gttf2 -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov w21, #2147483647 // =0x7fffffff ; CHECK-SD-NEXT: cmp w0, #0 ; CHECK-SD-NEXT: csel w19, w21, w19, gt ; CHECK-SD-NEXT: mov v1.16b, v0.16b ; CHECK-SD-NEXT: bl __unordtf2 -; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: cmp w0, #0 ; CHECK-SD-NEXT: csel w22, wzr, w19, ne ; CHECK-SD-NEXT: bl __getf2 -; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: mov w19, w0 ; CHECK-SD-NEXT: bl __fixtfsi -; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: cmp w19, #0 ; CHECK-SD-NEXT: csel w19, w20, w0, mi ; CHECK-SD-NEXT: bl __gttf2 -; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: cmp w0, #0 ; CHECK-SD-NEXT: csel w19, w21, w19, gt ; CHECK-SD-NEXT: mov v1.16b, v0.16b ; CHECK-SD-NEXT: bl __unordtf2 ; CHECK-SD-NEXT: cmp w0, #0 -; CHECK-SD-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-SD-NEXT: csel w8, wzr, w19, ne ; CHECK-SD-NEXT: ldp x20, x19, [sp, #96] // 16-byte Folded Reload ; CHECK-SD-NEXT: fmov s0, w8 @@ -633,7 +633,7 @@ define <2 x i32> @test_signed_v2f128_v2i32(<2 x fp128> %f) { ; CHECK-GI-LABEL: test_signed_v2f128_v2i32: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #112 -; CHECK-GI-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-GI-NEXT: stp x22, x21, [sp, #80] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp x20, x19, [sp, #96] // 16-byte Folded Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 112 @@ -643,13 +643,13 @@ define <2 x i32> @test_signed_v2f128_v2i32(<2 x fp128> %f) { ; CHECK-GI-NEXT: .cfi_offset w22, -32 ; CHECK-GI-NEXT: .cfi_offset w30, -48 ; CHECK-GI-NEXT: adrp x8, .LCPI15_1 -; CHECK-GI-NEXT: str q1, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: ldr q2, [x8, :lo12:.LCPI15_1] -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: mov v1.16b, v2.16b -; CHECK-GI-NEXT: str q2, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q2, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: bl __gttf2 -; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: cmp w0, #0 ; CHECK-GI-NEXT: mov x20, #-4603241769126068224 // =0xc01e000000000000 ; CHECK-GI-NEXT: fmov x8, d0 @@ -660,7 +660,7 @@ define <2 x i32> @test_signed_v2f128_v2i32(<2 x fp128> %f) { ; CHECK-GI-NEXT: adrp x8, .LCPI15_0 ; CHECK-GI-NEXT: mov v0.d[1], x21 ; CHECK-GI-NEXT: ldr q1, [x8, :lo12:.LCPI15_0] -; CHECK-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-GI-NEXT: bl __lttf2 ; CHECK-GI-NEXT: cmp w0, #0 ; CHECK-GI-NEXT: mov x22, #281474976448512 // =0xfffffffc0000 @@ -670,18 +670,18 @@ define <2 x i32> @test_signed_v2f128_v2i32(<2 x fp128> %f) { ; CHECK-GI-NEXT: csel x8, x21, x22, mi ; CHECK-GI-NEXT: mov v0.d[1], x8 ; CHECK-GI-NEXT: bl __fixtfsi -; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: mov w19, w0 ; CHECK-GI-NEXT: mov v1.16b, v0.16b ; CHECK-GI-NEXT: bl __unordtf2 -; CHECK-GI-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #48] // 16-byte Reload +; CHECK-GI-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-GI-NEXT: cmp w0, #0 ; CHECK-GI-NEXT: csel w21, wzr, w19, ne ; CHECK-GI-NEXT: bl __gttf2 -; CHECK-GI-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-GI-NEXT: cmp w0, #0 -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-GI-NEXT: fmov x8, d0 ; CHECK-GI-NEXT: csel x19, x8, xzr, gt ; CHECK-GI-NEXT: mov x8, v0.d[1] @@ -695,13 +695,13 @@ define <2 x i32> @test_signed_v2f128_v2i32(<2 x fp128> %f) { ; CHECK-GI-NEXT: csel x8, x20, x22, mi ; CHECK-GI-NEXT: mov v0.d[1], x8 ; CHECK-GI-NEXT: bl __fixtfsi -; CHECK-GI-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-GI-NEXT: mov w19, w0 ; CHECK-GI-NEXT: mov v1.16b, v0.16b ; CHECK-GI-NEXT: bl __unordtf2 ; CHECK-GI-NEXT: fmov s0, w21 ; CHECK-GI-NEXT: cmp w0, #0 -; CHECK-GI-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-GI-NEXT: csel w8, wzr, w19, ne ; CHECK-GI-NEXT: ldp x20, x19, [sp, #96] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp x22, x21, [sp, #80] // 16-byte Folded Reload @@ -727,62 +727,62 @@ define <3 x i32> @test_signed_v3f128_v3i32(<3 x fp128> %f) { ; CHECK-SD-NEXT: .cfi_offset w22, -32 ; CHECK-SD-NEXT: .cfi_offset w23, -40 ; CHECK-SD-NEXT: .cfi_offset w30, -48 -; CHECK-SD-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-SD-NEXT: adrp x8, .LCPI16_0 ; CHECK-SD-NEXT: mov v0.16b, v2.16b ; CHECK-SD-NEXT: stp q2, q1, [sp, #32] // 32-byte Folded Spill ; CHECK-SD-NEXT: ldr q1, [x8, :lo12:.LCPI16_0] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: bl __getf2 -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov w19, w0 ; CHECK-SD-NEXT: bl __fixtfsi ; CHECK-SD-NEXT: adrp x8, .LCPI16_1 -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: cmp w19, #0 ; CHECK-SD-NEXT: ldr q1, [x8, :lo12:.LCPI16_1] ; CHECK-SD-NEXT: mov w20, #-2147483648 // =0x80000000 ; CHECK-SD-NEXT: csel w19, w20, w0, mi -; CHECK-SD-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl __gttf2 -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov w22, #2147483647 // =0x7fffffff ; CHECK-SD-NEXT: cmp w0, #0 ; CHECK-SD-NEXT: csel w19, w22, w19, gt ; CHECK-SD-NEXT: mov v1.16b, v0.16b ; CHECK-SD-NEXT: bl __unordtf2 -; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: cmp w0, #0 ; CHECK-SD-NEXT: csel w21, wzr, w19, ne ; CHECK-SD-NEXT: bl __getf2 -; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: mov w19, w0 ; CHECK-SD-NEXT: bl __fixtfsi -; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: cmp w19, #0 ; CHECK-SD-NEXT: csel w19, w20, w0, mi ; CHECK-SD-NEXT: bl __gttf2 -; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: cmp w0, #0 ; CHECK-SD-NEXT: csel w19, w22, w19, gt ; CHECK-SD-NEXT: mov v1.16b, v0.16b ; CHECK-SD-NEXT: bl __unordtf2 -; CHECK-SD-NEXT: ldr q0, [sp, #64] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #64] // 16-byte Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: cmp w0, #0 ; CHECK-SD-NEXT: csel w23, wzr, w19, ne ; CHECK-SD-NEXT: bl __getf2 -; CHECK-SD-NEXT: ldr q0, [sp, #64] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #64] // 16-byte Reload ; CHECK-SD-NEXT: mov w19, w0 ; CHECK-SD-NEXT: bl __fixtfsi -; CHECK-SD-NEXT: ldr q0, [sp, #64] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #64] // 16-byte Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: cmp w19, #0 ; CHECK-SD-NEXT: csel w19, w20, w0, mi ; CHECK-SD-NEXT: bl __gttf2 -; CHECK-SD-NEXT: ldr q0, [sp, #64] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #64] // 16-byte Reload ; CHECK-SD-NEXT: cmp w0, #0 ; CHECK-SD-NEXT: csel w19, w22, w19, gt ; CHECK-SD-NEXT: mov v1.16b, v0.16b @@ -812,13 +812,13 @@ define <3 x i32> @test_signed_v3f128_v3i32(<3 x fp128> %f) { ; CHECK-GI-NEXT: .cfi_offset w23, -40 ; CHECK-GI-NEXT: .cfi_offset w30, -48 ; CHECK-GI-NEXT: adrp x8, .LCPI16_1 -; CHECK-GI-NEXT: str q1, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: ldr q1, [x8, :lo12:.LCPI16_1] -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-GI-NEXT: str q2, [sp, #64] // 16-byte Folded Spill -; CHECK-GI-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-GI-NEXT: str q2, [sp, #64] // 16-byte Spill +; CHECK-GI-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: bl __gttf2 -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: cmp w0, #0 ; CHECK-GI-NEXT: mov x20, #-4603241769126068224 // =0xc01e000000000000 ; CHECK-GI-NEXT: fmov x8, d0 @@ -829,7 +829,7 @@ define <3 x i32> @test_signed_v3f128_v3i32(<3 x fp128> %f) { ; CHECK-GI-NEXT: adrp x8, .LCPI16_0 ; CHECK-GI-NEXT: mov v0.d[1], x21 ; CHECK-GI-NEXT: ldr q1, [x8, :lo12:.LCPI16_0] -; CHECK-GI-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: bl __lttf2 ; CHECK-GI-NEXT: cmp w0, #0 ; CHECK-GI-NEXT: mov x22, #281474976448512 // =0xfffffffc0000 @@ -839,7 +839,7 @@ define <3 x i32> @test_signed_v3f128_v3i32(<3 x fp128> %f) { ; CHECK-GI-NEXT: csel x8, x21, x22, mi ; CHECK-GI-NEXT: mov v0.d[1], x8 ; CHECK-GI-NEXT: bl __fixtfsi -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov w19, w0 ; CHECK-GI-NEXT: mov v1.16b, v0.16b ; CHECK-GI-NEXT: bl __unordtf2 @@ -847,9 +847,9 @@ define <3 x i32> @test_signed_v3f128_v3i32(<3 x fp128> %f) { ; CHECK-GI-NEXT: cmp w0, #0 ; CHECK-GI-NEXT: csel w21, wzr, w19, ne ; CHECK-GI-NEXT: bl __gttf2 -; CHECK-GI-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-GI-NEXT: cmp w0, #0 -; CHECK-GI-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-GI-NEXT: fmov x8, d0 ; CHECK-GI-NEXT: csel x19, x8, xzr, gt ; CHECK-GI-NEXT: mov x8, v0.d[1] @@ -863,18 +863,18 @@ define <3 x i32> @test_signed_v3f128_v3i32(<3 x fp128> %f) { ; CHECK-GI-NEXT: csel x8, x23, x22, mi ; CHECK-GI-NEXT: mov v0.d[1], x8 ; CHECK-GI-NEXT: bl __fixtfsi -; CHECK-GI-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-GI-NEXT: mov w19, w0 ; CHECK-GI-NEXT: mov v1.16b, v0.16b ; CHECK-GI-NEXT: bl __unordtf2 -; CHECK-GI-NEXT: ldr q0, [sp, #64] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #64] // 16-byte Reload +; CHECK-GI-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: cmp w0, #0 ; CHECK-GI-NEXT: csel w23, wzr, w19, ne ; CHECK-GI-NEXT: bl __gttf2 -; CHECK-GI-NEXT: ldr q0, [sp, #64] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #64] // 16-byte Reload ; CHECK-GI-NEXT: cmp w0, #0 -; CHECK-GI-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-GI-NEXT: fmov x8, d0 ; CHECK-GI-NEXT: csel x19, x8, xzr, gt ; CHECK-GI-NEXT: mov x8, v0.d[1] @@ -888,7 +888,7 @@ define <3 x i32> @test_signed_v3f128_v3i32(<3 x fp128> %f) { ; CHECK-GI-NEXT: csel x8, x20, x22, mi ; CHECK-GI-NEXT: mov v0.d[1], x8 ; CHECK-GI-NEXT: bl __fixtfsi -; CHECK-GI-NEXT: ldr q0, [sp, #64] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #64] // 16-byte Reload ; CHECK-GI-NEXT: mov w19, w0 ; CHECK-GI-NEXT: mov v1.16b, v0.16b ; CHECK-GI-NEXT: bl __unordtf2 @@ -910,7 +910,7 @@ define <4 x i32> @test_signed_v4f128_v4i32(<4 x fp128> %f) { ; CHECK-SD-LABEL: test_signed_v4f128_v4i32: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #144 -; CHECK-SD-NEXT: str x30, [sp, #96] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #96] // 8-byte Spill ; CHECK-SD-NEXT: stp x22, x21, [sp, #112] // 16-byte Folded Spill ; CHECK-SD-NEXT: stp x20, x19, [sp, #128] // 16-byte Folded Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 144 @@ -922,24 +922,24 @@ define <4 x i32> @test_signed_v4f128_v4i32(<4 x fp128> %f) { ; CHECK-SD-NEXT: stp q2, q3, [sp, #64] // 32-byte Folded Spill ; CHECK-SD-NEXT: mov v2.16b, v1.16b ; CHECK-SD-NEXT: adrp x8, .LCPI17_0 -; CHECK-SD-NEXT: str q0, [sp, #48] // 16-byte Folded Spill -; CHECK-SD-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #48] // 16-byte Spill +; CHECK-SD-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-SD-NEXT: ldr q1, [x8, :lo12:.LCPI17_0] ; CHECK-SD-NEXT: mov v0.16b, v2.16b -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: bl __getf2 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov w19, w0 ; CHECK-SD-NEXT: bl __fixtfsi ; CHECK-SD-NEXT: adrp x8, .LCPI17_1 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: cmp w19, #0 ; CHECK-SD-NEXT: ldr q1, [x8, :lo12:.LCPI17_1] ; CHECK-SD-NEXT: mov w20, #-2147483648 // =0x80000000 ; CHECK-SD-NEXT: csel w19, w20, w0, mi -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: bl __gttf2 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov w21, #2147483647 // =0x7fffffff ; CHECK-SD-NEXT: cmp w0, #0 ; CHECK-SD-NEXT: csel w19, w21, w19, gt @@ -949,36 +949,36 @@ define <4 x i32> @test_signed_v4f128_v4i32(<4 x fp128> %f) { ; CHECK-SD-NEXT: cmp w0, #0 ; CHECK-SD-NEXT: csel w22, wzr, w19, ne ; CHECK-SD-NEXT: bl __getf2 -; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: mov w19, w0 ; CHECK-SD-NEXT: bl __fixtfsi -; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: cmp w19, #0 ; CHECK-SD-NEXT: csel w19, w20, w0, mi ; CHECK-SD-NEXT: bl __gttf2 -; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: cmp w0, #0 ; CHECK-SD-NEXT: csel w19, w21, w19, gt ; CHECK-SD-NEXT: mov v1.16b, v0.16b ; CHECK-SD-NEXT: bl __unordtf2 ; CHECK-SD-NEXT: cmp w0, #0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: csel w8, wzr, w19, ne ; CHECK-SD-NEXT: fmov s0, w8 ; CHECK-SD-NEXT: mov v0.s[1], w22 -; CHECK-SD-NEXT: str q0, [sp, #48] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #64] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #48] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #64] // 16-byte Reload ; CHECK-SD-NEXT: bl __getf2 -; CHECK-SD-NEXT: ldr q0, [sp, #64] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #64] // 16-byte Reload ; CHECK-SD-NEXT: mov w19, w0 ; CHECK-SD-NEXT: bl __fixtfsi -; CHECK-SD-NEXT: ldr q0, [sp, #64] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #64] // 16-byte Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: cmp w19, #0 ; CHECK-SD-NEXT: csel w19, w20, w0, mi ; CHECK-SD-NEXT: bl __gttf2 -; CHECK-SD-NEXT: ldr q0, [sp, #64] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #64] // 16-byte Reload ; CHECK-SD-NEXT: cmp w0, #0 ; CHECK-SD-NEXT: csel w19, w21, w19, gt ; CHECK-SD-NEXT: mov v1.16b, v0.16b @@ -987,25 +987,25 @@ define <4 x i32> @test_signed_v4f128_v4i32(<4 x fp128> %f) { ; CHECK-SD-NEXT: cmp w0, #0 ; CHECK-SD-NEXT: csel w8, wzr, w19, ne ; CHECK-SD-NEXT: mov v0.s[2], w8 -; CHECK-SD-NEXT: str q0, [sp, #48] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #80] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #48] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #80] // 16-byte Reload ; CHECK-SD-NEXT: bl __getf2 -; CHECK-SD-NEXT: ldr q0, [sp, #80] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #80] // 16-byte Reload ; CHECK-SD-NEXT: mov w19, w0 ; CHECK-SD-NEXT: bl __fixtfsi -; CHECK-SD-NEXT: ldr q0, [sp, #80] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #80] // 16-byte Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: cmp w19, #0 ; CHECK-SD-NEXT: csel w19, w20, w0, mi ; CHECK-SD-NEXT: bl __gttf2 -; CHECK-SD-NEXT: ldr q0, [sp, #80] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #80] // 16-byte Reload ; CHECK-SD-NEXT: cmp w0, #0 ; CHECK-SD-NEXT: csel w19, w21, w19, gt ; CHECK-SD-NEXT: mov v1.16b, v0.16b ; CHECK-SD-NEXT: bl __unordtf2 ; CHECK-SD-NEXT: cmp w0, #0 -; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #96] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #96] // 8-byte Reload ; CHECK-SD-NEXT: csel w8, wzr, w19, ne ; CHECK-SD-NEXT: ldp x20, x19, [sp, #128] // 16-byte Folded Reload ; CHECK-SD-NEXT: ldp x22, x21, [sp, #112] // 16-byte Folded Reload @@ -1016,7 +1016,7 @@ define <4 x i32> @test_signed_v4f128_v4i32(<4 x fp128> %f) { ; CHECK-GI-LABEL: test_signed_v4f128_v4i32: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #160 -; CHECK-GI-NEXT: str x30, [sp, #96] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #96] // 8-byte Spill ; CHECK-GI-NEXT: stp x24, x23, [sp, #112] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp x22, x21, [sp, #128] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp x20, x19, [sp, #144] // 16-byte Folded Spill @@ -1031,10 +1031,10 @@ define <4 x i32> @test_signed_v4f128_v4i32(<4 x fp128> %f) { ; CHECK-GI-NEXT: adrp x8, .LCPI17_1 ; CHECK-GI-NEXT: stp q0, q1, [sp] // 32-byte Folded Spill ; CHECK-GI-NEXT: ldr q1, [x8, :lo12:.LCPI17_1] -; CHECK-GI-NEXT: str q2, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q2, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: stp q1, q3, [sp, #64] // 32-byte Folded Spill ; CHECK-GI-NEXT: bl __gttf2 -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: cmp w0, #0 ; CHECK-GI-NEXT: mov x20, #-4603241769126068224 // =0xc01e000000000000 ; CHECK-GI-NEXT: fmov x8, d0 @@ -1045,7 +1045,7 @@ define <4 x i32> @test_signed_v4f128_v4i32(<4 x fp128> %f) { ; CHECK-GI-NEXT: adrp x8, .LCPI17_0 ; CHECK-GI-NEXT: mov v0.d[1], x21 ; CHECK-GI-NEXT: ldr q1, [x8, :lo12:.LCPI17_0] -; CHECK-GI-NEXT: str q1, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: bl __lttf2 ; CHECK-GI-NEXT: cmp w0, #0 ; CHECK-GI-NEXT: mov x22, #281474976448512 // =0xfffffffc0000 @@ -1055,18 +1055,18 @@ define <4 x i32> @test_signed_v4f128_v4i32(<4 x fp128> %f) { ; CHECK-GI-NEXT: csel x8, x21, x22, mi ; CHECK-GI-NEXT: mov v0.d[1], x8 ; CHECK-GI-NEXT: bl __fixtfsi -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov w19, w0 ; CHECK-GI-NEXT: mov v1.16b, v0.16b ; CHECK-GI-NEXT: bl __unordtf2 -; CHECK-GI-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #16] // 16-byte Reload +; CHECK-GI-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-GI-NEXT: cmp w0, #0 ; CHECK-GI-NEXT: csel w21, wzr, w19, ne ; CHECK-GI-NEXT: bl __gttf2 -; CHECK-GI-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-GI-NEXT: cmp w0, #0 -; CHECK-GI-NEXT: ldr q1, [sp, #48] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #48] // 16-byte Reload ; CHECK-GI-NEXT: fmov x8, d0 ; CHECK-GI-NEXT: csel x19, x8, xzr, gt ; CHECK-GI-NEXT: mov x8, v0.d[1] @@ -1080,12 +1080,12 @@ define <4 x i32> @test_signed_v4f128_v4i32(<4 x fp128> %f) { ; CHECK-GI-NEXT: csel x8, x23, x22, mi ; CHECK-GI-NEXT: mov v0.d[1], x8 ; CHECK-GI-NEXT: bl __fixtfsi -; CHECK-GI-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-GI-NEXT: mov w19, w0 ; CHECK-GI-NEXT: mov v1.16b, v0.16b ; CHECK-GI-NEXT: bl __unordtf2 -; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Reload +; CHECK-GI-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-GI-NEXT: cmp w0, #0 ; CHECK-GI-NEXT: csel w23, wzr, w19, ne ; CHECK-GI-NEXT: bl __gttf2 @@ -1104,7 +1104,7 @@ define <4 x i32> @test_signed_v4f128_v4i32(<4 x fp128> %f) { ; CHECK-GI-NEXT: csel x8, x24, x22, mi ; CHECK-GI-NEXT: mov v0.d[1], x8 ; CHECK-GI-NEXT: bl __fixtfsi -; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: mov w19, w0 ; CHECK-GI-NEXT: mov v1.16b, v0.16b ; CHECK-GI-NEXT: bl __unordtf2 @@ -1112,9 +1112,9 @@ define <4 x i32> @test_signed_v4f128_v4i32(<4 x fp128> %f) { ; CHECK-GI-NEXT: cmp w0, #0 ; CHECK-GI-NEXT: csel w24, wzr, w19, ne ; CHECK-GI-NEXT: bl __gttf2 -; CHECK-GI-NEXT: ldr q0, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: cmp w0, #0 -; CHECK-GI-NEXT: ldr q1, [sp, #48] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #48] // 16-byte Reload ; CHECK-GI-NEXT: fmov x8, d0 ; CHECK-GI-NEXT: csel x19, x8, xzr, gt ; CHECK-GI-NEXT: mov x8, v0.d[1] @@ -1128,13 +1128,13 @@ define <4 x i32> @test_signed_v4f128_v4i32(<4 x fp128> %f) { ; CHECK-GI-NEXT: csel x8, x20, x22, mi ; CHECK-GI-NEXT: mov v0.d[1], x8 ; CHECK-GI-NEXT: bl __fixtfsi -; CHECK-GI-NEXT: ldr q0, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: mov w19, w0 ; CHECK-GI-NEXT: mov v1.16b, v0.16b ; CHECK-GI-NEXT: bl __unordtf2 ; CHECK-GI-NEXT: fmov s0, w21 ; CHECK-GI-NEXT: cmp w0, #0 -; CHECK-GI-NEXT: ldr x30, [sp, #96] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #96] // 8-byte Reload ; CHECK-GI-NEXT: csel w8, wzr, w19, ne ; CHECK-GI-NEXT: ldp x20, x19, [sp, #144] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp x22, x21, [sp, #128] // 16-byte Folded Reload @@ -1534,9 +1534,9 @@ define <2 x i100> @test_signed_v2f32_v2i100(<2 x float> %f) { ; CHECK-SD-LABEL: test_signed_v2f32_v2i100: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #80 -; CHECK-SD-NEXT: str d10, [sp, #16] // 8-byte Folded Spill +; CHECK-SD-NEXT: str d10, [sp, #16] // 8-byte Spill ; CHECK-SD-NEXT: stp d9, d8, [sp, #24] // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #40] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #40] // 8-byte Spill ; CHECK-SD-NEXT: stp x22, x21, [sp, #48] // 16-byte Folded Spill ; CHECK-SD-NEXT: stp x20, x19, [sp, #64] // 16-byte Folded Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 80 @@ -1549,11 +1549,11 @@ define <2 x i100> @test_signed_v2f32_v2i100(<2 x float> %f) { ; CHECK-SD-NEXT: .cfi_offset b9, -56 ; CHECK-SD-NEXT: .cfi_offset b10, -64 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl __fixsfti ; CHECK-SD-NEXT: movi v9.2s, #241, lsl #24 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov w8, #1895825407 // =0x70ffffff ; CHECK-SD-NEXT: fmov s10, w8 ; CHECK-SD-NEXT: mov x21, #-34359738368 // =0xfffffff800000000 @@ -1571,13 +1571,13 @@ define <2 x i100> @test_signed_v2f32_v2i100(<2 x float> %f) { ; CHECK-SD-NEXT: csel x20, xzr, x9, vs ; CHECK-SD-NEXT: bl __fixsfti ; CHECK-SD-NEXT: fcmp s8, s9 -; CHECK-SD-NEXT: ldr x30, [sp, #40] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #40] // 8-byte Reload ; CHECK-SD-NEXT: csel x8, xzr, x0, lt ; CHECK-SD-NEXT: csel x9, x21, x1, lt ; CHECK-SD-NEXT: fcmp s8, s10 ; CHECK-SD-NEXT: mov x0, x19 ; CHECK-SD-NEXT: mov x1, x20 -; CHECK-SD-NEXT: ldr d10, [sp, #16] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr d10, [sp, #16] // 8-byte Reload ; CHECK-SD-NEXT: ldp x20, x19, [sp, #64] // 16-byte Folded Reload ; CHECK-SD-NEXT: csel x9, x22, x9, gt ; CHECK-SD-NEXT: csinv x8, x8, xzr, le @@ -1592,9 +1592,9 @@ define <2 x i100> @test_signed_v2f32_v2i100(<2 x float> %f) { ; CHECK-GI-LABEL: test_signed_v2f32_v2i100: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #80 -; CHECK-GI-NEXT: str d10, [sp, #16] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d10, [sp, #16] // 8-byte Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #24] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #40] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #40] // 8-byte Spill ; CHECK-GI-NEXT: stp x22, x21, [sp, #48] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp x20, x19, [sp, #64] // 16-byte Folded Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 80 @@ -1607,12 +1607,12 @@ define <2 x i100> @test_signed_v2f32_v2i100(<2 x float> %f) { ; CHECK-GI-NEXT: .cfi_offset b9, -56 ; CHECK-GI-NEXT: .cfi_offset b10, -64 ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: mov s8, v0.s[1] ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl __fixsfti ; CHECK-GI-NEXT: movi v9.2s, #241, lsl #24 -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov w8, #1895825407 // =0x70ffffff ; CHECK-GI-NEXT: fmov s10, w8 ; CHECK-GI-NEXT: mov x21, #34359738368 // =0x800000000 @@ -1629,13 +1629,13 @@ define <2 x i100> @test_signed_v2f32_v2i100(<2 x float> %f) { ; CHECK-GI-NEXT: csel x20, xzr, x9, vs ; CHECK-GI-NEXT: bl __fixsfti ; CHECK-GI-NEXT: fcmp s8, s9 -; CHECK-GI-NEXT: ldr x30, [sp, #40] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #40] // 8-byte Reload ; CHECK-GI-NEXT: csel x8, xzr, x0, lt ; CHECK-GI-NEXT: csel x9, x21, x1, lt ; CHECK-GI-NEXT: fcmp s8, s10 ; CHECK-GI-NEXT: mov x0, x19 ; CHECK-GI-NEXT: mov x1, x20 -; CHECK-GI-NEXT: ldr d10, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr d10, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: ldp x20, x19, [sp, #64] // 16-byte Folded Reload ; CHECK-GI-NEXT: csinv x8, x8, xzr, le ; CHECK-GI-NEXT: csel x9, x22, x9, gt @@ -1654,9 +1654,9 @@ define <2 x i128> @test_signed_v2f32_v2i128(<2 x float> %f) { ; CHECK-SD-LABEL: test_signed_v2f32_v2i128: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #80 -; CHECK-SD-NEXT: str d10, [sp, #16] // 8-byte Folded Spill +; CHECK-SD-NEXT: str d10, [sp, #16] // 8-byte Spill ; CHECK-SD-NEXT: stp d9, d8, [sp, #24] // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #40] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #40] // 8-byte Spill ; CHECK-SD-NEXT: stp x22, x21, [sp, #48] // 16-byte Folded Spill ; CHECK-SD-NEXT: stp x20, x19, [sp, #64] // 16-byte Folded Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 80 @@ -1669,11 +1669,11 @@ define <2 x i128> @test_signed_v2f32_v2i128(<2 x float> %f) { ; CHECK-SD-NEXT: .cfi_offset b9, -56 ; CHECK-SD-NEXT: .cfi_offset b10, -64 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl __fixsfti ; CHECK-SD-NEXT: movi v9.2s, #255, lsl #24 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov w8, #2130706431 // =0x7effffff ; CHECK-SD-NEXT: fmov s10, w8 ; CHECK-SD-NEXT: mov x21, #-9223372036854775808 // =0x8000000000000000 @@ -1691,13 +1691,13 @@ define <2 x i128> @test_signed_v2f32_v2i128(<2 x float> %f) { ; CHECK-SD-NEXT: csel x20, xzr, x9, vs ; CHECK-SD-NEXT: bl __fixsfti ; CHECK-SD-NEXT: fcmp s8, s9 -; CHECK-SD-NEXT: ldr x30, [sp, #40] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #40] // 8-byte Reload ; CHECK-SD-NEXT: csel x8, xzr, x0, lt ; CHECK-SD-NEXT: csel x9, x21, x1, lt ; CHECK-SD-NEXT: fcmp s8, s10 ; CHECK-SD-NEXT: mov x0, x19 ; CHECK-SD-NEXT: mov x1, x20 -; CHECK-SD-NEXT: ldr d10, [sp, #16] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr d10, [sp, #16] // 8-byte Reload ; CHECK-SD-NEXT: ldp x20, x19, [sp, #64] // 16-byte Folded Reload ; CHECK-SD-NEXT: csel x9, x22, x9, gt ; CHECK-SD-NEXT: csinv x8, x8, xzr, le @@ -1712,9 +1712,9 @@ define <2 x i128> @test_signed_v2f32_v2i128(<2 x float> %f) { ; CHECK-GI-LABEL: test_signed_v2f32_v2i128: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #80 -; CHECK-GI-NEXT: str d10, [sp, #16] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d10, [sp, #16] // 8-byte Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #24] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #40] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #40] // 8-byte Spill ; CHECK-GI-NEXT: stp x22, x21, [sp, #48] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp x20, x19, [sp, #64] // 16-byte Folded Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 80 @@ -1727,12 +1727,12 @@ define <2 x i128> @test_signed_v2f32_v2i128(<2 x float> %f) { ; CHECK-GI-NEXT: .cfi_offset b9, -56 ; CHECK-GI-NEXT: .cfi_offset b10, -64 ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: mov s8, v0.s[1] ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl __fixsfti ; CHECK-GI-NEXT: movi v9.2s, #255, lsl #24 -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov w8, #2130706431 // =0x7effffff ; CHECK-GI-NEXT: fmov s10, w8 ; CHECK-GI-NEXT: mov x21, #-9223372036854775808 // =0x8000000000000000 @@ -1749,13 +1749,13 @@ define <2 x i128> @test_signed_v2f32_v2i128(<2 x float> %f) { ; CHECK-GI-NEXT: csel x20, xzr, x9, vs ; CHECK-GI-NEXT: bl __fixsfti ; CHECK-GI-NEXT: fcmp s8, s9 -; CHECK-GI-NEXT: ldr x30, [sp, #40] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #40] // 8-byte Reload ; CHECK-GI-NEXT: csel x8, xzr, x0, lt ; CHECK-GI-NEXT: csel x9, x21, x1, lt ; CHECK-GI-NEXT: fcmp s8, s10 ; CHECK-GI-NEXT: mov x0, x19 ; CHECK-GI-NEXT: mov x1, x20 -; CHECK-GI-NEXT: ldr d10, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr d10, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: ldp x20, x19, [sp, #64] // 16-byte Folded Reload ; CHECK-GI-NEXT: csinv x8, x8, xzr, le ; CHECK-GI-NEXT: csel x9, x22, x9, gt @@ -1925,9 +1925,9 @@ define <4 x i100> @test_signed_v4f32_v4i100(<4 x float> %f) { ; CHECK-SD-LABEL: test_signed_v4f32_v4i100: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #112 -; CHECK-SD-NEXT: str d10, [sp, #16] // 8-byte Folded Spill +; CHECK-SD-NEXT: str d10, [sp, #16] // 8-byte Spill ; CHECK-SD-NEXT: stp d9, d8, [sp, #24] // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #40] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #40] // 8-byte Spill ; CHECK-SD-NEXT: stp x26, x25, [sp, #48] // 16-byte Folded Spill ; CHECK-SD-NEXT: stp x24, x23, [sp, #64] // 16-byte Folded Spill ; CHECK-SD-NEXT: stp x22, x21, [sp, #80] // 16-byte Folded Spill @@ -1945,11 +1945,11 @@ define <4 x i100> @test_signed_v4f32_v4i100(<4 x float> %f) { ; CHECK-SD-NEXT: .cfi_offset b8, -80 ; CHECK-SD-NEXT: .cfi_offset b9, -88 ; CHECK-SD-NEXT: .cfi_offset b10, -96 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl __fixsfti ; CHECK-SD-NEXT: movi v9.2s, #241, lsl #24 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov w8, #1895825407 // =0x70ffffff ; CHECK-SD-NEXT: fmov s10, w8 ; CHECK-SD-NEXT: mov x25, #-34359738368 // =0xfffffff800000000 @@ -1967,7 +1967,7 @@ define <4 x i100> @test_signed_v4f32_v4i100(<4 x float> %f) { ; CHECK-SD-NEXT: csel x20, xzr, x9, vs ; CHECK-SD-NEXT: bl __fixsfti ; CHECK-SD-NEXT: fcmp s8, s9 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: ext v0.16b, v0.16b, v0.16b, #8 ; CHECK-SD-NEXT: csel x8, xzr, x0, lt ; CHECK-SD-NEXT: csel x9, x25, x1, lt @@ -1975,12 +1975,12 @@ define <4 x i100> @test_signed_v4f32_v4i100(<4 x float> %f) { ; CHECK-SD-NEXT: csel x9, x26, x9, gt ; CHECK-SD-NEXT: csinv x8, x8, xzr, le ; CHECK-SD-NEXT: fcmp s8, s8 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: csel x21, xzr, x8, vs ; CHECK-SD-NEXT: csel x22, xzr, x9, vs ; CHECK-SD-NEXT: bl __fixsfti -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: fcmp s0, s9 ; CHECK-SD-NEXT: mov s8, v0.s[1] ; CHECK-SD-NEXT: csel x8, xzr, x0, lt @@ -1998,14 +1998,14 @@ define <4 x i100> @test_signed_v4f32_v4i100(<4 x float> %f) { ; CHECK-SD-NEXT: mov x3, x22 ; CHECK-SD-NEXT: mov x4, x23 ; CHECK-SD-NEXT: mov x5, x24 -; CHECK-SD-NEXT: ldr x30, [sp, #40] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #40] // 8-byte Reload ; CHECK-SD-NEXT: ldp x22, x21, [sp, #80] // 16-byte Folded Reload ; CHECK-SD-NEXT: csel x8, xzr, x0, lt ; CHECK-SD-NEXT: csel x9, x25, x1, lt ; CHECK-SD-NEXT: fcmp s8, s10 ; CHECK-SD-NEXT: mov x0, x19 ; CHECK-SD-NEXT: mov x1, x20 -; CHECK-SD-NEXT: ldr d10, [sp, #16] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr d10, [sp, #16] // 8-byte Reload ; CHECK-SD-NEXT: ldp x20, x19, [sp, #96] // 16-byte Folded Reload ; CHECK-SD-NEXT: csel x9, x26, x9, gt ; CHECK-SD-NEXT: csinv x8, x8, xzr, le @@ -2021,10 +2021,10 @@ define <4 x i100> @test_signed_v4f32_v4i100(<4 x float> %f) { ; CHECK-GI-LABEL: test_signed_v4f32_v4i100: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #128 -; CHECK-GI-NEXT: str d12, [sp, #16] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d12, [sp, #16] // 8-byte Spill ; CHECK-GI-NEXT: stp d11, d10, [sp, #24] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #40] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #56] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #56] // 8-byte Spill ; CHECK-GI-NEXT: stp x26, x25, [sp, #64] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp x24, x23, [sp, #80] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp x22, x21, [sp, #96] // 16-byte Folded Spill @@ -2044,14 +2044,14 @@ define <4 x i100> @test_signed_v4f32_v4i100(<4 x float> %f) { ; CHECK-GI-NEXT: .cfi_offset b10, -96 ; CHECK-GI-NEXT: .cfi_offset b11, -104 ; CHECK-GI-NEXT: .cfi_offset b12, -112 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: mov s9, v0.s[1] ; CHECK-GI-NEXT: mov s10, v0.s[2] ; CHECK-GI-NEXT: mov s8, v0.s[3] ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl __fixsfti ; CHECK-GI-NEXT: movi v11.2s, #241, lsl #24 -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov w8, #1895825407 // =0x70ffffff ; CHECK-GI-NEXT: fmov s12, w8 ; CHECK-GI-NEXT: mov x25, #34359738368 // =0x800000000 @@ -2094,14 +2094,14 @@ define <4 x i100> @test_signed_v4f32_v4i100(<4 x float> %f) { ; CHECK-GI-NEXT: mov x3, x22 ; CHECK-GI-NEXT: mov x4, x23 ; CHECK-GI-NEXT: mov x5, x24 -; CHECK-GI-NEXT: ldr x30, [sp, #56] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #56] // 8-byte Reload ; CHECK-GI-NEXT: ldp x22, x21, [sp, #96] // 16-byte Folded Reload ; CHECK-GI-NEXT: csel x8, xzr, x0, lt ; CHECK-GI-NEXT: csel x9, x25, x1, lt ; CHECK-GI-NEXT: fcmp s8, s12 ; CHECK-GI-NEXT: mov x0, x19 ; CHECK-GI-NEXT: mov x1, x20 -; CHECK-GI-NEXT: ldr d12, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr d12, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: ldp x20, x19, [sp, #112] // 16-byte Folded Reload ; CHECK-GI-NEXT: csinv x8, x8, xzr, le ; CHECK-GI-NEXT: csel x9, x26, x9, gt @@ -2122,9 +2122,9 @@ define <4 x i128> @test_signed_v4f32_v4i128(<4 x float> %f) { ; CHECK-SD-LABEL: test_signed_v4f32_v4i128: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #112 -; CHECK-SD-NEXT: str d10, [sp, #16] // 8-byte Folded Spill +; CHECK-SD-NEXT: str d10, [sp, #16] // 8-byte Spill ; CHECK-SD-NEXT: stp d9, d8, [sp, #24] // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #40] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #40] // 8-byte Spill ; CHECK-SD-NEXT: stp x26, x25, [sp, #48] // 16-byte Folded Spill ; CHECK-SD-NEXT: stp x24, x23, [sp, #64] // 16-byte Folded Spill ; CHECK-SD-NEXT: stp x22, x21, [sp, #80] // 16-byte Folded Spill @@ -2142,11 +2142,11 @@ define <4 x i128> @test_signed_v4f32_v4i128(<4 x float> %f) { ; CHECK-SD-NEXT: .cfi_offset b8, -80 ; CHECK-SD-NEXT: .cfi_offset b9, -88 ; CHECK-SD-NEXT: .cfi_offset b10, -96 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl __fixsfti ; CHECK-SD-NEXT: movi v9.2s, #255, lsl #24 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov w8, #2130706431 // =0x7effffff ; CHECK-SD-NEXT: fmov s10, w8 ; CHECK-SD-NEXT: mov x25, #-9223372036854775808 // =0x8000000000000000 @@ -2164,7 +2164,7 @@ define <4 x i128> @test_signed_v4f32_v4i128(<4 x float> %f) { ; CHECK-SD-NEXT: csel x20, xzr, x9, vs ; CHECK-SD-NEXT: bl __fixsfti ; CHECK-SD-NEXT: fcmp s8, s9 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: ext v0.16b, v0.16b, v0.16b, #8 ; CHECK-SD-NEXT: csel x8, xzr, x0, lt ; CHECK-SD-NEXT: csel x9, x25, x1, lt @@ -2172,12 +2172,12 @@ define <4 x i128> @test_signed_v4f32_v4i128(<4 x float> %f) { ; CHECK-SD-NEXT: csel x9, x26, x9, gt ; CHECK-SD-NEXT: csinv x8, x8, xzr, le ; CHECK-SD-NEXT: fcmp s8, s8 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: csel x21, xzr, x8, vs ; CHECK-SD-NEXT: csel x22, xzr, x9, vs ; CHECK-SD-NEXT: bl __fixsfti -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: fcmp s0, s9 ; CHECK-SD-NEXT: mov s8, v0.s[1] ; CHECK-SD-NEXT: csel x8, xzr, x0, lt @@ -2195,14 +2195,14 @@ define <4 x i128> @test_signed_v4f32_v4i128(<4 x float> %f) { ; CHECK-SD-NEXT: mov x3, x22 ; CHECK-SD-NEXT: mov x4, x23 ; CHECK-SD-NEXT: mov x5, x24 -; CHECK-SD-NEXT: ldr x30, [sp, #40] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #40] // 8-byte Reload ; CHECK-SD-NEXT: ldp x22, x21, [sp, #80] // 16-byte Folded Reload ; CHECK-SD-NEXT: csel x8, xzr, x0, lt ; CHECK-SD-NEXT: csel x9, x25, x1, lt ; CHECK-SD-NEXT: fcmp s8, s10 ; CHECK-SD-NEXT: mov x0, x19 ; CHECK-SD-NEXT: mov x1, x20 -; CHECK-SD-NEXT: ldr d10, [sp, #16] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr d10, [sp, #16] // 8-byte Reload ; CHECK-SD-NEXT: ldp x20, x19, [sp, #96] // 16-byte Folded Reload ; CHECK-SD-NEXT: csel x9, x26, x9, gt ; CHECK-SD-NEXT: csinv x8, x8, xzr, le @@ -2218,10 +2218,10 @@ define <4 x i128> @test_signed_v4f32_v4i128(<4 x float> %f) { ; CHECK-GI-LABEL: test_signed_v4f32_v4i128: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #128 -; CHECK-GI-NEXT: str d12, [sp, #16] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d12, [sp, #16] // 8-byte Spill ; CHECK-GI-NEXT: stp d11, d10, [sp, #24] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #40] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #56] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #56] // 8-byte Spill ; CHECK-GI-NEXT: stp x26, x25, [sp, #64] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp x24, x23, [sp, #80] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp x22, x21, [sp, #96] // 16-byte Folded Spill @@ -2241,14 +2241,14 @@ define <4 x i128> @test_signed_v4f32_v4i128(<4 x float> %f) { ; CHECK-GI-NEXT: .cfi_offset b10, -96 ; CHECK-GI-NEXT: .cfi_offset b11, -104 ; CHECK-GI-NEXT: .cfi_offset b12, -112 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: mov s9, v0.s[1] ; CHECK-GI-NEXT: mov s10, v0.s[2] ; CHECK-GI-NEXT: mov s8, v0.s[3] ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl __fixsfti ; CHECK-GI-NEXT: movi v11.2s, #255, lsl #24 -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov w8, #2130706431 // =0x7effffff ; CHECK-GI-NEXT: fmov s12, w8 ; CHECK-GI-NEXT: mov x25, #-9223372036854775808 // =0x8000000000000000 @@ -2291,14 +2291,14 @@ define <4 x i128> @test_signed_v4f32_v4i128(<4 x float> %f) { ; CHECK-GI-NEXT: mov x3, x22 ; CHECK-GI-NEXT: mov x4, x23 ; CHECK-GI-NEXT: mov x5, x24 -; CHECK-GI-NEXT: ldr x30, [sp, #56] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #56] // 8-byte Reload ; CHECK-GI-NEXT: ldp x22, x21, [sp, #96] // 16-byte Folded Reload ; CHECK-GI-NEXT: csel x8, xzr, x0, lt ; CHECK-GI-NEXT: csel x9, x25, x1, lt ; CHECK-GI-NEXT: fcmp s8, s12 ; CHECK-GI-NEXT: mov x0, x19 ; CHECK-GI-NEXT: mov x1, x20 -; CHECK-GI-NEXT: ldr d12, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr d12, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: ldp x20, x19, [sp, #112] // 16-byte Folded Reload ; CHECK-GI-NEXT: csinv x8, x8, xzr, le ; CHECK-GI-NEXT: csel x9, x26, x9, gt @@ -2587,9 +2587,9 @@ define <2 x i100> @test_signed_v2f64_v2i100(<2 x double> %f) { ; CHECK-SD-LABEL: test_signed_v2f64_v2i100: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #80 -; CHECK-SD-NEXT: str d10, [sp, #16] // 8-byte Folded Spill +; CHECK-SD-NEXT: str d10, [sp, #16] // 8-byte Spill ; CHECK-SD-NEXT: stp d9, d8, [sp, #24] // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #40] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #40] // 8-byte Spill ; CHECK-SD-NEXT: stp x22, x21, [sp, #48] // 16-byte Folded Spill ; CHECK-SD-NEXT: stp x20, x19, [sp, #64] // 16-byte Folded Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 80 @@ -2601,11 +2601,11 @@ define <2 x i100> @test_signed_v2f64_v2i100(<2 x double> %f) { ; CHECK-SD-NEXT: .cfi_offset b8, -48 ; CHECK-SD-NEXT: .cfi_offset b9, -56 ; CHECK-SD-NEXT: .cfi_offset b10, -64 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: bl __fixdfti ; CHECK-SD-NEXT: mov x8, #-4170333254945079296 // =0xc620000000000000 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov x21, #-34359738368 // =0xfffffff800000000 ; CHECK-SD-NEXT: fmov d9, x8 ; CHECK-SD-NEXT: mov x8, #5053038781909696511 // =0x461fffffffffffff @@ -2624,13 +2624,13 @@ define <2 x i100> @test_signed_v2f64_v2i100(<2 x double> %f) { ; CHECK-SD-NEXT: csel x20, xzr, x9, vs ; CHECK-SD-NEXT: bl __fixdfti ; CHECK-SD-NEXT: fcmp d8, d9 -; CHECK-SD-NEXT: ldr x30, [sp, #40] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #40] // 8-byte Reload ; CHECK-SD-NEXT: csel x8, xzr, x0, lt ; CHECK-SD-NEXT: csel x9, x21, x1, lt ; CHECK-SD-NEXT: fcmp d8, d10 ; CHECK-SD-NEXT: mov x0, x19 ; CHECK-SD-NEXT: mov x1, x20 -; CHECK-SD-NEXT: ldr d10, [sp, #16] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr d10, [sp, #16] // 8-byte Reload ; CHECK-SD-NEXT: ldp x20, x19, [sp, #64] // 16-byte Folded Reload ; CHECK-SD-NEXT: csel x9, x22, x9, gt ; CHECK-SD-NEXT: csinv x8, x8, xzr, le @@ -2645,9 +2645,9 @@ define <2 x i100> @test_signed_v2f64_v2i100(<2 x double> %f) { ; CHECK-GI-LABEL: test_signed_v2f64_v2i100: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #80 -; CHECK-GI-NEXT: str d10, [sp, #16] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d10, [sp, #16] // 8-byte Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #24] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #40] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #40] // 8-byte Spill ; CHECK-GI-NEXT: stp x22, x21, [sp, #48] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp x20, x19, [sp, #64] // 16-byte Folded Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 80 @@ -2659,12 +2659,12 @@ define <2 x i100> @test_signed_v2f64_v2i100(<2 x double> %f) { ; CHECK-GI-NEXT: .cfi_offset b8, -48 ; CHECK-GI-NEXT: .cfi_offset b9, -56 ; CHECK-GI-NEXT: .cfi_offset b10, -64 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: mov d8, v0.d[1] ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-GI-NEXT: bl __fixdfti ; CHECK-GI-NEXT: mov x8, #-4170333254945079296 // =0xc620000000000000 -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov x21, #34359738368 // =0x800000000 ; CHECK-GI-NEXT: fmov d9, x8 ; CHECK-GI-NEXT: mov x8, #5053038781909696511 // =0x461fffffffffffff @@ -2682,13 +2682,13 @@ define <2 x i100> @test_signed_v2f64_v2i100(<2 x double> %f) { ; CHECK-GI-NEXT: csel x20, xzr, x9, vs ; CHECK-GI-NEXT: bl __fixdfti ; CHECK-GI-NEXT: fcmp d8, d9 -; CHECK-GI-NEXT: ldr x30, [sp, #40] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #40] // 8-byte Reload ; CHECK-GI-NEXT: csel x8, xzr, x0, lt ; CHECK-GI-NEXT: csel x9, x21, x1, lt ; CHECK-GI-NEXT: fcmp d8, d10 ; CHECK-GI-NEXT: mov x0, x19 ; CHECK-GI-NEXT: mov x1, x20 -; CHECK-GI-NEXT: ldr d10, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr d10, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: ldp x20, x19, [sp, #64] // 16-byte Folded Reload ; CHECK-GI-NEXT: csinv x8, x8, xzr, le ; CHECK-GI-NEXT: csel x9, x22, x9, gt @@ -2707,9 +2707,9 @@ define <2 x i128> @test_signed_v2f64_v2i128(<2 x double> %f) { ; CHECK-SD-LABEL: test_signed_v2f64_v2i128: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #80 -; CHECK-SD-NEXT: str d10, [sp, #16] // 8-byte Folded Spill +; CHECK-SD-NEXT: str d10, [sp, #16] // 8-byte Spill ; CHECK-SD-NEXT: stp d9, d8, [sp, #24] // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #40] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #40] // 8-byte Spill ; CHECK-SD-NEXT: stp x22, x21, [sp, #48] // 16-byte Folded Spill ; CHECK-SD-NEXT: stp x20, x19, [sp, #64] // 16-byte Folded Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 80 @@ -2721,11 +2721,11 @@ define <2 x i128> @test_signed_v2f64_v2i128(<2 x double> %f) { ; CHECK-SD-NEXT: .cfi_offset b8, -48 ; CHECK-SD-NEXT: .cfi_offset b9, -56 ; CHECK-SD-NEXT: .cfi_offset b10, -64 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: bl __fixdfti ; CHECK-SD-NEXT: mov x8, #-4044232465378705408 // =0xc7e0000000000000 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov x21, #-9223372036854775808 // =0x8000000000000000 ; CHECK-SD-NEXT: fmov d9, x8 ; CHECK-SD-NEXT: mov x8, #5179139571476070399 // =0x47dfffffffffffff @@ -2744,13 +2744,13 @@ define <2 x i128> @test_signed_v2f64_v2i128(<2 x double> %f) { ; CHECK-SD-NEXT: csel x20, xzr, x9, vs ; CHECK-SD-NEXT: bl __fixdfti ; CHECK-SD-NEXT: fcmp d8, d9 -; CHECK-SD-NEXT: ldr x30, [sp, #40] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #40] // 8-byte Reload ; CHECK-SD-NEXT: csel x8, xzr, x0, lt ; CHECK-SD-NEXT: csel x9, x21, x1, lt ; CHECK-SD-NEXT: fcmp d8, d10 ; CHECK-SD-NEXT: mov x0, x19 ; CHECK-SD-NEXT: mov x1, x20 -; CHECK-SD-NEXT: ldr d10, [sp, #16] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr d10, [sp, #16] // 8-byte Reload ; CHECK-SD-NEXT: ldp x20, x19, [sp, #64] // 16-byte Folded Reload ; CHECK-SD-NEXT: csel x9, x22, x9, gt ; CHECK-SD-NEXT: csinv x8, x8, xzr, le @@ -2765,9 +2765,9 @@ define <2 x i128> @test_signed_v2f64_v2i128(<2 x double> %f) { ; CHECK-GI-LABEL: test_signed_v2f64_v2i128: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #80 -; CHECK-GI-NEXT: str d10, [sp, #16] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d10, [sp, #16] // 8-byte Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #24] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #40] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #40] // 8-byte Spill ; CHECK-GI-NEXT: stp x22, x21, [sp, #48] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp x20, x19, [sp, #64] // 16-byte Folded Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 80 @@ -2779,12 +2779,12 @@ define <2 x i128> @test_signed_v2f64_v2i128(<2 x double> %f) { ; CHECK-GI-NEXT: .cfi_offset b8, -48 ; CHECK-GI-NEXT: .cfi_offset b9, -56 ; CHECK-GI-NEXT: .cfi_offset b10, -64 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: mov d8, v0.d[1] ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-GI-NEXT: bl __fixdfti ; CHECK-GI-NEXT: mov x8, #-4044232465378705408 // =0xc7e0000000000000 -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov x21, #-9223372036854775808 // =0x8000000000000000 ; CHECK-GI-NEXT: fmov d9, x8 ; CHECK-GI-NEXT: mov x8, #5179139571476070399 // =0x47dfffffffffffff @@ -2802,13 +2802,13 @@ define <2 x i128> @test_signed_v2f64_v2i128(<2 x double> %f) { ; CHECK-GI-NEXT: csel x20, xzr, x9, vs ; CHECK-GI-NEXT: bl __fixdfti ; CHECK-GI-NEXT: fcmp d8, d9 -; CHECK-GI-NEXT: ldr x30, [sp, #40] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #40] // 8-byte Reload ; CHECK-GI-NEXT: csel x8, xzr, x0, lt ; CHECK-GI-NEXT: csel x9, x21, x1, lt ; CHECK-GI-NEXT: fcmp d8, d10 ; CHECK-GI-NEXT: mov x0, x19 ; CHECK-GI-NEXT: mov x1, x20 -; CHECK-GI-NEXT: ldr d10, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr d10, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: ldp x20, x19, [sp, #64] // 16-byte Folded Reload ; CHECK-GI-NEXT: csinv x8, x8, xzr, le ; CHECK-GI-NEXT: csel x9, x22, x9, gt @@ -3115,9 +3115,9 @@ define <4 x i100> @test_signed_v4f16_v4i100(<4 x half> %f) { ; CHECK-SD-LABEL: test_signed_v4f16_v4i100: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #112 -; CHECK-SD-NEXT: str d10, [sp, #16] // 8-byte Folded Spill +; CHECK-SD-NEXT: str d10, [sp, #16] // 8-byte Spill ; CHECK-SD-NEXT: stp d9, d8, [sp, #24] // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #40] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #40] // 8-byte Spill ; CHECK-SD-NEXT: stp x26, x25, [sp, #48] // 16-byte Folded Spill ; CHECK-SD-NEXT: stp x24, x23, [sp, #64] // 16-byte Folded Spill ; CHECK-SD-NEXT: stp x22, x21, [sp, #80] // 16-byte Folded Spill @@ -3137,12 +3137,12 @@ define <4 x i100> @test_signed_v4f16_v4i100(<4 x half> %f) { ; CHECK-SD-NEXT: .cfi_offset b10, -96 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-SD-NEXT: fcvt s8, h0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: fmov s0, s8 ; CHECK-SD-NEXT: bl __fixsfti ; CHECK-SD-NEXT: movi v9.2s, #241, lsl #24 ; CHECK-SD-NEXT: mov w8, #1895825407 // =0x70ffffff -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: fmov s10, w8 ; CHECK-SD-NEXT: mov x25, #-34359738368 // =0xfffffff800000000 ; CHECK-SD-NEXT: mov x26, #34359738367 // =0x7ffffffff @@ -3160,7 +3160,7 @@ define <4 x i100> @test_signed_v4f16_v4i100(<4 x half> %f) { ; CHECK-SD-NEXT: fmov s0, s8 ; CHECK-SD-NEXT: bl __fixsfti ; CHECK-SD-NEXT: fcmp s8, s9 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: csel x8, xzr, x0, lt ; CHECK-SD-NEXT: csel x9, x25, x1, lt @@ -3174,7 +3174,7 @@ define <4 x i100> @test_signed_v4f16_v4i100(<4 x half> %f) { ; CHECK-SD-NEXT: fmov s0, s8 ; CHECK-SD-NEXT: bl __fixsfti ; CHECK-SD-NEXT: fcmp s8, s9 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] ; CHECK-SD-NEXT: csel x8, xzr, x0, lt ; CHECK-SD-NEXT: csel x9, x25, x1, lt @@ -3192,14 +3192,14 @@ define <4 x i100> @test_signed_v4f16_v4i100(<4 x half> %f) { ; CHECK-SD-NEXT: mov x3, x22 ; CHECK-SD-NEXT: mov x4, x23 ; CHECK-SD-NEXT: mov x5, x24 -; CHECK-SD-NEXT: ldr x30, [sp, #40] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #40] // 8-byte Reload ; CHECK-SD-NEXT: ldp x22, x21, [sp, #80] // 16-byte Folded Reload ; CHECK-SD-NEXT: csel x8, xzr, x0, lt ; CHECK-SD-NEXT: csel x9, x25, x1, lt ; CHECK-SD-NEXT: fcmp s8, s10 ; CHECK-SD-NEXT: mov x0, x19 ; CHECK-SD-NEXT: mov x1, x20 -; CHECK-SD-NEXT: ldr d10, [sp, #16] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr d10, [sp, #16] // 8-byte Reload ; CHECK-SD-NEXT: ldp x20, x19, [sp, #96] // 16-byte Folded Reload ; CHECK-SD-NEXT: csel x9, x26, x9, gt ; CHECK-SD-NEXT: csinv x8, x8, xzr, le @@ -3255,9 +3255,9 @@ define <4 x i128> @test_signed_v4f16_v4i128(<4 x half> %f) { ; CHECK-SD-LABEL: test_signed_v4f16_v4i128: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #112 -; CHECK-SD-NEXT: str d10, [sp, #16] // 8-byte Folded Spill +; CHECK-SD-NEXT: str d10, [sp, #16] // 8-byte Spill ; CHECK-SD-NEXT: stp d9, d8, [sp, #24] // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #40] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #40] // 8-byte Spill ; CHECK-SD-NEXT: stp x26, x25, [sp, #48] // 16-byte Folded Spill ; CHECK-SD-NEXT: stp x24, x23, [sp, #64] // 16-byte Folded Spill ; CHECK-SD-NEXT: stp x22, x21, [sp, #80] // 16-byte Folded Spill @@ -3277,12 +3277,12 @@ define <4 x i128> @test_signed_v4f16_v4i128(<4 x half> %f) { ; CHECK-SD-NEXT: .cfi_offset b10, -96 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-SD-NEXT: fcvt s8, h0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: fmov s0, s8 ; CHECK-SD-NEXT: bl __fixsfti ; CHECK-SD-NEXT: movi v9.2s, #255, lsl #24 ; CHECK-SD-NEXT: mov w8, #2130706431 // =0x7effffff -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: fmov s10, w8 ; CHECK-SD-NEXT: mov x25, #-9223372036854775808 // =0x8000000000000000 ; CHECK-SD-NEXT: mov x26, #9223372036854775807 // =0x7fffffffffffffff @@ -3300,7 +3300,7 @@ define <4 x i128> @test_signed_v4f16_v4i128(<4 x half> %f) { ; CHECK-SD-NEXT: fmov s0, s8 ; CHECK-SD-NEXT: bl __fixsfti ; CHECK-SD-NEXT: fcmp s8, s9 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: csel x8, xzr, x0, lt ; CHECK-SD-NEXT: csel x9, x25, x1, lt @@ -3314,7 +3314,7 @@ define <4 x i128> @test_signed_v4f16_v4i128(<4 x half> %f) { ; CHECK-SD-NEXT: fmov s0, s8 ; CHECK-SD-NEXT: bl __fixsfti ; CHECK-SD-NEXT: fcmp s8, s9 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] ; CHECK-SD-NEXT: csel x8, xzr, x0, lt ; CHECK-SD-NEXT: csel x9, x25, x1, lt @@ -3332,14 +3332,14 @@ define <4 x i128> @test_signed_v4f16_v4i128(<4 x half> %f) { ; CHECK-SD-NEXT: mov x3, x22 ; CHECK-SD-NEXT: mov x4, x23 ; CHECK-SD-NEXT: mov x5, x24 -; CHECK-SD-NEXT: ldr x30, [sp, #40] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #40] // 8-byte Reload ; CHECK-SD-NEXT: ldp x22, x21, [sp, #80] // 16-byte Folded Reload ; CHECK-SD-NEXT: csel x8, xzr, x0, lt ; CHECK-SD-NEXT: csel x9, x25, x1, lt ; CHECK-SD-NEXT: fcmp s8, s10 ; CHECK-SD-NEXT: mov x0, x19 ; CHECK-SD-NEXT: mov x1, x20 -; CHECK-SD-NEXT: ldr d10, [sp, #16] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr d10, [sp, #16] // 8-byte Reload ; CHECK-SD-NEXT: ldp x20, x19, [sp, #96] // 16-byte Folded Reload ; CHECK-SD-NEXT: csel x9, x26, x9, gt ; CHECK-SD-NEXT: csinv x8, x8, xzr, le @@ -3840,7 +3840,7 @@ define <8 x i100> @test_signed_v8f16_v8i100(<8 x half> %f) { ; CHECK-LABEL: test_signed_v8f16_v8i100: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #192 -; CHECK-NEXT: str d10, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str d10, [sp, #64] // 8-byte Spill ; CHECK-NEXT: stp d9, d8, [sp, #80] // 16-byte Folded Spill ; CHECK-NEXT: stp x29, x30, [sp, #96] // 16-byte Folded Spill ; CHECK-NEXT: stp x28, x27, [sp, #112] // 16-byte Folded Spill @@ -3864,17 +3864,17 @@ define <8 x i100> @test_signed_v8f16_v8i100(<8 x half> %f) { ; CHECK-NEXT: .cfi_offset b8, -104 ; CHECK-NEXT: .cfi_offset b9, -112 ; CHECK-NEXT: .cfi_offset b10, -128 -; CHECK-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-NEXT: ext v0.16b, v0.16b, v0.16b, #8 ; CHECK-NEXT: mov x19, x8 -; CHECK-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-NEXT: mov h0, v0.h[1] ; CHECK-NEXT: fcvt s8, h0 ; CHECK-NEXT: fmov s0, s8 ; CHECK-NEXT: bl __fixsfti ; CHECK-NEXT: movi v10.2s, #241, lsl #24 ; CHECK-NEXT: mov w8, #1895825407 // =0x70ffffff -; CHECK-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-NEXT: fmov s9, w8 ; CHECK-NEXT: mov x22, #-34359738368 // =0xfffffff800000000 ; CHECK-NEXT: mov x23, #34359738367 // =0x7ffffffff @@ -3888,13 +3888,13 @@ define <8 x i100> @test_signed_v8f16_v8i100(<8 x half> %f) { ; CHECK-NEXT: fcmp s8, s8 ; CHECK-NEXT: fcvt s8, h0 ; CHECK-NEXT: csel x8, xzr, x8, vs -; CHECK-NEXT: str x8, [sp, #72] // 8-byte Folded Spill +; CHECK-NEXT: str x8, [sp, #72] // 8-byte Spill ; CHECK-NEXT: csel x8, xzr, x9, vs ; CHECK-NEXT: fmov s0, s8 -; CHECK-NEXT: str x8, [sp, #24] // 8-byte Folded Spill +; CHECK-NEXT: str x8, [sp, #24] // 8-byte Spill ; CHECK-NEXT: bl __fixsfti ; CHECK-NEXT: fcmp s8, s10 -; CHECK-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-NEXT: csel x8, xzr, x0, lt ; CHECK-NEXT: csel x9, x22, x1, lt ; CHECK-NEXT: fcmp s8, s9 @@ -3908,7 +3908,7 @@ define <8 x i100> @test_signed_v8f16_v8i100(<8 x half> %f) { ; CHECK-NEXT: fmov s0, s8 ; CHECK-NEXT: bl __fixsfti ; CHECK-NEXT: fcmp s8, s10 -; CHECK-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-NEXT: mov h0, v0.h[2] ; CHECK-NEXT: csel x8, x22, x1, lt ; CHECK-NEXT: csel x9, xzr, x0, lt @@ -3919,11 +3919,11 @@ define <8 x i100> @test_signed_v8f16_v8i100(<8 x half> %f) { ; CHECK-NEXT: fcvt s8, h0 ; CHECK-NEXT: csel x26, xzr, x8, vs ; CHECK-NEXT: csel x8, xzr, x9, vs -; CHECK-NEXT: str x8, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x8, [sp, #32] // 8-byte Spill ; CHECK-NEXT: fmov s0, s8 ; CHECK-NEXT: bl __fixsfti ; CHECK-NEXT: fcmp s8, s10 -; CHECK-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-NEXT: mov h0, v0.h[1] ; CHECK-NEXT: csel x8, x22, x1, lt ; CHECK-NEXT: csel x9, xzr, x0, lt @@ -3934,11 +3934,11 @@ define <8 x i100> @test_signed_v8f16_v8i100(<8 x half> %f) { ; CHECK-NEXT: fcvt s8, h0 ; CHECK-NEXT: csel x27, xzr, x8, vs ; CHECK-NEXT: csel x8, xzr, x9, vs -; CHECK-NEXT: str x8, [sp] // 8-byte Folded Spill +; CHECK-NEXT: str x8, [sp] // 8-byte Spill ; CHECK-NEXT: fmov s0, s8 ; CHECK-NEXT: bl __fixsfti ; CHECK-NEXT: fcmp s8, s10 -; CHECK-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-NEXT: mov h0, v0.h[3] ; CHECK-NEXT: csel x8, x22, x1, lt ; CHECK-NEXT: csel x9, xzr, x0, lt @@ -3952,7 +3952,7 @@ define <8 x i100> @test_signed_v8f16_v8i100(<8 x half> %f) { ; CHECK-NEXT: fmov s0, s8 ; CHECK-NEXT: bl __fixsfti ; CHECK-NEXT: fcmp s8, s10 -; CHECK-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-NEXT: csel x8, xzr, x0, lt ; CHECK-NEXT: csel x9, x22, x1, lt ; CHECK-NEXT: fcmp s8, s9 @@ -3965,7 +3965,7 @@ define <8 x i100> @test_signed_v8f16_v8i100(<8 x half> %f) { ; CHECK-NEXT: fmov s0, s8 ; CHECK-NEXT: bl __fixsfti ; CHECK-NEXT: fcmp s8, s10 -; CHECK-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-NEXT: mov h0, v0.h[2] ; CHECK-NEXT: csel x8, x22, x1, lt ; CHECK-NEXT: csel x9, xzr, x0, lt @@ -3978,7 +3978,7 @@ define <8 x i100> @test_signed_v8f16_v8i100(<8 x half> %f) { ; CHECK-NEXT: csel x29, xzr, x9, vs ; CHECK-NEXT: fmov s0, s8 ; CHECK-NEXT: bl __fixsfti -; CHECK-NEXT: ldr x9, [sp] // 8-byte Folded Reload +; CHECK-NEXT: ldr x9, [sp] // 8-byte Reload ; CHECK-NEXT: extr x8, x24, x28, #28 ; CHECK-NEXT: fcmp s8, s10 ; CHECK-NEXT: bfi x25, x21, #36, #28 @@ -3990,7 +3990,7 @@ define <8 x i100> @test_signed_v8f16_v8i100(<8 x half> %f) { ; CHECK-NEXT: str x9, [x19, #16] ; CHECK-NEXT: csel x9, xzr, x0, lt ; CHECK-NEXT: fcmp s8, s9 -; CHECK-NEXT: ldr x10, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x10, [sp, #32] // 8-byte Reload ; CHECK-NEXT: stp x29, x25, [x19] ; CHECK-NEXT: stur x10, [x19, #50] ; CHECK-NEXT: lsr x10, x24, #28 @@ -4001,12 +4001,12 @@ define <8 x i100> @test_signed_v8f16_v8i100(<8 x half> %f) { ; CHECK-NEXT: ldp x14, x12, [sp, #8] // 16-byte Folded Reload ; CHECK-NEXT: strb w11, [x19, #24] ; CHECK-NEXT: csel x8, xzr, x8, vs -; CHECK-NEXT: ldr x13, [sp, #24] // 8-byte Folded Reload +; CHECK-NEXT: ldr x13, [sp, #24] // 8-byte Reload ; CHECK-NEXT: csel x9, xzr, x9, vs ; CHECK-NEXT: bfi x8, x28, #36, #28 ; CHECK-NEXT: extr x10, x14, x12, #28 ; CHECK-NEXT: bfi x27, x12, #36, #28 -; CHECK-NEXT: ldr x12, [sp, #72] // 8-byte Folded Reload +; CHECK-NEXT: ldr x12, [sp, #72] // 8-byte Reload ; CHECK-NEXT: bfi x26, x13, #36, #28 ; CHECK-NEXT: stur x9, [x19, #25] ; CHECK-NEXT: lsr x9, x14, #28 @@ -4020,7 +4020,7 @@ define <8 x i100> @test_signed_v8f16_v8i100(<8 x half> %f) { ; CHECK-NEXT: strb w9, [x19, #99] ; CHECK-NEXT: strb w8, [x19, #74] ; CHECK-NEXT: ldp x20, x19, [sp, #176] // 16-byte Folded Reload -; CHECK-NEXT: ldr d10, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr d10, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp x22, x21, [sp, #160] // 16-byte Folded Reload ; CHECK-NEXT: ldp x24, x23, [sp, #144] // 16-byte Folded Reload ; CHECK-NEXT: ldp x26, x25, [sp, #128] // 16-byte Folded Reload @@ -4037,7 +4037,7 @@ define <8 x i128> @test_signed_v8f16_v8i128(<8 x half> %f) { ; CHECK-SD-LABEL: test_signed_v8f16_v8i128: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #192 -; CHECK-SD-NEXT: str d10, [sp, #64] // 8-byte Folded Spill +; CHECK-SD-NEXT: str d10, [sp, #64] // 8-byte Spill ; CHECK-SD-NEXT: stp d9, d8, [sp, #80] // 16-byte Folded Spill ; CHECK-SD-NEXT: stp x29, x30, [sp, #96] // 16-byte Folded Spill ; CHECK-SD-NEXT: stp x28, x27, [sp, #112] // 16-byte Folded Spill @@ -4061,16 +4061,16 @@ define <8 x i128> @test_signed_v8f16_v8i128(<8 x half> %f) { ; CHECK-SD-NEXT: .cfi_offset b8, -104 ; CHECK-SD-NEXT: .cfi_offset b9, -112 ; CHECK-SD-NEXT: .cfi_offset b10, -128 -; CHECK-SD-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-SD-NEXT: ext v0.16b, v0.16b, v0.16b, #8 ; CHECK-SD-NEXT: mov x19, x8 ; CHECK-SD-NEXT: fcvt s8, h0 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fmov s0, s8 ; CHECK-SD-NEXT: bl __fixsfti ; CHECK-SD-NEXT: movi v9.2s, #255, lsl #24 ; CHECK-SD-NEXT: mov w8, #2130706431 // =0x7effffff -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: fmov s10, w8 ; CHECK-SD-NEXT: mov x22, #-9223372036854775808 // =0x8000000000000000 ; CHECK-SD-NEXT: mov x23, #9223372036854775807 // =0x7fffffffffffffff @@ -4084,13 +4084,13 @@ define <8 x i128> @test_signed_v8f16_v8i128(<8 x half> %f) { ; CHECK-SD-NEXT: fcmp s8, s8 ; CHECK-SD-NEXT: fcvt s8, h0 ; CHECK-SD-NEXT: csel x8, xzr, x8, vs -; CHECK-SD-NEXT: str x8, [sp, #72] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x8, [sp, #72] // 8-byte Spill ; CHECK-SD-NEXT: csel x8, xzr, x9, vs ; CHECK-SD-NEXT: fmov s0, s8 -; CHECK-SD-NEXT: str x8, [sp, #24] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x8, [sp, #24] // 8-byte Spill ; CHECK-SD-NEXT: bl __fixsfti ; CHECK-SD-NEXT: fcmp s8, s9 -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: csel x8, xzr, x0, lt ; CHECK-SD-NEXT: csel x9, x22, x1, lt @@ -4105,7 +4105,7 @@ define <8 x i128> @test_signed_v8f16_v8i128(<8 x half> %f) { ; CHECK-SD-NEXT: fmov s0, s8 ; CHECK-SD-NEXT: bl __fixsfti ; CHECK-SD-NEXT: fcmp s8, s9 -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] ; CHECK-SD-NEXT: csel x8, xzr, x0, lt ; CHECK-SD-NEXT: csel x9, x22, x1, lt @@ -4115,13 +4115,13 @@ define <8 x i128> @test_signed_v8f16_v8i128(<8 x half> %f) { ; CHECK-SD-NEXT: fcmp s8, s8 ; CHECK-SD-NEXT: fcvt s8, h0 ; CHECK-SD-NEXT: csel x8, xzr, x8, vs -; CHECK-SD-NEXT: str x8, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x8, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: csel x8, xzr, x9, vs ; CHECK-SD-NEXT: fmov s0, s8 -; CHECK-SD-NEXT: str x8, [sp] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x8, [sp] // 8-byte Spill ; CHECK-SD-NEXT: bl __fixsfti ; CHECK-SD-NEXT: fcmp s8, s9 -; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: csel x8, xzr, x0, lt ; CHECK-SD-NEXT: csel x9, x22, x1, lt ; CHECK-SD-NEXT: fcmp s8, s10 @@ -4134,7 +4134,7 @@ define <8 x i128> @test_signed_v8f16_v8i128(<8 x half> %f) { ; CHECK-SD-NEXT: fmov s0, s8 ; CHECK-SD-NEXT: bl __fixsfti ; CHECK-SD-NEXT: fcmp s8, s9 -; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[1] ; CHECK-SD-NEXT: csel x8, xzr, x0, lt ; CHECK-SD-NEXT: csel x9, x22, x1, lt @@ -4148,7 +4148,7 @@ define <8 x i128> @test_signed_v8f16_v8i128(<8 x half> %f) { ; CHECK-SD-NEXT: fmov s0, s8 ; CHECK-SD-NEXT: bl __fixsfti ; CHECK-SD-NEXT: fcmp s8, s9 -; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: csel x8, xzr, x0, lt ; CHECK-SD-NEXT: csel x9, x22, x1, lt @@ -4162,7 +4162,7 @@ define <8 x i128> @test_signed_v8f16_v8i128(<8 x half> %f) { ; CHECK-SD-NEXT: fmov s0, s8 ; CHECK-SD-NEXT: bl __fixsfti ; CHECK-SD-NEXT: fcmp s8, s9 -; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] ; CHECK-SD-NEXT: csel x8, xzr, x0, lt ; CHECK-SD-NEXT: csel x9, x22, x1, lt @@ -4189,20 +4189,20 @@ define <8 x i128> @test_signed_v8f16_v8i128(<8 x half> %f) { ; CHECK-SD-NEXT: csel x9, xzr, x9, vs ; CHECK-SD-NEXT: csel x8, xzr, x8, vs ; CHECK-SD-NEXT: stp x8, x9, [x19, #48] -; CHECK-SD-NEXT: ldr x8, [sp] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x8, [sp] // 8-byte Reload ; CHECK-SD-NEXT: str x8, [x19, #104] -; CHECK-SD-NEXT: ldr x8, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x8, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: str x8, [x19, #96] -; CHECK-SD-NEXT: ldr x8, [sp, #8] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x8, [sp, #8] // 8-byte Reload ; CHECK-SD-NEXT: str x8, [x19, #88] -; CHECK-SD-NEXT: ldr x8, [sp, #16] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x8, [sp, #16] // 8-byte Reload ; CHECK-SD-NEXT: str x8, [x19, #80] -; CHECK-SD-NEXT: ldr x8, [sp, #24] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x8, [sp, #24] // 8-byte Reload ; CHECK-SD-NEXT: str x8, [x19, #72] -; CHECK-SD-NEXT: ldr x8, [sp, #72] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x8, [sp, #72] // 8-byte Reload ; CHECK-SD-NEXT: str x8, [x19, #64] ; CHECK-SD-NEXT: ldp x20, x19, [sp, #176] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr d10, [sp, #64] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr d10, [sp, #64] // 8-byte Reload ; CHECK-SD-NEXT: ldp x22, x21, [sp, #160] // 16-byte Folded Reload ; CHECK-SD-NEXT: ldp x24, x23, [sp, #144] // 16-byte Folded Reload ; CHECK-SD-NEXT: ldp x26, x25, [sp, #128] // 16-byte Folded Reload @@ -5080,47 +5080,47 @@ define <2 x i64> @test_signed_v2f128_v2i64(<2 x fp128> %f) { ; CHECK-SD-NEXT: adrp x8, .LCPI86_0 ; CHECK-SD-NEXT: ldr q1, [x8, :lo12:.LCPI86_0] ; CHECK-SD-NEXT: mov v0.16b, v2.16b -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: bl __getf2 -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov w19, w0 ; CHECK-SD-NEXT: bl __fixtfdi ; CHECK-SD-NEXT: adrp x8, .LCPI86_1 -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: cmp w19, #0 ; CHECK-SD-NEXT: ldr q1, [x8, :lo12:.LCPI86_1] ; CHECK-SD-NEXT: mov x20, #-9223372036854775808 // =0x8000000000000000 ; CHECK-SD-NEXT: csel x19, x20, x0, mi -; CHECK-SD-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl __gttf2 -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov x21, #9223372036854775807 // =0x7fffffffffffffff ; CHECK-SD-NEXT: cmp w0, #0 ; CHECK-SD-NEXT: csel x19, x21, x19, gt ; CHECK-SD-NEXT: mov v1.16b, v0.16b ; CHECK-SD-NEXT: bl __unordtf2 ; CHECK-SD-NEXT: cmp w0, #0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: csel x8, xzr, x19, ne ; CHECK-SD-NEXT: fmov d0, x8 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: bl __getf2 -; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: mov w19, w0 ; CHECK-SD-NEXT: bl __fixtfdi -; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: cmp w19, #0 ; CHECK-SD-NEXT: csel x19, x20, x0, mi ; CHECK-SD-NEXT: bl __gttf2 -; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: cmp w0, #0 ; CHECK-SD-NEXT: csel x19, x21, x19, gt ; CHECK-SD-NEXT: mov v1.16b, v0.16b ; CHECK-SD-NEXT: bl __unordtf2 ; CHECK-SD-NEXT: cmp w0, #0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: csel x8, xzr, x19, ne ; CHECK-SD-NEXT: ldp x20, x19, [sp, #80] // 16-byte Folded Reload ; CHECK-SD-NEXT: fmov d0, x8 @@ -5143,13 +5143,13 @@ define <2 x i64> @test_signed_v2f128_v2i64(<2 x fp128> %f) { ; CHECK-GI-NEXT: .cfi_offset w23, -40 ; CHECK-GI-NEXT: .cfi_offset w30, -48 ; CHECK-GI-NEXT: adrp x8, .LCPI86_1 -; CHECK-GI-NEXT: str q1, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: ldr q2, [x8, :lo12:.LCPI86_1] -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: mov v1.16b, v2.16b -; CHECK-GI-NEXT: str q2, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q2, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: bl __gttf2 -; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: cmp w0, #0 ; CHECK-GI-NEXT: mov x20, #-4594234569871327232 // =0xc03e000000000000 ; CHECK-GI-NEXT: fmov x8, d0 @@ -5160,7 +5160,7 @@ define <2 x i64> @test_signed_v2f128_v2i64(<2 x fp128> %f) { ; CHECK-GI-NEXT: adrp x8, .LCPI86_0 ; CHECK-GI-NEXT: mov v0.d[1], x21 ; CHECK-GI-NEXT: ldr q1, [x8, :lo12:.LCPI86_0] -; CHECK-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-GI-NEXT: bl __lttf2 ; CHECK-GI-NEXT: mov x22, #-1125899906842624 // =0xfffc000000000000 ; CHECK-GI-NEXT: cmp w0, #0 @@ -5170,18 +5170,18 @@ define <2 x i64> @test_signed_v2f128_v2i64(<2 x fp128> %f) { ; CHECK-GI-NEXT: csel x8, x21, x23, mi ; CHECK-GI-NEXT: mov v0.d[1], x8 ; CHECK-GI-NEXT: bl __fixtfdi -; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: mov x19, x0 ; CHECK-GI-NEXT: mov v1.16b, v0.16b ; CHECK-GI-NEXT: bl __unordtf2 -; CHECK-GI-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #48] // 16-byte Reload +; CHECK-GI-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-GI-NEXT: cmp w0, #0 ; CHECK-GI-NEXT: csel x21, xzr, x19, ne ; CHECK-GI-NEXT: bl __gttf2 -; CHECK-GI-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-GI-NEXT: cmp w0, #0 -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-GI-NEXT: fmov x8, d0 ; CHECK-GI-NEXT: csel x19, x8, xzr, gt ; CHECK-GI-NEXT: mov x8, v0.d[1] @@ -5195,7 +5195,7 @@ define <2 x i64> @test_signed_v2f128_v2i64(<2 x fp128> %f) { ; CHECK-GI-NEXT: csel x8, x20, x23, mi ; CHECK-GI-NEXT: mov v0.d[1], x8 ; CHECK-GI-NEXT: bl __fixtfdi -; CHECK-GI-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-GI-NEXT: mov x19, x0 ; CHECK-GI-NEXT: mov v1.16b, v0.16b ; CHECK-GI-NEXT: bl __unordtf2 diff --git a/llvm/test/CodeGen/AArch64/fptoui-sat-scalar.ll b/llvm/test/CodeGen/AArch64/fptoui-sat-scalar.ll index 8abad4419663c..0ad09d416ce68 100644 --- a/llvm/test/CodeGen/AArch64/fptoui-sat-scalar.ll +++ b/llvm/test/CodeGen/AArch64/fptoui-sat-scalar.ll @@ -120,14 +120,14 @@ define i100 @test_unsigned_i100_f32(float %f) nounwind { ; CHECK-SD-LABEL: test_unsigned_i100_f32: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: str d8, [sp, #-16]! // 8-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-SD-NEXT: fmov s8, s0 ; CHECK-SD-NEXT: bl __fixunssfti ; CHECK-SD-NEXT: mov w8, #1904214015 // =0x717fffff ; CHECK-SD-NEXT: fcmp s8, #0.0 ; CHECK-SD-NEXT: mov x10, #68719476735 // =0xfffffffff ; CHECK-SD-NEXT: fmov s0, w8 -; CHECK-SD-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-SD-NEXT: csel x8, xzr, x0, lt ; CHECK-SD-NEXT: csel x9, xzr, x1, lt ; CHECK-SD-NEXT: fcmp s8, s0 @@ -139,14 +139,14 @@ define i100 @test_unsigned_i100_f32(float %f) nounwind { ; CHECK-GI-LABEL: test_unsigned_i100_f32: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: str d8, [sp, #-16]! // 8-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-GI-NEXT: fmov s8, s0 ; CHECK-GI-NEXT: bl __fixunssfti ; CHECK-GI-NEXT: mov w8, #1904214015 // =0x717fffff ; CHECK-GI-NEXT: fcmp s8, #0.0 ; CHECK-GI-NEXT: mov x10, #68719476735 // =0xfffffffff ; CHECK-GI-NEXT: fmov s0, w8 -; CHECK-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-GI-NEXT: csel x8, xzr, x0, lt ; CHECK-GI-NEXT: csel x9, xzr, x1, lt ; CHECK-GI-NEXT: fcmp s8, s0 @@ -162,12 +162,12 @@ define i128 @test_unsigned_i128_f32(float %f) nounwind { ; CHECK-SD-LABEL: test_unsigned_i128_f32: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: str d8, [sp, #-16]! // 8-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-SD-NEXT: fmov s8, s0 ; CHECK-SD-NEXT: bl __fixunssfti ; CHECK-SD-NEXT: mov w8, #2139095039 // =0x7f7fffff ; CHECK-SD-NEXT: fcmp s8, #0.0 -; CHECK-SD-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-SD-NEXT: fmov s0, w8 ; CHECK-SD-NEXT: csel x8, xzr, x1, lt ; CHECK-SD-NEXT: csel x9, xzr, x0, lt @@ -180,12 +180,12 @@ define i128 @test_unsigned_i128_f32(float %f) nounwind { ; CHECK-GI-LABEL: test_unsigned_i128_f32: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: str d8, [sp, #-16]! // 8-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-GI-NEXT: fmov s8, s0 ; CHECK-GI-NEXT: bl __fixunssfti ; CHECK-GI-NEXT: mov w8, #2139095039 // =0x7f7fffff ; CHECK-GI-NEXT: fcmp s8, #0.0 -; CHECK-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-GI-NEXT: fmov s0, w8 ; CHECK-GI-NEXT: csel x8, xzr, x0, lt ; CHECK-GI-NEXT: csel x9, xzr, x1, lt @@ -314,14 +314,14 @@ define i100 @test_unsigned_i100_f64(double %f) nounwind { ; CHECK-SD-LABEL: test_unsigned_i100_f64: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: str d8, [sp, #-16]! // 8-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-SD-NEXT: fmov d8, d0 ; CHECK-SD-NEXT: bl __fixunsdfti ; CHECK-SD-NEXT: mov x8, #5057542381537067007 // =0x462fffffffffffff ; CHECK-SD-NEXT: fcmp d8, #0.0 ; CHECK-SD-NEXT: mov x10, #68719476735 // =0xfffffffff ; CHECK-SD-NEXT: fmov d0, x8 -; CHECK-SD-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-SD-NEXT: csel x8, xzr, x0, lt ; CHECK-SD-NEXT: csel x9, xzr, x1, lt ; CHECK-SD-NEXT: fcmp d8, d0 @@ -333,14 +333,14 @@ define i100 @test_unsigned_i100_f64(double %f) nounwind { ; CHECK-GI-LABEL: test_unsigned_i100_f64: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: str d8, [sp, #-16]! // 8-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-GI-NEXT: fmov d8, d0 ; CHECK-GI-NEXT: bl __fixunsdfti ; CHECK-GI-NEXT: mov x8, #5057542381537067007 // =0x462fffffffffffff ; CHECK-GI-NEXT: fcmp d8, #0.0 ; CHECK-GI-NEXT: mov x10, #68719476735 // =0xfffffffff ; CHECK-GI-NEXT: fmov d0, x8 -; CHECK-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-GI-NEXT: csel x8, xzr, x0, lt ; CHECK-GI-NEXT: csel x9, xzr, x1, lt ; CHECK-GI-NEXT: fcmp d8, d0 @@ -356,12 +356,12 @@ define i128 @test_unsigned_i128_f64(double %f) nounwind { ; CHECK-SD-LABEL: test_unsigned_i128_f64: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: str d8, [sp, #-16]! // 8-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-SD-NEXT: fmov d8, d0 ; CHECK-SD-NEXT: bl __fixunsdfti ; CHECK-SD-NEXT: mov x8, #5183643171103440895 // =0x47efffffffffffff ; CHECK-SD-NEXT: fcmp d8, #0.0 -; CHECK-SD-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-SD-NEXT: fmov d0, x8 ; CHECK-SD-NEXT: csel x8, xzr, x1, lt ; CHECK-SD-NEXT: csel x9, xzr, x0, lt @@ -374,12 +374,12 @@ define i128 @test_unsigned_i128_f64(double %f) nounwind { ; CHECK-GI-LABEL: test_unsigned_i128_f64: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: str d8, [sp, #-16]! // 8-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-GI-NEXT: fmov d8, d0 ; CHECK-GI-NEXT: bl __fixunsdfti ; CHECK-GI-NEXT: mov x8, #5183643171103440895 // =0x47efffffffffffff ; CHECK-GI-NEXT: fcmp d8, #0.0 -; CHECK-GI-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-GI-NEXT: fmov d0, x8 ; CHECK-GI-NEXT: csel x8, xzr, x0, lt ; CHECK-GI-NEXT: csel x9, xzr, x1, lt @@ -686,14 +686,14 @@ define i100 @test_unsigned_i100_f16(half %f) nounwind { ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: str d8, [sp, #-16]! // 8-byte Folded Spill ; CHECK-SD-NEXT: fcvt s8, h0 -; CHECK-SD-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-SD-NEXT: fmov s0, s8 ; CHECK-SD-NEXT: bl __fixunssfti ; CHECK-SD-NEXT: mov w8, #1904214015 // =0x717fffff ; CHECK-SD-NEXT: fcmp s8, #0.0 ; CHECK-SD-NEXT: mov x10, #68719476735 // =0xfffffffff ; CHECK-SD-NEXT: fmov s0, w8 -; CHECK-SD-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-SD-NEXT: csel x8, xzr, x0, lt ; CHECK-SD-NEXT: csel x9, xzr, x1, lt ; CHECK-SD-NEXT: fcmp s8, s0 @@ -723,12 +723,12 @@ define i128 @test_unsigned_i128_f16(half %f) nounwind { ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: str d8, [sp, #-16]! // 8-byte Folded Spill ; CHECK-SD-NEXT: fcvt s8, h0 -; CHECK-SD-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-SD-NEXT: fmov s0, s8 ; CHECK-SD-NEXT: bl __fixunssfti ; CHECK-SD-NEXT: mov w8, #2139095039 // =0x7f7fffff ; CHECK-SD-NEXT: fcmp s8, #0.0 -; CHECK-SD-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-SD-NEXT: fmov s0, w8 ; CHECK-SD-NEXT: csel x8, xzr, x1, lt ; CHECK-SD-NEXT: csel x9, xzr, x0, lt @@ -763,14 +763,14 @@ define i32 @test_unsigned_f128_i32(fp128 %f) { ; CHECK-SD-NEXT: .cfi_offset w19, -8 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: adrp x8, .LCPI30_0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: ldr q1, [x8, :lo12:.LCPI30_0] ; CHECK-SD-NEXT: bl __getf2 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov w19, w0 ; CHECK-SD-NEXT: bl __fixunstfsi ; CHECK-SD-NEXT: adrp x8, .LCPI30_1 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: cmp w19, #0 ; CHECK-SD-NEXT: ldr q1, [x8, :lo12:.LCPI30_1] ; CHECK-SD-NEXT: csel w19, wzr, w0, mi @@ -784,17 +784,17 @@ define i32 @test_unsigned_f128_i32(fp128 %f) { ; CHECK-GI-LABEL: test_unsigned_f128_i32: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #48 -; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-GI-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 48 ; CHECK-GI-NEXT: .cfi_offset w19, -8 ; CHECK-GI-NEXT: .cfi_offset w20, -16 ; CHECK-GI-NEXT: .cfi_offset w30, -32 ; CHECK-GI-NEXT: adrp x8, .LCPI30_1 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: ldr q1, [x8, :lo12:.LCPI30_1] ; CHECK-GI-NEXT: bl __gttf2 -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: cmp w0, #0 ; CHECK-GI-NEXT: fmov x8, d0 ; CHECK-GI-NEXT: csel x19, x8, xzr, gt @@ -806,7 +806,7 @@ define i32 @test_unsigned_f128_i32(fp128 %f) { ; CHECK-GI-NEXT: ldr q1, [x8, :lo12:.LCPI30_0] ; CHECK-GI-NEXT: bl __lttf2 ; CHECK-GI-NEXT: cmp w0, #0 -; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: csel x8, x19, xzr, mi ; CHECK-GI-NEXT: mov v0.d[0], x8 ; CHECK-GI-NEXT: mov x8, #281474976579584 // =0xfffffffe0000 diff --git a/llvm/test/CodeGen/AArch64/fptoui-sat-vector.ll b/llvm/test/CodeGen/AArch64/fptoui-sat-vector.ll index efe0a1bedbc9e..864328855bf1e 100644 --- a/llvm/test/CodeGen/AArch64/fptoui-sat-vector.ll +++ b/llvm/test/CodeGen/AArch64/fptoui-sat-vector.ll @@ -453,14 +453,14 @@ define <1 x i32> @test_unsigned_v1f128_v1i32(<1 x fp128> %f) { ; CHECK-SD-NEXT: .cfi_offset w19, -8 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: adrp x8, .LCPI14_0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: ldr q1, [x8, :lo12:.LCPI14_0] ; CHECK-SD-NEXT: bl __getf2 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov w19, w0 ; CHECK-SD-NEXT: bl __fixunstfsi ; CHECK-SD-NEXT: adrp x8, .LCPI14_1 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: cmp w19, #0 ; CHECK-SD-NEXT: ldr q1, [x8, :lo12:.LCPI14_1] ; CHECK-SD-NEXT: csel w19, wzr, w0, mi @@ -475,17 +475,17 @@ define <1 x i32> @test_unsigned_v1f128_v1i32(<1 x fp128> %f) { ; CHECK-GI-LABEL: test_unsigned_v1f128_v1i32: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #48 -; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-GI-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 48 ; CHECK-GI-NEXT: .cfi_offset w19, -8 ; CHECK-GI-NEXT: .cfi_offset w20, -16 ; CHECK-GI-NEXT: .cfi_offset w30, -32 ; CHECK-GI-NEXT: adrp x8, .LCPI14_1 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: ldr q1, [x8, :lo12:.LCPI14_1] ; CHECK-GI-NEXT: bl __gttf2 -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: cmp w0, #0 ; CHECK-GI-NEXT: fmov x8, d0 ; CHECK-GI-NEXT: csel x19, x8, xzr, gt @@ -506,7 +506,7 @@ define <1 x i32> @test_unsigned_v1f128_v1i32(<1 x fp128> %f) { ; CHECK-GI-NEXT: bl __fixunstfsi ; CHECK-GI-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload ; CHECK-GI-NEXT: fmov s0, w0 -; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: add sp, sp, #48 ; CHECK-GI-NEXT: ret %x = call <1 x i32> @llvm.fptoui.sat.v1f128.v1i32(<1 x fp128> %f) @@ -517,7 +517,7 @@ define <2 x i32> @test_unsigned_v2f128_v2i32(<2 x fp128> %f) { ; CHECK-SD-LABEL: test_unsigned_v2f128_v2i32: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #96 -; CHECK-SD-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-SD-NEXT: stp x20, x19, [sp, #80] // 16-byte Folded Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 96 ; CHECK-SD-NEXT: .cfi_offset w19, -8 @@ -528,33 +528,33 @@ define <2 x i32> @test_unsigned_v2f128_v2i32(<2 x fp128> %f) { ; CHECK-SD-NEXT: adrp x8, .LCPI15_0 ; CHECK-SD-NEXT: ldr q1, [x8, :lo12:.LCPI15_0] ; CHECK-SD-NEXT: mov v0.16b, v2.16b -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: bl __getf2 -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov w19, w0 ; CHECK-SD-NEXT: bl __fixunstfsi ; CHECK-SD-NEXT: adrp x8, .LCPI15_1 -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: cmp w19, #0 ; CHECK-SD-NEXT: ldr q1, [x8, :lo12:.LCPI15_1] ; CHECK-SD-NEXT: csel w19, wzr, w0, mi -; CHECK-SD-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl __gttf2 -; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: cmp w0, #0 ; CHECK-SD-NEXT: csinv w20, w19, wzr, le ; CHECK-SD-NEXT: bl __getf2 -; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: mov w19, w0 ; CHECK-SD-NEXT: bl __fixunstfsi -; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: cmp w19, #0 ; CHECK-SD-NEXT: csel w19, wzr, w0, mi ; CHECK-SD-NEXT: bl __gttf2 ; CHECK-SD-NEXT: cmp w0, #0 -; CHECK-SD-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-SD-NEXT: csinv w8, w19, wzr, le ; CHECK-SD-NEXT: fmov s0, w8 ; CHECK-SD-NEXT: mov v0.s[1], w20 @@ -566,7 +566,7 @@ define <2 x i32> @test_unsigned_v2f128_v2i32(<2 x fp128> %f) { ; CHECK-GI-LABEL: test_unsigned_v2f128_v2i32: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #96 -; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: stp x22, x21, [sp, #64] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp x20, x19, [sp, #80] // 16-byte Folded Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 96 @@ -576,12 +576,12 @@ define <2 x i32> @test_unsigned_v2f128_v2i32(<2 x fp128> %f) { ; CHECK-GI-NEXT: .cfi_offset w22, -32 ; CHECK-GI-NEXT: .cfi_offset w30, -48 ; CHECK-GI-NEXT: adrp x8, .LCPI15_1 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: ldr q2, [x8, :lo12:.LCPI15_1] ; CHECK-GI-NEXT: stp q2, q1, [sp, #16] // 32-byte Folded Spill ; CHECK-GI-NEXT: mov v1.16b, v2.16b ; CHECK-GI-NEXT: bl __gttf2 -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: cmp w0, #0 ; CHECK-GI-NEXT: fmov x8, d0 ; CHECK-GI-NEXT: csel x19, x8, xzr, gt @@ -591,7 +591,7 @@ define <2 x i32> @test_unsigned_v2f128_v2i32(<2 x fp128> %f) { ; CHECK-GI-NEXT: adrp x8, .LCPI15_0 ; CHECK-GI-NEXT: mov v0.d[1], x20 ; CHECK-GI-NEXT: ldr q1, [x8, :lo12:.LCPI15_0] -; CHECK-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-GI-NEXT: bl __lttf2 ; CHECK-GI-NEXT: cmp w0, #0 ; CHECK-GI-NEXT: mov x21, #281474976579584 // =0xfffffffe0000 @@ -604,9 +604,9 @@ define <2 x i32> @test_unsigned_v2f128_v2i32(<2 x fp128> %f) { ; CHECK-GI-NEXT: ldp q1, q0, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: mov w19, w0 ; CHECK-GI-NEXT: bl __gttf2 -; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: cmp w0, #0 -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-GI-NEXT: fmov x8, d0 ; CHECK-GI-NEXT: csel x20, x8, xzr, gt ; CHECK-GI-NEXT: mov x8, v0.d[1] @@ -623,7 +623,7 @@ define <2 x i32> @test_unsigned_v2f128_v2i32(<2 x fp128> %f) { ; CHECK-GI-NEXT: fmov s0, w19 ; CHECK-GI-NEXT: ldp x20, x19, [sp, #80] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp x22, x21, [sp, #64] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: mov v0.s[1], w0 ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-GI-NEXT: add sp, sp, #96 @@ -647,41 +647,41 @@ define <3 x i32> @test_unsigned_v3f128_v3i32(<3 x fp128> %f) { ; CHECK-SD-NEXT: adrp x8, .LCPI16_0 ; CHECK-SD-NEXT: mov v0.16b, v2.16b ; CHECK-SD-NEXT: ldr q1, [x8, :lo12:.LCPI16_0] -; CHECK-SD-NEXT: str q2, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q2, [sp] // 16-byte Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: bl __getf2 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov w19, w0 ; CHECK-SD-NEXT: bl __fixunstfsi ; CHECK-SD-NEXT: adrp x8, .LCPI16_1 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: cmp w19, #0 ; CHECK-SD-NEXT: ldr q1, [x8, :lo12:.LCPI16_1] ; CHECK-SD-NEXT: csel w19, wzr, w0, mi -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: bl __gttf2 ; CHECK-SD-NEXT: ldp q1, q0, [sp, #32] // 32-byte Folded Reload ; CHECK-SD-NEXT: cmp w0, #0 ; CHECK-SD-NEXT: csinv w20, w19, wzr, le ; CHECK-SD-NEXT: bl __getf2 -; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: mov w19, w0 ; CHECK-SD-NEXT: bl __fixunstfsi -; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: cmp w19, #0 ; CHECK-SD-NEXT: csel w19, wzr, w0, mi ; CHECK-SD-NEXT: bl __gttf2 -; CHECK-SD-NEXT: ldr q0, [sp, #64] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #64] // 16-byte Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: cmp w0, #0 ; CHECK-SD-NEXT: csinv w21, w19, wzr, le ; CHECK-SD-NEXT: bl __getf2 -; CHECK-SD-NEXT: ldr q0, [sp, #64] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #64] // 16-byte Reload ; CHECK-SD-NEXT: mov w19, w0 ; CHECK-SD-NEXT: bl __fixunstfsi -; CHECK-SD-NEXT: ldr q0, [sp, #64] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #64] // 16-byte Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: cmp w19, #0 ; CHECK-SD-NEXT: csel w19, wzr, w0, mi ; CHECK-SD-NEXT: bl __gttf2 @@ -713,7 +713,7 @@ define <3 x i32> @test_unsigned_v3f128_v3i32(<3 x fp128> %f) { ; CHECK-GI-NEXT: ldr q1, [x8, :lo12:.LCPI16_1] ; CHECK-GI-NEXT: stp q1, q2, [sp, #32] // 32-byte Folded Spill ; CHECK-GI-NEXT: bl __gttf2 -; CHECK-GI-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-GI-NEXT: cmp w0, #0 ; CHECK-GI-NEXT: fmov x8, d0 ; CHECK-GI-NEXT: csel x19, x8, xzr, gt @@ -723,7 +723,7 @@ define <3 x i32> @test_unsigned_v3f128_v3i32(<3 x fp128> %f) { ; CHECK-GI-NEXT: adrp x8, .LCPI16_0 ; CHECK-GI-NEXT: mov v0.d[1], x20 ; CHECK-GI-NEXT: ldr q1, [x8, :lo12:.LCPI16_0] -; CHECK-GI-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: bl __lttf2 ; CHECK-GI-NEXT: cmp w0, #0 ; CHECK-GI-NEXT: mov x21, #281474976579584 // =0xfffffffe0000 @@ -733,8 +733,8 @@ define <3 x i32> @test_unsigned_v3f128_v3i32(<3 x fp128> %f) { ; CHECK-GI-NEXT: csel x8, x20, x21, mi ; CHECK-GI-NEXT: mov v0.d[1], x8 ; CHECK-GI-NEXT: bl __fixunstfsi -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-GI-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: mov w19, w0 ; CHECK-GI-NEXT: bl __gttf2 ; CHECK-GI-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload @@ -755,9 +755,9 @@ define <3 x i32> @test_unsigned_v3f128_v3i32(<3 x fp128> %f) { ; CHECK-GI-NEXT: ldp q1, q0, [sp, #32] // 32-byte Folded Reload ; CHECK-GI-NEXT: mov w20, w0 ; CHECK-GI-NEXT: bl __gttf2 -; CHECK-GI-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-GI-NEXT: cmp w0, #0 -; CHECK-GI-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-GI-NEXT: fmov x8, d0 ; CHECK-GI-NEXT: csel x22, x8, xzr, gt ; CHECK-GI-NEXT: mov x8, v0.d[1] @@ -787,7 +787,7 @@ define <4 x i32> @test_unsigned_v4f128_v4i32(<4 x fp128> %f) { ; CHECK-SD-LABEL: test_unsigned_v4f128_v4i32: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #128 -; CHECK-SD-NEXT: str x30, [sp, #96] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #96] // 8-byte Spill ; CHECK-SD-NEXT: stp x20, x19, [sp, #112] // 16-byte Folded Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 128 ; CHECK-SD-NEXT: .cfi_offset w19, -8 @@ -796,44 +796,44 @@ define <4 x i32> @test_unsigned_v4f128_v4i32(<4 x fp128> %f) { ; CHECK-SD-NEXT: stp q0, q2, [sp, #16] // 32-byte Folded Spill ; CHECK-SD-NEXT: mov v2.16b, v1.16b ; CHECK-SD-NEXT: adrp x8, .LCPI17_0 -; CHECK-SD-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-SD-NEXT: ldr q1, [x8, :lo12:.LCPI17_0] -; CHECK-SD-NEXT: str q3, [sp, #80] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q3, [sp, #80] // 16-byte Spill ; CHECK-SD-NEXT: mov v0.16b, v2.16b -; CHECK-SD-NEXT: str q1, [sp, #64] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #64] // 16-byte Spill ; CHECK-SD-NEXT: bl __getf2 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov w19, w0 ; CHECK-SD-NEXT: bl __fixunstfsi ; CHECK-SD-NEXT: adrp x8, .LCPI17_1 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: cmp w19, #0 ; CHECK-SD-NEXT: ldr q1, [x8, :lo12:.LCPI17_1] ; CHECK-SD-NEXT: csel w19, wzr, w0, mi -; CHECK-SD-NEXT: str q1, [sp, #48] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #48] // 16-byte Spill ; CHECK-SD-NEXT: bl __gttf2 -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload +; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-SD-NEXT: cmp w0, #0 ; CHECK-SD-NEXT: csinv w20, w19, wzr, le ; CHECK-SD-NEXT: bl __getf2 -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov w19, w0 ; CHECK-SD-NEXT: bl __fixunstfsi -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload +; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: cmp w19, #0 ; CHECK-SD-NEXT: csel w19, wzr, w0, mi ; CHECK-SD-NEXT: bl __gttf2 ; CHECK-SD-NEXT: cmp w0, #0 -; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-SD-NEXT: csinv w8, w19, wzr, le ; CHECK-SD-NEXT: fmov s0, w8 ; CHECK-SD-NEXT: mov v0.s[1], w20 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: bl __getf2 -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov w19, w0 ; CHECK-SD-NEXT: bl __fixunstfsi ; CHECK-SD-NEXT: ldp q0, q1, [sp, #32] // 32-byte Folded Reload @@ -841,23 +841,23 @@ define <4 x i32> @test_unsigned_v4f128_v4i32(<4 x fp128> %f) { ; CHECK-SD-NEXT: csel w19, wzr, w0, mi ; CHECK-SD-NEXT: bl __gttf2 ; CHECK-SD-NEXT: cmp w0, #0 -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: csinv w8, w19, wzr, le ; CHECK-SD-NEXT: mov v0.s[2], w8 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: ldp q1, q0, [sp, #64] // 32-byte Folded Reload ; CHECK-SD-NEXT: bl __getf2 -; CHECK-SD-NEXT: ldr q0, [sp, #80] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #80] // 16-byte Reload ; CHECK-SD-NEXT: mov w19, w0 ; CHECK-SD-NEXT: bl __fixunstfsi -; CHECK-SD-NEXT: ldr q0, [sp, #80] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #80] // 16-byte Reload +; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: cmp w19, #0 ; CHECK-SD-NEXT: csel w19, wzr, w0, mi ; CHECK-SD-NEXT: bl __gttf2 ; CHECK-SD-NEXT: cmp w0, #0 -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #96] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #96] // 8-byte Reload ; CHECK-SD-NEXT: csinv w8, w19, wzr, le ; CHECK-SD-NEXT: ldp x20, x19, [sp, #112] // 16-byte Folded Reload ; CHECK-SD-NEXT: mov v0.s[3], w8 @@ -867,7 +867,7 @@ define <4 x i32> @test_unsigned_v4f128_v4i32(<4 x fp128> %f) { ; CHECK-GI-LABEL: test_unsigned_v4f128_v4i32: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #144 -; CHECK-GI-NEXT: str x30, [sp, #80] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #80] // 8-byte Spill ; CHECK-GI-NEXT: stp x24, x23, [sp, #96] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp x22, x21, [sp, #112] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp x20, x19, [sp, #128] // 16-byte Folded Spill @@ -882,11 +882,11 @@ define <4 x i32> @test_unsigned_v4f128_v4i32(<4 x fp128> %f) { ; CHECK-GI-NEXT: adrp x8, .LCPI17_1 ; CHECK-GI-NEXT: stp q1, q2, [sp] // 32-byte Folded Spill ; CHECK-GI-NEXT: ldr q1, [x8, :lo12:.LCPI17_1] -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill -; CHECK-GI-NEXT: str q3, [sp, #32] // 16-byte Folded Spill -; CHECK-GI-NEXT: str q1, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill +; CHECK-GI-NEXT: str q3, [sp, #32] // 16-byte Spill +; CHECK-GI-NEXT: str q1, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: bl __gttf2 -; CHECK-GI-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-GI-NEXT: cmp w0, #0 ; CHECK-GI-NEXT: fmov x8, d0 ; CHECK-GI-NEXT: csel x19, x8, xzr, gt @@ -896,7 +896,7 @@ define <4 x i32> @test_unsigned_v4f128_v4i32(<4 x fp128> %f) { ; CHECK-GI-NEXT: adrp x8, .LCPI17_0 ; CHECK-GI-NEXT: mov v0.d[1], x20 ; CHECK-GI-NEXT: ldr q1, [x8, :lo12:.LCPI17_0] -; CHECK-GI-NEXT: str q1, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: bl __lttf2 ; CHECK-GI-NEXT: cmp w0, #0 ; CHECK-GI-NEXT: mov x22, #281474976579584 // =0xfffffffe0000 @@ -906,13 +906,13 @@ define <4 x i32> @test_unsigned_v4f128_v4i32(<4 x fp128> %f) { ; CHECK-GI-NEXT: csel x8, x20, x22, mi ; CHECK-GI-NEXT: mov v0.d[1], x8 ; CHECK-GI-NEXT: bl __fixunstfsi -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-GI-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-GI-NEXT: mov w19, w0 ; CHECK-GI-NEXT: bl __gttf2 -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: cmp w0, #0 -; CHECK-GI-NEXT: ldr q1, [sp, #48] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #48] // 16-byte Reload ; CHECK-GI-NEXT: fmov x8, d0 ; CHECK-GI-NEXT: csel x20, x8, xzr, gt ; CHECK-GI-NEXT: mov x8, v0.d[1] @@ -926,13 +926,13 @@ define <4 x i32> @test_unsigned_v4f128_v4i32(<4 x fp128> %f) { ; CHECK-GI-NEXT: csel x8, x21, x22, mi ; CHECK-GI-NEXT: mov v0.d[1], x8 ; CHECK-GI-NEXT: bl __fixunstfsi -; CHECK-GI-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #16] // 16-byte Reload +; CHECK-GI-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-GI-NEXT: mov w20, w0 ; CHECK-GI-NEXT: bl __gttf2 -; CHECK-GI-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-GI-NEXT: cmp w0, #0 -; CHECK-GI-NEXT: ldr q1, [sp, #48] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #48] // 16-byte Reload ; CHECK-GI-NEXT: fmov x8, d0 ; CHECK-GI-NEXT: csel x21, x8, xzr, gt ; CHECK-GI-NEXT: mov x8, v0.d[1] @@ -946,8 +946,8 @@ define <4 x i32> @test_unsigned_v4f128_v4i32(<4 x fp128> %f) { ; CHECK-GI-NEXT: csel x8, x23, x22, mi ; CHECK-GI-NEXT: mov v0.d[1], x8 ; CHECK-GI-NEXT: bl __fixunstfsi -; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Reload +; CHECK-GI-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-GI-NEXT: mov w21, w0 ; CHECK-GI-NEXT: bl __gttf2 ; CHECK-GI-NEXT: ldp q0, q1, [sp, #32] // 32-byte Folded Reload @@ -967,7 +967,7 @@ define <4 x i32> @test_unsigned_v4f128_v4i32(<4 x fp128> %f) { ; CHECK-GI-NEXT: bl __fixunstfsi ; CHECK-GI-NEXT: fmov s0, w19 ; CHECK-GI-NEXT: ldp x24, x23, [sp, #96] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #80] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #80] // 8-byte Reload ; CHECK-GI-NEXT: mov v0.s[1], w20 ; CHECK-GI-NEXT: ldp x20, x19, [sp, #128] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v0.s[2], w21 @@ -1312,10 +1312,10 @@ define <2 x i100> @test_unsigned_v2f32_v2i100(<2 x float> %f) { ; CHECK-SD-NEXT: .cfi_offset b8, -40 ; CHECK-SD-NEXT: .cfi_offset b9, -48 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl __fixunssfti -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov w8, #1904214015 // =0x717fffff ; CHECK-SD-NEXT: mov x21, #68719476735 // =0xfffffffff ; CHECK-SD-NEXT: fmov s9, w8 @@ -1356,11 +1356,11 @@ define <2 x i100> @test_unsigned_v2f32_v2i100(<2 x float> %f) { ; CHECK-GI-NEXT: .cfi_offset b8, -40 ; CHECK-GI-NEXT: .cfi_offset b9, -48 ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: mov s8, v0.s[1] ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl __fixunssfti -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov w8, #1904214015 // =0x717fffff ; CHECK-GI-NEXT: mov x21, #68719476735 // =0xfffffffff ; CHECK-GI-NEXT: fmov s9, w8 @@ -1394,7 +1394,7 @@ define <2 x i128> @test_unsigned_v2f32_v2i128(<2 x float> %f) { ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #64 ; CHECK-SD-NEXT: stp d9, d8, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: stp x20, x19, [sp, #48] // 16-byte Folded Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w19, -8 @@ -1403,10 +1403,10 @@ define <2 x i128> @test_unsigned_v2f32_v2i128(<2 x float> %f) { ; CHECK-SD-NEXT: .cfi_offset b8, -40 ; CHECK-SD-NEXT: .cfi_offset b9, -48 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl __fixunssfti -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov w8, #2139095039 // =0x7f7fffff ; CHECK-SD-NEXT: fmov s9, w8 ; CHECK-SD-NEXT: mov s8, v0.s[1] @@ -1419,7 +1419,7 @@ define <2 x i128> @test_unsigned_v2f32_v2i128(<2 x float> %f) { ; CHECK-SD-NEXT: csinv x20, x8, xzr, le ; CHECK-SD-NEXT: bl __fixunssfti ; CHECK-SD-NEXT: fcmp s8, #0.0 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: csel x8, xzr, x1, lt ; CHECK-SD-NEXT: csel x9, xzr, x0, lt ; CHECK-SD-NEXT: fcmp s8, s9 @@ -1436,7 +1436,7 @@ define <2 x i128> @test_unsigned_v2f32_v2i128(<2 x float> %f) { ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #64 ; CHECK-GI-NEXT: stp d9, d8, [sp, #16] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-GI-NEXT: stp x20, x19, [sp, #48] // 16-byte Folded Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 64 ; CHECK-GI-NEXT: .cfi_offset w19, -8 @@ -1445,11 +1445,11 @@ define <2 x i128> @test_unsigned_v2f32_v2i128(<2 x float> %f) { ; CHECK-GI-NEXT: .cfi_offset b8, -40 ; CHECK-GI-NEXT: .cfi_offset b9, -48 ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: mov s8, v0.s[1] ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl __fixunssfti -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov w8, #2139095039 // =0x7f7fffff ; CHECK-GI-NEXT: fmov s9, w8 ; CHECK-GI-NEXT: fcmp s0, #0.0 @@ -1461,7 +1461,7 @@ define <2 x i128> @test_unsigned_v2f32_v2i128(<2 x float> %f) { ; CHECK-GI-NEXT: csinv x20, x9, xzr, le ; CHECK-GI-NEXT: bl __fixunssfti ; CHECK-GI-NEXT: fcmp s8, #0.0 -; CHECK-GI-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-GI-NEXT: csel x8, xzr, x0, lt ; CHECK-GI-NEXT: csel x9, xzr, x1, lt ; CHECK-GI-NEXT: fcmp s8, s9 @@ -1621,10 +1621,10 @@ define <4 x i100> @test_unsigned_v4f32_v4i100(<4 x float> %f) { ; CHECK-SD-NEXT: .cfi_offset w30, -64 ; CHECK-SD-NEXT: .cfi_offset b8, -72 ; CHECK-SD-NEXT: .cfi_offset b9, -80 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl __fixunssfti -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov w8, #1904214015 // =0x717fffff ; CHECK-SD-NEXT: mov x25, #68719476735 // =0xfffffffff ; CHECK-SD-NEXT: fmov s9, w8 @@ -1638,17 +1638,17 @@ define <4 x i100> @test_unsigned_v4f32_v4i100(<4 x float> %f) { ; CHECK-SD-NEXT: csinv x20, x8, xzr, le ; CHECK-SD-NEXT: bl __fixunssfti ; CHECK-SD-NEXT: fcmp s8, #0.0 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: ext v0.16b, v0.16b, v0.16b, #8 ; CHECK-SD-NEXT: csel x8, xzr, x0, lt ; CHECK-SD-NEXT: csel x9, xzr, x1, lt ; CHECK-SD-NEXT: fcmp s8, s9 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: csel x21, x25, x9, gt ; CHECK-SD-NEXT: csinv x22, x8, xzr, le ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl __fixunssfti -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov s8, v0.s[1] ; CHECK-SD-NEXT: fcmp s0, #0.0 ; CHECK-SD-NEXT: csel x8, xzr, x0, lt @@ -1700,13 +1700,13 @@ define <4 x i100> @test_unsigned_v4f32_v4i100(<4 x float> %f) { ; CHECK-GI-NEXT: .cfi_offset b9, -80 ; CHECK-GI-NEXT: .cfi_offset b10, -88 ; CHECK-GI-NEXT: .cfi_offset b11, -96 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: mov s8, v0.s[1] ; CHECK-GI-NEXT: mov s9, v0.s[2] ; CHECK-GI-NEXT: mov s10, v0.s[3] ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl __fixunssfti -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov w8, #1904214015 // =0x717fffff ; CHECK-GI-NEXT: mov x25, #68719476735 // =0xfffffffff ; CHECK-GI-NEXT: fmov s11, w8 @@ -1763,7 +1763,7 @@ define <4 x i128> @test_unsigned_v4f32_v4i128(<4 x float> %f) { ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #96 ; CHECK-SD-NEXT: stp d9, d8, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: stp x24, x23, [sp, #48] // 16-byte Folded Spill ; CHECK-SD-NEXT: stp x22, x21, [sp, #64] // 16-byte Folded Spill ; CHECK-SD-NEXT: stp x20, x19, [sp, #80] // 16-byte Folded Spill @@ -1777,10 +1777,10 @@ define <4 x i128> @test_unsigned_v4f32_v4i128(<4 x float> %f) { ; CHECK-SD-NEXT: .cfi_offset w30, -64 ; CHECK-SD-NEXT: .cfi_offset b8, -72 ; CHECK-SD-NEXT: .cfi_offset b9, -80 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl __fixunssfti -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov w8, #2139095039 // =0x7f7fffff ; CHECK-SD-NEXT: fmov s9, w8 ; CHECK-SD-NEXT: mov s8, v0.s[1] @@ -1793,17 +1793,17 @@ define <4 x i128> @test_unsigned_v4f32_v4i128(<4 x float> %f) { ; CHECK-SD-NEXT: csinv x20, x8, xzr, le ; CHECK-SD-NEXT: bl __fixunssfti ; CHECK-SD-NEXT: fcmp s8, #0.0 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: ext v0.16b, v0.16b, v0.16b, #8 ; CHECK-SD-NEXT: csel x8, xzr, x1, lt ; CHECK-SD-NEXT: csel x9, xzr, x0, lt ; CHECK-SD-NEXT: fcmp s8, s9 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: csinv x21, x9, xzr, le ; CHECK-SD-NEXT: csinv x22, x8, xzr, le ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl __fixunssfti -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov s8, v0.s[1] ; CHECK-SD-NEXT: fcmp s0, #0.0 ; CHECK-SD-NEXT: csel x8, xzr, x1, lt @@ -1818,7 +1818,7 @@ define <4 x i128> @test_unsigned_v4f32_v4i128(<4 x float> %f) { ; CHECK-SD-NEXT: mov x3, x22 ; CHECK-SD-NEXT: mov x4, x23 ; CHECK-SD-NEXT: mov x5, x24 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: ldp x22, x21, [sp, #64] // 16-byte Folded Reload ; CHECK-SD-NEXT: csel x8, xzr, x1, lt ; CHECK-SD-NEXT: csel x9, xzr, x0, lt @@ -1838,7 +1838,7 @@ define <4 x i128> @test_unsigned_v4f32_v4i128(<4 x float> %f) { ; CHECK-GI-NEXT: sub sp, sp, #112 ; CHECK-GI-NEXT: stp d11, d10, [sp, #16] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #32] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: stp x24, x23, [sp, #64] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp x22, x21, [sp, #80] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp x20, x19, [sp, #96] // 16-byte Folded Spill @@ -1854,13 +1854,13 @@ define <4 x i128> @test_unsigned_v4f32_v4i128(<4 x float> %f) { ; CHECK-GI-NEXT: .cfi_offset b9, -80 ; CHECK-GI-NEXT: .cfi_offset b10, -88 ; CHECK-GI-NEXT: .cfi_offset b11, -96 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: mov s8, v0.s[1] ; CHECK-GI-NEXT: mov s9, v0.s[2] ; CHECK-GI-NEXT: mov s10, v0.s[3] ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl __fixunssfti -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov w8, #2139095039 // =0x7f7fffff ; CHECK-GI-NEXT: fmov s11, w8 ; CHECK-GI-NEXT: fcmp s0, #0.0 @@ -1892,7 +1892,7 @@ define <4 x i128> @test_unsigned_v4f32_v4i128(<4 x float> %f) { ; CHECK-GI-NEXT: mov x3, x22 ; CHECK-GI-NEXT: mov x4, x23 ; CHECK-GI-NEXT: mov x5, x24 -; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: ldp x22, x21, [sp, #80] // 16-byte Folded Reload ; CHECK-GI-NEXT: csel x8, xzr, x0, lt ; CHECK-GI-NEXT: csel x9, xzr, x1, lt @@ -2140,10 +2140,10 @@ define <2 x i100> @test_unsigned_v2f64_v2i100(<2 x double> %f) { ; CHECK-SD-NEXT: .cfi_offset w30, -32 ; CHECK-SD-NEXT: .cfi_offset b8, -40 ; CHECK-SD-NEXT: .cfi_offset b9, -48 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: bl __fixunsdfti -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov x8, #5057542381537067007 // =0x462fffffffffffff ; CHECK-SD-NEXT: mov x21, #68719476735 // =0xfffffffff ; CHECK-SD-NEXT: fmov d9, x8 @@ -2183,11 +2183,11 @@ define <2 x i100> @test_unsigned_v2f64_v2i100(<2 x double> %f) { ; CHECK-GI-NEXT: .cfi_offset w30, -32 ; CHECK-GI-NEXT: .cfi_offset b8, -40 ; CHECK-GI-NEXT: .cfi_offset b9, -48 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: mov d8, v0.d[1] ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-GI-NEXT: bl __fixunsdfti -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov x8, #5057542381537067007 // =0x462fffffffffffff ; CHECK-GI-NEXT: mov x21, #68719476735 // =0xfffffffff ; CHECK-GI-NEXT: fmov d9, x8 @@ -2221,7 +2221,7 @@ define <2 x i128> @test_unsigned_v2f64_v2i128(<2 x double> %f) { ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #64 ; CHECK-SD-NEXT: stp d9, d8, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: stp x20, x19, [sp, #48] // 16-byte Folded Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w19, -8 @@ -2229,10 +2229,10 @@ define <2 x i128> @test_unsigned_v2f64_v2i128(<2 x double> %f) { ; CHECK-SD-NEXT: .cfi_offset w30, -32 ; CHECK-SD-NEXT: .cfi_offset b8, -40 ; CHECK-SD-NEXT: .cfi_offset b9, -48 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: bl __fixunsdfti -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov x8, #5183643171103440895 // =0x47efffffffffffff ; CHECK-SD-NEXT: fmov d9, x8 ; CHECK-SD-NEXT: mov d8, v0.d[1] @@ -2245,7 +2245,7 @@ define <2 x i128> @test_unsigned_v2f64_v2i128(<2 x double> %f) { ; CHECK-SD-NEXT: csinv x20, x8, xzr, le ; CHECK-SD-NEXT: bl __fixunsdfti ; CHECK-SD-NEXT: fcmp d8, #0.0 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: csel x8, xzr, x1, lt ; CHECK-SD-NEXT: csel x9, xzr, x0, lt ; CHECK-SD-NEXT: fcmp d8, d9 @@ -2262,7 +2262,7 @@ define <2 x i128> @test_unsigned_v2f64_v2i128(<2 x double> %f) { ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #64 ; CHECK-GI-NEXT: stp d9, d8, [sp, #16] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-GI-NEXT: stp x20, x19, [sp, #48] // 16-byte Folded Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 64 ; CHECK-GI-NEXT: .cfi_offset w19, -8 @@ -2270,11 +2270,11 @@ define <2 x i128> @test_unsigned_v2f64_v2i128(<2 x double> %f) { ; CHECK-GI-NEXT: .cfi_offset w30, -32 ; CHECK-GI-NEXT: .cfi_offset b8, -40 ; CHECK-GI-NEXT: .cfi_offset b9, -48 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: mov d8, v0.d[1] ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-GI-NEXT: bl __fixunsdfti -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov x8, #5183643171103440895 // =0x47efffffffffffff ; CHECK-GI-NEXT: fmov d9, x8 ; CHECK-GI-NEXT: fcmp d0, #0.0 @@ -2286,7 +2286,7 @@ define <2 x i128> @test_unsigned_v2f64_v2i128(<2 x double> %f) { ; CHECK-GI-NEXT: csinv x20, x9, xzr, le ; CHECK-GI-NEXT: bl __fixunsdfti ; CHECK-GI-NEXT: fcmp d8, #0.0 -; CHECK-GI-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-GI-NEXT: csel x8, xzr, x0, lt ; CHECK-GI-NEXT: csel x9, xzr, x1, lt ; CHECK-GI-NEXT: fcmp d8, d9 @@ -2551,11 +2551,11 @@ define <4 x i100> @test_unsigned_v4f16_v4i100(<4 x half> %f) { ; CHECK-SD-NEXT: .cfi_offset b9, -80 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-SD-NEXT: mov h1, v0.h[1] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s8, h1 ; CHECK-SD-NEXT: fmov s0, s8 ; CHECK-SD-NEXT: bl __fixunssfti -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov w8, #1904214015 // =0x717fffff ; CHECK-SD-NEXT: fcmp s8, #0.0 ; CHECK-SD-NEXT: fmov s9, w8 @@ -2570,7 +2570,7 @@ define <4 x i100> @test_unsigned_v4f16_v4i100(<4 x half> %f) { ; CHECK-SD-NEXT: fmov s0, s8 ; CHECK-SD-NEXT: bl __fixunssfti ; CHECK-SD-NEXT: fcmp s8, #0.0 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: csel x8, xzr, x0, lt ; CHECK-SD-NEXT: csel x9, xzr, x1, lt ; CHECK-SD-NEXT: fcmp s8, s9 @@ -2579,7 +2579,7 @@ define <4 x i100> @test_unsigned_v4f16_v4i100(<4 x half> %f) { ; CHECK-SD-NEXT: csinv x22, x8, xzr, le ; CHECK-SD-NEXT: fmov s0, s8 ; CHECK-SD-NEXT: bl __fixunssfti -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: fcmp s8, #0.0 ; CHECK-SD-NEXT: mov h0, v0.h[3] ; CHECK-SD-NEXT: csel x8, xzr, x0, lt @@ -2654,7 +2654,7 @@ define <4 x i128> @test_unsigned_v4f16_v4i128(<4 x half> %f) { ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #96 ; CHECK-SD-NEXT: stp d9, d8, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: stp x24, x23, [sp, #48] // 16-byte Folded Spill ; CHECK-SD-NEXT: stp x22, x21, [sp, #64] // 16-byte Folded Spill ; CHECK-SD-NEXT: stp x20, x19, [sp, #80] // 16-byte Folded Spill @@ -2670,10 +2670,10 @@ define <4 x i128> @test_unsigned_v4f16_v4i128(<4 x half> %f) { ; CHECK-SD-NEXT: .cfi_offset b9, -80 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-SD-NEXT: fcvt s8, h0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: fmov s0, s8 ; CHECK-SD-NEXT: bl __fixunssfti -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov w8, #2139095039 // =0x7f7fffff ; CHECK-SD-NEXT: fcmp s8, #0.0 ; CHECK-SD-NEXT: fmov s9, w8 @@ -2686,7 +2686,7 @@ define <4 x i128> @test_unsigned_v4f16_v4i128(<4 x half> %f) { ; CHECK-SD-NEXT: csinv x20, x9, xzr, le ; CHECK-SD-NEXT: fmov s0, s8 ; CHECK-SD-NEXT: bl __fixunssfti -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: fcmp s8, #0.0 ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: csel x8, xzr, x1, lt @@ -2697,7 +2697,7 @@ define <4 x i128> @test_unsigned_v4f16_v4i128(<4 x half> %f) { ; CHECK-SD-NEXT: csinv x22, x8, xzr, le ; CHECK-SD-NEXT: fmov s0, s8 ; CHECK-SD-NEXT: bl __fixunssfti -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: fcmp s8, #0.0 ; CHECK-SD-NEXT: mov h0, v0.h[3] ; CHECK-SD-NEXT: csel x8, xzr, x1, lt @@ -2713,7 +2713,7 @@ define <4 x i128> @test_unsigned_v4f16_v4i128(<4 x half> %f) { ; CHECK-SD-NEXT: mov x3, x22 ; CHECK-SD-NEXT: mov x4, x23 ; CHECK-SD-NEXT: mov x5, x24 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: ldp x22, x21, [sp, #64] // 16-byte Folded Reload ; CHECK-SD-NEXT: csel x8, xzr, x1, lt ; CHECK-SD-NEXT: csel x9, xzr, x0, lt @@ -3179,15 +3179,15 @@ define <8 x i100> @test_unsigned_v8f16_v8i100(<8 x half> %f) { ; CHECK-NEXT: .cfi_offset w29, -96 ; CHECK-NEXT: .cfi_offset b8, -104 ; CHECK-NEXT: .cfi_offset b9, -112 -; CHECK-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-NEXT: ext v0.16b, v0.16b, v0.16b, #8 ; CHECK-NEXT: mov x19, x8 -; CHECK-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-NEXT: mov h0, v0.h[1] ; CHECK-NEXT: fcvt s8, h0 ; CHECK-NEXT: fmov s0, s8 ; CHECK-NEXT: bl __fixunssfti -; CHECK-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-NEXT: mov w8, #1904214015 // =0x717fffff ; CHECK-NEXT: fcmp s8, #0.0 ; CHECK-NEXT: fmov s9, w8 @@ -3203,7 +3203,7 @@ define <8 x i100> @test_unsigned_v8f16_v8i100(<8 x half> %f) { ; CHECK-NEXT: fmov s0, s8 ; CHECK-NEXT: bl __fixunssfti ; CHECK-NEXT: fcmp s8, #0.0 -; CHECK-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-NEXT: csel x8, xzr, x0, lt ; CHECK-NEXT: csel x9, xzr, x1, lt ; CHECK-NEXT: fcmp s8, s9 @@ -3213,7 +3213,7 @@ define <8 x i100> @test_unsigned_v8f16_v8i100(<8 x half> %f) { ; CHECK-NEXT: stp x8, x9, [sp] // 16-byte Folded Spill ; CHECK-NEXT: fmov s0, s8 ; CHECK-NEXT: bl __fixunssfti -; CHECK-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-NEXT: fcmp s8, #0.0 ; CHECK-NEXT: mov h0, v0.h[2] ; CHECK-NEXT: csel x8, xzr, x0, lt @@ -3222,10 +3222,10 @@ define <8 x i100> @test_unsigned_v8f16_v8i100(<8 x half> %f) { ; CHECK-NEXT: fcvt s8, h0 ; CHECK-NEXT: csinv x8, x8, xzr, le ; CHECK-NEXT: csel x25, x23, x9, gt -; CHECK-NEXT: str x8, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x8, [sp, #32] // 8-byte Spill ; CHECK-NEXT: fmov s0, s8 ; CHECK-NEXT: bl __fixunssfti -; CHECK-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-NEXT: fcmp s8, #0.0 ; CHECK-NEXT: mov h0, v0.h[1] ; CHECK-NEXT: csel x8, xzr, x0, lt @@ -3236,7 +3236,7 @@ define <8 x i100> @test_unsigned_v8f16_v8i100(<8 x half> %f) { ; CHECK-NEXT: csinv x28, x8, xzr, le ; CHECK-NEXT: fmov s0, s8 ; CHECK-NEXT: bl __fixunssfti -; CHECK-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-NEXT: fcmp s8, #0.0 ; CHECK-NEXT: mov h0, v0.h[3] ; CHECK-NEXT: csel x8, xzr, x0, lt @@ -3248,7 +3248,7 @@ define <8 x i100> @test_unsigned_v8f16_v8i100(<8 x half> %f) { ; CHECK-NEXT: fmov s0, s8 ; CHECK-NEXT: bl __fixunssfti ; CHECK-NEXT: fcmp s8, #0.0 -; CHECK-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-NEXT: csel x8, xzr, x0, lt ; CHECK-NEXT: csel x9, xzr, x1, lt ; CHECK-NEXT: fcmp s8, s9 @@ -3257,7 +3257,7 @@ define <8 x i100> @test_unsigned_v8f16_v8i100(<8 x half> %f) { ; CHECK-NEXT: csinv x27, x8, xzr, le ; CHECK-NEXT: fmov s0, s8 ; CHECK-NEXT: bl __fixunssfti -; CHECK-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-NEXT: fcmp s8, #0.0 ; CHECK-NEXT: mov h0, v0.h[2] ; CHECK-NEXT: csel x8, xzr, x0, lt @@ -3275,7 +3275,7 @@ define <8 x i100> @test_unsigned_v8f16_v8i100(<8 x half> %f) { ; CHECK-NEXT: extr x9, x29, x20, #28 ; CHECK-NEXT: fcmp s8, #0.0 ; CHECK-NEXT: stur x8, [x19, #41] -; CHECK-NEXT: ldr x11, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x11, [sp, #32] // 8-byte Reload ; CHECK-NEXT: stp x22, x9, [x19, #8] ; CHECK-NEXT: lsr x9, x29, #28 ; CHECK-NEXT: csel x8, xzr, x0, lt @@ -3343,14 +3343,14 @@ define <8 x i128> @test_unsigned_v8f16_v8i128(<8 x half> %f) { ; CHECK-SD-NEXT: .cfi_offset w29, -96 ; CHECK-SD-NEXT: .cfi_offset b8, -104 ; CHECK-SD-NEXT: .cfi_offset b9, -112 -; CHECK-SD-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-SD-NEXT: ext v0.16b, v0.16b, v0.16b, #8 ; CHECK-SD-NEXT: mov x19, x8 ; CHECK-SD-NEXT: fcvt s8, h0 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fmov s0, s8 ; CHECK-SD-NEXT: bl __fixunssfti -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov w8, #2139095039 // =0x7f7fffff ; CHECK-SD-NEXT: fcmp s8, #0.0 ; CHECK-SD-NEXT: fmov s9, w8 @@ -3364,7 +3364,7 @@ define <8 x i128> @test_unsigned_v8f16_v8i128(<8 x half> %f) { ; CHECK-SD-NEXT: stp x8, x10, [sp, #16] // 16-byte Folded Spill ; CHECK-SD-NEXT: fmov s0, s8 ; CHECK-SD-NEXT: bl __fixunssfti -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: fcmp s8, #0.0 ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: csel x8, xzr, x1, lt @@ -3376,7 +3376,7 @@ define <8 x i128> @test_unsigned_v8f16_v8i128(<8 x half> %f) { ; CHECK-SD-NEXT: stp x8, x9, [sp] // 16-byte Folded Spill ; CHECK-SD-NEXT: fmov s0, s8 ; CHECK-SD-NEXT: bl __fixunssfti -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: fcmp s8, #0.0 ; CHECK-SD-NEXT: mov h0, v0.h[3] ; CHECK-SD-NEXT: csel x8, xzr, x1, lt @@ -3388,7 +3388,7 @@ define <8 x i128> @test_unsigned_v8f16_v8i128(<8 x half> %f) { ; CHECK-SD-NEXT: fmov s0, s8 ; CHECK-SD-NEXT: bl __fixunssfti ; CHECK-SD-NEXT: fcmp s8, #0.0 -; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: csel x8, xzr, x1, lt ; CHECK-SD-NEXT: csel x9, xzr, x0, lt ; CHECK-SD-NEXT: fcmp s8, s9 @@ -3397,7 +3397,7 @@ define <8 x i128> @test_unsigned_v8f16_v8i128(<8 x half> %f) { ; CHECK-SD-NEXT: csinv x27, x8, xzr, le ; CHECK-SD-NEXT: fmov s0, s8 ; CHECK-SD-NEXT: bl __fixunssfti -; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: fcmp s8, #0.0 ; CHECK-SD-NEXT: mov h0, v0.h[1] ; CHECK-SD-NEXT: csel x8, xzr, x1, lt @@ -3408,7 +3408,7 @@ define <8 x i128> @test_unsigned_v8f16_v8i128(<8 x half> %f) { ; CHECK-SD-NEXT: csinv x29, x8, xzr, le ; CHECK-SD-NEXT: fmov s0, s8 ; CHECK-SD-NEXT: bl __fixunssfti -; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: fcmp s8, #0.0 ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: csel x8, xzr, x1, lt @@ -3419,7 +3419,7 @@ define <8 x i128> @test_unsigned_v8f16_v8i128(<8 x half> %f) { ; CHECK-SD-NEXT: csinv x21, x8, xzr, le ; CHECK-SD-NEXT: fmov s0, s8 ; CHECK-SD-NEXT: bl __fixunssfti -; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: fcmp s8, #0.0 ; CHECK-SD-NEXT: mov h0, v0.h[3] ; CHECK-SD-NEXT: csel x8, xzr, x1, lt @@ -3442,13 +3442,13 @@ define <8 x i128> @test_unsigned_v8f16_v8i128(<8 x half> %f) { ; CHECK-SD-NEXT: csinv x8, x8, xzr, le ; CHECK-SD-NEXT: csinv x9, x9, xzr, le ; CHECK-SD-NEXT: stp x9, x8, [x19, #48] -; CHECK-SD-NEXT: ldr x8, [sp] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x8, [sp] // 8-byte Reload ; CHECK-SD-NEXT: str x8, [x19, #88] -; CHECK-SD-NEXT: ldr x8, [sp, #8] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x8, [sp, #8] // 8-byte Reload ; CHECK-SD-NEXT: str x8, [x19, #80] -; CHECK-SD-NEXT: ldr x8, [sp, #16] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x8, [sp, #16] // 8-byte Reload ; CHECK-SD-NEXT: str x8, [x19, #72] -; CHECK-SD-NEXT: ldr x8, [sp, #24] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x8, [sp, #24] // 8-byte Reload ; CHECK-SD-NEXT: str x8, [x19, #64] ; CHECK-SD-NEXT: ldp x20, x19, [sp, #160] // 16-byte Folded Reload ; CHECK-SD-NEXT: ldp x22, x21, [sp, #144] // 16-byte Folded Reload @@ -4139,35 +4139,35 @@ define <2 x i64> @test_signed_v2f128_v2i64(<2 x fp128> %f) { ; CHECK-SD-NEXT: adrp x8, .LCPI86_0 ; CHECK-SD-NEXT: ldr q1, [x8, :lo12:.LCPI86_0] ; CHECK-SD-NEXT: mov v0.16b, v2.16b -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: bl __getf2 -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov w19, w0 ; CHECK-SD-NEXT: bl __fixunstfdi ; CHECK-SD-NEXT: adrp x8, .LCPI86_1 -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: cmp w19, #0 ; CHECK-SD-NEXT: ldr q1, [x8, :lo12:.LCPI86_1] ; CHECK-SD-NEXT: csel x19, xzr, x0, mi -; CHECK-SD-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl __gttf2 ; CHECK-SD-NEXT: cmp w0, #0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: csinv x8, x19, xzr, le ; CHECK-SD-NEXT: fmov d0, x8 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: bl __getf2 -; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: mov w19, w0 ; CHECK-SD-NEXT: bl __fixunstfdi -; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #48] // 16-byte Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: cmp w19, #0 ; CHECK-SD-NEXT: csel x19, xzr, x0, mi ; CHECK-SD-NEXT: bl __gttf2 ; CHECK-SD-NEXT: cmp w0, #0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: csinv x8, x19, xzr, le ; CHECK-SD-NEXT: ldp x30, x19, [sp, #64] // 16-byte Folded Reload ; CHECK-SD-NEXT: fmov d0, x8 @@ -4189,12 +4189,12 @@ define <2 x i64> @test_signed_v2f128_v2i64(<2 x fp128> %f) { ; CHECK-GI-NEXT: .cfi_offset w23, -40 ; CHECK-GI-NEXT: .cfi_offset w30, -48 ; CHECK-GI-NEXT: adrp x8, .LCPI86_1 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: ldr q2, [x8, :lo12:.LCPI86_1] ; CHECK-GI-NEXT: stp q2, q1, [sp, #16] // 32-byte Folded Spill ; CHECK-GI-NEXT: mov v1.16b, v2.16b ; CHECK-GI-NEXT: bl __gttf2 -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: cmp w0, #0 ; CHECK-GI-NEXT: fmov x8, d0 ; CHECK-GI-NEXT: csel x19, x8, xzr, gt @@ -4204,7 +4204,7 @@ define <2 x i64> @test_signed_v2f128_v2i64(<2 x fp128> %f) { ; CHECK-GI-NEXT: adrp x8, .LCPI86_0 ; CHECK-GI-NEXT: mov v0.d[1], x20 ; CHECK-GI-NEXT: ldr q1, [x8, :lo12:.LCPI86_0] -; CHECK-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-GI-NEXT: bl __lttf2 ; CHECK-GI-NEXT: mov x21, #-562949953421312 // =0xfffe000000000000 ; CHECK-GI-NEXT: cmp w0, #0 @@ -4217,9 +4217,9 @@ define <2 x i64> @test_signed_v2f128_v2i64(<2 x fp128> %f) { ; CHECK-GI-NEXT: ldp q1, q0, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: mov x19, x0 ; CHECK-GI-NEXT: bl __gttf2 -; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: cmp w0, #0 -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-GI-NEXT: fmov x8, d0 ; CHECK-GI-NEXT: csel x20, x8, xzr, gt ; CHECK-GI-NEXT: mov x8, v0.d[1] diff --git a/llvm/test/CodeGen/AArch64/fptrunc.ll b/llvm/test/CodeGen/AArch64/fptrunc.ll index 1f84c944d7c16..da19991d56259 100644 --- a/llvm/test/CodeGen/AArch64/fptrunc.ll +++ b/llvm/test/CodeGen/AArch64/fptrunc.ll @@ -92,19 +92,19 @@ define <2 x half> @fptrunc_v2f128_v2f16(<2 x fp128> %a) { ; CHECK-SD-LABEL: fptrunc_v2f128_v2f16: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov v0.16b, v1.16b ; CHECK-SD-NEXT: bl __trunctfhf2 ; CHECK-SD-NEXT: // kill: def $h0 killed $h0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: bl __trunctfhf2 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $h0 killed $h0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.h[1], v1.h[0] ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: add sp, sp, #48 @@ -113,26 +113,26 @@ define <2 x half> @fptrunc_v2f128_v2f16(<2 x fp128> %a) { ; CHECK-GI-LABEL: fptrunc_v2f128_v2f16: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #64 -; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 64 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: mov v2.d[0], x8 -; CHECK-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-GI-NEXT: mov v2.d[1], x8 -; CHECK-GI-NEXT: str q2, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q2, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: bl __trunctfhf2 ; CHECK-GI-NEXT: // kill: def $h0 killed $h0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: bl __trunctfhf2 ; CHECK-GI-NEXT: // kill: def $h0 killed $h0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: bl __trunctfhf2 -; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: bl __trunctfhf2 ; CHECK-GI-NEXT: ldp q1, q0, [sp] // 32-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: mov v0.h[1], v1.h[0] ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-GI-NEXT: add sp, sp, #64 @@ -147,19 +147,19 @@ define <2 x float> @fptrunc_v2f128_v2f32(<2 x fp128> %a) { ; CHECK-SD-LABEL: fptrunc_v2f128_v2f32: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov v0.16b, v1.16b ; CHECK-SD-NEXT: bl __trunctfsf2 ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: bl __trunctfsf2 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: add sp, sp, #48 @@ -168,18 +168,18 @@ define <2 x float> @fptrunc_v2f128_v2f32(<2 x fp128> %a) { ; CHECK-GI-LABEL: fptrunc_v2f128_v2f32: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #48 -; CHECK-GI-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 48 ; CHECK-GI-NEXT: .cfi_offset w30, -16 -; CHECK-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-GI-NEXT: bl __trunctfsf2 ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: bl __trunctfsf2 -; CHECK-GI-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.s[1], v0.s[0] ; CHECK-GI-NEXT: fmov d0, d1 ; CHECK-GI-NEXT: add sp, sp, #48 @@ -194,19 +194,19 @@ define <2 x double> @fptrunc_v2f128_v2f64(<2 x fp128> %a) { ; CHECK-SD-LABEL: fptrunc_v2f128_v2f64: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov v0.16b, v1.16b ; CHECK-SD-NEXT: bl __trunctfdf2 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: bl __trunctfdf2 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.d[1], v1.d[0] ; CHECK-SD-NEXT: add sp, sp, #48 ; CHECK-SD-NEXT: ret @@ -214,18 +214,18 @@ define <2 x double> @fptrunc_v2f128_v2f64(<2 x fp128> %a) { ; CHECK-GI-LABEL: fptrunc_v2f128_v2f64: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #48 -; CHECK-GI-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 48 ; CHECK-GI-NEXT: .cfi_offset w30, -16 -; CHECK-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-GI-NEXT: bl __trunctfdf2 ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: bl __trunctfdf2 -; CHECK-GI-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.d[1], v0.d[0] ; CHECK-GI-NEXT: mov v0.16b, v1.16b ; CHECK-GI-NEXT: add sp, sp, #48 diff --git a/llvm/test/CodeGen/AArch64/framelayout-sve-calleesaves-fix.mir b/llvm/test/CodeGen/AArch64/framelayout-sve-calleesaves-fix.mir index e970d8339d792..a7bde2a9f1c92 100644 --- a/llvm/test/CodeGen/AArch64/framelayout-sve-calleesaves-fix.mir +++ b/llvm/test/CodeGen/AArch64/framelayout-sve-calleesaves-fix.mir @@ -10,7 +10,7 @@ ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: addvl sp, sp, #-2 ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x40, 0x1e, 0x22 // sp + 16 + 16 * VG - ; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Folded Spill + ; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: str z8, [sp, #1, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: .cfi_escape 0x10, 0x48, 0x09, 0x92, 0x2e, 0x00, 0x11, 0x78, 0x1e, 0x22, 0x40, 0x1c // $d8 @ cfa - 8 * VG - 16 ; CHECK-NEXT: addvl sp, sp, #-1 @@ -20,7 +20,7 @@ ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x40, 0x1e, 0x22 // sp + 16 + 16 * VG ; CHECK-NEXT: ldr z8, [sp, #1, mul vl] // 16-byte Folded Reload - ; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Folded Reload + ; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #2 ; CHECK-NEXT: .cfi_def_cfa wsp, 16 ; CHECK-NEXT: .cfi_restore z8 diff --git a/llvm/test/CodeGen/AArch64/frem-power2.ll b/llvm/test/CodeGen/AArch64/frem-power2.ll index 98276b68481a1..a84f8a90f651e 100644 --- a/llvm/test/CodeGen/AArch64/frem-power2.ll +++ b/llvm/test/CodeGen/AArch64/frem-power2.ll @@ -354,9 +354,9 @@ define <4 x float> @frem2_vec(<4 x float> %x) { ; CHECK-GI-LABEL: frem2_vec: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #80 -; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #56] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #72] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #72] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 80 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -369,27 +369,27 @@ define <4 x float> @frem2_vec(<4 x float> %x) { ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s1, #2.00000000 ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s1, #2.00000000 ; CHECK-GI-NEXT: fmov s0, s9 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s1, #2.00000000 ; CHECK-GI-NEXT: fmov s0, s10 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: ldp q2, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #72] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #72] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #56] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.s[1], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.s[2], v2.s[0] ; CHECK-GI-NEXT: mov v1.s[3], v0.s[0] ; CHECK-GI-NEXT: mov v0.16b, v1.16b @@ -413,9 +413,9 @@ define <4 x float> @frem2_nsz_vec(<4 x float> %x) { ; CHECK-GI-LABEL: frem2_nsz_vec: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #80 -; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #56] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #72] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #72] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 80 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -428,27 +428,27 @@ define <4 x float> @frem2_nsz_vec(<4 x float> %x) { ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s1, #2.00000000 ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s1, #2.00000000 ; CHECK-GI-NEXT: fmov s0, s9 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s1, #2.00000000 ; CHECK-GI-NEXT: fmov s0, s10 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: ldp q2, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #72] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #72] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #56] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.s[1], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.s[2], v2.s[0] ; CHECK-GI-NEXT: mov v1.s[3], v0.s[0] ; CHECK-GI-NEXT: mov v0.16b, v1.16b @@ -477,7 +477,7 @@ define <4 x float> @frem1152921504606846976_absv(<4 x float> %x) { ; CHECK-GI-NEXT: sub sp, sp, #96 ; CHECK-GI-NEXT: stp d11, d10, [sp, #48] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #64] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #80] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #80] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 96 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -494,27 +494,27 @@ define <4 x float> @frem1152921504606846976_absv(<4 x float> %x) { ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s1, s11 ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s1, s11 ; CHECK-GI-NEXT: fmov s0, s9 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s1, s11 ; CHECK-GI-NEXT: fmov s0, s10 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: ldp q2, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #80] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #80] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #64] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #48] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.s[1], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.s[2], v2.s[0] ; CHECK-GI-NEXT: mov v1.s[3], v0.s[0] ; CHECK-GI-NEXT: mov v0.16b, v1.16b diff --git a/llvm/test/CodeGen/AArch64/frem.ll b/llvm/test/CodeGen/AArch64/frem.ll index feb13da64cbf8..b72af95adf009 100644 --- a/llvm/test/CodeGen/AArch64/frem.ll +++ b/llvm/test/CodeGen/AArch64/frem.ll @@ -66,7 +66,7 @@ define <2 x double> @frem_v2f64(<2 x double> %a, <2 x double> %b) { ; CHECK-SD-LABEL: frem_v2f64: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: stp q0, q1, [sp] // 32-byte Folded Spill @@ -74,14 +74,14 @@ define <2 x double> @frem_v2f64(<2 x double> %a, <2 x double> %b) { ; CHECK-SD-NEXT: mov d1, v1.d[1] ; CHECK-SD-NEXT: bl fmod ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: // kill: def $d1 killed $d1 killed $q1 ; CHECK-SD-NEXT: bl fmod -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.d[1], v1.d[0] ; CHECK-SD-NEXT: add sp, sp, #64 ; CHECK-SD-NEXT: ret @@ -90,7 +90,7 @@ define <2 x double> @frem_v2f64(<2 x double> %a, <2 x double> %b) { ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #48 ; CHECK-GI-NEXT: stp d9, d8, [sp, #16] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 48 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -101,14 +101,14 @@ define <2 x double> @frem_v2f64(<2 x double> %a, <2 x double> %b) { ; CHECK-GI-NEXT: // kill: def $d1 killed $d1 killed $q1 ; CHECK-GI-NEXT: bl fmod ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov d1, d9 ; CHECK-GI-NEXT: fmov d0, d8 ; CHECK-GI-NEXT: bl fmod -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-GI-NEXT: ldp d9, d8, [sp, #16] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.d[1], v0.d[0] ; CHECK-GI-NEXT: mov v0.16b, v1.16b ; CHECK-GI-NEXT: add sp, sp, #48 @@ -124,7 +124,7 @@ define <3 x double> @frem_v3f64(<3 x double> %a, <3 x double> %b) { ; CHECK-SD-NEXT: str d12, [sp, #-48]! // 8-byte Folded Spill ; CHECK-SD-NEXT: stp d11, d10, [sp, #8] // 16-byte Folded Spill ; CHECK-SD-NEXT: stp d9, d8, [sp, #24] // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #40] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #40] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-SD-NEXT: .cfi_offset w30, -8 ; CHECK-SD-NEXT: .cfi_offset b8, -16 @@ -150,7 +150,7 @@ define <3 x double> @frem_v3f64(<3 x double> %a, <3 x double> %b) { ; CHECK-SD-NEXT: ldp d9, d8, [sp, #24] // 16-byte Folded Reload ; CHECK-SD-NEXT: ldp d11, d10, [sp, #8] // 16-byte Folded Reload ; CHECK-SD-NEXT: fmov d2, d0 -; CHECK-SD-NEXT: ldr x30, [sp, #40] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #40] // 8-byte Reload ; CHECK-SD-NEXT: fmov d0, d12 ; CHECK-SD-NEXT: ldr d12, [sp], #48 // 8-byte Folded Reload ; CHECK-SD-NEXT: ret @@ -160,7 +160,7 @@ define <3 x double> @frem_v3f64(<3 x double> %a, <3 x double> %b) { ; CHECK-GI-NEXT: str d12, [sp, #-48]! // 8-byte Folded Spill ; CHECK-GI-NEXT: stp d11, d10, [sp, #8] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #24] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #40] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #40] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 48 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -186,7 +186,7 @@ define <3 x double> @frem_v3f64(<3 x double> %a, <3 x double> %b) { ; CHECK-GI-NEXT: ldp d9, d8, [sp, #24] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #8] // 16-byte Folded Reload ; CHECK-GI-NEXT: fmov d2, d0 -; CHECK-GI-NEXT: ldr x30, [sp, #40] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #40] // 8-byte Reload ; CHECK-GI-NEXT: fmov d0, d12 ; CHECK-GI-NEXT: ldr d12, [sp], #48 // 8-byte Folded Reload ; CHECK-GI-NEXT: ret @@ -199,7 +199,7 @@ define <4 x double> @frem_v4f64(<4 x double> %a, <4 x double> %b) { ; CHECK-SD-LABEL: frem_v4f64: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #96 -; CHECK-SD-NEXT: str x30, [sp, #80] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #80] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 96 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: stp q0, q2, [sp] // 32-byte Folded Spill @@ -208,28 +208,28 @@ define <4 x double> @frem_v4f64(<4 x double> %a, <4 x double> %b) { ; CHECK-SD-NEXT: mov d1, v2.d[1] ; CHECK-SD-NEXT: bl fmod ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: // kill: def $d1 killed $d1 killed $q1 ; CHECK-SD-NEXT: bl fmod -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-SD-NEXT: mov v0.d[1], v1.d[0] -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #48] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov d0, v0.d[1] ; CHECK-SD-NEXT: mov d1, v1.d[1] ; CHECK-SD-NEXT: bl fmod ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #48] // 32-byte Folded Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: // kill: def $d1 killed $d1 killed $q1 ; CHECK-SD-NEXT: bl fmod ; CHECK-SD-NEXT: fmov d1, d0 ; CHECK-SD-NEXT: ldp q2, q0, [sp, #16] // 32-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #80] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #80] // 8-byte Reload ; CHECK-SD-NEXT: mov v1.d[1], v2.d[0] ; CHECK-SD-NEXT: add sp, sp, #96 ; CHECK-SD-NEXT: ret @@ -239,7 +239,7 @@ define <4 x double> @frem_v4f64(<4 x double> %a, <4 x double> %b) { ; CHECK-GI-NEXT: sub sp, sp, #112 ; CHECK-GI-NEXT: stp d11, d10, [sp, #64] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #80] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #96] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #96] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 112 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -247,9 +247,9 @@ define <4 x double> @frem_v4f64(<4 x double> %a, <4 x double> %b) { ; CHECK-GI-NEXT: .cfi_offset b10, -40 ; CHECK-GI-NEXT: .cfi_offset b11, -48 ; CHECK-GI-NEXT: mov v4.16b, v1.16b -; CHECK-GI-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: mov v1.16b, v2.16b -; CHECK-GI-NEXT: str q3, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q3, [sp] // 16-byte Spill ; CHECK-GI-NEXT: mov d8, v0.d[1] ; CHECK-GI-NEXT: mov d10, v2.d[1] ; CHECK-GI-NEXT: mov d11, v3.d[1] @@ -258,27 +258,27 @@ define <4 x double> @frem_v4f64(<4 x double> %a, <4 x double> %b) { ; CHECK-GI-NEXT: mov d9, v4.d[1] ; CHECK-GI-NEXT: bl fmod ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: fmov d1, d10 ; CHECK-GI-NEXT: fmov d0, d8 ; CHECK-GI-NEXT: bl fmod ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload +; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $d1 killed $d1 killed $q1 ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-GI-NEXT: bl fmod ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov d1, d11 ; CHECK-GI-NEXT: fmov d0, d9 ; CHECK-GI-NEXT: bl fmod ; CHECK-GI-NEXT: ldp q3, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: ldr q2, [sp, #48] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #48] // 16-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #80] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #96] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #96] // 8-byte Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #64] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v2.d[1], v3.d[0] ; CHECK-GI-NEXT: mov v1.d[1], v0.d[0] @@ -294,7 +294,7 @@ define <2 x float> @frem_v2f32(<2 x float> %a, <2 x float> %b) { ; CHECK-SD-LABEL: frem_v2f32: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: // kill: def $d1 killed $d1 def $q1 @@ -304,14 +304,14 @@ define <2 x float> @frem_v2f32(<2 x float> %a, <2 x float> %b) { ; CHECK-SD-NEXT: mov s1, v1.s[1] ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: // kill: def $s1 killed $s1 killed $q1 ; CHECK-SD-NEXT: bl fmodf -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: add sp, sp, #64 @@ -321,7 +321,7 @@ define <2 x float> @frem_v2f32(<2 x float> %a, <2 x float> %b) { ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #48 ; CHECK-GI-NEXT: stp d9, d8, [sp, #16] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 48 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -334,14 +334,14 @@ define <2 x float> @frem_v2f32(<2 x float> %a, <2 x float> %b) { ; CHECK-GI-NEXT: // kill: def $s1 killed $s1 killed $q1 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s1, s9 ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl fmodf -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-GI-NEXT: ldp d9, d8, [sp, #16] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.s[1], v0.s[0] ; CHECK-GI-NEXT: fmov d0, d1 ; CHECK-GI-NEXT: add sp, sp, #48 @@ -355,7 +355,7 @@ define <3 x float> @frem_v3f32(<3 x float> %a, <3 x float> %b) { ; CHECK-SD-LABEL: frem_v3f32: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: stp q0, q1, [sp, #16] // 32-byte Folded Spill @@ -363,22 +363,22 @@ define <3 x float> @frem_v3f32(<3 x float> %a, <3 x float> %b) { ; CHECK-SD-NEXT: mov s1, v1.s[1] ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: // kill: def $s1 killed $s1 killed $q1 ; CHECK-SD-NEXT: bl fmodf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: mov s1, v1.s[2] ; CHECK-SD-NEXT: bl fmodf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] ; CHECK-SD-NEXT: mov v0.16b, v1.16b ; CHECK-SD-NEXT: add sp, sp, #64 @@ -389,7 +389,7 @@ define <3 x float> @frem_v3f32(<3 x float> %a, <3 x float> %b) { ; CHECK-GI-NEXT: sub sp, sp, #80 ; CHECK-GI-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 80 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -404,18 +404,18 @@ define <3 x float> @frem_v3f32(<3 x float> %a, <3 x float> %b) { ; CHECK-GI-NEXT: // kill: def $s1 killed $s1 killed $q1 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s1, s10 ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s1, s11 ; CHECK-GI-NEXT: fmov s0, s9 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: ldp q2, q1, [sp] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.s[1], v2.s[0] @@ -432,7 +432,7 @@ define <4 x float> @frem_v4f32(<4 x float> %a, <4 x float> %b) { ; CHECK-SD-LABEL: frem_v4f32: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: stp q0, q1, [sp, #16] // 32-byte Folded Spill @@ -440,30 +440,30 @@ define <4 x float> @frem_v4f32(<4 x float> %a, <4 x float> %b) { ; CHECK-SD-NEXT: mov s1, v1.s[1] ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: // kill: def $s1 killed $s1 killed $q1 ; CHECK-SD-NEXT: bl fmodf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: mov s1, v1.s[2] ; CHECK-SD-NEXT: bl fmodf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] -; CHECK-SD-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov s0, v0.s[3] ; CHECK-SD-NEXT: mov s1, v1.s[3] ; CHECK-SD-NEXT: bl fmodf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: mov v1.s[3], v0.s[0] ; CHECK-SD-NEXT: mov v0.16b, v1.16b ; CHECK-SD-NEXT: add sp, sp, #64 @@ -475,7 +475,7 @@ define <4 x float> @frem_v4f32(<4 x float> %a, <4 x float> %b) { ; CHECK-GI-NEXT: stp d13, d12, [sp, #48] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d11, d10, [sp, #64] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #80] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #96] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #96] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 112 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -494,27 +494,27 @@ define <4 x float> @frem_v4f32(<4 x float> %a, <4 x float> %b) { ; CHECK-GI-NEXT: // kill: def $s1 killed $s1 killed $q1 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s1, s11 ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s1, s12 ; CHECK-GI-NEXT: fmov s0, s9 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s1, s13 ; CHECK-GI-NEXT: fmov s0, s10 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: ldp q2, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #96] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #96] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #80] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #64] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.s[1], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Reload ; CHECK-GI-NEXT: ldp d13, d12, [sp, #48] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.s[2], v2.s[0] ; CHECK-GI-NEXT: mov v1.s[3], v0.s[0] @@ -530,7 +530,7 @@ define <8 x float> @frem_v8f32(<8 x float> %a, <8 x float> %b) { ; CHECK-SD-LABEL: frem_v8f32: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #96 -; CHECK-SD-NEXT: str x30, [sp, #80] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #80] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 96 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: stp q0, q2, [sp] // 32-byte Folded Spill @@ -539,61 +539,61 @@ define <8 x float> @frem_v8f32(<8 x float> %a, <8 x float> %b) { ; CHECK-SD-NEXT: mov s1, v2.s[1] ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: // kill: def $s1 killed $s1 killed $q1 ; CHECK-SD-NEXT: bl fmodf -; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: mov s1, v1.s[2] ; CHECK-SD-NEXT: bl fmodf -; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] -; CHECK-SD-NEXT: str q1, [sp, #64] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #64] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov s0, v0.s[3] ; CHECK-SD-NEXT: mov s1, v1.s[3] ; CHECK-SD-NEXT: bl fmodf -; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v1.s[3], v0.s[0] -; CHECK-SD-NEXT: str q1, [sp, #64] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #64] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #32] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov s0, v0.s[1] ; CHECK-SD-NEXT: mov s1, v1.s[1] ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #32] // 32-byte Folded Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: // kill: def $s1 killed $s1 killed $q1 ; CHECK-SD-NEXT: bl fmodf -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #32] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: mov s1, v1.s[2] ; CHECK-SD-NEXT: bl fmodf -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #32] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov s0, v0.s[3] ; CHECK-SD-NEXT: mov s1, v1.s[3] ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: fmov s2, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr q0, [sp, #64] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #80] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload +; CHECK-SD-NEXT: ldr q0, [sp, #64] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #80] // 8-byte Reload ; CHECK-SD-NEXT: mov v1.s[3], v2.s[0] ; CHECK-SD-NEXT: add sp, sp, #96 ; CHECK-SD-NEXT: ret @@ -605,7 +605,7 @@ define <8 x float> @frem_v8f32(<8 x float> %a, <8 x float> %b) { ; CHECK-GI-NEXT: stp d13, d12, [sp, #144] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d11, d10, [sp, #160] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #176] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #192] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #192] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 208 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -631,63 +631,63 @@ define <8 x float> @frem_v8f32(<8 x float> %a, <8 x float> %b) { ; CHECK-GI-NEXT: mov s15, v1.s[2] ; CHECK-GI-NEXT: mov s13, v1.s[3] ; CHECK-GI-NEXT: // kill: def $s1 killed $s1 killed $q1 -; CHECK-GI-NEXT: str s2, [sp, #48] // 4-byte Folded Spill +; CHECK-GI-NEXT: str s2, [sp, #48] // 4-byte Spill ; CHECK-GI-NEXT: mov s2, v4.s[2] -; CHECK-GI-NEXT: str s2, [sp, #112] // 4-byte Folded Spill +; CHECK-GI-NEXT: str s2, [sp, #112] // 4-byte Spill ; CHECK-GI-NEXT: mov s2, v3.s[3] ; CHECK-GI-NEXT: stp s2, s5, [sp, #200] // 8-byte Folded Spill ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Spill ; CHECK-GI-NEXT: fmov s1, s14 ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s1, s15 ; CHECK-GI-NEXT: fmov s0, s9 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill ; CHECK-GI-NEXT: fmov s1, s13 ; CHECK-GI-NEXT: fmov s0, s10 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: ldp q1, q0, [sp] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: // kill: def $s1 killed $s1 killed $q1 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: fmov s1, s12 ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr s0, [sp, #48] // 4-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-GI-NEXT: ldr s0, [sp, #48] // 4-byte Reload ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: fmov s1, s11 ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr s0, [sp, #112] // 4-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill +; CHECK-GI-NEXT: ldr s0, [sp, #112] // 4-byte Reload ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #112] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #112] // 16-byte Spill ; CHECK-GI-NEXT: ldp s1, s0, [sp, #200] // 8-byte Folded Reload ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: ldp q3, q2, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr q1, [sp, #96] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #96] // 16-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #176] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #192] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #192] // 8-byte Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #160] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.s[1], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp, #48] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #48] // 16-byte Reload ; CHECK-GI-NEXT: ldp d13, d12, [sp, #144] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v3.s[1], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: ldp d15, d14, [sp, #128] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.s[2], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp, #112] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #112] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.s[2], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp, #64] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #64] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.s[3], v2.s[0] ; CHECK-GI-NEXT: mov v3.s[3], v0.s[0] ; CHECK-GI-NEXT: mov v2.16b, v1.16b @@ -704,7 +704,7 @@ define <7 x half> @frem_v7f16(<7 x half> %a, <7 x half> %b) { ; CHECK-SD-LABEL: frem_v7f16: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: mov h3, v0.h[1] @@ -714,7 +714,7 @@ define <7 x half> @frem_v7f16(<7 x half> %a, <7 x half> %b) { ; CHECK-SD-NEXT: fcvt s1, h2 ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: fcvt s1, h1 @@ -724,15 +724,15 @@ define <7 x half> @frem_v7f16(<7 x half> %a, <7 x half> %b) { ; CHECK-SD-NEXT: mov h1, v1.h[2] ; CHECK-SD-NEXT: mov v0.h[1], v2.h[0] ; CHECK-SD-NEXT: fcvt s1, h1 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] ; CHECK-SD-NEXT: mov h1, v1.h[3] @@ -740,9 +740,9 @@ define <7 x half> @frem_v7f16(<7 x half> %a, <7 x half> %b) { ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] ; CHECK-SD-NEXT: mov h1, v1.h[4] @@ -750,9 +750,9 @@ define <7 x half> @frem_v7f16(<7 x half> %a, <7 x half> %b) { ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] ; CHECK-SD-NEXT: mov h1, v1.h[5] @@ -760,9 +760,9 @@ define <7 x half> @frem_v7f16(<7 x half> %a, <7 x half> %b) { ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] ; CHECK-SD-NEXT: mov h1, v1.h[6] @@ -770,9 +770,9 @@ define <7 x half> @frem_v7f16(<7 x half> %a, <7 x half> %b) { ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] ; CHECK-SD-NEXT: mov h1, v1.h[7] @@ -780,8 +780,8 @@ define <7 x half> @frem_v7f16(<7 x half> %a, <7 x half> %b) { ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: fcvt h1, s0 -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.h[7], v1.h[0] ; CHECK-SD-NEXT: add sp, sp, #64 ; CHECK-SD-NEXT: ret @@ -793,7 +793,7 @@ define <7 x half> @frem_v7f16(<7 x half> %a, <7 x half> %b) { ; CHECK-GI-NEXT: stp d13, d12, [sp, #112] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d11, d10, [sp, #128] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #144] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #160] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #160] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 176 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -813,71 +813,71 @@ define <7 x half> @frem_v7f16(<7 x half> %a, <7 x half> %b) { ; CHECK-GI-NEXT: mov h15, v1.h[2] ; CHECK-GI-NEXT: mov h8, v1.h[3] ; CHECK-GI-NEXT: mov h13, v1.h[4] -; CHECK-GI-NEXT: str h2, [sp, #48] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h2, [sp, #48] // 2-byte Spill ; CHECK-GI-NEXT: mov h2, v0.h[6] ; CHECK-GI-NEXT: fcvt s0, h0 -; CHECK-GI-NEXT: str h2, [sp, #80] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h2, [sp, #80] // 2-byte Spill ; CHECK-GI-NEXT: mov h2, v1.h[5] -; CHECK-GI-NEXT: str h2, [sp, #172] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h2, [sp, #172] // 2-byte Spill ; CHECK-GI-NEXT: mov h2, v1.h[6] ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str h2, [sp, #174] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h2, [sp, #174] // 2-byte Spill ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: fcvt s2, h9 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h14 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: fcvt s2, h10 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h15 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: fcvt s2, h11 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h8 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: fcvt s2, h12 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h13 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl fmodf -; CHECK-GI-NEXT: ldr h1, [sp, #48] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #48] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s2, h1 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr h0, [sp, #172] // 2-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill +; CHECK-GI-NEXT: ldr h0, [sp, #172] // 2-byte Reload ; CHECK-GI-NEXT: fcvt s1, h0 ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl fmodf -; CHECK-GI-NEXT: ldr h1, [sp, #80] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #80] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s2, h1 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr h0, [sp, #174] // 2-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill +; CHECK-GI-NEXT: ldr h0, [sp, #174] // 2-byte Reload ; CHECK-GI-NEXT: fcvt s1, h0 ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: ldp q2, q3, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #144] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #128] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #160] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #160] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.h[1], v3.h[0] ; CHECK-GI-NEXT: ldp d13, d12, [sp, #112] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d15, d14, [sp, #96] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[3], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #48] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #48] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[4], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[5], v2.h[0] ; CHECK-GI-NEXT: mov v1.h[6], v0.h[0] ; CHECK-GI-NEXT: mov v0.16b, v1.16b @@ -892,7 +892,7 @@ define <4 x half> @frem_v4f16(<4 x half> %a, <4 x half> %b) { ; CHECK-SD-LABEL: frem_v4f16: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: // kill: def $d1 killed $d1 def $q1 @@ -903,38 +903,38 @@ define <4 x half> @frem_v4f16(<4 x half> %a, <4 x half> %b) { ; CHECK-SD-NEXT: fcvt s0, h3 ; CHECK-SD-NEXT: fcvt s1, h2 ; CHECK-SD-NEXT: bl fmodf -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: fcvt h0, s0 ; CHECK-SD-NEXT: fcvt s2, h1 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s1, h0 ; CHECK-SD-NEXT: fmov s0, s2 ; CHECK-SD-NEXT: bl fmodf -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: fcvt h3, s0 -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov h1, v1.h[2] ; CHECK-SD-NEXT: mov h2, v0.h[2] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov v3.h[1], v0.h[0] ; CHECK-SD-NEXT: fcvt s0, h1 ; CHECK-SD-NEXT: fcvt s1, h2 -; CHECK-SD-NEXT: str q3, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q3, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: ldp q1, q2, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q3, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q3, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h1, v1.h[3] ; CHECK-SD-NEXT: mov h2, v2.h[3] ; CHECK-SD-NEXT: mov v3.h[2], v0.h[0] ; CHECK-SD-NEXT: fcvt s0, h1 ; CHECK-SD-NEXT: fcvt s1, h2 -; CHECK-SD-NEXT: str q3, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q3, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: fcvt h1, s0 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.h[3], v1.h[0] ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: add sp, sp, #64 @@ -946,7 +946,7 @@ define <4 x half> @frem_v4f16(<4 x half> %a, <4 x half> %b) { ; CHECK-GI-NEXT: stp d13, d12, [sp, #48] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d11, d10, [sp, #64] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #80] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #96] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #96] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 112 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -969,27 +969,27 @@ define <4 x half> @frem_v4f16(<4 x half> %a, <4 x half> %b) { ; CHECK-GI-NEXT: fcvt s2, h8 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h11 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: fcvt s2, h9 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h12 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: fcvt s2, h10 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h13 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: ldp q3, q2, [sp] // 32-byte Folded Reload ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #80] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #64] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #96] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #96] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.h[1], v3.h[0] ; CHECK-GI-NEXT: ldp d13, d12, [sp, #48] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] @@ -1007,7 +1007,7 @@ define <8 x half> @frem_v8f16(<8 x half> %a, <8 x half> %b) { ; CHECK-SD-LABEL: frem_v8f16: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: mov h3, v0.h[1] @@ -1017,7 +1017,7 @@ define <8 x half> @frem_v8f16(<8 x half> %a, <8 x half> %b) { ; CHECK-SD-NEXT: fcvt s1, h2 ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: fcvt s1, h1 @@ -1027,15 +1027,15 @@ define <8 x half> @frem_v8f16(<8 x half> %a, <8 x half> %b) { ; CHECK-SD-NEXT: mov h1, v1.h[2] ; CHECK-SD-NEXT: mov v0.h[1], v2.h[0] ; CHECK-SD-NEXT: fcvt s1, h1 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] ; CHECK-SD-NEXT: mov h1, v1.h[3] @@ -1043,9 +1043,9 @@ define <8 x half> @frem_v8f16(<8 x half> %a, <8 x half> %b) { ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] ; CHECK-SD-NEXT: mov h1, v1.h[4] @@ -1053,9 +1053,9 @@ define <8 x half> @frem_v8f16(<8 x half> %a, <8 x half> %b) { ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] ; CHECK-SD-NEXT: mov h1, v1.h[5] @@ -1063,9 +1063,9 @@ define <8 x half> @frem_v8f16(<8 x half> %a, <8 x half> %b) { ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] ; CHECK-SD-NEXT: mov h1, v1.h[6] @@ -1073,9 +1073,9 @@ define <8 x half> @frem_v8f16(<8 x half> %a, <8 x half> %b) { ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] ; CHECK-SD-NEXT: mov h1, v1.h[7] @@ -1083,8 +1083,8 @@ define <8 x half> @frem_v8f16(<8 x half> %a, <8 x half> %b) { ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: fcvt h1, s0 -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.h[7], v1.h[0] ; CHECK-SD-NEXT: add sp, sp, #64 ; CHECK-SD-NEXT: ret @@ -1096,7 +1096,7 @@ define <8 x half> @frem_v8f16(<8 x half> %a, <8 x half> %b) { ; CHECK-GI-NEXT: stp d13, d12, [sp, #128] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d11, d10, [sp, #144] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #160] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #176] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #176] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 192 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -1116,84 +1116,84 @@ define <8 x half> @frem_v8f16(<8 x half> %a, <8 x half> %b) { ; CHECK-GI-NEXT: mov h9, v1.h[2] ; CHECK-GI-NEXT: mov h10, v1.h[3] ; CHECK-GI-NEXT: mov h15, v1.h[4] -; CHECK-GI-NEXT: str h2, [sp, #48] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h2, [sp, #48] // 2-byte Spill ; CHECK-GI-NEXT: mov h2, v0.h[6] -; CHECK-GI-NEXT: str h2, [sp, #64] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h2, [sp, #64] // 2-byte Spill ; CHECK-GI-NEXT: mov h2, v0.h[7] ; CHECK-GI-NEXT: fcvt s0, h0 -; CHECK-GI-NEXT: str h2, [sp, #96] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h2, [sp, #96] // 2-byte Spill ; CHECK-GI-NEXT: mov h2, v1.h[5] -; CHECK-GI-NEXT: str h2, [sp, #186] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h2, [sp, #186] // 2-byte Spill ; CHECK-GI-NEXT: mov h2, v1.h[6] -; CHECK-GI-NEXT: str h2, [sp, #188] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h2, [sp, #188] // 2-byte Spill ; CHECK-GI-NEXT: mov h2, v1.h[7] ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str h2, [sp, #190] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h2, [sp, #190] // 2-byte Spill ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: fcvt s2, h11 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h8 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: fcvt s2, h12 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h9 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: fcvt s2, h13 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h10 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: fcvt s2, h14 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h15 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl fmodf -; CHECK-GI-NEXT: ldr h1, [sp, #48] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #48] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s2, h1 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr h0, [sp, #186] // 2-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill +; CHECK-GI-NEXT: ldr h0, [sp, #186] // 2-byte Reload ; CHECK-GI-NEXT: fcvt s1, h0 ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl fmodf -; CHECK-GI-NEXT: ldr h1, [sp, #64] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #64] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s2, h1 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr h0, [sp, #188] // 2-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill +; CHECK-GI-NEXT: ldr h0, [sp, #188] // 2-byte Reload ; CHECK-GI-NEXT: fcvt s1, h0 ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl fmodf -; CHECK-GI-NEXT: ldr h1, [sp, #96] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #96] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s2, h1 -; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr h0, [sp, #190] // 2-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Spill +; CHECK-GI-NEXT: ldr h0, [sp, #190] // 2-byte Reload ; CHECK-GI-NEXT: fcvt s1, h0 ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: ldp q2, q3, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: ldr q1, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #160] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #144] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #176] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #176] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.h[1], v3.h[0] ; CHECK-GI-NEXT: ldp d13, d12, [sp, #128] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d15, d14, [sp, #112] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[3], v2.h[0] ; CHECK-GI-NEXT: ldp q3, q2, [sp, #48] // 32-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[4], v3.h[0] ; CHECK-GI-NEXT: mov v1.h[5], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #96] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #96] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[6], v2.h[0] ; CHECK-GI-NEXT: mov v1.h[7], v0.h[0] ; CHECK-GI-NEXT: mov v0.16b, v1.16b @@ -1208,7 +1208,7 @@ define <16 x half> @frem_v16f16(<16 x half> %a, <16 x half> %b) { ; CHECK-SD-LABEL: frem_v16f16: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #96 -; CHECK-SD-NEXT: str x30, [sp, #80] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #80] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 96 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: stp q0, q1, [sp] // 32-byte Folded Spill @@ -1219,10 +1219,10 @@ define <16 x half> @frem_v16f16(<16 x half> %a, <16 x half> %b) { ; CHECK-SD-NEXT: fcvt s0, h3 ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s1, h1 -; CHECK-SD-NEXT: str q0, [sp, #64] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #64] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: fcvt h0, s0 @@ -1230,70 +1230,70 @@ define <16 x half> @frem_v16f16(<16 x half> %a, <16 x half> %b) { ; CHECK-SD-NEXT: mov h1, v1.h[2] ; CHECK-SD-NEXT: mov v0.h[1], v2.h[0] ; CHECK-SD-NEXT: fcvt s1, h1 -; CHECK-SD-NEXT: str q0, [sp, #64] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #64] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] -; CHECK-SD-NEXT: str q1, [sp, #64] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q1, [sp, #64] // 16-byte Spill +; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: mov h1, v1.h[3] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] -; CHECK-SD-NEXT: str q1, [sp, #64] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q1, [sp, #64] // 16-byte Spill +; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: mov h1, v1.h[4] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] -; CHECK-SD-NEXT: str q1, [sp, #64] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q1, [sp, #64] // 16-byte Spill +; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: mov h1, v1.h[5] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] -; CHECK-SD-NEXT: str q1, [sp, #64] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q1, [sp, #64] // 16-byte Spill +; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: mov h1, v1.h[6] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] -; CHECK-SD-NEXT: str q1, [sp, #64] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q1, [sp, #64] // 16-byte Spill +; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: mov h1, v1.h[7] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[7], v0.h[0] -; CHECK-SD-NEXT: str q1, [sp, #64] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #64] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov h0, v0.h[1] ; CHECK-SD-NEXT: mov h1, v1.h[1] @@ -1301,7 +1301,7 @@ define <16 x half> @frem_v16f16(<16 x half> %a, <16 x half> %b) { ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: fcvt s1, h1 @@ -1311,15 +1311,15 @@ define <16 x half> @frem_v16f16(<16 x half> %a, <16 x half> %b) { ; CHECK-SD-NEXT: mov h1, v1.h[2] ; CHECK-SD-NEXT: mov v0.h[1], v2.h[0] ; CHECK-SD-NEXT: fcvt s1, h1 -; CHECK-SD-NEXT: str q0, [sp, #48] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #48] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: str q1, [sp, #48] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #48] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] ; CHECK-SD-NEXT: mov h1, v1.h[3] @@ -1327,9 +1327,9 @@ define <16 x half> @frem_v16f16(<16 x half> %a, <16 x half> %b) { ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: str q1, [sp, #48] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #48] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] ; CHECK-SD-NEXT: mov h1, v1.h[4] @@ -1337,9 +1337,9 @@ define <16 x half> @frem_v16f16(<16 x half> %a, <16 x half> %b) { ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: str q1, [sp, #48] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #48] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] ; CHECK-SD-NEXT: mov h1, v1.h[5] @@ -1347,9 +1347,9 @@ define <16 x half> @frem_v16f16(<16 x half> %a, <16 x half> %b) { ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: str q1, [sp, #48] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #48] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] ; CHECK-SD-NEXT: mov h1, v1.h[6] @@ -1357,9 +1357,9 @@ define <16 x half> @frem_v16f16(<16 x half> %a, <16 x half> %b) { ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #48] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: str q1, [sp, #48] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #48] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] ; CHECK-SD-NEXT: mov h1, v1.h[7] @@ -1367,7 +1367,7 @@ define <16 x half> @frem_v16f16(<16 x half> %a, <16 x half> %b) { ; CHECK-SD-NEXT: fcvt s1, h1 ; CHECK-SD-NEXT: bl fmodf ; CHECK-SD-NEXT: fmov s1, s0 -; CHECK-SD-NEXT: ldr x30, [sp, #80] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #80] // 8-byte Reload ; CHECK-SD-NEXT: fcvt h2, s1 ; CHECK-SD-NEXT: ldp q1, q0, [sp, #48] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov v1.h[7], v2.h[0] @@ -1394,203 +1394,203 @@ define <16 x half> @frem_v16f16(<16 x half> %a, <16 x half> %b) { ; CHECK-GI-NEXT: .cfi_offset b14, -72 ; CHECK-GI-NEXT: .cfi_offset b15, -80 ; CHECK-GI-NEXT: mov v4.16b, v1.16b -; CHECK-GI-NEXT: str q1, [sp, #112] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp, #112] // 16-byte Spill ; CHECK-GI-NEXT: mov h1, v0.h[4] ; CHECK-GI-NEXT: mov h12, v0.h[1] ; CHECK-GI-NEXT: mov h13, v0.h[2] -; CHECK-GI-NEXT: str q3, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q3, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: mov h14, v0.h[3] ; CHECK-GI-NEXT: mov h15, v2.h[1] ; CHECK-GI-NEXT: mov h8, v2.h[2] ; CHECK-GI-NEXT: mov h9, v2.h[3] ; CHECK-GI-NEXT: mov h10, v2.h[4] ; CHECK-GI-NEXT: mov h11, v2.h[5] -; CHECK-GI-NEXT: str h1, [sp, #272] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #272] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v0.h[5] -; CHECK-GI-NEXT: str h1, [sp, #240] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #240] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v0.h[6] -; CHECK-GI-NEXT: str h1, [sp, #176] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #176] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v0.h[7] ; CHECK-GI-NEXT: fcvt s0, h0 -; CHECK-GI-NEXT: str h1, [sp, #144] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #144] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v4.h[1] -; CHECK-GI-NEXT: str h1, [sp, #48] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #48] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v4.h[2] -; CHECK-GI-NEXT: str h1, [sp, #80] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #80] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v4.h[3] -; CHECK-GI-NEXT: str h1, [sp, #128] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #128] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v4.h[4] -; CHECK-GI-NEXT: str h1, [sp, #192] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #192] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v4.h[5] -; CHECK-GI-NEXT: str h1, [sp, #256] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #256] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v4.h[6] -; CHECK-GI-NEXT: str h1, [sp, #336] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #336] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v4.h[7] -; CHECK-GI-NEXT: str h1, [sp, #352] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #352] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[6] -; CHECK-GI-NEXT: str h1, [sp, #12] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #12] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[7] -; CHECK-GI-NEXT: str h1, [sp, #14] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #14] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v3.h[1] -; CHECK-GI-NEXT: str h1, [sp, #44] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #44] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v3.h[2] -; CHECK-GI-NEXT: str h1, [sp, #46] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #46] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v3.h[3] -; CHECK-GI-NEXT: str h1, [sp, #78] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #78] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v3.h[4] -; CHECK-GI-NEXT: str h1, [sp, #110] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #110] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v3.h[5] -; CHECK-GI-NEXT: str h1, [sp, #174] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #174] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v3.h[6] -; CHECK-GI-NEXT: str h1, [sp, #238] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #238] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v3.h[7] -; CHECK-GI-NEXT: str h1, [sp, #302] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #302] // 2-byte Spill ; CHECK-GI-NEXT: fcvt s1, h2 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: fcvt s2, h12 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h15 -; CHECK-GI-NEXT: str q0, [sp, #304] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #304] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: fcvt s2, h13 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h8 -; CHECK-GI-NEXT: str q0, [sp, #208] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #208] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl fmodf ; CHECK-GI-NEXT: fcvt s2, h14 ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h9 -; CHECK-GI-NEXT: str q0, [sp, #320] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #320] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl fmodf -; CHECK-GI-NEXT: ldr h1, [sp, #272] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #272] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s2, h1 ; CHECK-GI-NEXT: fcvt s1, h10 -; CHECK-GI-NEXT: str q0, [sp, #272] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #272] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl fmodf -; CHECK-GI-NEXT: ldr h1, [sp, #240] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #240] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s2, h1 ; CHECK-GI-NEXT: fcvt s1, h11 -; CHECK-GI-NEXT: str q0, [sp, #240] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #240] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl fmodf -; CHECK-GI-NEXT: ldr h1, [sp, #176] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #176] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s2, h1 -; CHECK-GI-NEXT: str q0, [sp, #176] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr h0, [sp, #12] // 2-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #176] // 16-byte Spill +; CHECK-GI-NEXT: ldr h0, [sp, #12] // 2-byte Reload ; CHECK-GI-NEXT: fcvt s1, h0 ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl fmodf -; CHECK-GI-NEXT: ldr h1, [sp, #144] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #144] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s2, h1 -; CHECK-GI-NEXT: str q0, [sp, #144] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr h0, [sp, #14] // 2-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #144] // 16-byte Spill +; CHECK-GI-NEXT: ldr h0, [sp, #14] // 2-byte Reload ; CHECK-GI-NEXT: fcvt s1, h0 ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl fmodf -; CHECK-GI-NEXT: ldr q1, [sp, #112] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #112] // 16-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s2, h1 -; CHECK-GI-NEXT: str q0, [sp, #112] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #112] // 16-byte Spill +; CHECK-GI-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-GI-NEXT: fcvt s1, h0 ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl fmodf -; CHECK-GI-NEXT: ldr h1, [sp, #48] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #48] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s2, h1 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr h0, [sp, #44] // 2-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill +; CHECK-GI-NEXT: ldr h0, [sp, #44] // 2-byte Reload ; CHECK-GI-NEXT: fcvt s1, h0 ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl fmodf -; CHECK-GI-NEXT: ldr h1, [sp, #80] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #80] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s2, h1 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr h0, [sp, #46] // 2-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill +; CHECK-GI-NEXT: ldr h0, [sp, #46] // 2-byte Reload ; CHECK-GI-NEXT: fcvt s1, h0 ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl fmodf -; CHECK-GI-NEXT: ldr h1, [sp, #128] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #128] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s2, h1 -; CHECK-GI-NEXT: str q0, [sp, #128] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr h0, [sp, #78] // 2-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #128] // 16-byte Spill +; CHECK-GI-NEXT: ldr h0, [sp, #78] // 2-byte Reload ; CHECK-GI-NEXT: fcvt s1, h0 ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl fmodf -; CHECK-GI-NEXT: ldr h1, [sp, #192] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #192] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s2, h1 -; CHECK-GI-NEXT: str q0, [sp, #192] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr h0, [sp, #110] // 2-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #192] // 16-byte Spill +; CHECK-GI-NEXT: ldr h0, [sp, #110] // 2-byte Reload ; CHECK-GI-NEXT: fcvt s1, h0 ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl fmodf -; CHECK-GI-NEXT: ldr h1, [sp, #256] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #256] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s2, h1 -; CHECK-GI-NEXT: str q0, [sp, #256] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr h0, [sp, #174] // 2-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #256] // 16-byte Spill +; CHECK-GI-NEXT: ldr h0, [sp, #174] // 2-byte Reload ; CHECK-GI-NEXT: fcvt s1, h0 ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl fmodf -; CHECK-GI-NEXT: ldr h1, [sp, #336] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #336] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s2, h1 -; CHECK-GI-NEXT: str q0, [sp, #336] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr h0, [sp, #238] // 2-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #336] // 16-byte Spill +; CHECK-GI-NEXT: ldr h0, [sp, #238] // 2-byte Reload ; CHECK-GI-NEXT: fcvt s1, h0 ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl fmodf -; CHECK-GI-NEXT: ldr h1, [sp, #352] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #352] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s2, h1 -; CHECK-GI-NEXT: str q0, [sp, #352] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr h0, [sp, #302] // 2-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #352] // 16-byte Spill +; CHECK-GI-NEXT: ldr h0, [sp, #302] // 2-byte Reload ; CHECK-GI-NEXT: fcvt s1, h0 ; CHECK-GI-NEXT: fmov s0, s2 ; CHECK-GI-NEXT: bl fmodf -; CHECK-GI-NEXT: ldr q3, [sp, #304] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr q2, [sp, #208] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr q1, [sp, #48] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q3, [sp, #304] // 16-byte Reload +; CHECK-GI-NEXT: ldr q2, [sp, #208] // 16-byte Reload +; CHECK-GI-NEXT: ldr q1, [sp, #48] // 16-byte Reload ; CHECK-GI-NEXT: ldp x29, x30, [sp, #432] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v3.h[1], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #416] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[1], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #320] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #320] // 16-byte Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #400] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v3.h[2], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #128] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #128] // 16-byte Reload ; CHECK-GI-NEXT: ldp d13, d12, [sp, #384] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #272] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #272] // 16-byte Reload ; CHECK-GI-NEXT: ldp d15, d14, [sp, #368] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v3.h[3], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #192] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #192] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[3], v2.h[0] ; CHECK-GI-NEXT: ldp q4, q2, [sp, #240] // 32-byte Folded Reload ; CHECK-GI-NEXT: mov v3.h[4], v4.h[0] ; CHECK-GI-NEXT: mov v1.h[4], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #176] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #176] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[5], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #336] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #336] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[5], v2.h[0] ; CHECK-GI-NEXT: fcvt h2, s0 -; CHECK-GI-NEXT: ldr q0, [sp, #144] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #144] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[6], v0.h[0] -; CHECK-GI-NEXT: ldr q0, [sp, #352] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #352] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[6], v0.h[0] -; CHECK-GI-NEXT: ldr q0, [sp, #112] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #112] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[7], v0.h[0] ; CHECK-GI-NEXT: mov v1.h[7], v2.h[0] ; CHECK-GI-NEXT: mov v0.16b, v3.16b @@ -1605,36 +1605,36 @@ define <2 x fp128> @frem_v2fp128(<2 x fp128> %a, <2 x fp128> %b) { ; CHECK-SD-LABEL: frem_v2fp128: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: stp q1, q3, [sp, #16] // 32-byte Folded Spill ; CHECK-SD-NEXT: mov v1.16b, v2.16b ; CHECK-SD-NEXT: bl fmodl -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: bl fmodl ; CHECK-SD-NEXT: mov v1.16b, v0.16b -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: add sp, sp, #64 ; CHECK-SD-NEXT: ret ; ; CHECK-GI-LABEL: frem_v2fp128: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #64 -; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 64 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: stp q3, q1, [sp, #16] // 32-byte Folded Spill ; CHECK-GI-NEXT: mov v1.16b, v2.16b ; CHECK-GI-NEXT: bl fmodl -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: ldp q1, q0, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: bl fmodl ; CHECK-GI-NEXT: mov v1.16b, v0.16b -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: add sp, sp, #64 ; CHECK-GI-NEXT: ret entry: diff --git a/llvm/test/CodeGen/AArch64/fsincos.ll b/llvm/test/CodeGen/AArch64/fsincos.ll index 98ba908da409e..a3b90765f186a 100644 --- a/llvm/test/CodeGen/AArch64/fsincos.ll +++ b/llvm/test/CodeGen/AArch64/fsincos.ll @@ -58,18 +58,18 @@ define <2 x double> @sin_v2f64(<2 x double> %a) nounwind { ; CHECK-SD-LABEL: sin_v2f64: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov d0, v0.d[1] -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: bl sin ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: bl sin -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.d[1], v1.d[0] ; CHECK-SD-NEXT: add sp, sp, #48 ; CHECK-SD-NEXT: ret @@ -77,19 +77,19 @@ define <2 x double> @sin_v2f64(<2 x double> %a) nounwind { ; CHECK-GI-LABEL: sin_v2f64: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #32 -; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Spill ; CHECK-GI-NEXT: mov d8, v0.d[1] ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 -; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-GI-NEXT: bl sin ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov d0, d8 ; CHECK-GI-NEXT: bl sin -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload -; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Reload +; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.d[1], v0.d[0] ; CHECK-GI-NEXT: mov v0.16b, v1.16b ; CHECK-GI-NEXT: add sp, sp, #32 @@ -106,7 +106,7 @@ define <3 x double> @sin_v3f64(<3 x double> %a) nounwind { ; CHECK-SD-NEXT: stp d9, d8, [sp, #8] // 16-byte Folded Spill ; CHECK-SD-NEXT: fmov d8, d2 ; CHECK-SD-NEXT: fmov d9, d1 -; CHECK-SD-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-SD-NEXT: bl sin ; CHECK-SD-NEXT: fmov d10, d0 ; CHECK-SD-NEXT: fmov d0, d9 @@ -116,7 +116,7 @@ define <3 x double> @sin_v3f64(<3 x double> %a) nounwind { ; CHECK-SD-NEXT: bl sin ; CHECK-SD-NEXT: fmov d1, d9 ; CHECK-SD-NEXT: ldp d9, d8, [sp, #8] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #24] // 8-byte Reload ; CHECK-SD-NEXT: fmov d2, d0 ; CHECK-SD-NEXT: fmov d0, d10 ; CHECK-SD-NEXT: ldr d10, [sp], #32 // 8-byte Folded Reload @@ -128,7 +128,7 @@ define <3 x double> @sin_v3f64(<3 x double> %a) nounwind { ; CHECK-GI-NEXT: stp d9, d8, [sp, #8] // 16-byte Folded Spill ; CHECK-GI-NEXT: fmov d8, d1 ; CHECK-GI-NEXT: fmov d9, d2 -; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-GI-NEXT: bl sin ; CHECK-GI-NEXT: fmov d10, d0 ; CHECK-GI-NEXT: fmov d0, d8 @@ -138,7 +138,7 @@ define <3 x double> @sin_v3f64(<3 x double> %a) nounwind { ; CHECK-GI-NEXT: bl sin ; CHECK-GI-NEXT: fmov d1, d8 ; CHECK-GI-NEXT: ldp d9, d8, [sp, #8] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Reload ; CHECK-GI-NEXT: fmov d2, d0 ; CHECK-GI-NEXT: fmov d0, d10 ; CHECK-GI-NEXT: ldr d10, [sp], #32 // 8-byte Folded Reload @@ -152,31 +152,31 @@ define <4 x double> @sin_v4f64(<4 x double> %a) nounwind { ; CHECK-SD-LABEL: sin_v4f64: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov d0, v0.d[1] -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: bl sin ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: bl sin -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-SD-NEXT: mov v0.d[1], v1.d[0] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov d0, v0.d[1] ; CHECK-SD-NEXT: bl sin ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: bl sin ; CHECK-SD-NEXT: fmov d1, d0 ; CHECK-SD-NEXT: ldp q2, q0, [sp] // 32-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: mov v1.d[1], v2.d[0] ; CHECK-SD-NEXT: add sp, sp, #64 ; CHECK-SD-NEXT: ret @@ -187,29 +187,29 @@ define <4 x double> @sin_v4f64(<4 x double> %a) nounwind { ; CHECK-GI-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill ; CHECK-GI-NEXT: mov d8, v0.d[1] ; CHECK-GI-NEXT: mov d9, v1.d[1] -; CHECK-GI-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 -; CHECK-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-GI-NEXT: bl sin ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov d0, d8 ; CHECK-GI-NEXT: bl sin ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-GI-NEXT: bl sin ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov d0, d9 ; CHECK-GI-NEXT: bl sin ; CHECK-GI-NEXT: ldp q1, q2, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v2.d[1], v1.d[0] -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.d[1], v0.d[0] ; CHECK-GI-NEXT: mov v0.16b, v2.16b ; CHECK-GI-NEXT: add sp, sp, #80 @@ -224,18 +224,18 @@ define <2 x float> @sin_v2f32(<2 x float> %a) nounwind { ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov s0, v0.s[1] -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl sinf -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: add sp, sp, #48 @@ -245,19 +245,19 @@ define <2 x float> @sin_v2f32(<2 x float> %a) nounwind { ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #32 ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Spill ; CHECK-GI-NEXT: mov s8, v0.s[1] -; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl sinf -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload -; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Reload +; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.s[1], v0.s[0] ; CHECK-GI-NEXT: fmov d0, d1 ; CHECK-GI-NEXT: add sp, sp, #32 @@ -271,25 +271,25 @@ define <3 x float> @sin_v3f32(<3 x float> %a) nounwind { ; CHECK-SD-LABEL: sin_v3f32: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: mov s0, v0.s[1] -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl sinf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: bl sinf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] ; CHECK-SD-NEXT: mov v0.16b, v1.16b ; CHECK-SD-NEXT: add sp, sp, #48 @@ -301,20 +301,20 @@ define <3 x float> @sin_v3f32(<3 x float> %a) nounwind { ; CHECK-GI-NEXT: stp d9, d8, [sp, #32] // 16-byte Folded Spill ; CHECK-GI-NEXT: mov s8, v0.s[1] ; CHECK-GI-NEXT: mov s9, v0.s[2] -; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s9 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: ldp q2, q1, [sp] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #32] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.s[1], v2.s[0] ; CHECK-GI-NEXT: mov v1.s[2], v0.s[0] @@ -330,32 +330,32 @@ define <4 x float> @sin_v4f32(<4 x float> %a) nounwind { ; CHECK-SD-LABEL: sin_v4f32: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: mov s0, v0.s[1] -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl sinf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: bl sinf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[3] -; CHECK-SD-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl sinf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v1.s[3], v0.s[0] ; CHECK-SD-NEXT: mov v0.16b, v1.16b ; CHECK-SD-NEXT: add sp, sp, #48 @@ -364,33 +364,33 @@ define <4 x float> @sin_v4f32(<4 x float> %a) nounwind { ; CHECK-GI-LABEL: sin_v4f32: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #80 -; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: mov s10, v0.s[3] ; CHECK-GI-NEXT: stp d9, d8, [sp, #56] // 16-byte Folded Spill ; CHECK-GI-NEXT: mov s8, v0.s[1] ; CHECK-GI-NEXT: mov s9, v0.s[2] -; CHECK-GI-NEXT: str x30, [sp, #72] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #72] // 8-byte Spill ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s9 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s10 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: ldp q2, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #72] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #72] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #56] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.s[1], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.s[2], v2.s[0] ; CHECK-GI-NEXT: mov v1.s[3], v0.s[0] ; CHECK-GI-NEXT: mov v0.16b, v1.16b @@ -407,57 +407,57 @@ define <8 x float> @sin_v8f32(<8 x float> %a) nounwind { ; CHECK-SD-NEXT: sub sp, sp, #64 ; CHECK-SD-NEXT: stp q0, q1, [sp] // 32-byte Folded Spill ; CHECK-SD-NEXT: mov s0, v0.s[1] -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl sinf -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: bl sinf -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[3] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: bl sinf -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v1.s[3], v0.s[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[1] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl sinf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: bl sinf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[3] -; CHECK-SD-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: fmov s2, s0 -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: mov v1.s[3], v2.s[0] ; CHECK-SD-NEXT: add sp, sp, #64 ; CHECK-SD-NEXT: ret @@ -474,53 +474,53 @@ define <8 x float> @sin_v8f32(<8 x float> %a) nounwind { ; CHECK-GI-NEXT: stp d9, d8, [sp, #144] // 16-byte Folded Spill ; CHECK-GI-NEXT: mov s8, v0.s[1] ; CHECK-GI-NEXT: mov s9, v0.s[2] -; CHECK-GI-NEXT: str x30, [sp, #160] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #160] // 8-byte Spill ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 -; CHECK-GI-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s9 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s10 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill +; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s11 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s12 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s13 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: ldp q2, q1, [sp, #48] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #160] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #160] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #144] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #128] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.s[1], v2.s[0] ; CHECK-GI-NEXT: ldp q2, q3, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: ldp d13, d12, [sp, #112] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v3.s[1], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp, #96] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #96] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.s[2], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.s[2], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.s[3], v2.s[0] ; CHECK-GI-NEXT: mov v3.s[3], v0.s[0] ; CHECK-GI-NEXT: mov v2.16b, v1.16b @@ -538,66 +538,66 @@ define <7 x half> @sin_v7f16(<7 x half> %a) nounwind { ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 ; CHECK-SD-NEXT: mov h1, v0.h[1] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: fcvt s0, h1 ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v0.h[1], v1.h[0] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: fcvt h1, s0 -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.h[7], v1.h[0] ; CHECK-SD-NEXT: add sp, sp, #48 ; CHECK-SD-NEXT: ret @@ -615,51 +615,51 @@ define <7 x half> @sin_v7f16(<7 x half> %a) nounwind { ; CHECK-GI-NEXT: mov h8, v0.h[1] ; CHECK-GI-NEXT: mov h9, v0.h[2] ; CHECK-GI-NEXT: fcvt s0, h0 -; CHECK-GI-NEXT: str x30, [sp, #144] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #144] // 8-byte Spill ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: fcvt s1, h8 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: fcvt s1, h9 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: fcvt s1, h10 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: fcvt s1, h11 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: fcvt s1, h12 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: fcvt s1, h13 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: ldp q3, q2, [sp, #48] // 32-byte Folded Reload ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: ldr q1, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #128] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #112] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #144] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #144] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.h[1], v3.h[0] ; CHECK-GI-NEXT: ldp d13, d12, [sp, #96] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] ; CHECK-GI-NEXT: ldp q2, q3, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[3], v3.h[0] ; CHECK-GI-NEXT: mov v1.h[4], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[5], v2.h[0] ; CHECK-GI-NEXT: mov v1.h[6], v0.h[0] ; CHECK-GI-NEXT: mov v0.16b, v1.16b @@ -676,35 +676,35 @@ define <4 x half> @sin_v4f16(<4 x half> %a) nounwind { ; CHECK-SD-NEXT: sub sp, sp, #48 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-SD-NEXT: mov h1, v0.h[1] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: fcvt s0, h1 ; CHECK-SD-NEXT: bl sinf -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: fcvt h0, s0 ; CHECK-SD-NEXT: fcvt s1, h1 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: fmov s0, s1 ; CHECK-SD-NEXT: bl sinf -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: fcvt h2, s0 ; CHECK-SD-NEXT: mov h1, v1.h[2] ; CHECK-SD-NEXT: fcvt s0, h1 -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov v2.h[1], v1.h[0] -; CHECK-SD-NEXT: str q2, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q2, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl sinf -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: fcvt h2, s0 ; CHECK-SD-NEXT: mov h1, v1.h[3] ; CHECK-SD-NEXT: fcvt s0, h1 -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v2.h[0] -; CHECK-SD-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: fcvt h1, s0 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.h[3], v1.h[0] ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: add sp, sp, #48 @@ -714,35 +714,35 @@ define <4 x half> @sin_v4f16(<4 x half> %a) nounwind { ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #80 ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: mov h10, v0.h[3] ; CHECK-GI-NEXT: stp d9, d8, [sp, #56] // 16-byte Folded Spill ; CHECK-GI-NEXT: mov h8, v0.h[1] ; CHECK-GI-NEXT: mov h9, v0.h[2] ; CHECK-GI-NEXT: fcvt s0, h0 -; CHECK-GI-NEXT: str x30, [sp, #72] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #72] // 8-byte Spill ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: fcvt s1, h8 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: fcvt s1, h9 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: fcvt s1, h10 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: ldp q3, q2, [sp] // 32-byte Folded Reload ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #56] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #72] // 8-byte Folded Reload -; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #72] // 8-byte Reload +; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.h[1], v3.h[0] ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] ; CHECK-GI-NEXT: mov v1.h[3], v0.h[0] @@ -760,66 +760,66 @@ define <8 x half> @sin_v8f16(<8 x half> %a) nounwind { ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 ; CHECK-SD-NEXT: mov h1, v0.h[1] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: fcvt s0, h1 ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v0.h[1], v1.h[0] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: fcvt h1, s0 -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.h[7], v1.h[0] ; CHECK-SD-NEXT: add sp, sp, #48 ; CHECK-SD-NEXT: ret @@ -827,7 +827,7 @@ define <8 x half> @sin_v8f16(<8 x half> %a) nounwind { ; CHECK-GI-LABEL: sin_v8f16: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #176 -; CHECK-GI-NEXT: str d14, [sp, #112] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d14, [sp, #112] // 8-byte Spill ; CHECK-GI-NEXT: mov h14, v0.h[7] ; CHECK-GI-NEXT: stp d13, d12, [sp, #120] // 16-byte Folded Spill ; CHECK-GI-NEXT: mov h12, v0.h[5] @@ -839,51 +839,51 @@ define <8 x half> @sin_v8f16(<8 x half> %a) nounwind { ; CHECK-GI-NEXT: mov h8, v0.h[1] ; CHECK-GI-NEXT: mov h9, v0.h[2] ; CHECK-GI-NEXT: fcvt s0, h0 -; CHECK-GI-NEXT: str x30, [sp, #168] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #168] // 8-byte Spill ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: fcvt s1, h8 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: fcvt s1, h9 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: fcvt s1, h10 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: fcvt s1, h11 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: fcvt s1, h12 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: fcvt s1, h13 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: fcvt s1, h14 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: ldp q3, q2, [sp, #64] // 32-byte Folded Reload ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: ldr q1, [sp, #96] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #96] // 16-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #152] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #136] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #168] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #168] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.h[1], v3.h[0] -; CHECK-GI-NEXT: ldr d14, [sp, #112] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr d14, [sp, #112] // 8-byte Reload ; CHECK-GI-NEXT: ldp d13, d12, [sp, #120] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] ; CHECK-GI-NEXT: ldp q2, q3, [sp, #32] // 32-byte Folded Reload @@ -907,125 +907,125 @@ define <16 x half> @sin_v16f16(<16 x half> %a) nounwind { ; CHECK-SD-NEXT: sub sp, sp, #64 ; CHECK-SD-NEXT: stp q1, q0, [sp] // 32-byte Folded Spill ; CHECK-SD-NEXT: mov h1, v0.h[1] -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: fcvt s0, h1 ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v0.h[1], v1.h[0] -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[7], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[1] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v0.h[1], v1.h[0] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl sinf ; CHECK-SD-NEXT: fmov s1, s0 -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: fcvt h2, s1 ; CHECK-SD-NEXT: ldp q1, q0, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov v1.h[7], v2.h[0] @@ -1038,7 +1038,7 @@ define <16 x half> @sin_v16f16(<16 x half> %a) nounwind { ; CHECK-GI-NEXT: stp d15, d14, [sp, #240] // 16-byte Folded Spill ; CHECK-GI-NEXT: mov v2.16b, v1.16b ; CHECK-GI-NEXT: mov h14, v1.h[1] -; CHECK-GI-NEXT: str q1, [sp, #80] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp, #80] // 16-byte Spill ; CHECK-GI-NEXT: mov h1, v1.h[2] ; CHECK-GI-NEXT: mov h15, v0.h[1] ; CHECK-GI-NEXT: stp d13, d12, [sp, #256] // 16-byte Folded Spill @@ -1050,134 +1050,134 @@ define <16 x half> @sin_v16f16(<16 x half> %a) nounwind { ; CHECK-GI-NEXT: stp d9, d8, [sp, #288] // 16-byte Folded Spill ; CHECK-GI-NEXT: mov h8, v0.h[2] ; CHECK-GI-NEXT: mov h9, v0.h[3] -; CHECK-GI-NEXT: str h1, [sp, #16] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #16] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[3] ; CHECK-GI-NEXT: fcvt s0, h0 ; CHECK-GI-NEXT: stp x29, x30, [sp, #304] // 16-byte Folded Spill -; CHECK-GI-NEXT: str h1, [sp, #32] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #32] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[4] -; CHECK-GI-NEXT: str h1, [sp, #48] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #48] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[5] -; CHECK-GI-NEXT: str h1, [sp, #64] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #64] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[6] -; CHECK-GI-NEXT: str h1, [sp, #96] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #96] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[7] -; CHECK-GI-NEXT: str h1, [sp, #160] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #160] // 2-byte Spill ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: fcvt s1, h15 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #192] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #192] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: fcvt s1, h8 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #112] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #112] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: fcvt s1, h9 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #224] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #224] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: fcvt s1, h10 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #208] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #208] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: fcvt s1, h11 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #176] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #176] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: fcvt s1, h12 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #144] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #144] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: fcvt s1, h13 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #128] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #128] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl sinf -; CHECK-GI-NEXT: ldr q1, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl sinf ; CHECK-GI-NEXT: fcvt s1, h14 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl sinf -; CHECK-GI-NEXT: ldr h1, [sp, #16] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #16] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl sinf -; CHECK-GI-NEXT: ldr h1, [sp, #32] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #32] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl sinf -; CHECK-GI-NEXT: ldr h1, [sp, #48] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #48] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl sinf -; CHECK-GI-NEXT: ldr h1, [sp, #64] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #64] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl sinf -; CHECK-GI-NEXT: ldr h1, [sp, #96] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #96] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl sinf -; CHECK-GI-NEXT: ldr h1, [sp, #160] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #160] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #160] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #160] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl sinf -; CHECK-GI-NEXT: ldr q3, [sp, #192] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr q2, [sp, #112] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q3, [sp, #192] // 16-byte Reload +; CHECK-GI-NEXT: ldr q2, [sp, #112] // 16-byte Reload ; CHECK-GI-NEXT: ldp x29, x30, [sp, #304] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v3.h[1], v2.h[0] ; CHECK-GI-NEXT: ldp q1, q2, [sp] // 32-byte Folded Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #288] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #272] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[1], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #224] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #224] // 16-byte Reload ; CHECK-GI-NEXT: ldp d13, d12, [sp, #256] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v3.h[2], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: ldp d15, d14, [sp, #240] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #208] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #208] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[3], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #48] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #48] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[3], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #176] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #176] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[4], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #64] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #64] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[4], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #144] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #144] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[5], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #96] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #96] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[5], v2.h[0] ; CHECK-GI-NEXT: fcvt h2, s0 -; CHECK-GI-NEXT: ldr q0, [sp, #128] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #128] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[6], v0.h[0] -; CHECK-GI-NEXT: ldr q0, [sp, #160] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #160] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[6], v0.h[0] -; CHECK-GI-NEXT: ldr q0, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[7], v0.h[0] ; CHECK-GI-NEXT: mov v1.h[7], v2.h[0] ; CHECK-GI-NEXT: mov v0.16b, v3.16b @@ -1192,15 +1192,15 @@ define <2 x fp128> @sin_v2fp128(<2 x fp128> %a) nounwind { ; CHECK-LABEL: sin_v2fp128: ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill -; CHECK-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill +; CHECK-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-NEXT: bl sinl -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: bl sinl ; CHECK-NEXT: mov v1.16b, v0.16b -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #48 ; CHECK-NEXT: ret entry: @@ -1264,18 +1264,18 @@ define <2 x double> @cos_v2f64(<2 x double> %a) nounwind { ; CHECK-SD-LABEL: cos_v2f64: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov d0, v0.d[1] -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: bl cos ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: bl cos -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.d[1], v1.d[0] ; CHECK-SD-NEXT: add sp, sp, #48 ; CHECK-SD-NEXT: ret @@ -1283,19 +1283,19 @@ define <2 x double> @cos_v2f64(<2 x double> %a) nounwind { ; CHECK-GI-LABEL: cos_v2f64: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #32 -; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Spill ; CHECK-GI-NEXT: mov d8, v0.d[1] ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 -; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-GI-NEXT: bl cos ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov d0, d8 ; CHECK-GI-NEXT: bl cos -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload -; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Reload +; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.d[1], v0.d[0] ; CHECK-GI-NEXT: mov v0.16b, v1.16b ; CHECK-GI-NEXT: add sp, sp, #32 @@ -1312,7 +1312,7 @@ define <3 x double> @cos_v3f64(<3 x double> %a) nounwind { ; CHECK-SD-NEXT: stp d9, d8, [sp, #8] // 16-byte Folded Spill ; CHECK-SD-NEXT: fmov d8, d2 ; CHECK-SD-NEXT: fmov d9, d1 -; CHECK-SD-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-SD-NEXT: bl cos ; CHECK-SD-NEXT: fmov d10, d0 ; CHECK-SD-NEXT: fmov d0, d9 @@ -1322,7 +1322,7 @@ define <3 x double> @cos_v3f64(<3 x double> %a) nounwind { ; CHECK-SD-NEXT: bl cos ; CHECK-SD-NEXT: fmov d1, d9 ; CHECK-SD-NEXT: ldp d9, d8, [sp, #8] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #24] // 8-byte Reload ; CHECK-SD-NEXT: fmov d2, d0 ; CHECK-SD-NEXT: fmov d0, d10 ; CHECK-SD-NEXT: ldr d10, [sp], #32 // 8-byte Folded Reload @@ -1334,7 +1334,7 @@ define <3 x double> @cos_v3f64(<3 x double> %a) nounwind { ; CHECK-GI-NEXT: stp d9, d8, [sp, #8] // 16-byte Folded Spill ; CHECK-GI-NEXT: fmov d8, d1 ; CHECK-GI-NEXT: fmov d9, d2 -; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-GI-NEXT: bl cos ; CHECK-GI-NEXT: fmov d10, d0 ; CHECK-GI-NEXT: fmov d0, d8 @@ -1344,7 +1344,7 @@ define <3 x double> @cos_v3f64(<3 x double> %a) nounwind { ; CHECK-GI-NEXT: bl cos ; CHECK-GI-NEXT: fmov d1, d8 ; CHECK-GI-NEXT: ldp d9, d8, [sp, #8] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Reload ; CHECK-GI-NEXT: fmov d2, d0 ; CHECK-GI-NEXT: fmov d0, d10 ; CHECK-GI-NEXT: ldr d10, [sp], #32 // 8-byte Folded Reload @@ -1358,31 +1358,31 @@ define <4 x double> @cos_v4f64(<4 x double> %a) nounwind { ; CHECK-SD-LABEL: cos_v4f64: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov d0, v0.d[1] -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: bl cos ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: bl cos -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-SD-NEXT: mov v0.d[1], v1.d[0] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov d0, v0.d[1] ; CHECK-SD-NEXT: bl cos ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: bl cos ; CHECK-SD-NEXT: fmov d1, d0 ; CHECK-SD-NEXT: ldp q2, q0, [sp] // 32-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: mov v1.d[1], v2.d[0] ; CHECK-SD-NEXT: add sp, sp, #64 ; CHECK-SD-NEXT: ret @@ -1393,29 +1393,29 @@ define <4 x double> @cos_v4f64(<4 x double> %a) nounwind { ; CHECK-GI-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill ; CHECK-GI-NEXT: mov d8, v0.d[1] ; CHECK-GI-NEXT: mov d9, v1.d[1] -; CHECK-GI-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 -; CHECK-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-GI-NEXT: bl cos ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov d0, d8 ; CHECK-GI-NEXT: bl cos ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-GI-NEXT: bl cos ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov d0, d9 ; CHECK-GI-NEXT: bl cos ; CHECK-GI-NEXT: ldp q1, q2, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v2.d[1], v1.d[0] -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.d[1], v0.d[0] ; CHECK-GI-NEXT: mov v0.16b, v2.16b ; CHECK-GI-NEXT: add sp, sp, #80 @@ -1430,18 +1430,18 @@ define <2 x float> @cos_v2f32(<2 x float> %a) nounwind { ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov s0, v0.s[1] -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl cosf -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: add sp, sp, #48 @@ -1451,19 +1451,19 @@ define <2 x float> @cos_v2f32(<2 x float> %a) nounwind { ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #32 ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d8, [sp, #16] // 8-byte Spill ; CHECK-GI-NEXT: mov s8, v0.s[1] -; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl cosf -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload -; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #24] // 8-byte Reload +; CHECK-GI-NEXT: ldr d8, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.s[1], v0.s[0] ; CHECK-GI-NEXT: fmov d0, d1 ; CHECK-GI-NEXT: add sp, sp, #32 @@ -1477,25 +1477,25 @@ define <3 x float> @cos_v3f32(<3 x float> %a) nounwind { ; CHECK-SD-LABEL: cos_v3f32: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: mov s0, v0.s[1] -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl cosf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: bl cosf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] ; CHECK-SD-NEXT: mov v0.16b, v1.16b ; CHECK-SD-NEXT: add sp, sp, #48 @@ -1507,20 +1507,20 @@ define <3 x float> @cos_v3f32(<3 x float> %a) nounwind { ; CHECK-GI-NEXT: stp d9, d8, [sp, #32] // 16-byte Folded Spill ; CHECK-GI-NEXT: mov s8, v0.s[1] ; CHECK-GI-NEXT: mov s9, v0.s[2] -; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s9 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: ldp q2, q1, [sp] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #32] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.s[1], v2.s[0] ; CHECK-GI-NEXT: mov v1.s[2], v0.s[0] @@ -1536,32 +1536,32 @@ define <4 x float> @cos_v4f32(<4 x float> %a) nounwind { ; CHECK-SD-LABEL: cos_v4f32: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: mov s0, v0.s[1] -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl cosf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: bl cosf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[3] -; CHECK-SD-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl cosf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v1.s[3], v0.s[0] ; CHECK-SD-NEXT: mov v0.16b, v1.16b ; CHECK-SD-NEXT: add sp, sp, #48 @@ -1570,33 +1570,33 @@ define <4 x float> @cos_v4f32(<4 x float> %a) nounwind { ; CHECK-GI-LABEL: cos_v4f32: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #80 -; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: mov s10, v0.s[3] ; CHECK-GI-NEXT: stp d9, d8, [sp, #56] // 16-byte Folded Spill ; CHECK-GI-NEXT: mov s8, v0.s[1] ; CHECK-GI-NEXT: mov s9, v0.s[2] -; CHECK-GI-NEXT: str x30, [sp, #72] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #72] // 8-byte Spill ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s9 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s10 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: ldp q2, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #72] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #72] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #56] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.s[1], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.s[2], v2.s[0] ; CHECK-GI-NEXT: mov v1.s[3], v0.s[0] ; CHECK-GI-NEXT: mov v0.16b, v1.16b @@ -1613,57 +1613,57 @@ define <8 x float> @cos_v8f32(<8 x float> %a) nounwind { ; CHECK-SD-NEXT: sub sp, sp, #64 ; CHECK-SD-NEXT: stp q0, q1, [sp] // 32-byte Folded Spill ; CHECK-SD-NEXT: mov s0, v0.s[1] -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl cosf -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: bl cosf -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[3] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: bl cosf -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v1.s[3], v0.s[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[1] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl cosf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: bl cosf -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: mov v1.s[2], v0.s[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[3] -; CHECK-SD-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: fmov s2, s0 -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload +; CHECK-SD-NEXT: ldr q0, [sp, #32] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: mov v1.s[3], v2.s[0] ; CHECK-SD-NEXT: add sp, sp, #64 ; CHECK-SD-NEXT: ret @@ -1680,53 +1680,53 @@ define <8 x float> @cos_v8f32(<8 x float> %a) nounwind { ; CHECK-GI-NEXT: stp d9, d8, [sp, #144] // 16-byte Folded Spill ; CHECK-GI-NEXT: mov s8, v0.s[1] ; CHECK-GI-NEXT: mov s9, v0.s[2] -; CHECK-GI-NEXT: str x30, [sp, #160] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #160] // 8-byte Spill ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 -; CHECK-GI-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s9 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s10 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill +; CHECK-GI-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s11 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s12 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s13 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: ldp q2, q1, [sp, #48] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr x30, [sp, #160] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #160] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #144] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #128] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.s[1], v2.s[0] ; CHECK-GI-NEXT: ldp q2, q3, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: ldp d13, d12, [sp, #112] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v3.s[1], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp, #96] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #96] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.s[2], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.s[2], v2.s[0] -; CHECK-GI-NEXT: ldr q2, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.s[3], v2.s[0] ; CHECK-GI-NEXT: mov v3.s[3], v0.s[0] ; CHECK-GI-NEXT: mov v2.16b, v1.16b @@ -1744,66 +1744,66 @@ define <7 x half> @cos_v7f16(<7 x half> %a) nounwind { ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 ; CHECK-SD-NEXT: mov h1, v0.h[1] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: fcvt s0, h1 ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v0.h[1], v1.h[0] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: fcvt h1, s0 -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.h[7], v1.h[0] ; CHECK-SD-NEXT: add sp, sp, #48 ; CHECK-SD-NEXT: ret @@ -1821,51 +1821,51 @@ define <7 x half> @cos_v7f16(<7 x half> %a) nounwind { ; CHECK-GI-NEXT: mov h8, v0.h[1] ; CHECK-GI-NEXT: mov h9, v0.h[2] ; CHECK-GI-NEXT: fcvt s0, h0 -; CHECK-GI-NEXT: str x30, [sp, #144] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #144] // 8-byte Spill ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: fcvt s1, h8 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: fcvt s1, h9 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: fcvt s1, h10 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: fcvt s1, h11 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: fcvt s1, h12 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: fcvt s1, h13 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: ldp q3, q2, [sp, #48] // 32-byte Folded Reload ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: ldr q1, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #128] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #112] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #144] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #144] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.h[1], v3.h[0] ; CHECK-GI-NEXT: ldp d13, d12, [sp, #96] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] ; CHECK-GI-NEXT: ldp q2, q3, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[3], v3.h[0] ; CHECK-GI-NEXT: mov v1.h[4], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[5], v2.h[0] ; CHECK-GI-NEXT: mov v1.h[6], v0.h[0] ; CHECK-GI-NEXT: mov v0.16b, v1.16b @@ -1882,35 +1882,35 @@ define <4 x half> @cos_v4f16(<4 x half> %a) nounwind { ; CHECK-SD-NEXT: sub sp, sp, #48 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-SD-NEXT: mov h1, v0.h[1] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: fcvt s0, h1 ; CHECK-SD-NEXT: bl cosf -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: fcvt h0, s0 ; CHECK-SD-NEXT: fcvt s1, h1 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: fmov s0, s1 ; CHECK-SD-NEXT: bl cosf -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: fcvt h2, s0 ; CHECK-SD-NEXT: mov h1, v1.h[2] ; CHECK-SD-NEXT: fcvt s0, h1 -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov v2.h[1], v1.h[0] -; CHECK-SD-NEXT: str q2, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q2, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl cosf -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: fcvt h2, s0 ; CHECK-SD-NEXT: mov h1, v1.h[3] ; CHECK-SD-NEXT: fcvt s0, h1 -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v2.h[0] -; CHECK-SD-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: fcvt h1, s0 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.h[3], v1.h[0] ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: add sp, sp, #48 @@ -1920,35 +1920,35 @@ define <4 x half> @cos_v4f16(<4 x half> %a) nounwind { ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #80 ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d10, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: mov h10, v0.h[3] ; CHECK-GI-NEXT: stp d9, d8, [sp, #56] // 16-byte Folded Spill ; CHECK-GI-NEXT: mov h8, v0.h[1] ; CHECK-GI-NEXT: mov h9, v0.h[2] ; CHECK-GI-NEXT: fcvt s0, h0 -; CHECK-GI-NEXT: str x30, [sp, #72] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #72] // 8-byte Spill ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: fcvt s1, h8 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: fcvt s1, h9 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: fcvt s1, h10 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: ldp q3, q2, [sp] // 32-byte Folded Reload ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #56] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #72] // 8-byte Folded Reload -; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #72] // 8-byte Reload +; CHECK-GI-NEXT: ldr d10, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.h[1], v3.h[0] ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] ; CHECK-GI-NEXT: mov v1.h[3], v0.h[0] @@ -1966,66 +1966,66 @@ define <8 x half> @cos_v8f16(<8 x half> %a) nounwind { ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #48 ; CHECK-SD-NEXT: mov h1, v0.h[1] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-SD-NEXT: fcvt s0, h1 ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v0.h[1], v1.h[0] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: fcvt h1, s0 -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-SD-NEXT: mov v0.h[7], v1.h[0] ; CHECK-SD-NEXT: add sp, sp, #48 ; CHECK-SD-NEXT: ret @@ -2033,7 +2033,7 @@ define <8 x half> @cos_v8f16(<8 x half> %a) nounwind { ; CHECK-GI-LABEL: cos_v8f16: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #176 -; CHECK-GI-NEXT: str d14, [sp, #112] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d14, [sp, #112] // 8-byte Spill ; CHECK-GI-NEXT: mov h14, v0.h[7] ; CHECK-GI-NEXT: stp d13, d12, [sp, #120] // 16-byte Folded Spill ; CHECK-GI-NEXT: mov h12, v0.h[5] @@ -2045,51 +2045,51 @@ define <8 x half> @cos_v8f16(<8 x half> %a) nounwind { ; CHECK-GI-NEXT: mov h8, v0.h[1] ; CHECK-GI-NEXT: mov h9, v0.h[2] ; CHECK-GI-NEXT: fcvt s0, h0 -; CHECK-GI-NEXT: str x30, [sp, #168] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #168] // 8-byte Spill ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: fcvt s1, h8 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: fcvt s1, h9 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: fcvt s1, h10 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: fcvt s1, h11 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: fcvt s1, h12 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: fcvt s1, h13 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: fcvt s1, h14 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: ldp q3, q2, [sp, #64] // 32-byte Folded Reload ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: ldr q1, [sp, #96] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #96] // 16-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #152] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #136] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #168] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #168] // 8-byte Reload ; CHECK-GI-NEXT: mov v1.h[1], v3.h[0] -; CHECK-GI-NEXT: ldr d14, [sp, #112] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr d14, [sp, #112] // 8-byte Reload ; CHECK-GI-NEXT: ldp d13, d12, [sp, #120] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] ; CHECK-GI-NEXT: ldp q2, q3, [sp, #32] // 32-byte Folded Reload @@ -2113,125 +2113,125 @@ define <16 x half> @cos_v16f16(<16 x half> %a) nounwind { ; CHECK-SD-NEXT: sub sp, sp, #64 ; CHECK-SD-NEXT: stp q1, q0, [sp] // 32-byte Folded Spill ; CHECK-SD-NEXT: mov h1, v0.h[1] -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: fcvt s0, h1 ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v0.h[1], v1.h[0] -; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[7], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[1] -; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v0.h[1], v1.h[0] -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[2] ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[3] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[3], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[4] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[4], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[5] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[5], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[6] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: fcvt h0, s0 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[6], v0.h[0] -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov h0, v0.h[7] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fcvt s0, h0 ; CHECK-SD-NEXT: bl cosf ; CHECK-SD-NEXT: fmov s1, s0 -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: fcvt h2, s1 ; CHECK-SD-NEXT: ldp q1, q0, [sp, #16] // 32-byte Folded Reload ; CHECK-SD-NEXT: mov v1.h[7], v2.h[0] @@ -2244,7 +2244,7 @@ define <16 x half> @cos_v16f16(<16 x half> %a) nounwind { ; CHECK-GI-NEXT: stp d15, d14, [sp, #240] // 16-byte Folded Spill ; CHECK-GI-NEXT: mov v2.16b, v1.16b ; CHECK-GI-NEXT: mov h14, v1.h[1] -; CHECK-GI-NEXT: str q1, [sp, #80] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp, #80] // 16-byte Spill ; CHECK-GI-NEXT: mov h1, v1.h[2] ; CHECK-GI-NEXT: mov h15, v0.h[1] ; CHECK-GI-NEXT: stp d13, d12, [sp, #256] // 16-byte Folded Spill @@ -2256,134 +2256,134 @@ define <16 x half> @cos_v16f16(<16 x half> %a) nounwind { ; CHECK-GI-NEXT: stp d9, d8, [sp, #288] // 16-byte Folded Spill ; CHECK-GI-NEXT: mov h8, v0.h[2] ; CHECK-GI-NEXT: mov h9, v0.h[3] -; CHECK-GI-NEXT: str h1, [sp, #16] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #16] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[3] ; CHECK-GI-NEXT: fcvt s0, h0 ; CHECK-GI-NEXT: stp x29, x30, [sp, #304] // 16-byte Folded Spill -; CHECK-GI-NEXT: str h1, [sp, #32] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #32] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[4] -; CHECK-GI-NEXT: str h1, [sp, #48] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #48] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[5] -; CHECK-GI-NEXT: str h1, [sp, #64] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #64] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[6] -; CHECK-GI-NEXT: str h1, [sp, #96] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #96] // 2-byte Spill ; CHECK-GI-NEXT: mov h1, v2.h[7] -; CHECK-GI-NEXT: str h1, [sp, #160] // 2-byte Folded Spill +; CHECK-GI-NEXT: str h1, [sp, #160] // 2-byte Spill ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: fcvt s1, h15 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #192] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #192] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: fcvt s1, h8 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #112] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #112] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: fcvt s1, h9 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #224] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #224] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: fcvt s1, h10 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #208] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #208] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: fcvt s1, h11 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #176] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #176] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: fcvt s1, h12 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #144] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #144] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: fcvt s1, h13 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp, #128] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #128] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl cosf -; CHECK-GI-NEXT: ldr q1, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #80] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl cosf ; CHECK-GI-NEXT: fcvt s1, h14 ; CHECK-GI-NEXT: fcvt h0, s0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl cosf -; CHECK-GI-NEXT: ldr h1, [sp, #16] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #16] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl cosf -; CHECK-GI-NEXT: ldr h1, [sp, #32] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #32] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl cosf -; CHECK-GI-NEXT: ldr h1, [sp, #48] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #48] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl cosf -; CHECK-GI-NEXT: ldr h1, [sp, #64] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #64] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #64] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl cosf -; CHECK-GI-NEXT: ldr h1, [sp, #96] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #96] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #96] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl cosf -; CHECK-GI-NEXT: ldr h1, [sp, #160] // 2-byte Folded Reload +; CHECK-GI-NEXT: ldr h1, [sp, #160] // 2-byte Reload ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: fcvt s1, h1 -; CHECK-GI-NEXT: str q0, [sp, #160] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #160] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s1 ; CHECK-GI-NEXT: bl cosf -; CHECK-GI-NEXT: ldr q3, [sp, #192] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr q2, [sp, #112] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q3, [sp, #192] // 16-byte Reload +; CHECK-GI-NEXT: ldr q2, [sp, #112] // 16-byte Reload ; CHECK-GI-NEXT: ldp x29, x30, [sp, #304] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v3.h[1], v2.h[0] ; CHECK-GI-NEXT: ldp q1, q2, [sp] // 32-byte Folded Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #288] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d11, d10, [sp, #272] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[1], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #224] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #224] // 16-byte Reload ; CHECK-GI-NEXT: ldp d13, d12, [sp, #256] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v3.h[2], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: ldp d15, d14, [sp, #240] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v1.h[2], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #208] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #208] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[3], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #48] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #48] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[3], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #176] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #176] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[4], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #64] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #64] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[4], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #144] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #144] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[5], v2.h[0] -; CHECK-GI-NEXT: ldr q2, [sp, #96] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q2, [sp, #96] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[5], v2.h[0] ; CHECK-GI-NEXT: fcvt h2, s0 -; CHECK-GI-NEXT: ldr q0, [sp, #128] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #128] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[6], v0.h[0] -; CHECK-GI-NEXT: ldr q0, [sp, #160] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #160] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.h[6], v0.h[0] -; CHECK-GI-NEXT: ldr q0, [sp, #80] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #80] // 16-byte Reload ; CHECK-GI-NEXT: mov v3.h[7], v0.h[0] ; CHECK-GI-NEXT: mov v1.h[7], v2.h[0] ; CHECK-GI-NEXT: mov v0.16b, v3.16b @@ -2398,15 +2398,15 @@ define <2 x fp128> @cos_v2fp128(<2 x fp128> %a) nounwind { ; CHECK-LABEL: cos_v2fp128: ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill -; CHECK-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill +; CHECK-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-NEXT: bl cosl -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: bl cosl ; CHECK-NEXT: mov v1.16b, v0.16b -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #48 ; CHECK-NEXT: ret entry: diff --git a/llvm/test/CodeGen/AArch64/implicit-def-subreg-to-reg-regression.ll b/llvm/test/CodeGen/AArch64/implicit-def-subreg-to-reg-regression.ll index 0f208f8ed9052..50fac819d4afe 100644 --- a/llvm/test/CodeGen/AArch64/implicit-def-subreg-to-reg-regression.ll +++ b/llvm/test/CodeGen/AArch64/implicit-def-subreg-to-reg-regression.ll @@ -41,7 +41,7 @@ define void @widget(i32 %arg, i32 %arg1, ptr %arg2, ptr %arg3, ptr %arg4, i32 %a ; CHECK-NEXT: add x27, x27, LJTI0_0@PAGEOFF ; CHECK-NEXT: mov w28, #1 ; =0x1 ; CHECK-NEXT: ; implicit-def: $w8 -; CHECK-NEXT: str x8, [sp, #40] ; 8-byte Folded Spill +; CHECK-NEXT: str x8, [sp, #40] ; 8-byte Spill ; CHECK-NEXT: b LBB0_2 ; CHECK-NEXT: LBB0_1: ; %bb10 ; CHECK-NEXT: ; in Loop: Header=BB0_2 Depth=1 @@ -74,7 +74,7 @@ define void @widget(i32 %arg, i32 %arg1, ptr %arg2, ptr %arg3, ptr %arg4, i32 %a ; CHECK-NEXT: LBB0_6: ; %bb13 ; CHECK-NEXT: ; in Loop: Header=BB0_2 Depth=1 ; CHECK-NEXT: mov w8, #1 ; =0x1 -; CHECK-NEXT: str x8, [sp, #40] ; 8-byte Folded Spill +; CHECK-NEXT: str x8, [sp, #40] ; 8-byte Spill ; CHECK-NEXT: tbz w19, #0, LBB0_2 ; CHECK-NEXT: ; %bb.7: ; %bb14 ; CHECK-NEXT: ; in Loop: Header=BB0_2 Depth=1 @@ -89,7 +89,7 @@ define void @widget(i32 %arg, i32 %arg1, ptr %arg2, ptr %arg3, ptr %arg4, i32 %a ; CHECK-NEXT: ; =>This Inner Loop Header: Depth=1 ; CHECK-NEXT: b LBB0_8 ; CHECK-NEXT: LBB0_9: ; %bb16 -; CHECK-NEXT: ldr x8, [sp, #40] ; 8-byte Folded Reload +; CHECK-NEXT: ldr x8, [sp, #40] ; 8-byte Reload ; CHECK-NEXT: mov x0, xzr ; CHECK-NEXT: mov x1, xzr ; CHECK-NEXT: ; kill: def $w8 killed $w8 killed $x8 def $x8 diff --git a/llvm/test/CodeGen/AArch64/insertextract.ll b/llvm/test/CodeGen/AArch64/insertextract.ll index a9167ad6ebb70..9325c8c685560 100644 --- a/llvm/test/CodeGen/AArch64/insertextract.ll +++ b/llvm/test/CodeGen/AArch64/insertextract.ll @@ -1424,33 +1424,33 @@ define <2 x fp128> @insert_v2fp128_0(<2 x fp128> %a, fp128 %b, i32 %c) { ; CHECK-SD-LABEL: insert_v2fp128_0: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #32 -; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 32 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: mov v0.16b, v1.16b -; CHECK-SD-NEXT: str q2, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q2, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl __addtf3 ; CHECK-SD-NEXT: mov v1.16b, v0.16b -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-SD-NEXT: add sp, sp, #32 ; CHECK-SD-NEXT: ret ; ; CHECK-GI-LABEL: insert_v2fp128_0: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #48 -; CHECK-GI-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 48 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: stp q1, q2, [sp] // 32-byte Folded Spill ; CHECK-GI-NEXT: mov v1.16b, v0.16b ; CHECK-GI-NEXT: bl __addtf3 -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.16b, v0.16b ; CHECK-GI-NEXT: bl __addtf3 ; CHECK-GI-NEXT: mov v1.16b, v0.16b -; CHECK-GI-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #16] // 16-byte Reload +; CHECK-GI-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-GI-NEXT: add sp, sp, #48 ; CHECK-GI-NEXT: ret entry: @@ -1463,33 +1463,33 @@ define <2 x fp128> @insert_v2fp128_1(<2 x fp128> %a, fp128 %b, i32 %c) { ; CHECK-SD-LABEL: insert_v2fp128_1: ; CHECK-SD: // %bb.0: // %entry ; CHECK-SD-NEXT: sub sp, sp, #32 -; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 32 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: mov v1.16b, v0.16b -; CHECK-SD-NEXT: str q2, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q2, [sp] // 16-byte Spill ; CHECK-SD-NEXT: bl __addtf3 -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-SD-NEXT: add sp, sp, #32 ; CHECK-SD-NEXT: ret ; ; CHECK-GI-LABEL: insert_v2fp128_1: ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: sub sp, sp, #64 -; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 64 ; CHECK-GI-NEXT: .cfi_offset w30, -16 ; CHECK-GI-NEXT: stp q1, q2, [sp, #16] // 32-byte Folded Spill ; CHECK-GI-NEXT: mov v1.16b, v0.16b ; CHECK-GI-NEXT: bl __addtf3 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-GI-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.16b, v0.16b ; CHECK-GI-NEXT: bl __addtf3 -; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-GI-NEXT: ldr q1, [sp, #32] // 16-byte Reload +; CHECK-GI-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: add sp, sp, #64 ; CHECK-GI-NEXT: ret entry: @@ -1506,13 +1506,13 @@ define <2 x fp128> @insert_v2fp128_c(<2 x fp128> %a, fp128 %b, i32 %c) { ; CHECK-SD-NEXT: .cfi_def_cfa_offset 96 ; CHECK-SD-NEXT: .cfi_offset w19, -8 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov v1.16b, v0.16b ; CHECK-SD-NEXT: mov w19, w0 -; CHECK-SD-NEXT: str q2, [sp, #32] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q2, [sp, #32] // 16-byte Spill ; CHECK-SD-NEXT: bl __addtf3 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.16b, v0.16b ; CHECK-SD-NEXT: bl __addtf3 ; CHECK-SD-NEXT: str q0, [sp, #64] @@ -1530,32 +1530,32 @@ define <2 x fp128> @insert_v2fp128_c(<2 x fp128> %a, fp128 %b, i32 %c) { ; CHECK-GI: // %bb.0: // %entry ; CHECK-GI-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill ; CHECK-GI-NEXT: sub x9, sp, #96 -; CHECK-GI-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-GI-NEXT: mov x29, sp ; CHECK-GI-NEXT: and sp, x9, #0xffffffffffffffe0 ; CHECK-GI-NEXT: .cfi_def_cfa w29, 32 ; CHECK-GI-NEXT: .cfi_offset w19, -16 ; CHECK-GI-NEXT: .cfi_offset w30, -24 ; CHECK-GI-NEXT: .cfi_offset w29, -32 -; CHECK-GI-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: mov v1.16b, v0.16b ; CHECK-GI-NEXT: mov w19, w0 -; CHECK-GI-NEXT: str q2, [sp, #48] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q2, [sp, #48] // 16-byte Spill ; CHECK-GI-NEXT: bl __addtf3 -; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-GI-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-GI-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.16b, v0.16b ; CHECK-GI-NEXT: bl __addtf3 -; CHECK-GI-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: mov w8, w19 ; CHECK-GI-NEXT: add x9, sp, #64 ; CHECK-GI-NEXT: and x8, x8, #0x1 ; CHECK-GI-NEXT: stp q1, q0, [sp, #64] -; CHECK-GI-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-GI-NEXT: str q0, [x9, x8, lsl #4] ; CHECK-GI-NEXT: ldp q0, q1, [sp, #64] ; CHECK-GI-NEXT: mov sp, x29 -; CHECK-GI-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-GI-NEXT: ret entry: diff --git a/llvm/test/CodeGen/AArch64/intrinsic-vector-match-sve2.ll b/llvm/test/CodeGen/AArch64/intrinsic-vector-match-sve2.ll index 46bd414568e05..f4fdd52f117d1 100644 --- a/llvm/test/CodeGen/AArch64/intrinsic-vector-match-sve2.ll +++ b/llvm/test/CodeGen/AArch64/intrinsic-vector-match-sve2.ll @@ -35,7 +35,7 @@ define @match_nxv16i8_v4i8( %op1, <4 x i8> ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: // kill: def $d1 killed $d1 def $q1 @@ -54,7 +54,7 @@ define @match_nxv16i8_v4i8( %op1, <4 x i8> ; CHECK-NEXT: cmpeq p1.b, p1/z, z0.b, z2.b ; CHECK-NEXT: mov p2.b, p3/m, p3.b ; CHECK-NEXT: sel p2.b, p2, p2.b, p4.b -; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: mov p1.b, p2/m, p2.b ; CHECK-NEXT: and p0.b, p1/z, p1.b, p0.b ; CHECK-NEXT: addvl sp, sp, #1 @@ -235,7 +235,7 @@ define @match_nxv16i8_v32i8( %op1, <32 x i8 ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: // kill: def $q1 killed $q1 def $z1 @@ -335,7 +335,7 @@ define @match_nxv16i8_v32i8( %op1, <32 x i8 ; CHECK-NEXT: cmpeq p1.b, p1/z, z0.b, z1.b ; CHECK-NEXT: sel p2.b, p2, p2.b, p3.b ; CHECK-NEXT: sel p2.b, p2, p2.b, p4.b -; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: mov p1.b, p2/m, p2.b ; CHECK-NEXT: and p0.b, p1/z, p1.b, p0.b ; CHECK-NEXT: addvl sp, sp, #1 @@ -457,7 +457,7 @@ define @match_nxv4xi32_v4i32( %op1, <4 x i32 ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: // kill: def $q1 killed $q1 def $z1 @@ -472,7 +472,7 @@ define @match_nxv4xi32_v4i32( %op1, <4 x i32 ; CHECK-NEXT: cmpeq p1.s, p1/z, z0.s, z1.s ; CHECK-NEXT: mov p2.b, p3/m, p3.b ; CHECK-NEXT: sel p2.b, p2, p2.b, p4.b -; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: mov p1.b, p2/m, p2.b ; CHECK-NEXT: and p0.b, p1/z, p1.b, p0.b ; CHECK-NEXT: addvl sp, sp, #1 diff --git a/llvm/test/CodeGen/AArch64/itofp.ll b/llvm/test/CodeGen/AArch64/itofp.ll index caf87a13f283b..fce4f8e69f14d 100644 --- a/llvm/test/CodeGen/AArch64/itofp.ll +++ b/llvm/test/CodeGen/AArch64/itofp.ll @@ -3712,7 +3712,7 @@ define <2 x double> @stofp_v2i128_v2f64(<2 x i128> %a) { ; CHECK-NOFP16-SD-LABEL: stofp_v2i128_v2f64: ; CHECK-NOFP16-SD: // %bb.0: // %entry ; CHECK-NOFP16-SD-NEXT: sub sp, sp, #48 -; CHECK-NOFP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NOFP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-NOFP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w19, -8 @@ -3726,12 +3726,12 @@ define <2 x double> @stofp_v2i128_v2f64(<2 x i128> %a) { ; CHECK-NOFP16-SD-NEXT: mov x0, x20 ; CHECK-NOFP16-SD-NEXT: mov x1, x19 ; CHECK-NOFP16-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NOFP16-SD-NEXT: bl __floattidf -; CHECK-NOFP16-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NOFP16-SD-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload ; CHECK-NOFP16-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NOFP16-SD-NEXT: mov v0.d[1], v1.d[0] ; CHECK-NOFP16-SD-NEXT: add sp, sp, #48 ; CHECK-NOFP16-SD-NEXT: ret @@ -3739,7 +3739,7 @@ define <2 x double> @stofp_v2i128_v2f64(<2 x i128> %a) { ; CHECK-FP16-SD-LABEL: stofp_v2i128_v2f64: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #48 -; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-FP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-SD-NEXT: .cfi_offset w19, -8 @@ -3753,12 +3753,12 @@ define <2 x double> @stofp_v2i128_v2f64(<2 x i128> %a) { ; CHECK-FP16-SD-NEXT: mov x0, x20 ; CHECK-FP16-SD-NEXT: mov x1, x19 ; CHECK-FP16-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-SD-NEXT: bl __floattidf -; CHECK-FP16-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-FP16-SD-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload ; CHECK-FP16-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-FP16-SD-NEXT: mov v0.d[1], v1.d[0] ; CHECK-FP16-SD-NEXT: add sp, sp, #48 ; CHECK-FP16-SD-NEXT: ret @@ -3766,7 +3766,7 @@ define <2 x double> @stofp_v2i128_v2f64(<2 x i128> %a) { ; CHECK-NOFP16-GI-LABEL: stofp_v2i128_v2f64: ; CHECK-NOFP16-GI: // %bb.0: // %entry ; CHECK-NOFP16-GI-NEXT: sub sp, sp, #48 -; CHECK-NOFP16-GI-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NOFP16-GI-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NOFP16-GI-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-NOFP16-GI-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NOFP16-GI-NEXT: .cfi_offset w19, -8 @@ -3778,12 +3778,12 @@ define <2 x double> @stofp_v2i128_v2f64(<2 x i128> %a) { ; CHECK-NOFP16-GI-NEXT: mov x0, x19 ; CHECK-NOFP16-GI-NEXT: mov x1, x20 ; CHECK-NOFP16-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-NOFP16-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NOFP16-GI-NEXT: bl __floattidf -; CHECK-NOFP16-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NOFP16-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NOFP16-GI-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-NOFP16-GI-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload -; CHECK-NOFP16-GI-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NOFP16-GI-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NOFP16-GI-NEXT: mov v1.d[1], v0.d[0] ; CHECK-NOFP16-GI-NEXT: mov v0.16b, v1.16b ; CHECK-NOFP16-GI-NEXT: add sp, sp, #48 @@ -3792,7 +3792,7 @@ define <2 x double> @stofp_v2i128_v2f64(<2 x i128> %a) { ; CHECK-FP16-GI-LABEL: stofp_v2i128_v2f64: ; CHECK-FP16-GI: // %bb.0: // %entry ; CHECK-FP16-GI-NEXT: sub sp, sp, #48 -; CHECK-FP16-GI-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-FP16-GI-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-FP16-GI-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-GI-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-GI-NEXT: .cfi_offset w19, -8 @@ -3804,12 +3804,12 @@ define <2 x double> @stofp_v2i128_v2f64(<2 x i128> %a) { ; CHECK-FP16-GI-NEXT: mov x0, x19 ; CHECK-FP16-GI-NEXT: mov x1, x20 ; CHECK-FP16-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-FP16-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-GI-NEXT: bl __floattidf -; CHECK-FP16-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-FP16-GI-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-FP16-GI-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload -; CHECK-FP16-GI-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-FP16-GI-NEXT: mov v1.d[1], v0.d[0] ; CHECK-FP16-GI-NEXT: mov v0.16b, v1.16b ; CHECK-FP16-GI-NEXT: add sp, sp, #48 @@ -3823,7 +3823,7 @@ define <2 x double> @utofp_v2i128_v2f64(<2 x i128> %a) { ; CHECK-NOFP16-SD-LABEL: utofp_v2i128_v2f64: ; CHECK-NOFP16-SD: // %bb.0: // %entry ; CHECK-NOFP16-SD-NEXT: sub sp, sp, #48 -; CHECK-NOFP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NOFP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-NOFP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w19, -8 @@ -3837,12 +3837,12 @@ define <2 x double> @utofp_v2i128_v2f64(<2 x i128> %a) { ; CHECK-NOFP16-SD-NEXT: mov x0, x20 ; CHECK-NOFP16-SD-NEXT: mov x1, x19 ; CHECK-NOFP16-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NOFP16-SD-NEXT: bl __floatuntidf -; CHECK-NOFP16-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NOFP16-SD-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload ; CHECK-NOFP16-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NOFP16-SD-NEXT: mov v0.d[1], v1.d[0] ; CHECK-NOFP16-SD-NEXT: add sp, sp, #48 ; CHECK-NOFP16-SD-NEXT: ret @@ -3850,7 +3850,7 @@ define <2 x double> @utofp_v2i128_v2f64(<2 x i128> %a) { ; CHECK-FP16-SD-LABEL: utofp_v2i128_v2f64: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #48 -; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-FP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-SD-NEXT: .cfi_offset w19, -8 @@ -3864,12 +3864,12 @@ define <2 x double> @utofp_v2i128_v2f64(<2 x i128> %a) { ; CHECK-FP16-SD-NEXT: mov x0, x20 ; CHECK-FP16-SD-NEXT: mov x1, x19 ; CHECK-FP16-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-SD-NEXT: bl __floatuntidf -; CHECK-FP16-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-FP16-SD-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload ; CHECK-FP16-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-FP16-SD-NEXT: mov v0.d[1], v1.d[0] ; CHECK-FP16-SD-NEXT: add sp, sp, #48 ; CHECK-FP16-SD-NEXT: ret @@ -3877,7 +3877,7 @@ define <2 x double> @utofp_v2i128_v2f64(<2 x i128> %a) { ; CHECK-NOFP16-GI-LABEL: utofp_v2i128_v2f64: ; CHECK-NOFP16-GI: // %bb.0: // %entry ; CHECK-NOFP16-GI-NEXT: sub sp, sp, #48 -; CHECK-NOFP16-GI-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NOFP16-GI-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NOFP16-GI-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-NOFP16-GI-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NOFP16-GI-NEXT: .cfi_offset w19, -8 @@ -3889,12 +3889,12 @@ define <2 x double> @utofp_v2i128_v2f64(<2 x i128> %a) { ; CHECK-NOFP16-GI-NEXT: mov x0, x19 ; CHECK-NOFP16-GI-NEXT: mov x1, x20 ; CHECK-NOFP16-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-NOFP16-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NOFP16-GI-NEXT: bl __floatuntidf -; CHECK-NOFP16-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NOFP16-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NOFP16-GI-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-NOFP16-GI-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload -; CHECK-NOFP16-GI-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NOFP16-GI-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NOFP16-GI-NEXT: mov v1.d[1], v0.d[0] ; CHECK-NOFP16-GI-NEXT: mov v0.16b, v1.16b ; CHECK-NOFP16-GI-NEXT: add sp, sp, #48 @@ -3903,7 +3903,7 @@ define <2 x double> @utofp_v2i128_v2f64(<2 x i128> %a) { ; CHECK-FP16-GI-LABEL: utofp_v2i128_v2f64: ; CHECK-FP16-GI: // %bb.0: // %entry ; CHECK-FP16-GI-NEXT: sub sp, sp, #48 -; CHECK-FP16-GI-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-FP16-GI-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-FP16-GI-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-GI-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-GI-NEXT: .cfi_offset w19, -8 @@ -3915,12 +3915,12 @@ define <2 x double> @utofp_v2i128_v2f64(<2 x i128> %a) { ; CHECK-FP16-GI-NEXT: mov x0, x19 ; CHECK-FP16-GI-NEXT: mov x1, x20 ; CHECK-FP16-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-FP16-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-GI-NEXT: bl __floatuntidf -; CHECK-FP16-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-FP16-GI-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-FP16-GI-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload -; CHECK-FP16-GI-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-FP16-GI-NEXT: mov v1.d[1], v0.d[0] ; CHECK-FP16-GI-NEXT: mov v0.16b, v1.16b ; CHECK-FP16-GI-NEXT: add sp, sp, #48 @@ -5514,7 +5514,7 @@ define <2 x float> @stofp_v2i128_v2f32(<2 x i128> %a) { ; CHECK-NOFP16-SD-LABEL: stofp_v2i128_v2f32: ; CHECK-NOFP16-SD: // %bb.0: // %entry ; CHECK-NOFP16-SD-NEXT: sub sp, sp, #48 -; CHECK-NOFP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NOFP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-NOFP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w19, -8 @@ -5528,12 +5528,12 @@ define <2 x float> @stofp_v2i128_v2f32(<2 x i128> %a) { ; CHECK-NOFP16-SD-NEXT: mov x0, x20 ; CHECK-NOFP16-SD-NEXT: mov x1, x19 ; CHECK-NOFP16-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NOFP16-SD-NEXT: bl __floattisf -; CHECK-NOFP16-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NOFP16-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-NOFP16-SD-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload -; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NOFP16-SD-NEXT: mov v0.s[1], v1.s[0] ; CHECK-NOFP16-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-NOFP16-SD-NEXT: add sp, sp, #48 @@ -5542,7 +5542,7 @@ define <2 x float> @stofp_v2i128_v2f32(<2 x i128> %a) { ; CHECK-FP16-SD-LABEL: stofp_v2i128_v2f32: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #48 -; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-FP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-SD-NEXT: .cfi_offset w19, -8 @@ -5556,12 +5556,12 @@ define <2 x float> @stofp_v2i128_v2f32(<2 x i128> %a) { ; CHECK-FP16-SD-NEXT: mov x0, x20 ; CHECK-FP16-SD-NEXT: mov x1, x19 ; CHECK-FP16-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-SD-NEXT: bl __floattisf -; CHECK-FP16-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-FP16-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-FP16-SD-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-FP16-SD-NEXT: mov v0.s[1], v1.s[0] ; CHECK-FP16-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-FP16-SD-NEXT: add sp, sp, #48 @@ -5570,7 +5570,7 @@ define <2 x float> @stofp_v2i128_v2f32(<2 x i128> %a) { ; CHECK-NOFP16-GI-LABEL: stofp_v2i128_v2f32: ; CHECK-NOFP16-GI: // %bb.0: // %entry ; CHECK-NOFP16-GI-NEXT: sub sp, sp, #48 -; CHECK-NOFP16-GI-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NOFP16-GI-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NOFP16-GI-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-NOFP16-GI-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NOFP16-GI-NEXT: .cfi_offset w19, -8 @@ -5582,12 +5582,12 @@ define <2 x float> @stofp_v2i128_v2f32(<2 x i128> %a) { ; CHECK-NOFP16-GI-NEXT: mov x0, x19 ; CHECK-NOFP16-GI-NEXT: mov x1, x20 ; CHECK-NOFP16-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NOFP16-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NOFP16-GI-NEXT: bl __floattisf -; CHECK-NOFP16-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NOFP16-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NOFP16-GI-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-NOFP16-GI-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload -; CHECK-NOFP16-GI-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NOFP16-GI-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NOFP16-GI-NEXT: mov v1.s[1], v0.s[0] ; CHECK-NOFP16-GI-NEXT: fmov d0, d1 ; CHECK-NOFP16-GI-NEXT: add sp, sp, #48 @@ -5596,7 +5596,7 @@ define <2 x float> @stofp_v2i128_v2f32(<2 x i128> %a) { ; CHECK-FP16-GI-LABEL: stofp_v2i128_v2f32: ; CHECK-FP16-GI: // %bb.0: // %entry ; CHECK-FP16-GI-NEXT: sub sp, sp, #48 -; CHECK-FP16-GI-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-FP16-GI-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-FP16-GI-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-GI-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-GI-NEXT: .cfi_offset w19, -8 @@ -5608,12 +5608,12 @@ define <2 x float> @stofp_v2i128_v2f32(<2 x i128> %a) { ; CHECK-FP16-GI-NEXT: mov x0, x19 ; CHECK-FP16-GI-NEXT: mov x1, x20 ; CHECK-FP16-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-FP16-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-GI-NEXT: bl __floattisf -; CHECK-FP16-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-FP16-GI-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-FP16-GI-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload -; CHECK-FP16-GI-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-FP16-GI-NEXT: mov v1.s[1], v0.s[0] ; CHECK-FP16-GI-NEXT: fmov d0, d1 ; CHECK-FP16-GI-NEXT: add sp, sp, #48 @@ -5627,7 +5627,7 @@ define <2 x float> @utofp_v2i128_v2f32(<2 x i128> %a) { ; CHECK-NOFP16-SD-LABEL: utofp_v2i128_v2f32: ; CHECK-NOFP16-SD: // %bb.0: // %entry ; CHECK-NOFP16-SD-NEXT: sub sp, sp, #48 -; CHECK-NOFP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NOFP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-NOFP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w19, -8 @@ -5641,12 +5641,12 @@ define <2 x float> @utofp_v2i128_v2f32(<2 x i128> %a) { ; CHECK-NOFP16-SD-NEXT: mov x0, x20 ; CHECK-NOFP16-SD-NEXT: mov x1, x19 ; CHECK-NOFP16-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NOFP16-SD-NEXT: bl __floatuntisf -; CHECK-NOFP16-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NOFP16-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-NOFP16-SD-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload -; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NOFP16-SD-NEXT: mov v0.s[1], v1.s[0] ; CHECK-NOFP16-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-NOFP16-SD-NEXT: add sp, sp, #48 @@ -5655,7 +5655,7 @@ define <2 x float> @utofp_v2i128_v2f32(<2 x i128> %a) { ; CHECK-FP16-SD-LABEL: utofp_v2i128_v2f32: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #48 -; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-FP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-SD-NEXT: .cfi_offset w19, -8 @@ -5669,12 +5669,12 @@ define <2 x float> @utofp_v2i128_v2f32(<2 x i128> %a) { ; CHECK-FP16-SD-NEXT: mov x0, x20 ; CHECK-FP16-SD-NEXT: mov x1, x19 ; CHECK-FP16-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-SD-NEXT: bl __floatuntisf -; CHECK-FP16-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-FP16-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-FP16-SD-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-FP16-SD-NEXT: mov v0.s[1], v1.s[0] ; CHECK-FP16-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-FP16-SD-NEXT: add sp, sp, #48 @@ -5683,7 +5683,7 @@ define <2 x float> @utofp_v2i128_v2f32(<2 x i128> %a) { ; CHECK-NOFP16-GI-LABEL: utofp_v2i128_v2f32: ; CHECK-NOFP16-GI: // %bb.0: // %entry ; CHECK-NOFP16-GI-NEXT: sub sp, sp, #48 -; CHECK-NOFP16-GI-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NOFP16-GI-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NOFP16-GI-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-NOFP16-GI-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NOFP16-GI-NEXT: .cfi_offset w19, -8 @@ -5695,12 +5695,12 @@ define <2 x float> @utofp_v2i128_v2f32(<2 x i128> %a) { ; CHECK-NOFP16-GI-NEXT: mov x0, x19 ; CHECK-NOFP16-GI-NEXT: mov x1, x20 ; CHECK-NOFP16-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NOFP16-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NOFP16-GI-NEXT: bl __floatuntisf -; CHECK-NOFP16-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NOFP16-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NOFP16-GI-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-NOFP16-GI-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload -; CHECK-NOFP16-GI-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NOFP16-GI-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NOFP16-GI-NEXT: mov v1.s[1], v0.s[0] ; CHECK-NOFP16-GI-NEXT: fmov d0, d1 ; CHECK-NOFP16-GI-NEXT: add sp, sp, #48 @@ -5709,7 +5709,7 @@ define <2 x float> @utofp_v2i128_v2f32(<2 x i128> %a) { ; CHECK-FP16-GI-LABEL: utofp_v2i128_v2f32: ; CHECK-FP16-GI: // %bb.0: // %entry ; CHECK-FP16-GI-NEXT: sub sp, sp, #48 -; CHECK-FP16-GI-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-FP16-GI-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-FP16-GI-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-GI-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-GI-NEXT: .cfi_offset w19, -8 @@ -5721,12 +5721,12 @@ define <2 x float> @utofp_v2i128_v2f32(<2 x i128> %a) { ; CHECK-FP16-GI-NEXT: mov x0, x19 ; CHECK-FP16-GI-NEXT: mov x1, x20 ; CHECK-FP16-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-FP16-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-GI-NEXT: bl __floatuntisf -; CHECK-FP16-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-FP16-GI-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-FP16-GI-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload -; CHECK-FP16-GI-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-FP16-GI-NEXT: mov v1.s[1], v0.s[0] ; CHECK-FP16-GI-NEXT: fmov d0, d1 ; CHECK-FP16-GI-NEXT: add sp, sp, #48 @@ -7371,7 +7371,7 @@ define <2 x half> @stofp_v2i128_v2f16(<2 x i128> %a) { ; CHECK-NOFP16-SD-LABEL: stofp_v2i128_v2f16: ; CHECK-NOFP16-SD: // %bb.0: // %entry ; CHECK-NOFP16-SD-NEXT: sub sp, sp, #48 -; CHECK-NOFP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NOFP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-NOFP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w19, -8 @@ -7385,11 +7385,11 @@ define <2 x half> @stofp_v2i128_v2f16(<2 x i128> %a) { ; CHECK-NOFP16-SD-NEXT: fcvt h0, s0 ; CHECK-NOFP16-SD-NEXT: mov x0, x20 ; CHECK-NOFP16-SD-NEXT: mov x1, x19 -; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NOFP16-SD-NEXT: bl __floattisf ; CHECK-NOFP16-SD-NEXT: fcvt h0, s0 -; CHECK-NOFP16-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: ldr q1, [sp] // 16-byte Reload +; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NOFP16-SD-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload ; CHECK-NOFP16-SD-NEXT: mov v0.h[1], v1.h[0] ; CHECK-NOFP16-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 @@ -7399,7 +7399,7 @@ define <2 x half> @stofp_v2i128_v2f16(<2 x i128> %a) { ; CHECK-FP16-SD-LABEL: stofp_v2i128_v2f16: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #48 -; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-FP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-SD-NEXT: .cfi_offset w19, -8 @@ -7413,12 +7413,12 @@ define <2 x half> @stofp_v2i128_v2f16(<2 x i128> %a) { ; CHECK-FP16-SD-NEXT: mov x0, x20 ; CHECK-FP16-SD-NEXT: mov x1, x19 ; CHECK-FP16-SD-NEXT: // kill: def $h0 killed $h0 def $q0 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-SD-NEXT: bl __floattihf -; CHECK-FP16-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-FP16-SD-NEXT: // kill: def $h0 killed $h0 def $q0 ; CHECK-FP16-SD-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-FP16-SD-NEXT: mov v0.h[1], v1.h[0] ; CHECK-FP16-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-FP16-SD-NEXT: add sp, sp, #48 @@ -7427,7 +7427,7 @@ define <2 x half> @stofp_v2i128_v2f16(<2 x i128> %a) { ; CHECK-NOFP16-GI-LABEL: stofp_v2i128_v2f16: ; CHECK-NOFP16-GI: // %bb.0: // %entry ; CHECK-NOFP16-GI-NEXT: sub sp, sp, #48 -; CHECK-NOFP16-GI-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NOFP16-GI-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NOFP16-GI-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-NOFP16-GI-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NOFP16-GI-NEXT: .cfi_offset w19, -8 @@ -7439,11 +7439,11 @@ define <2 x half> @stofp_v2i128_v2f16(<2 x i128> %a) { ; CHECK-NOFP16-GI-NEXT: fcvt h0, s0 ; CHECK-NOFP16-GI-NEXT: mov x0, x19 ; CHECK-NOFP16-GI-NEXT: mov x1, x20 -; CHECK-NOFP16-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NOFP16-GI-NEXT: bl __floattisf ; CHECK-NOFP16-GI-NEXT: fcvt h1, s0 -; CHECK-NOFP16-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-NOFP16-GI-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NOFP16-GI-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-NOFP16-GI-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NOFP16-GI-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload ; CHECK-NOFP16-GI-NEXT: mov v0.h[1], v1.h[0] ; CHECK-NOFP16-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 @@ -7453,7 +7453,7 @@ define <2 x half> @stofp_v2i128_v2f16(<2 x i128> %a) { ; CHECK-FP16-GI-LABEL: stofp_v2i128_v2f16: ; CHECK-FP16-GI: // %bb.0: // %entry ; CHECK-FP16-GI-NEXT: sub sp, sp, #48 -; CHECK-FP16-GI-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-FP16-GI-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-FP16-GI-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-GI-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-GI-NEXT: .cfi_offset w19, -8 @@ -7465,12 +7465,12 @@ define <2 x half> @stofp_v2i128_v2f16(<2 x i128> %a) { ; CHECK-FP16-GI-NEXT: mov x0, x19 ; CHECK-FP16-GI-NEXT: mov x1, x20 ; CHECK-FP16-GI-NEXT: // kill: def $h0 killed $h0 def $q0 -; CHECK-FP16-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-GI-NEXT: bl __floattihf -; CHECK-FP16-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-FP16-GI-NEXT: // kill: def $h0 killed $h0 def $q0 ; CHECK-FP16-GI-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload -; CHECK-FP16-GI-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-FP16-GI-NEXT: mov v1.h[1], v0.h[0] ; CHECK-FP16-GI-NEXT: fmov d0, d1 ; CHECK-FP16-GI-NEXT: add sp, sp, #48 @@ -7484,7 +7484,7 @@ define <2 x half> @utofp_v2i128_v2f16(<2 x i128> %a) { ; CHECK-NOFP16-SD-LABEL: utofp_v2i128_v2f16: ; CHECK-NOFP16-SD: // %bb.0: // %entry ; CHECK-NOFP16-SD-NEXT: sub sp, sp, #48 -; CHECK-NOFP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NOFP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-NOFP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w19, -8 @@ -7498,11 +7498,11 @@ define <2 x half> @utofp_v2i128_v2f16(<2 x i128> %a) { ; CHECK-NOFP16-SD-NEXT: fcvt h0, s0 ; CHECK-NOFP16-SD-NEXT: mov x0, x20 ; CHECK-NOFP16-SD-NEXT: mov x1, x19 -; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NOFP16-SD-NEXT: bl __floatuntisf ; CHECK-NOFP16-SD-NEXT: fcvt h0, s0 -; CHECK-NOFP16-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: ldr q1, [sp] // 16-byte Reload +; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NOFP16-SD-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload ; CHECK-NOFP16-SD-NEXT: mov v0.h[1], v1.h[0] ; CHECK-NOFP16-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 @@ -7512,7 +7512,7 @@ define <2 x half> @utofp_v2i128_v2f16(<2 x i128> %a) { ; CHECK-FP16-SD-LABEL: utofp_v2i128_v2f16: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #48 -; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-FP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-SD-NEXT: .cfi_offset w19, -8 @@ -7526,12 +7526,12 @@ define <2 x half> @utofp_v2i128_v2f16(<2 x i128> %a) { ; CHECK-FP16-SD-NEXT: mov x0, x20 ; CHECK-FP16-SD-NEXT: mov x1, x19 ; CHECK-FP16-SD-NEXT: // kill: def $h0 killed $h0 def $q0 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-SD-NEXT: bl __floatuntihf -; CHECK-FP16-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-FP16-SD-NEXT: // kill: def $h0 killed $h0 def $q0 ; CHECK-FP16-SD-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-FP16-SD-NEXT: mov v0.h[1], v1.h[0] ; CHECK-FP16-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-FP16-SD-NEXT: add sp, sp, #48 @@ -7540,7 +7540,7 @@ define <2 x half> @utofp_v2i128_v2f16(<2 x i128> %a) { ; CHECK-NOFP16-GI-LABEL: utofp_v2i128_v2f16: ; CHECK-NOFP16-GI: // %bb.0: // %entry ; CHECK-NOFP16-GI-NEXT: sub sp, sp, #48 -; CHECK-NOFP16-GI-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NOFP16-GI-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NOFP16-GI-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-NOFP16-GI-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NOFP16-GI-NEXT: .cfi_offset w19, -8 @@ -7552,11 +7552,11 @@ define <2 x half> @utofp_v2i128_v2f16(<2 x i128> %a) { ; CHECK-NOFP16-GI-NEXT: fcvt h0, s0 ; CHECK-NOFP16-GI-NEXT: mov x0, x19 ; CHECK-NOFP16-GI-NEXT: mov x1, x20 -; CHECK-NOFP16-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NOFP16-GI-NEXT: bl __floatuntisf ; CHECK-NOFP16-GI-NEXT: fcvt h1, s0 -; CHECK-NOFP16-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-NOFP16-GI-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NOFP16-GI-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-NOFP16-GI-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NOFP16-GI-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload ; CHECK-NOFP16-GI-NEXT: mov v0.h[1], v1.h[0] ; CHECK-NOFP16-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 @@ -7566,7 +7566,7 @@ define <2 x half> @utofp_v2i128_v2f16(<2 x i128> %a) { ; CHECK-FP16-GI-LABEL: utofp_v2i128_v2f16: ; CHECK-FP16-GI: // %bb.0: // %entry ; CHECK-FP16-GI-NEXT: sub sp, sp, #48 -; CHECK-FP16-GI-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-FP16-GI-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-FP16-GI-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-GI-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-GI-NEXT: .cfi_offset w19, -8 @@ -7578,12 +7578,12 @@ define <2 x half> @utofp_v2i128_v2f16(<2 x i128> %a) { ; CHECK-FP16-GI-NEXT: mov x0, x19 ; CHECK-FP16-GI-NEXT: mov x1, x20 ; CHECK-FP16-GI-NEXT: // kill: def $h0 killed $h0 def $q0 -; CHECK-FP16-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-GI-NEXT: bl __floatuntihf -; CHECK-FP16-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-FP16-GI-NEXT: // kill: def $h0 killed $h0 def $q0 ; CHECK-FP16-GI-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload -; CHECK-FP16-GI-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-FP16-GI-NEXT: mov v1.h[1], v0.h[0] ; CHECK-FP16-GI-NEXT: fmov d0, d1 ; CHECK-FP16-GI-NEXT: add sp, sp, #48 @@ -7597,46 +7597,46 @@ define <2 x fp128> @stofp_v2i64_v2f128(<2 x i64> %a) { ; CHECK-NOFP16-SD-LABEL: stofp_v2i64_v2f128: ; CHECK-NOFP16-SD: // %bb.0: // %entry ; CHECK-NOFP16-SD-NEXT: sub sp, sp, #48 -; CHECK-NOFP16-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NOFP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w30, -16 ; CHECK-NOFP16-SD-NEXT: fmov x0, d0 -; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NOFP16-SD-NEXT: bl __floatditf -; CHECK-NOFP16-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NOFP16-SD-NEXT: mov x0, v0.d[1] ; CHECK-NOFP16-SD-NEXT: bl __floatditf ; CHECK-NOFP16-SD-NEXT: mov v1.16b, v0.16b -; CHECK-NOFP16-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload -; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload +; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NOFP16-SD-NEXT: add sp, sp, #48 ; CHECK-NOFP16-SD-NEXT: ret ; ; CHECK-FP16-SD-LABEL: stofp_v2i64_v2f128: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #48 -; CHECK-FP16-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-SD-NEXT: .cfi_offset w30, -16 ; CHECK-FP16-SD-NEXT: fmov x0, d0 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-SD-NEXT: bl __floatditf -; CHECK-FP16-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-FP16-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-FP16-SD-NEXT: mov x0, v0.d[1] ; CHECK-FP16-SD-NEXT: bl __floatditf ; CHECK-FP16-SD-NEXT: mov v1.16b, v0.16b -; CHECK-FP16-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-FP16-SD-NEXT: add sp, sp, #48 ; CHECK-FP16-SD-NEXT: ret ; ; CHECK-NOFP16-GI-LABEL: stofp_v2i64_v2f128: ; CHECK-NOFP16-GI: // %bb.0: // %entry ; CHECK-NOFP16-GI-NEXT: sub sp, sp, #32 -; CHECK-NOFP16-GI-NEXT: str d8, [sp, #16] // 8-byte Folded Spill -; CHECK-NOFP16-GI-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-NOFP16-GI-NEXT: str d8, [sp, #16] // 8-byte Spill +; CHECK-NOFP16-GI-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-NOFP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NOFP16-GI-NEXT: .cfi_offset w30, -8 ; CHECK-NOFP16-GI-NEXT: .cfi_offset b8, -16 @@ -7644,20 +7644,20 @@ define <2 x fp128> @stofp_v2i64_v2f128(<2 x i64> %a) { ; CHECK-NOFP16-GI-NEXT: mov d8, v0.d[1] ; CHECK-NOFP16-GI-NEXT: bl __floatditf ; CHECK-NOFP16-GI-NEXT: fmov x0, d8 -; CHECK-NOFP16-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NOFP16-GI-NEXT: bl __floatditf ; CHECK-NOFP16-GI-NEXT: mov v1.16b, v0.16b -; CHECK-NOFP16-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-NOFP16-GI-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload -; CHECK-NOFP16-GI-NEXT: ldr d8, [sp, #16] // 8-byte Folded Reload +; CHECK-NOFP16-GI-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-NOFP16-GI-NEXT: ldr x30, [sp, #24] // 8-byte Reload +; CHECK-NOFP16-GI-NEXT: ldr d8, [sp, #16] // 8-byte Reload ; CHECK-NOFP16-GI-NEXT: add sp, sp, #32 ; CHECK-NOFP16-GI-NEXT: ret ; ; CHECK-FP16-GI-LABEL: stofp_v2i64_v2f128: ; CHECK-FP16-GI: // %bb.0: // %entry ; CHECK-FP16-GI-NEXT: sub sp, sp, #32 -; CHECK-FP16-GI-NEXT: str d8, [sp, #16] // 8-byte Folded Spill -; CHECK-FP16-GI-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-FP16-GI-NEXT: str d8, [sp, #16] // 8-byte Spill +; CHECK-FP16-GI-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-FP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-FP16-GI-NEXT: .cfi_offset w30, -8 ; CHECK-FP16-GI-NEXT: .cfi_offset b8, -16 @@ -7665,12 +7665,12 @@ define <2 x fp128> @stofp_v2i64_v2f128(<2 x i64> %a) { ; CHECK-FP16-GI-NEXT: mov d8, v0.d[1] ; CHECK-FP16-GI-NEXT: bl __floatditf ; CHECK-FP16-GI-NEXT: fmov x0, d8 -; CHECK-FP16-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-GI-NEXT: bl __floatditf ; CHECK-FP16-GI-NEXT: mov v1.16b, v0.16b -; CHECK-FP16-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-FP16-GI-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload -; CHECK-FP16-GI-NEXT: ldr d8, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-FP16-GI-NEXT: ldr x30, [sp, #24] // 8-byte Reload +; CHECK-FP16-GI-NEXT: ldr d8, [sp, #16] // 8-byte Reload ; CHECK-FP16-GI-NEXT: add sp, sp, #32 ; CHECK-FP16-GI-NEXT: ret entry: @@ -7682,46 +7682,46 @@ define <2 x fp128> @utofp_v2i64_v2f128(<2 x i64> %a) { ; CHECK-NOFP16-SD-LABEL: utofp_v2i64_v2f128: ; CHECK-NOFP16-SD: // %bb.0: // %entry ; CHECK-NOFP16-SD-NEXT: sub sp, sp, #48 -; CHECK-NOFP16-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NOFP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w30, -16 ; CHECK-NOFP16-SD-NEXT: fmov x0, d0 -; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NOFP16-SD-NEXT: bl __floatunditf -; CHECK-NOFP16-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NOFP16-SD-NEXT: mov x0, v0.d[1] ; CHECK-NOFP16-SD-NEXT: bl __floatunditf ; CHECK-NOFP16-SD-NEXT: mov v1.16b, v0.16b -; CHECK-NOFP16-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload -; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload +; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NOFP16-SD-NEXT: add sp, sp, #48 ; CHECK-NOFP16-SD-NEXT: ret ; ; CHECK-FP16-SD-LABEL: utofp_v2i64_v2f128: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #48 -; CHECK-FP16-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-SD-NEXT: .cfi_offset w30, -16 ; CHECK-FP16-SD-NEXT: fmov x0, d0 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-SD-NEXT: bl __floatunditf -; CHECK-FP16-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-FP16-SD-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-FP16-SD-NEXT: mov x0, v0.d[1] ; CHECK-FP16-SD-NEXT: bl __floatunditf ; CHECK-FP16-SD-NEXT: mov v1.16b, v0.16b -; CHECK-FP16-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-FP16-SD-NEXT: add sp, sp, #48 ; CHECK-FP16-SD-NEXT: ret ; ; CHECK-NOFP16-GI-LABEL: utofp_v2i64_v2f128: ; CHECK-NOFP16-GI: // %bb.0: // %entry ; CHECK-NOFP16-GI-NEXT: sub sp, sp, #32 -; CHECK-NOFP16-GI-NEXT: str d8, [sp, #16] // 8-byte Folded Spill -; CHECK-NOFP16-GI-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-NOFP16-GI-NEXT: str d8, [sp, #16] // 8-byte Spill +; CHECK-NOFP16-GI-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-NOFP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NOFP16-GI-NEXT: .cfi_offset w30, -8 ; CHECK-NOFP16-GI-NEXT: .cfi_offset b8, -16 @@ -7729,20 +7729,20 @@ define <2 x fp128> @utofp_v2i64_v2f128(<2 x i64> %a) { ; CHECK-NOFP16-GI-NEXT: mov d8, v0.d[1] ; CHECK-NOFP16-GI-NEXT: bl __floatunditf ; CHECK-NOFP16-GI-NEXT: fmov x0, d8 -; CHECK-NOFP16-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NOFP16-GI-NEXT: bl __floatunditf ; CHECK-NOFP16-GI-NEXT: mov v1.16b, v0.16b -; CHECK-NOFP16-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-NOFP16-GI-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload -; CHECK-NOFP16-GI-NEXT: ldr d8, [sp, #16] // 8-byte Folded Reload +; CHECK-NOFP16-GI-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-NOFP16-GI-NEXT: ldr x30, [sp, #24] // 8-byte Reload +; CHECK-NOFP16-GI-NEXT: ldr d8, [sp, #16] // 8-byte Reload ; CHECK-NOFP16-GI-NEXT: add sp, sp, #32 ; CHECK-NOFP16-GI-NEXT: ret ; ; CHECK-FP16-GI-LABEL: utofp_v2i64_v2f128: ; CHECK-FP16-GI: // %bb.0: // %entry ; CHECK-FP16-GI-NEXT: sub sp, sp, #32 -; CHECK-FP16-GI-NEXT: str d8, [sp, #16] // 8-byte Folded Spill -; CHECK-FP16-GI-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-FP16-GI-NEXT: str d8, [sp, #16] // 8-byte Spill +; CHECK-FP16-GI-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-FP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-FP16-GI-NEXT: .cfi_offset w30, -8 ; CHECK-FP16-GI-NEXT: .cfi_offset b8, -16 @@ -7750,12 +7750,12 @@ define <2 x fp128> @utofp_v2i64_v2f128(<2 x i64> %a) { ; CHECK-FP16-GI-NEXT: mov d8, v0.d[1] ; CHECK-FP16-GI-NEXT: bl __floatunditf ; CHECK-FP16-GI-NEXT: fmov x0, d8 -; CHECK-FP16-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-GI-NEXT: bl __floatunditf ; CHECK-FP16-GI-NEXT: mov v1.16b, v0.16b -; CHECK-FP16-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-FP16-GI-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload -; CHECK-FP16-GI-NEXT: ldr d8, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-FP16-GI-NEXT: ldr x30, [sp, #24] // 8-byte Reload +; CHECK-FP16-GI-NEXT: ldr d8, [sp, #16] // 8-byte Reload ; CHECK-FP16-GI-NEXT: add sp, sp, #32 ; CHECK-FP16-GI-NEXT: ret entry: @@ -7767,48 +7767,48 @@ define <2 x fp128> @stofp_v2i32_v2f128(<2 x i32> %a) { ; CHECK-NOFP16-SD-LABEL: stofp_v2i32_v2f128: ; CHECK-NOFP16-SD: // %bb.0: // %entry ; CHECK-NOFP16-SD-NEXT: sub sp, sp, #32 -; CHECK-NOFP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NOFP16-SD-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w30, -16 ; CHECK-NOFP16-SD-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-NOFP16-SD-NEXT: fmov w0, s0 -; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NOFP16-SD-NEXT: bl __floatsitf -; CHECK-NOFP16-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: ldr q1, [sp] // 16-byte Reload +; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NOFP16-SD-NEXT: mov w0, v1.s[1] ; CHECK-NOFP16-SD-NEXT: bl __floatsitf ; CHECK-NOFP16-SD-NEXT: mov v1.16b, v0.16b -; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NOFP16-SD-NEXT: add sp, sp, #32 ; CHECK-NOFP16-SD-NEXT: ret ; ; CHECK-FP16-SD-LABEL: stofp_v2i32_v2f128: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #32 -; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 32 ; CHECK-FP16-SD-NEXT: .cfi_offset w30, -16 ; CHECK-FP16-SD-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-FP16-SD-NEXT: fmov w0, s0 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-SD-NEXT: bl __floatsitf -; CHECK-FP16-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: ldr q1, [sp] // 16-byte Reload +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-SD-NEXT: mov w0, v1.s[1] ; CHECK-FP16-SD-NEXT: bl __floatsitf ; CHECK-FP16-SD-NEXT: mov v1.16b, v0.16b -; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-FP16-SD-NEXT: add sp, sp, #32 ; CHECK-FP16-SD-NEXT: ret ; ; CHECK-NOFP16-GI-LABEL: stofp_v2i32_v2f128: ; CHECK-NOFP16-GI: // %bb.0: // %entry ; CHECK-NOFP16-GI-NEXT: sub sp, sp, #32 -; CHECK-NOFP16-GI-NEXT: str d8, [sp, #16] // 8-byte Folded Spill -; CHECK-NOFP16-GI-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-NOFP16-GI-NEXT: str d8, [sp, #16] // 8-byte Spill +; CHECK-NOFP16-GI-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-NOFP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NOFP16-GI-NEXT: .cfi_offset w30, -8 ; CHECK-NOFP16-GI-NEXT: .cfi_offset b8, -16 @@ -7817,20 +7817,20 @@ define <2 x fp128> @stofp_v2i32_v2f128(<2 x i32> %a) { ; CHECK-NOFP16-GI-NEXT: mov s8, v0.s[1] ; CHECK-NOFP16-GI-NEXT: bl __floatsitf ; CHECK-NOFP16-GI-NEXT: fmov w0, s8 -; CHECK-NOFP16-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NOFP16-GI-NEXT: bl __floatsitf ; CHECK-NOFP16-GI-NEXT: mov v1.16b, v0.16b -; CHECK-NOFP16-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-NOFP16-GI-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload -; CHECK-NOFP16-GI-NEXT: ldr d8, [sp, #16] // 8-byte Folded Reload +; CHECK-NOFP16-GI-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-NOFP16-GI-NEXT: ldr x30, [sp, #24] // 8-byte Reload +; CHECK-NOFP16-GI-NEXT: ldr d8, [sp, #16] // 8-byte Reload ; CHECK-NOFP16-GI-NEXT: add sp, sp, #32 ; CHECK-NOFP16-GI-NEXT: ret ; ; CHECK-FP16-GI-LABEL: stofp_v2i32_v2f128: ; CHECK-FP16-GI: // %bb.0: // %entry ; CHECK-FP16-GI-NEXT: sub sp, sp, #32 -; CHECK-FP16-GI-NEXT: str d8, [sp, #16] // 8-byte Folded Spill -; CHECK-FP16-GI-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-FP16-GI-NEXT: str d8, [sp, #16] // 8-byte Spill +; CHECK-FP16-GI-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-FP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-FP16-GI-NEXT: .cfi_offset w30, -8 ; CHECK-FP16-GI-NEXT: .cfi_offset b8, -16 @@ -7839,12 +7839,12 @@ define <2 x fp128> @stofp_v2i32_v2f128(<2 x i32> %a) { ; CHECK-FP16-GI-NEXT: mov s8, v0.s[1] ; CHECK-FP16-GI-NEXT: bl __floatsitf ; CHECK-FP16-GI-NEXT: fmov w0, s8 -; CHECK-FP16-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-GI-NEXT: bl __floatsitf ; CHECK-FP16-GI-NEXT: mov v1.16b, v0.16b -; CHECK-FP16-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-FP16-GI-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload -; CHECK-FP16-GI-NEXT: ldr d8, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-FP16-GI-NEXT: ldr x30, [sp, #24] // 8-byte Reload +; CHECK-FP16-GI-NEXT: ldr d8, [sp, #16] // 8-byte Reload ; CHECK-FP16-GI-NEXT: add sp, sp, #32 ; CHECK-FP16-GI-NEXT: ret entry: @@ -7856,48 +7856,48 @@ define <2 x fp128> @utofp_v2i32_v2f128(<2 x i32> %a) { ; CHECK-NOFP16-SD-LABEL: utofp_v2i32_v2f128: ; CHECK-NOFP16-SD: // %bb.0: // %entry ; CHECK-NOFP16-SD-NEXT: sub sp, sp, #32 -; CHECK-NOFP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NOFP16-SD-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w30, -16 ; CHECK-NOFP16-SD-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-NOFP16-SD-NEXT: fmov w0, s0 -; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NOFP16-SD-NEXT: bl __floatunsitf -; CHECK-NOFP16-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: ldr q1, [sp] // 16-byte Reload +; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NOFP16-SD-NEXT: mov w0, v1.s[1] ; CHECK-NOFP16-SD-NEXT: bl __floatunsitf ; CHECK-NOFP16-SD-NEXT: mov v1.16b, v0.16b -; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NOFP16-SD-NEXT: add sp, sp, #32 ; CHECK-NOFP16-SD-NEXT: ret ; ; CHECK-FP16-SD-LABEL: utofp_v2i32_v2f128: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #32 -; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 32 ; CHECK-FP16-SD-NEXT: .cfi_offset w30, -16 ; CHECK-FP16-SD-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-FP16-SD-NEXT: fmov w0, s0 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-SD-NEXT: bl __floatunsitf -; CHECK-FP16-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: ldr q1, [sp] // 16-byte Reload +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-SD-NEXT: mov w0, v1.s[1] ; CHECK-FP16-SD-NEXT: bl __floatunsitf ; CHECK-FP16-SD-NEXT: mov v1.16b, v0.16b -; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-FP16-SD-NEXT: add sp, sp, #32 ; CHECK-FP16-SD-NEXT: ret ; ; CHECK-NOFP16-GI-LABEL: utofp_v2i32_v2f128: ; CHECK-NOFP16-GI: // %bb.0: // %entry ; CHECK-NOFP16-GI-NEXT: sub sp, sp, #32 -; CHECK-NOFP16-GI-NEXT: str d8, [sp, #16] // 8-byte Folded Spill -; CHECK-NOFP16-GI-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-NOFP16-GI-NEXT: str d8, [sp, #16] // 8-byte Spill +; CHECK-NOFP16-GI-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-NOFP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NOFP16-GI-NEXT: .cfi_offset w30, -8 ; CHECK-NOFP16-GI-NEXT: .cfi_offset b8, -16 @@ -7906,20 +7906,20 @@ define <2 x fp128> @utofp_v2i32_v2f128(<2 x i32> %a) { ; CHECK-NOFP16-GI-NEXT: mov s8, v0.s[1] ; CHECK-NOFP16-GI-NEXT: bl __floatunsitf ; CHECK-NOFP16-GI-NEXT: fmov w0, s8 -; CHECK-NOFP16-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NOFP16-GI-NEXT: bl __floatunsitf ; CHECK-NOFP16-GI-NEXT: mov v1.16b, v0.16b -; CHECK-NOFP16-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-NOFP16-GI-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload -; CHECK-NOFP16-GI-NEXT: ldr d8, [sp, #16] // 8-byte Folded Reload +; CHECK-NOFP16-GI-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-NOFP16-GI-NEXT: ldr x30, [sp, #24] // 8-byte Reload +; CHECK-NOFP16-GI-NEXT: ldr d8, [sp, #16] // 8-byte Reload ; CHECK-NOFP16-GI-NEXT: add sp, sp, #32 ; CHECK-NOFP16-GI-NEXT: ret ; ; CHECK-FP16-GI-LABEL: utofp_v2i32_v2f128: ; CHECK-FP16-GI: // %bb.0: // %entry ; CHECK-FP16-GI-NEXT: sub sp, sp, #32 -; CHECK-FP16-GI-NEXT: str d8, [sp, #16] // 8-byte Folded Spill -; CHECK-FP16-GI-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-FP16-GI-NEXT: str d8, [sp, #16] // 8-byte Spill +; CHECK-FP16-GI-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-FP16-GI-NEXT: .cfi_def_cfa_offset 32 ; CHECK-FP16-GI-NEXT: .cfi_offset w30, -8 ; CHECK-FP16-GI-NEXT: .cfi_offset b8, -16 @@ -7928,12 +7928,12 @@ define <2 x fp128> @utofp_v2i32_v2f128(<2 x i32> %a) { ; CHECK-FP16-GI-NEXT: mov s8, v0.s[1] ; CHECK-FP16-GI-NEXT: bl __floatunsitf ; CHECK-FP16-GI-NEXT: fmov w0, s8 -; CHECK-FP16-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-GI-NEXT: bl __floatunsitf ; CHECK-FP16-GI-NEXT: mov v1.16b, v0.16b -; CHECK-FP16-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-FP16-GI-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload -; CHECK-FP16-GI-NEXT: ldr d8, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-FP16-GI-NEXT: ldr x30, [sp, #24] // 8-byte Reload +; CHECK-FP16-GI-NEXT: ldr d8, [sp, #16] // 8-byte Reload ; CHECK-FP16-GI-NEXT: add sp, sp, #32 ; CHECK-FP16-GI-NEXT: ret entry: @@ -7945,22 +7945,22 @@ define <2 x fp128> @stofp_v2i16_v2f128(<2 x i16> %a) { ; CHECK-LABEL: stofp_v2i16_v2f128: ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: sub sp, sp, #32 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-NEXT: fmov w8, s0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: sxth w0, w8 ; CHECK-NEXT: bl __floatsitf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: mov w8, v1.s[1] ; CHECK-NEXT: sxth w0, w8 ; CHECK-NEXT: bl __floatsitf ; CHECK-NEXT: mov v1.16b, v0.16b -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: ret entry: @@ -7972,22 +7972,22 @@ define <2 x fp128> @utofp_v2i16_v2f128(<2 x i16> %a) { ; CHECK-LABEL: utofp_v2i16_v2f128: ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: sub sp, sp, #32 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-NEXT: fmov w8, s0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: and w0, w8, #0xffff ; CHECK-NEXT: bl __floatunsitf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: mov w8, v1.s[1] ; CHECK-NEXT: and w0, w8, #0xffff ; CHECK-NEXT: bl __floatunsitf ; CHECK-NEXT: mov v1.16b, v0.16b -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: ret entry: @@ -7999,22 +7999,22 @@ define <2 x fp128> @stofp_v2i8_v2f128(<2 x i8> %a) { ; CHECK-LABEL: stofp_v2i8_v2f128: ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: sub sp, sp, #32 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-NEXT: fmov w8, s0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: sxtb w0, w8 ; CHECK-NEXT: bl __floatsitf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: mov w8, v1.s[1] ; CHECK-NEXT: sxtb w0, w8 ; CHECK-NEXT: bl __floatsitf ; CHECK-NEXT: mov v1.16b, v0.16b -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: ret entry: @@ -8026,22 +8026,22 @@ define <2 x fp128> @utofp_v2i8_v2f128(<2 x i8> %a) { ; CHECK-LABEL: utofp_v2i8_v2f128: ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: sub sp, sp, #32 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-NEXT: fmov w8, s0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: and w0, w8, #0xff ; CHECK-NEXT: bl __floatunsitf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: mov w8, v1.s[1] ; CHECK-NEXT: and w0, w8, #0xff ; CHECK-NEXT: bl __floatunsitf ; CHECK-NEXT: mov v1.16b, v0.16b -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: ret entry: @@ -8053,7 +8053,7 @@ define <2 x fp128> @stofp_v2i128_v2f128(<2 x i128> %a) { ; CHECK-NOFP16-SD-LABEL: stofp_v2i128_v2f128: ; CHECK-NOFP16-SD: // %bb.0: // %entry ; CHECK-NOFP16-SD-NEXT: sub sp, sp, #48 -; CHECK-NOFP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NOFP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-NOFP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w19, -8 @@ -8064,19 +8064,19 @@ define <2 x fp128> @stofp_v2i128_v2f128(<2 x i128> %a) { ; CHECK-NOFP16-SD-NEXT: bl __floattitf ; CHECK-NOFP16-SD-NEXT: mov x0, x20 ; CHECK-NOFP16-SD-NEXT: mov x1, x19 -; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NOFP16-SD-NEXT: bl __floattitf ; CHECK-NOFP16-SD-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload ; CHECK-NOFP16-SD-NEXT: mov v1.16b, v0.16b -; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NOFP16-SD-NEXT: add sp, sp, #48 ; CHECK-NOFP16-SD-NEXT: ret ; ; CHECK-FP16-SD-LABEL: stofp_v2i128_v2f128: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #48 -; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-FP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-SD-NEXT: .cfi_offset w19, -8 @@ -8087,19 +8087,19 @@ define <2 x fp128> @stofp_v2i128_v2f128(<2 x i128> %a) { ; CHECK-FP16-SD-NEXT: bl __floattitf ; CHECK-FP16-SD-NEXT: mov x0, x20 ; CHECK-FP16-SD-NEXT: mov x1, x19 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-SD-NEXT: bl __floattitf ; CHECK-FP16-SD-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload ; CHECK-FP16-SD-NEXT: mov v1.16b, v0.16b -; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-FP16-SD-NEXT: add sp, sp, #48 ; CHECK-FP16-SD-NEXT: ret ; ; CHECK-NOFP16-GI-LABEL: stofp_v2i128_v2f128: ; CHECK-NOFP16-GI: // %bb.0: // %entry ; CHECK-NOFP16-GI-NEXT: sub sp, sp, #48 -; CHECK-NOFP16-GI-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NOFP16-GI-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NOFP16-GI-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-NOFP16-GI-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NOFP16-GI-NEXT: .cfi_offset w19, -8 @@ -8110,19 +8110,19 @@ define <2 x fp128> @stofp_v2i128_v2f128(<2 x i128> %a) { ; CHECK-NOFP16-GI-NEXT: bl __floattitf ; CHECK-NOFP16-GI-NEXT: mov x0, x19 ; CHECK-NOFP16-GI-NEXT: mov x1, x20 -; CHECK-NOFP16-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NOFP16-GI-NEXT: bl __floattitf ; CHECK-NOFP16-GI-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload ; CHECK-NOFP16-GI-NEXT: mov v1.16b, v0.16b -; CHECK-NOFP16-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-NOFP16-GI-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NOFP16-GI-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-NOFP16-GI-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NOFP16-GI-NEXT: add sp, sp, #48 ; CHECK-NOFP16-GI-NEXT: ret ; ; CHECK-FP16-GI-LABEL: stofp_v2i128_v2f128: ; CHECK-FP16-GI: // %bb.0: // %entry ; CHECK-FP16-GI-NEXT: sub sp, sp, #48 -; CHECK-FP16-GI-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-FP16-GI-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-FP16-GI-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-GI-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-GI-NEXT: .cfi_offset w19, -8 @@ -8133,12 +8133,12 @@ define <2 x fp128> @stofp_v2i128_v2f128(<2 x i128> %a) { ; CHECK-FP16-GI-NEXT: bl __floattitf ; CHECK-FP16-GI-NEXT: mov x0, x19 ; CHECK-FP16-GI-NEXT: mov x1, x20 -; CHECK-FP16-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-GI-NEXT: bl __floattitf ; CHECK-FP16-GI-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload ; CHECK-FP16-GI-NEXT: mov v1.16b, v0.16b -; CHECK-FP16-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-FP16-GI-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-FP16-GI-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-FP16-GI-NEXT: add sp, sp, #48 ; CHECK-FP16-GI-NEXT: ret entry: @@ -8150,7 +8150,7 @@ define <2 x fp128> @utofp_v2i128_v2f128(<2 x i128> %a) { ; CHECK-NOFP16-SD-LABEL: utofp_v2i128_v2f128: ; CHECK-NOFP16-SD: // %bb.0: // %entry ; CHECK-NOFP16-SD-NEXT: sub sp, sp, #48 -; CHECK-NOFP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NOFP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-NOFP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NOFP16-SD-NEXT: .cfi_offset w19, -8 @@ -8161,19 +8161,19 @@ define <2 x fp128> @utofp_v2i128_v2f128(<2 x i128> %a) { ; CHECK-NOFP16-SD-NEXT: bl __floatuntitf ; CHECK-NOFP16-SD-NEXT: mov x0, x20 ; CHECK-NOFP16-SD-NEXT: mov x1, x19 -; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NOFP16-SD-NEXT: bl __floatuntitf ; CHECK-NOFP16-SD-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload ; CHECK-NOFP16-SD-NEXT: mov v1.16b, v0.16b -; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NOFP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-NOFP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NOFP16-SD-NEXT: add sp, sp, #48 ; CHECK-NOFP16-SD-NEXT: ret ; ; CHECK-FP16-SD-LABEL: utofp_v2i128_v2f128: ; CHECK-FP16-SD: // %bb.0: // %entry ; CHECK-FP16-SD-NEXT: sub sp, sp, #48 -; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-FP16-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-FP16-SD-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-SD-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-SD-NEXT: .cfi_offset w19, -8 @@ -8184,19 +8184,19 @@ define <2 x fp128> @utofp_v2i128_v2f128(<2 x i128> %a) { ; CHECK-FP16-SD-NEXT: bl __floatuntitf ; CHECK-FP16-SD-NEXT: mov x0, x20 ; CHECK-FP16-SD-NEXT: mov x1, x19 -; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-SD-NEXT: bl __floatuntitf ; CHECK-FP16-SD-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload ; CHECK-FP16-SD-NEXT: mov v1.16b, v0.16b -; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-SD-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-FP16-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-FP16-SD-NEXT: add sp, sp, #48 ; CHECK-FP16-SD-NEXT: ret ; ; CHECK-NOFP16-GI-LABEL: utofp_v2i128_v2f128: ; CHECK-NOFP16-GI: // %bb.0: // %entry ; CHECK-NOFP16-GI-NEXT: sub sp, sp, #48 -; CHECK-NOFP16-GI-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NOFP16-GI-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NOFP16-GI-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-NOFP16-GI-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NOFP16-GI-NEXT: .cfi_offset w19, -8 @@ -8207,19 +8207,19 @@ define <2 x fp128> @utofp_v2i128_v2f128(<2 x i128> %a) { ; CHECK-NOFP16-GI-NEXT: bl __floatuntitf ; CHECK-NOFP16-GI-NEXT: mov x0, x19 ; CHECK-NOFP16-GI-NEXT: mov x1, x20 -; CHECK-NOFP16-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NOFP16-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NOFP16-GI-NEXT: bl __floatuntitf ; CHECK-NOFP16-GI-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload ; CHECK-NOFP16-GI-NEXT: mov v1.16b, v0.16b -; CHECK-NOFP16-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-NOFP16-GI-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NOFP16-GI-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-NOFP16-GI-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NOFP16-GI-NEXT: add sp, sp, #48 ; CHECK-NOFP16-GI-NEXT: ret ; ; CHECK-FP16-GI-LABEL: utofp_v2i128_v2f128: ; CHECK-FP16-GI: // %bb.0: // %entry ; CHECK-FP16-GI-NEXT: sub sp, sp, #48 -; CHECK-FP16-GI-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-FP16-GI-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-FP16-GI-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-FP16-GI-NEXT: .cfi_def_cfa_offset 48 ; CHECK-FP16-GI-NEXT: .cfi_offset w19, -8 @@ -8230,12 +8230,12 @@ define <2 x fp128> @utofp_v2i128_v2f128(<2 x i128> %a) { ; CHECK-FP16-GI-NEXT: bl __floatuntitf ; CHECK-FP16-GI-NEXT: mov x0, x19 ; CHECK-FP16-GI-NEXT: mov x1, x20 -; CHECK-FP16-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-FP16-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-FP16-GI-NEXT: bl __floatuntitf ; CHECK-FP16-GI-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload ; CHECK-FP16-GI-NEXT: mov v1.16b, v0.16b -; CHECK-FP16-GI-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-FP16-GI-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-FP16-GI-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-FP16-GI-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-FP16-GI-NEXT: add sp, sp, #48 ; CHECK-FP16-GI-NEXT: ret entry: diff --git a/llvm/test/CodeGen/AArch64/ldexp.ll b/llvm/test/CodeGen/AArch64/ldexp.ll index 1e35bd627a199..2de20c294dcb3 100644 --- a/llvm/test/CodeGen/AArch64/ldexp.ll +++ b/llvm/test/CodeGen/AArch64/ldexp.ll @@ -134,7 +134,7 @@ define <2 x float> @test_ldexp_v2f32_v2i32(<2 x float> %Val, <2 x i32> %Exp) { ; GISEL: // %bb.0: ; GISEL-NEXT: sub sp, sp, #48 ; GISEL-NEXT: stp d9, d8, [sp, #16] // 16-byte Folded Spill -; GISEL-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; GISEL-NEXT: str x30, [sp, #32] // 8-byte Spill ; GISEL-NEXT: .cfi_def_cfa_offset 48 ; GISEL-NEXT: .cfi_offset w30, -16 ; GISEL-NEXT: .cfi_offset b8, -24 @@ -147,14 +147,14 @@ define <2 x float> @test_ldexp_v2f32_v2i32(<2 x float> %Val, <2 x i32> %Exp) { ; GISEL-NEXT: // kill: def $s0 killed $s0 killed $q0 ; GISEL-NEXT: bl ldexpf ; GISEL-NEXT: // kill: def $s0 killed $s0 def $q0 -; GISEL-NEXT: str q0, [sp] // 16-byte Folded Spill +; GISEL-NEXT: str q0, [sp] // 16-byte Spill ; GISEL-NEXT: fmov w0, s9 ; GISEL-NEXT: fmov s0, s8 ; GISEL-NEXT: bl ldexpf -; GISEL-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; GISEL-NEXT: ldr q1, [sp] // 16-byte Reload ; GISEL-NEXT: // kill: def $s0 killed $s0 def $q0 ; GISEL-NEXT: ldp d9, d8, [sp, #16] // 16-byte Folded Reload -; GISEL-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; GISEL-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; GISEL-NEXT: mov v1.s[1], v0.s[0] ; GISEL-NEXT: fmov d0, d1 ; GISEL-NEXT: add sp, sp, #48 @@ -165,7 +165,7 @@ define <2 x float> @test_ldexp_v2f32_v2i32(<2 x float> %Val, <2 x i32> %Exp) { ; WINDOWS-NEXT: // %bb.0: ; WINDOWS-NEXT: sub sp, sp, #48 ; WINDOWS-NEXT: .seh_stackalloc 48 -; WINDOWS-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; WINDOWS-NEXT: str x30, [sp, #32] // 8-byte Spill ; WINDOWS-NEXT: .seh_save_reg x30, 32 ; WINDOWS-NEXT: .seh_endprologue ; WINDOWS-NEXT: // kill: def $d0 killed $d0 def $q0 @@ -175,20 +175,20 @@ define <2 x float> @test_ldexp_v2f32_v2i32(<2 x float> %Val, <2 x i32> %Exp) { ; WINDOWS-NEXT: mov w0, v1.s[1] ; WINDOWS-NEXT: fcvt d0, s2 ; WINDOWS-NEXT: bl ldexp -; WINDOWS-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; WINDOWS-NEXT: fcvt s0, d0 ; WINDOWS-NEXT: fcvt d1, s1 -; WINDOWS-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; WINDOWS-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; WINDOWS-NEXT: str q0, [sp, #16] // 16-byte Spill +; WINDOWS-NEXT: ldr q0, [sp] // 16-byte Reload ; WINDOWS-NEXT: fmov w0, s0 ; WINDOWS-NEXT: fmov d0, d1 ; WINDOWS-NEXT: bl ldexp ; WINDOWS-NEXT: fcvt s0, d0 -; WINDOWS-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; WINDOWS-NEXT: mov v0.s[1], v1.s[0] ; WINDOWS-NEXT: // kill: def $d0 killed $d0 killed $q0 ; WINDOWS-NEXT: .seh_startepilogue -; WINDOWS-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; WINDOWS-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; WINDOWS-NEXT: .seh_save_reg x30, 32 ; WINDOWS-NEXT: add sp, sp, #48 ; WINDOWS-NEXT: .seh_stackalloc 48 diff --git a/llvm/test/CodeGen/AArch64/ldst-paired-aliasing.ll b/llvm/test/CodeGen/AArch64/ldst-paired-aliasing.ll index b3be71cc2bbf5..0db9b9d863ca7 100644 --- a/llvm/test/CodeGen/AArch64/ldst-paired-aliasing.ll +++ b/llvm/test/CodeGen/AArch64/ldst-paired-aliasing.ll @@ -13,12 +13,12 @@ define i32 @main() local_unnamed_addr #1 { ; CHECK-LABEL: main: ; CHECK: // %bb.0: // %for.body.lr.ph.i.i.i.i.i.i63 ; CHECK-NEXT: sub sp, sp, #112 -; CHECK-NEXT: str x30, [sp, #96] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #96] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 112 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: bl _Z5setupv ; CHECK-NEXT: movi v0.4s, #1 -; CHECK-NEXT: mov w9, #1 +; CHECK-NEXT: mov w9, #1 // =0x1 ; CHECK-NEXT: add x0, sp, #48 ; CHECK-NEXT: mov x1, sp ; CHECK-NEXT: str xzr, [sp, #80] @@ -33,7 +33,7 @@ define i32 @main() local_unnamed_addr #1 { ; CHECK-NEXT: .LBB0_2: // %if.then ; CHECK-NEXT: bl f2 ; CHECK-NEXT: .LBB0_3: // %common.ret -; CHECK-NEXT: ldr x30, [sp, #96] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #96] // 8-byte Reload ; CHECK-NEXT: mov w0, wzr ; CHECK-NEXT: add sp, sp, #112 ; CHECK-NEXT: ret diff --git a/llvm/test/CodeGen/AArch64/llvm.exp10.ll b/llvm/test/CodeGen/AArch64/llvm.exp10.ll index c1ea891bc86e7..4d9aa9812cd9d 100644 --- a/llvm/test/CodeGen/AArch64/llvm.exp10.ll +++ b/llvm/test/CodeGen/AArch64/llvm.exp10.ll @@ -54,39 +54,39 @@ define <2 x half> @exp10_v2f16(<2 x half> %x) { ; SDAG-LABEL: exp10_v2f16: ; SDAG: // %bb.0: ; SDAG-NEXT: sub sp, sp, #48 -; SDAG-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; SDAG-NEXT: str x30, [sp, #32] // 8-byte Spill ; SDAG-NEXT: .cfi_def_cfa_offset 48 ; SDAG-NEXT: .cfi_offset w30, -16 ; SDAG-NEXT: // kill: def $d0 killed $d0 def $q0 ; SDAG-NEXT: mov h1, v0.h[1] -; SDAG-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; SDAG-NEXT: str q0, [sp, #16] // 16-byte Spill ; SDAG-NEXT: fcvt s0, h1 ; SDAG-NEXT: bl exp10f -; SDAG-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; SDAG-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; SDAG-NEXT: fcvt h0, s0 ; SDAG-NEXT: fcvt s1, h1 -; SDAG-NEXT: str q0, [sp] // 16-byte Folded Spill +; SDAG-NEXT: str q0, [sp] // 16-byte Spill ; SDAG-NEXT: fmov s0, s1 ; SDAG-NEXT: bl exp10f -; SDAG-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; SDAG-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; SDAG-NEXT: fcvt h2, s0 ; SDAG-NEXT: mov h1, v1.h[2] ; SDAG-NEXT: fcvt s0, h1 -; SDAG-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; SDAG-NEXT: ldr q1, [sp] // 16-byte Reload ; SDAG-NEXT: mov v2.h[1], v1.h[0] -; SDAG-NEXT: str q2, [sp] // 16-byte Folded Spill +; SDAG-NEXT: str q2, [sp] // 16-byte Spill ; SDAG-NEXT: bl exp10f -; SDAG-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; SDAG-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; SDAG-NEXT: fcvt h2, s0 ; SDAG-NEXT: mov h1, v1.h[3] ; SDAG-NEXT: fcvt s0, h1 -; SDAG-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; SDAG-NEXT: ldr q1, [sp] // 16-byte Reload ; SDAG-NEXT: mov v1.h[2], v2.h[0] -; SDAG-NEXT: str q1, [sp] // 16-byte Folded Spill +; SDAG-NEXT: str q1, [sp] // 16-byte Spill ; SDAG-NEXT: bl exp10f ; SDAG-NEXT: fcvt h1, s0 -; SDAG-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; SDAG-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; SDAG-NEXT: ldr q0, [sp] // 16-byte Reload +; SDAG-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; SDAG-NEXT: mov v0.h[3], v1.h[0] ; SDAG-NEXT: // kill: def $d0 killed $d0 killed $q0 ; SDAG-NEXT: add sp, sp, #48 @@ -95,8 +95,8 @@ define <2 x half> @exp10_v2f16(<2 x half> %x) { ; GISEL-LABEL: exp10_v2f16: ; GISEL: // %bb.0: ; GISEL-NEXT: sub sp, sp, #32 -; GISEL-NEXT: str d8, [sp, #16] // 8-byte Folded Spill -; GISEL-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; GISEL-NEXT: str d8, [sp, #16] // 8-byte Spill +; GISEL-NEXT: str x30, [sp, #24] // 8-byte Spill ; GISEL-NEXT: .cfi_def_cfa_offset 32 ; GISEL-NEXT: .cfi_offset w30, -8 ; GISEL-NEXT: .cfi_offset b8, -16 @@ -106,13 +106,13 @@ define <2 x half> @exp10_v2f16(<2 x half> %x) { ; GISEL-NEXT: bl exp10f ; GISEL-NEXT: fcvt s1, h8 ; GISEL-NEXT: fcvt h0, s0 -; GISEL-NEXT: str q0, [sp] // 16-byte Folded Spill +; GISEL-NEXT: str q0, [sp] // 16-byte Spill ; GISEL-NEXT: fmov s0, s1 ; GISEL-NEXT: bl exp10f ; GISEL-NEXT: fcvt h1, s0 -; GISEL-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; GISEL-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload -; GISEL-NEXT: ldr d8, [sp, #16] // 8-byte Folded Reload +; GISEL-NEXT: ldr q0, [sp] // 16-byte Reload +; GISEL-NEXT: ldr x30, [sp, #24] // 8-byte Reload +; GISEL-NEXT: ldr d8, [sp, #16] // 8-byte Reload ; GISEL-NEXT: mov v0.h[1], v1.h[0] ; GISEL-NEXT: // kill: def $d0 killed $d0 killed $q0 ; GISEL-NEXT: add sp, sp, #32 @@ -125,39 +125,39 @@ define <3 x half> @exp10_v3f16(<3 x half> %x) { ; SDAG-LABEL: exp10_v3f16: ; SDAG: // %bb.0: ; SDAG-NEXT: sub sp, sp, #48 -; SDAG-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; SDAG-NEXT: str x30, [sp, #32] // 8-byte Spill ; SDAG-NEXT: .cfi_def_cfa_offset 48 ; SDAG-NEXT: .cfi_offset w30, -16 ; SDAG-NEXT: // kill: def $d0 killed $d0 def $q0 ; SDAG-NEXT: mov h1, v0.h[1] -; SDAG-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; SDAG-NEXT: str q0, [sp, #16] // 16-byte Spill ; SDAG-NEXT: fcvt s0, h1 ; SDAG-NEXT: bl exp10f -; SDAG-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; SDAG-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; SDAG-NEXT: fcvt h0, s0 ; SDAG-NEXT: fcvt s1, h1 -; SDAG-NEXT: str q0, [sp] // 16-byte Folded Spill +; SDAG-NEXT: str q0, [sp] // 16-byte Spill ; SDAG-NEXT: fmov s0, s1 ; SDAG-NEXT: bl exp10f -; SDAG-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; SDAG-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; SDAG-NEXT: fcvt h2, s0 ; SDAG-NEXT: mov h1, v1.h[2] ; SDAG-NEXT: fcvt s0, h1 -; SDAG-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; SDAG-NEXT: ldr q1, [sp] // 16-byte Reload ; SDAG-NEXT: mov v2.h[1], v1.h[0] -; SDAG-NEXT: str q2, [sp] // 16-byte Folded Spill +; SDAG-NEXT: str q2, [sp] // 16-byte Spill ; SDAG-NEXT: bl exp10f -; SDAG-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; SDAG-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; SDAG-NEXT: fcvt h2, s0 ; SDAG-NEXT: mov h1, v1.h[3] ; SDAG-NEXT: fcvt s0, h1 -; SDAG-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; SDAG-NEXT: ldr q1, [sp] // 16-byte Reload ; SDAG-NEXT: mov v1.h[2], v2.h[0] -; SDAG-NEXT: str q1, [sp] // 16-byte Folded Spill +; SDAG-NEXT: str q1, [sp] // 16-byte Spill ; SDAG-NEXT: bl exp10f ; SDAG-NEXT: fcvt h1, s0 -; SDAG-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; SDAG-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; SDAG-NEXT: ldr q0, [sp] // 16-byte Reload +; SDAG-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; SDAG-NEXT: mov v0.h[3], v1.h[0] ; SDAG-NEXT: // kill: def $d0 killed $d0 killed $q0 ; SDAG-NEXT: add sp, sp, #48 @@ -167,7 +167,7 @@ define <3 x half> @exp10_v3f16(<3 x half> %x) { ; GISEL: // %bb.0: ; GISEL-NEXT: sub sp, sp, #64 ; GISEL-NEXT: stp d9, d8, [sp, #32] // 16-byte Folded Spill -; GISEL-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; GISEL-NEXT: str x30, [sp, #48] // 8-byte Spill ; GISEL-NEXT: .cfi_def_cfa_offset 64 ; GISEL-NEXT: .cfi_offset w30, -16 ; GISEL-NEXT: .cfi_offset b8, -24 @@ -179,18 +179,18 @@ define <3 x half> @exp10_v3f16(<3 x half> %x) { ; GISEL-NEXT: bl exp10f ; GISEL-NEXT: fcvt s1, h8 ; GISEL-NEXT: fcvt h0, s0 -; GISEL-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; GISEL-NEXT: str q0, [sp, #16] // 16-byte Spill ; GISEL-NEXT: fmov s0, s1 ; GISEL-NEXT: bl exp10f ; GISEL-NEXT: fcvt s1, h9 ; GISEL-NEXT: fcvt h0, s0 -; GISEL-NEXT: str q0, [sp] // 16-byte Folded Spill +; GISEL-NEXT: str q0, [sp] // 16-byte Spill ; GISEL-NEXT: fmov s0, s1 ; GISEL-NEXT: bl exp10f ; GISEL-NEXT: ldp q2, q1, [sp] // 32-byte Folded Reload ; GISEL-NEXT: fcvt h0, s0 ; GISEL-NEXT: ldp d9, d8, [sp, #32] // 16-byte Folded Reload -; GISEL-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; GISEL-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; GISEL-NEXT: mov v1.h[1], v2.h[0] ; GISEL-NEXT: mov v1.h[2], v0.h[0] ; GISEL-NEXT: mov v0.16b, v1.16b @@ -205,39 +205,39 @@ define <4 x half> @exp10_v4f16(<4 x half> %x) { ; SDAG-LABEL: exp10_v4f16: ; SDAG: // %bb.0: ; SDAG-NEXT: sub sp, sp, #48 -; SDAG-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; SDAG-NEXT: str x30, [sp, #32] // 8-byte Spill ; SDAG-NEXT: .cfi_def_cfa_offset 48 ; SDAG-NEXT: .cfi_offset w30, -16 ; SDAG-NEXT: // kill: def $d0 killed $d0 def $q0 ; SDAG-NEXT: mov h1, v0.h[1] -; SDAG-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; SDAG-NEXT: str q0, [sp, #16] // 16-byte Spill ; SDAG-NEXT: fcvt s0, h1 ; SDAG-NEXT: bl exp10f -; SDAG-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; SDAG-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; SDAG-NEXT: fcvt h0, s0 ; SDAG-NEXT: fcvt s1, h1 -; SDAG-NEXT: str q0, [sp] // 16-byte Folded Spill +; SDAG-NEXT: str q0, [sp] // 16-byte Spill ; SDAG-NEXT: fmov s0, s1 ; SDAG-NEXT: bl exp10f -; SDAG-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; SDAG-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; SDAG-NEXT: fcvt h2, s0 ; SDAG-NEXT: mov h1, v1.h[2] ; SDAG-NEXT: fcvt s0, h1 -; SDAG-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; SDAG-NEXT: ldr q1, [sp] // 16-byte Reload ; SDAG-NEXT: mov v2.h[1], v1.h[0] -; SDAG-NEXT: str q2, [sp] // 16-byte Folded Spill +; SDAG-NEXT: str q2, [sp] // 16-byte Spill ; SDAG-NEXT: bl exp10f -; SDAG-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; SDAG-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; SDAG-NEXT: fcvt h2, s0 ; SDAG-NEXT: mov h1, v1.h[3] ; SDAG-NEXT: fcvt s0, h1 -; SDAG-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; SDAG-NEXT: ldr q1, [sp] // 16-byte Reload ; SDAG-NEXT: mov v1.h[2], v2.h[0] -; SDAG-NEXT: str q1, [sp] // 16-byte Folded Spill +; SDAG-NEXT: str q1, [sp] // 16-byte Spill ; SDAG-NEXT: bl exp10f ; SDAG-NEXT: fcvt h1, s0 -; SDAG-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; SDAG-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; SDAG-NEXT: ldr q0, [sp] // 16-byte Reload +; SDAG-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; SDAG-NEXT: mov v0.h[3], v1.h[0] ; SDAG-NEXT: // kill: def $d0 killed $d0 killed $q0 ; SDAG-NEXT: add sp, sp, #48 @@ -246,9 +246,9 @@ define <4 x half> @exp10_v4f16(<4 x half> %x) { ; GISEL-LABEL: exp10_v4f16: ; GISEL: // %bb.0: ; GISEL-NEXT: sub sp, sp, #80 -; GISEL-NEXT: str d10, [sp, #48] // 8-byte Folded Spill +; GISEL-NEXT: str d10, [sp, #48] // 8-byte Spill ; GISEL-NEXT: stp d9, d8, [sp, #56] // 16-byte Folded Spill -; GISEL-NEXT: str x30, [sp, #72] // 8-byte Folded Spill +; GISEL-NEXT: str x30, [sp, #72] // 8-byte Spill ; GISEL-NEXT: .cfi_def_cfa_offset 80 ; GISEL-NEXT: .cfi_offset w30, -8 ; GISEL-NEXT: .cfi_offset b8, -16 @@ -262,25 +262,25 @@ define <4 x half> @exp10_v4f16(<4 x half> %x) { ; GISEL-NEXT: bl exp10f ; GISEL-NEXT: fcvt s1, h8 ; GISEL-NEXT: fcvt h0, s0 -; GISEL-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; GISEL-NEXT: str q0, [sp, #32] // 16-byte Spill ; GISEL-NEXT: fmov s0, s1 ; GISEL-NEXT: bl exp10f ; GISEL-NEXT: fcvt s1, h9 ; GISEL-NEXT: fcvt h0, s0 -; GISEL-NEXT: str q0, [sp] // 16-byte Folded Spill +; GISEL-NEXT: str q0, [sp] // 16-byte Spill ; GISEL-NEXT: fmov s0, s1 ; GISEL-NEXT: bl exp10f ; GISEL-NEXT: fcvt s1, h10 ; GISEL-NEXT: fcvt h0, s0 -; GISEL-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; GISEL-NEXT: str q0, [sp, #16] // 16-byte Spill ; GISEL-NEXT: fmov s0, s1 ; GISEL-NEXT: bl exp10f ; GISEL-NEXT: ldp q3, q2, [sp] // 32-byte Folded Reload ; GISEL-NEXT: fcvt h0, s0 -; GISEL-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; GISEL-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; GISEL-NEXT: ldp d9, d8, [sp, #56] // 16-byte Folded Reload -; GISEL-NEXT: ldr x30, [sp, #72] // 8-byte Folded Reload -; GISEL-NEXT: ldr d10, [sp, #48] // 8-byte Folded Reload +; GISEL-NEXT: ldr x30, [sp, #72] // 8-byte Reload +; GISEL-NEXT: ldr d10, [sp, #48] // 8-byte Reload ; GISEL-NEXT: mov v1.h[1], v3.h[0] ; GISEL-NEXT: mov v1.h[2], v2.h[0] ; GISEL-NEXT: mov v1.h[3], v0.h[0] @@ -331,21 +331,21 @@ define <2 x float> @exp10_v2f32(<2 x float> %x) { ; SDAG-LABEL: exp10_v2f32: ; SDAG: // %bb.0: ; SDAG-NEXT: sub sp, sp, #48 -; SDAG-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; SDAG-NEXT: str x30, [sp, #32] // 8-byte Spill ; SDAG-NEXT: .cfi_def_cfa_offset 48 ; SDAG-NEXT: .cfi_offset w30, -16 ; SDAG-NEXT: // kill: def $d0 killed $d0 def $q0 -; SDAG-NEXT: str q0, [sp] // 16-byte Folded Spill +; SDAG-NEXT: str q0, [sp] // 16-byte Spill ; SDAG-NEXT: mov s0, v0.s[1] ; SDAG-NEXT: bl exp10f ; SDAG-NEXT: // kill: def $s0 killed $s0 def $q0 -; SDAG-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; SDAG-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; SDAG-NEXT: str q0, [sp, #16] // 16-byte Spill +; SDAG-NEXT: ldr q0, [sp] // 16-byte Reload ; SDAG-NEXT: // kill: def $s0 killed $s0 killed $q0 ; SDAG-NEXT: bl exp10f -; SDAG-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; SDAG-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; SDAG-NEXT: // kill: def $s0 killed $s0 def $q0 -; SDAG-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; SDAG-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; SDAG-NEXT: mov v0.s[1], v1.s[0] ; SDAG-NEXT: // kill: def $d0 killed $d0 killed $q0 ; SDAG-NEXT: add sp, sp, #48 @@ -354,8 +354,8 @@ define <2 x float> @exp10_v2f32(<2 x float> %x) { ; GISEL-LABEL: exp10_v2f32: ; GISEL: // %bb.0: ; GISEL-NEXT: sub sp, sp, #32 -; GISEL-NEXT: str d8, [sp, #16] // 8-byte Folded Spill -; GISEL-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; GISEL-NEXT: str d8, [sp, #16] // 8-byte Spill +; GISEL-NEXT: str x30, [sp, #24] // 8-byte Spill ; GISEL-NEXT: .cfi_def_cfa_offset 32 ; GISEL-NEXT: .cfi_offset w30, -8 ; GISEL-NEXT: .cfi_offset b8, -16 @@ -364,13 +364,13 @@ define <2 x float> @exp10_v2f32(<2 x float> %x) { ; GISEL-NEXT: // kill: def $s0 killed $s0 killed $q0 ; GISEL-NEXT: bl exp10f ; GISEL-NEXT: // kill: def $s0 killed $s0 def $q0 -; GISEL-NEXT: str q0, [sp] // 16-byte Folded Spill +; GISEL-NEXT: str q0, [sp] // 16-byte Spill ; GISEL-NEXT: fmov s0, s8 ; GISEL-NEXT: bl exp10f -; GISEL-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; GISEL-NEXT: ldr q1, [sp] // 16-byte Reload ; GISEL-NEXT: // kill: def $s0 killed $s0 def $q0 -; GISEL-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload -; GISEL-NEXT: ldr d8, [sp, #16] // 8-byte Folded Reload +; GISEL-NEXT: ldr x30, [sp, #24] // 8-byte Reload +; GISEL-NEXT: ldr d8, [sp, #16] // 8-byte Reload ; GISEL-NEXT: mov v1.s[1], v0.s[0] ; GISEL-NEXT: fmov d0, d1 ; GISEL-NEXT: add sp, sp, #32 @@ -383,27 +383,27 @@ define <3 x float> @exp10_v3f32(<3 x float> %x) { ; SDAG-LABEL: exp10_v3f32: ; SDAG: // %bb.0: ; SDAG-NEXT: sub sp, sp, #48 -; SDAG-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; SDAG-NEXT: str x30, [sp, #32] // 8-byte Spill ; SDAG-NEXT: .cfi_def_cfa_offset 48 ; SDAG-NEXT: .cfi_offset w30, -16 -; SDAG-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; SDAG-NEXT: str q0, [sp, #16] // 16-byte Spill ; SDAG-NEXT: mov s0, v0.s[1] ; SDAG-NEXT: bl exp10f ; SDAG-NEXT: // kill: def $s0 killed $s0 def $q0 -; SDAG-NEXT: str q0, [sp] // 16-byte Folded Spill -; SDAG-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; SDAG-NEXT: str q0, [sp] // 16-byte Spill +; SDAG-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; SDAG-NEXT: // kill: def $s0 killed $s0 killed $q0 ; SDAG-NEXT: bl exp10f -; SDAG-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; SDAG-NEXT: ldr q1, [sp] // 16-byte Reload ; SDAG-NEXT: // kill: def $s0 killed $s0 def $q0 ; SDAG-NEXT: mov v0.s[1], v1.s[0] -; SDAG-NEXT: str q0, [sp] // 16-byte Folded Spill -; SDAG-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; SDAG-NEXT: str q0, [sp] // 16-byte Spill +; SDAG-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; SDAG-NEXT: mov s0, v0.s[2] ; SDAG-NEXT: bl exp10f -; SDAG-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; SDAG-NEXT: ldr q1, [sp] // 16-byte Reload ; SDAG-NEXT: // kill: def $s0 killed $s0 def $q0 -; SDAG-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; SDAG-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; SDAG-NEXT: mov v1.s[2], v0.s[0] ; SDAG-NEXT: mov v0.16b, v1.16b ; SDAG-NEXT: add sp, sp, #48 @@ -413,7 +413,7 @@ define <3 x float> @exp10_v3f32(<3 x float> %x) { ; GISEL: // %bb.0: ; GISEL-NEXT: sub sp, sp, #64 ; GISEL-NEXT: stp d9, d8, [sp, #32] // 16-byte Folded Spill -; GISEL-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; GISEL-NEXT: str x30, [sp, #48] // 8-byte Spill ; GISEL-NEXT: .cfi_def_cfa_offset 64 ; GISEL-NEXT: .cfi_offset w30, -16 ; GISEL-NEXT: .cfi_offset b8, -24 @@ -423,16 +423,16 @@ define <3 x float> @exp10_v3f32(<3 x float> %x) { ; GISEL-NEXT: // kill: def $s0 killed $s0 killed $q0 ; GISEL-NEXT: bl exp10f ; GISEL-NEXT: // kill: def $s0 killed $s0 def $q0 -; GISEL-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; GISEL-NEXT: str q0, [sp, #16] // 16-byte Spill ; GISEL-NEXT: fmov s0, s8 ; GISEL-NEXT: bl exp10f ; GISEL-NEXT: // kill: def $s0 killed $s0 def $q0 -; GISEL-NEXT: str q0, [sp] // 16-byte Folded Spill +; GISEL-NEXT: str q0, [sp] // 16-byte Spill ; GISEL-NEXT: fmov s0, s9 ; GISEL-NEXT: bl exp10f ; GISEL-NEXT: ldp q2, q1, [sp] // 32-byte Folded Reload ; GISEL-NEXT: // kill: def $s0 killed $s0 def $q0 -; GISEL-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; GISEL-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; GISEL-NEXT: ldp d9, d8, [sp, #32] // 16-byte Folded Reload ; GISEL-NEXT: mov v1.s[1], v2.s[0] ; GISEL-NEXT: mov v1.s[2], v0.s[0] @@ -447,34 +447,34 @@ define <4 x float> @exp10_v4f32(<4 x float> %x) { ; SDAG-LABEL: exp10_v4f32: ; SDAG: // %bb.0: ; SDAG-NEXT: sub sp, sp, #48 -; SDAG-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; SDAG-NEXT: str x30, [sp, #32] // 8-byte Spill ; SDAG-NEXT: .cfi_def_cfa_offset 48 ; SDAG-NEXT: .cfi_offset w30, -16 -; SDAG-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; SDAG-NEXT: str q0, [sp, #16] // 16-byte Spill ; SDAG-NEXT: mov s0, v0.s[1] ; SDAG-NEXT: bl exp10f ; SDAG-NEXT: // kill: def $s0 killed $s0 def $q0 -; SDAG-NEXT: str q0, [sp] // 16-byte Folded Spill -; SDAG-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; SDAG-NEXT: str q0, [sp] // 16-byte Spill +; SDAG-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; SDAG-NEXT: // kill: def $s0 killed $s0 killed $q0 ; SDAG-NEXT: bl exp10f -; SDAG-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; SDAG-NEXT: ldr q1, [sp] // 16-byte Reload ; SDAG-NEXT: // kill: def $s0 killed $s0 def $q0 ; SDAG-NEXT: mov v0.s[1], v1.s[0] -; SDAG-NEXT: str q0, [sp] // 16-byte Folded Spill -; SDAG-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; SDAG-NEXT: str q0, [sp] // 16-byte Spill +; SDAG-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; SDAG-NEXT: mov s0, v0.s[2] ; SDAG-NEXT: bl exp10f -; SDAG-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; SDAG-NEXT: ldr q1, [sp] // 16-byte Reload ; SDAG-NEXT: // kill: def $s0 killed $s0 def $q0 ; SDAG-NEXT: mov v1.s[2], v0.s[0] -; SDAG-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; SDAG-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; SDAG-NEXT: mov s0, v0.s[3] -; SDAG-NEXT: str q1, [sp] // 16-byte Folded Spill +; SDAG-NEXT: str q1, [sp] // 16-byte Spill ; SDAG-NEXT: bl exp10f -; SDAG-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; SDAG-NEXT: ldr q1, [sp] // 16-byte Reload ; SDAG-NEXT: // kill: def $s0 killed $s0 def $q0 -; SDAG-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; SDAG-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; SDAG-NEXT: mov v1.s[3], v0.s[0] ; SDAG-NEXT: mov v0.16b, v1.16b ; SDAG-NEXT: add sp, sp, #48 @@ -483,9 +483,9 @@ define <4 x float> @exp10_v4f32(<4 x float> %x) { ; GISEL-LABEL: exp10_v4f32: ; GISEL: // %bb.0: ; GISEL-NEXT: sub sp, sp, #80 -; GISEL-NEXT: str d10, [sp, #48] // 8-byte Folded Spill +; GISEL-NEXT: str d10, [sp, #48] // 8-byte Spill ; GISEL-NEXT: stp d9, d8, [sp, #56] // 16-byte Folded Spill -; GISEL-NEXT: str x30, [sp, #72] // 8-byte Folded Spill +; GISEL-NEXT: str x30, [sp, #72] // 8-byte Spill ; GISEL-NEXT: .cfi_def_cfa_offset 80 ; GISEL-NEXT: .cfi_offset w30, -8 ; GISEL-NEXT: .cfi_offset b8, -16 @@ -497,24 +497,24 @@ define <4 x float> @exp10_v4f32(<4 x float> %x) { ; GISEL-NEXT: // kill: def $s0 killed $s0 killed $q0 ; GISEL-NEXT: bl exp10f ; GISEL-NEXT: // kill: def $s0 killed $s0 def $q0 -; GISEL-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; GISEL-NEXT: str q0, [sp, #32] // 16-byte Spill ; GISEL-NEXT: fmov s0, s8 ; GISEL-NEXT: bl exp10f ; GISEL-NEXT: // kill: def $s0 killed $s0 def $q0 -; GISEL-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; GISEL-NEXT: str q0, [sp, #16] // 16-byte Spill ; GISEL-NEXT: fmov s0, s9 ; GISEL-NEXT: bl exp10f ; GISEL-NEXT: // kill: def $s0 killed $s0 def $q0 -; GISEL-NEXT: str q0, [sp] // 16-byte Folded Spill +; GISEL-NEXT: str q0, [sp] // 16-byte Spill ; GISEL-NEXT: fmov s0, s10 ; GISEL-NEXT: bl exp10f ; GISEL-NEXT: ldp q2, q1, [sp, #16] // 32-byte Folded Reload ; GISEL-NEXT: // kill: def $s0 killed $s0 def $q0 -; GISEL-NEXT: ldr x30, [sp, #72] // 8-byte Folded Reload +; GISEL-NEXT: ldr x30, [sp, #72] // 8-byte Reload ; GISEL-NEXT: ldp d9, d8, [sp, #56] // 16-byte Folded Reload -; GISEL-NEXT: ldr d10, [sp, #48] // 8-byte Folded Reload +; GISEL-NEXT: ldr d10, [sp, #48] // 8-byte Reload ; GISEL-NEXT: mov v1.s[1], v2.s[0] -; GISEL-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; GISEL-NEXT: ldr q2, [sp] // 16-byte Reload ; GISEL-NEXT: mov v1.s[2], v2.s[0] ; GISEL-NEXT: mov v1.s[3], v0.s[0] ; GISEL-NEXT: mov v0.16b, v1.16b @@ -549,20 +549,20 @@ define <2 x double> @exp10_v2f64(<2 x double> %x) { ; SDAG-LABEL: exp10_v2f64: ; SDAG: // %bb.0: ; SDAG-NEXT: sub sp, sp, #48 -; SDAG-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; SDAG-NEXT: str x30, [sp, #32] // 8-byte Spill ; SDAG-NEXT: .cfi_def_cfa_offset 48 ; SDAG-NEXT: .cfi_offset w30, -16 -; SDAG-NEXT: str q0, [sp] // 16-byte Folded Spill +; SDAG-NEXT: str q0, [sp] // 16-byte Spill ; SDAG-NEXT: mov d0, v0.d[1] ; SDAG-NEXT: bl exp10 ; SDAG-NEXT: // kill: def $d0 killed $d0 def $q0 -; SDAG-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; SDAG-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; SDAG-NEXT: str q0, [sp, #16] // 16-byte Spill +; SDAG-NEXT: ldr q0, [sp] // 16-byte Reload ; SDAG-NEXT: // kill: def $d0 killed $d0 killed $q0 ; SDAG-NEXT: bl exp10 -; SDAG-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; SDAG-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; SDAG-NEXT: // kill: def $d0 killed $d0 def $q0 -; SDAG-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; SDAG-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; SDAG-NEXT: mov v0.d[1], v1.d[0] ; SDAG-NEXT: add sp, sp, #48 ; SDAG-NEXT: ret @@ -570,8 +570,8 @@ define <2 x double> @exp10_v2f64(<2 x double> %x) { ; GISEL-LABEL: exp10_v2f64: ; GISEL: // %bb.0: ; GISEL-NEXT: sub sp, sp, #32 -; GISEL-NEXT: str d8, [sp, #16] // 8-byte Folded Spill -; GISEL-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; GISEL-NEXT: str d8, [sp, #16] // 8-byte Spill +; GISEL-NEXT: str x30, [sp, #24] // 8-byte Spill ; GISEL-NEXT: .cfi_def_cfa_offset 32 ; GISEL-NEXT: .cfi_offset w30, -8 ; GISEL-NEXT: .cfi_offset b8, -16 @@ -579,13 +579,13 @@ define <2 x double> @exp10_v2f64(<2 x double> %x) { ; GISEL-NEXT: // kill: def $d0 killed $d0 killed $q0 ; GISEL-NEXT: bl exp10 ; GISEL-NEXT: // kill: def $d0 killed $d0 def $q0 -; GISEL-NEXT: str q0, [sp] // 16-byte Folded Spill +; GISEL-NEXT: str q0, [sp] // 16-byte Spill ; GISEL-NEXT: fmov d0, d8 ; GISEL-NEXT: bl exp10 -; GISEL-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; GISEL-NEXT: ldr q1, [sp] // 16-byte Reload ; GISEL-NEXT: // kill: def $d0 killed $d0 def $q0 -; GISEL-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload -; GISEL-NEXT: ldr d8, [sp, #16] // 8-byte Folded Reload +; GISEL-NEXT: ldr x30, [sp, #24] // 8-byte Reload +; GISEL-NEXT: ldr d8, [sp, #16] // 8-byte Reload ; GISEL-NEXT: mov v1.d[1], v0.d[0] ; GISEL-NEXT: mov v0.16b, v1.16b ; GISEL-NEXT: add sp, sp, #32 @@ -599,7 +599,7 @@ define <3 x double> @exp10_v3f64(<3 x double> %x) { ; SDAG: // %bb.0: ; SDAG-NEXT: str d10, [sp, #-32]! // 8-byte Folded Spill ; SDAG-NEXT: stp d9, d8, [sp, #8] // 16-byte Folded Spill -; SDAG-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; SDAG-NEXT: str x30, [sp, #24] // 8-byte Spill ; SDAG-NEXT: .cfi_def_cfa_offset 32 ; SDAG-NEXT: .cfi_offset w30, -8 ; SDAG-NEXT: .cfi_offset b8, -16 @@ -616,7 +616,7 @@ define <3 x double> @exp10_v3f64(<3 x double> %x) { ; SDAG-NEXT: bl exp10 ; SDAG-NEXT: fmov d1, d9 ; SDAG-NEXT: ldp d9, d8, [sp, #8] // 16-byte Folded Reload -; SDAG-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload +; SDAG-NEXT: ldr x30, [sp, #24] // 8-byte Reload ; SDAG-NEXT: fmov d2, d0 ; SDAG-NEXT: fmov d0, d10 ; SDAG-NEXT: ldr d10, [sp], #32 // 8-byte Folded Reload @@ -626,7 +626,7 @@ define <3 x double> @exp10_v3f64(<3 x double> %x) { ; GISEL: // %bb.0: ; GISEL-NEXT: str d10, [sp, #-32]! // 8-byte Folded Spill ; GISEL-NEXT: stp d9, d8, [sp, #8] // 16-byte Folded Spill -; GISEL-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; GISEL-NEXT: str x30, [sp, #24] // 8-byte Spill ; GISEL-NEXT: .cfi_def_cfa_offset 32 ; GISEL-NEXT: .cfi_offset w30, -8 ; GISEL-NEXT: .cfi_offset b8, -16 @@ -643,7 +643,7 @@ define <3 x double> @exp10_v3f64(<3 x double> %x) { ; GISEL-NEXT: bl exp10 ; GISEL-NEXT: fmov d1, d8 ; GISEL-NEXT: ldp d9, d8, [sp, #8] // 16-byte Folded Reload -; GISEL-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload +; GISEL-NEXT: ldr x30, [sp, #24] // 8-byte Reload ; GISEL-NEXT: fmov d2, d0 ; GISEL-NEXT: fmov d0, d10 ; GISEL-NEXT: ldr d10, [sp], #32 // 8-byte Folded Reload @@ -656,33 +656,33 @@ define <4 x double> @exp10_v4f64(<4 x double> %x) { ; SDAG-LABEL: exp10_v4f64: ; SDAG: // %bb.0: ; SDAG-NEXT: sub sp, sp, #64 -; SDAG-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; SDAG-NEXT: str x30, [sp, #48] // 8-byte Spill ; SDAG-NEXT: .cfi_def_cfa_offset 64 ; SDAG-NEXT: .cfi_offset w30, -16 -; SDAG-NEXT: str q0, [sp] // 16-byte Folded Spill +; SDAG-NEXT: str q0, [sp] // 16-byte Spill ; SDAG-NEXT: mov d0, v0.d[1] -; SDAG-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; SDAG-NEXT: str q1, [sp, #32] // 16-byte Spill ; SDAG-NEXT: bl exp10 ; SDAG-NEXT: // kill: def $d0 killed $d0 def $q0 -; SDAG-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; SDAG-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; SDAG-NEXT: str q0, [sp, #16] // 16-byte Spill +; SDAG-NEXT: ldr q0, [sp] // 16-byte Reload ; SDAG-NEXT: // kill: def $d0 killed $d0 killed $q0 ; SDAG-NEXT: bl exp10 -; SDAG-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; SDAG-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; SDAG-NEXT: // kill: def $d0 killed $d0 def $q0 ; SDAG-NEXT: mov v0.d[1], v1.d[0] -; SDAG-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; SDAG-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; SDAG-NEXT: str q0, [sp, #16] // 16-byte Spill +; SDAG-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; SDAG-NEXT: mov d0, v0.d[1] ; SDAG-NEXT: bl exp10 ; SDAG-NEXT: // kill: def $d0 killed $d0 def $q0 -; SDAG-NEXT: str q0, [sp] // 16-byte Folded Spill -; SDAG-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; SDAG-NEXT: str q0, [sp] // 16-byte Spill +; SDAG-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; SDAG-NEXT: // kill: def $d0 killed $d0 killed $q0 ; SDAG-NEXT: bl exp10 ; SDAG-NEXT: fmov d1, d0 ; SDAG-NEXT: ldp q2, q0, [sp] // 32-byte Folded Reload -; SDAG-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; SDAG-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; SDAG-NEXT: mov v1.d[1], v2.d[0] ; SDAG-NEXT: add sp, sp, #64 ; SDAG-NEXT: ret @@ -691,35 +691,35 @@ define <4 x double> @exp10_v4f64(<4 x double> %x) { ; GISEL: // %bb.0: ; GISEL-NEXT: sub sp, sp, #80 ; GISEL-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; GISEL-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; GISEL-NEXT: str x30, [sp, #64] // 8-byte Spill ; GISEL-NEXT: .cfi_def_cfa_offset 80 ; GISEL-NEXT: .cfi_offset w30, -16 ; GISEL-NEXT: .cfi_offset b8, -24 ; GISEL-NEXT: .cfi_offset b9, -32 -; GISEL-NEXT: str q1, [sp] // 16-byte Folded Spill +; GISEL-NEXT: str q1, [sp] // 16-byte Spill ; GISEL-NEXT: mov d8, v0.d[1] ; GISEL-NEXT: mov d9, v1.d[1] ; GISEL-NEXT: // kill: def $d0 killed $d0 killed $q0 ; GISEL-NEXT: bl exp10 ; GISEL-NEXT: // kill: def $d0 killed $d0 def $q0 -; GISEL-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; GISEL-NEXT: str q0, [sp, #32] // 16-byte Spill ; GISEL-NEXT: fmov d0, d8 ; GISEL-NEXT: bl exp10 ; GISEL-NEXT: // kill: def $d0 killed $d0 def $q0 -; GISEL-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; GISEL-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; GISEL-NEXT: str q0, [sp, #16] // 16-byte Spill +; GISEL-NEXT: ldr q0, [sp] // 16-byte Reload ; GISEL-NEXT: // kill: def $d0 killed $d0 killed $q0 ; GISEL-NEXT: bl exp10 ; GISEL-NEXT: // kill: def $d0 killed $d0 def $q0 -; GISEL-NEXT: str q0, [sp] // 16-byte Folded Spill +; GISEL-NEXT: str q0, [sp] // 16-byte Spill ; GISEL-NEXT: fmov d0, d9 ; GISEL-NEXT: bl exp10 ; GISEL-NEXT: ldp q1, q2, [sp, #16] // 32-byte Folded Reload ; GISEL-NEXT: // kill: def $d0 killed $d0 def $q0 -; GISEL-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; GISEL-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; GISEL-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; GISEL-NEXT: mov v2.d[1], v1.d[0] -; GISEL-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; GISEL-NEXT: ldr q1, [sp] // 16-byte Reload ; GISEL-NEXT: mov v1.d[1], v0.d[0] ; GISEL-NEXT: mov v0.16b, v2.16b ; GISEL-NEXT: add sp, sp, #80 diff --git a/llvm/test/CodeGen/AArch64/llvm.frexp.ll b/llvm/test/CodeGen/AArch64/llvm.frexp.ll index 4e1876db772ed..bc9f4c54174d4 100644 --- a/llvm/test/CodeGen/AArch64/llvm.frexp.ll +++ b/llvm/test/CodeGen/AArch64/llvm.frexp.ll @@ -84,40 +84,40 @@ define { <2 x half>, <2 x i32> } @test_frexp_v2f16_v2i32(<2 x half> %a) nounwind ; CHECK-NEXT: sub sp, sp, #64 ; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-NEXT: mov h1, v0.h[1] -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-NEXT: add x0, sp, #36 ; CHECK-NEXT: stp x30, x19, [sp, #48] // 16-byte Folded Spill ; CHECK-NEXT: add x19, sp, #36 ; CHECK-NEXT: fcvt s0, h1 ; CHECK-NEXT: bl frexpf -; CHECK-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-NEXT: fcvt h0, s0 ; CHECK-NEXT: add x0, sp, #32 ; CHECK-NEXT: fcvt s1, h1 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: fmov s0, s1 ; CHECK-NEXT: bl frexpf -; CHECK-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-NEXT: fcvt h2, s0 ; CHECK-NEXT: add x0, sp, #40 ; CHECK-NEXT: mov h1, v1.h[2] ; CHECK-NEXT: fcvt s0, h1 -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: mov v2.h[1], v1.h[0] -; CHECK-NEXT: str q2, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q2, [sp] // 16-byte Spill ; CHECK-NEXT: bl frexpf -; CHECK-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-NEXT: fcvt h2, s0 ; CHECK-NEXT: add x0, sp, #44 ; CHECK-NEXT: mov h1, v1.h[3] ; CHECK-NEXT: fcvt s0, h1 -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: mov v1.h[2], v2.h[0] -; CHECK-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-NEXT: bl frexpf ; CHECK-NEXT: fcvt h2, s0 ; CHECK-NEXT: ldr s1, [sp, #32] -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: ld1 { v1.s }[1], [x19] ; CHECK-NEXT: ldp x30, x19, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: // kill: def $d1 killed $d1 killed $q1 @@ -131,40 +131,40 @@ define { <2 x half>, <2 x i32> } @test_frexp_v2f16_v2i32(<2 x half> %a) nounwind ; WINDOWS-NEXT: sub sp, sp, #64 ; WINDOWS-NEXT: // kill: def $d0 killed $d0 def $q0 ; WINDOWS-NEXT: mov h1, v0.h[1] -; WINDOWS-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; WINDOWS-NEXT: str q0, [sp, #16] // 16-byte Spill ; WINDOWS-NEXT: add x0, sp, #36 ; WINDOWS-NEXT: stp x30, x19, [sp, #48] // 16-byte Folded Spill ; WINDOWS-NEXT: add x19, sp, #36 ; WINDOWS-NEXT: fcvt d0, h1 ; WINDOWS-NEXT: bl frexp -; WINDOWS-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; WINDOWS-NEXT: fcvt h0, d0 ; WINDOWS-NEXT: add x0, sp, #32 ; WINDOWS-NEXT: fcvt d1, h1 -; WINDOWS-NEXT: str q0, [sp] // 16-byte Folded Spill +; WINDOWS-NEXT: str q0, [sp] // 16-byte Spill ; WINDOWS-NEXT: fmov d0, d1 ; WINDOWS-NEXT: bl frexp -; WINDOWS-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; WINDOWS-NEXT: fcvt h2, d0 ; WINDOWS-NEXT: add x0, sp, #40 ; WINDOWS-NEXT: mov h1, v1.h[2] ; WINDOWS-NEXT: fcvt d0, h1 -; WINDOWS-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q1, [sp] // 16-byte Reload ; WINDOWS-NEXT: mov v2.h[1], v1.h[0] -; WINDOWS-NEXT: str q2, [sp] // 16-byte Folded Spill +; WINDOWS-NEXT: str q2, [sp] // 16-byte Spill ; WINDOWS-NEXT: bl frexp -; WINDOWS-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; WINDOWS-NEXT: fcvt h2, d0 ; WINDOWS-NEXT: add x0, sp, #44 ; WINDOWS-NEXT: mov h1, v1.h[3] ; WINDOWS-NEXT: fcvt d0, h1 -; WINDOWS-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q1, [sp] // 16-byte Reload ; WINDOWS-NEXT: mov v1.h[2], v2.h[0] -; WINDOWS-NEXT: str q1, [sp] // 16-byte Folded Spill +; WINDOWS-NEXT: str q1, [sp] // 16-byte Spill ; WINDOWS-NEXT: bl frexp ; WINDOWS-NEXT: fcvt h2, d0 ; WINDOWS-NEXT: ldr s1, [sp, #32] -; WINDOWS-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q0, [sp] // 16-byte Reload ; WINDOWS-NEXT: ld1 { v1.s }[1], [x19] ; WINDOWS-NEXT: ldp x30, x19, [sp, #48] // 16-byte Folded Reload ; WINDOWS-NEXT: // kill: def $d1 killed $d1 killed $q1 @@ -182,39 +182,39 @@ define <2 x half> @test_frexp_v2f16_v2i32_only_use_fract(<2 x half> %a) nounwind ; CHECK-NEXT: sub sp, sp, #64 ; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-NEXT: mov h1, v0.h[1] -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-NEXT: add x0, sp, #44 -; CHECK-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-NEXT: fcvt s0, h1 ; CHECK-NEXT: bl frexpf -; CHECK-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-NEXT: fcvt h0, s0 ; CHECK-NEXT: add x0, sp, #40 ; CHECK-NEXT: fcvt s1, h1 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: fmov s0, s1 ; CHECK-NEXT: bl frexpf -; CHECK-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-NEXT: fcvt h2, s0 ; CHECK-NEXT: add x0, sp, #56 ; CHECK-NEXT: mov h1, v1.h[2] ; CHECK-NEXT: fcvt s0, h1 -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: mov v2.h[1], v1.h[0] -; CHECK-NEXT: str q2, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q2, [sp] // 16-byte Spill ; CHECK-NEXT: bl frexpf -; CHECK-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-NEXT: fcvt h2, s0 ; CHECK-NEXT: add x0, sp, #60 ; CHECK-NEXT: mov h1, v1.h[3] ; CHECK-NEXT: fcvt s0, h1 -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: mov v1.h[2], v2.h[0] -; CHECK-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-NEXT: bl frexpf ; CHECK-NEXT: fcvt h1, s0 -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-NEXT: mov v0.h[3], v1.h[0] ; CHECK-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-NEXT: add sp, sp, #64 @@ -225,39 +225,39 @@ define <2 x half> @test_frexp_v2f16_v2i32_only_use_fract(<2 x half> %a) nounwind ; WINDOWS-NEXT: sub sp, sp, #64 ; WINDOWS-NEXT: // kill: def $d0 killed $d0 def $q0 ; WINDOWS-NEXT: mov h1, v0.h[1] -; WINDOWS-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; WINDOWS-NEXT: str q0, [sp, #16] // 16-byte Spill ; WINDOWS-NEXT: add x0, sp, #44 -; WINDOWS-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; WINDOWS-NEXT: str x30, [sp, #48] // 8-byte Spill ; WINDOWS-NEXT: fcvt d0, h1 ; WINDOWS-NEXT: bl frexp -; WINDOWS-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; WINDOWS-NEXT: fcvt h0, d0 ; WINDOWS-NEXT: add x0, sp, #40 ; WINDOWS-NEXT: fcvt d1, h1 -; WINDOWS-NEXT: str q0, [sp] // 16-byte Folded Spill +; WINDOWS-NEXT: str q0, [sp] // 16-byte Spill ; WINDOWS-NEXT: fmov d0, d1 ; WINDOWS-NEXT: bl frexp -; WINDOWS-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; WINDOWS-NEXT: fcvt h2, d0 ; WINDOWS-NEXT: add x0, sp, #56 ; WINDOWS-NEXT: mov h1, v1.h[2] ; WINDOWS-NEXT: fcvt d0, h1 -; WINDOWS-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q1, [sp] // 16-byte Reload ; WINDOWS-NEXT: mov v2.h[1], v1.h[0] -; WINDOWS-NEXT: str q2, [sp] // 16-byte Folded Spill +; WINDOWS-NEXT: str q2, [sp] // 16-byte Spill ; WINDOWS-NEXT: bl frexp -; WINDOWS-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; WINDOWS-NEXT: fcvt h2, d0 ; WINDOWS-NEXT: add x0, sp, #60 ; WINDOWS-NEXT: mov h1, v1.h[3] ; WINDOWS-NEXT: fcvt d0, h1 -; WINDOWS-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q1, [sp] // 16-byte Reload ; WINDOWS-NEXT: mov v1.h[2], v2.h[0] -; WINDOWS-NEXT: str q1, [sp] // 16-byte Folded Spill +; WINDOWS-NEXT: str q1, [sp] // 16-byte Spill ; WINDOWS-NEXT: bl frexp ; WINDOWS-NEXT: fcvt h1, d0 -; WINDOWS-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; WINDOWS-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; WINDOWS-NEXT: ldr q0, [sp] // 16-byte Reload +; WINDOWS-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; WINDOWS-NEXT: mov v0.h[3], v1.h[0] ; WINDOWS-NEXT: // kill: def $d0 killed $d0 killed $q0 ; WINDOWS-NEXT: add sp, sp, #64 @@ -272,12 +272,12 @@ define <2 x i32> @test_frexp_v2f16_v2i32_only_use_exp(<2 x half> %a) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #48 ; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: add x0, sp, #24 ; CHECK-NEXT: fcvt s0, h0 ; CHECK-NEXT: stp x30, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: bl frexpf -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: add x0, sp, #28 ; CHECK-NEXT: add x19, sp, #28 ; CHECK-NEXT: mov h0, v0.h[1] @@ -294,12 +294,12 @@ define <2 x i32> @test_frexp_v2f16_v2i32_only_use_exp(<2 x half> %a) nounwind { ; WINDOWS: // %bb.0: ; WINDOWS-NEXT: sub sp, sp, #48 ; WINDOWS-NEXT: // kill: def $d0 killed $d0 def $q0 -; WINDOWS-NEXT: str q0, [sp] // 16-byte Folded Spill +; WINDOWS-NEXT: str q0, [sp] // 16-byte Spill ; WINDOWS-NEXT: add x0, sp, #24 ; WINDOWS-NEXT: fcvt d0, h0 ; WINDOWS-NEXT: stp x30, x19, [sp, #32] // 16-byte Folded Spill ; WINDOWS-NEXT: bl frexp -; WINDOWS-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q0, [sp] // 16-byte Reload ; WINDOWS-NEXT: add x0, sp, #28 ; WINDOWS-NEXT: add x19, sp, #28 ; WINDOWS-NEXT: mov h0, v0.h[1] @@ -320,32 +320,32 @@ define { <3 x float>, <3 x i32> } @test_frexp_v3f32_v3i32(<3 x float> %a) nounwi ; CHECK-LABEL: test_frexp_v3f32_v3i32: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #80 -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-NEXT: mov s0, v0.s[1] ; CHECK-NEXT: add x0, sp, #56 -; CHECK-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-NEXT: stp x20, x19, [sp, #64] // 16-byte Folded Spill ; CHECK-NEXT: add x19, sp, #56 ; CHECK-NEXT: bl frexpf ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: add x0, sp, #44 -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-NEXT: bl frexpf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-NEXT: add x0, sp, #60 ; CHECK-NEXT: add x20, sp, #60 ; CHECK-NEXT: mov v0.s[1], v1.s[0] -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: mov s0, v0.s[2] ; CHECK-NEXT: bl frexpf ; CHECK-NEXT: ldr s1, [sp, #44] -; CHECK-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q2, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-NEXT: ld1 { v1.s }[1], [x19] ; CHECK-NEXT: mov v2.s[2], v0.s[0] ; CHECK-NEXT: ld1 { v1.s }[2], [x20] @@ -358,7 +358,7 @@ define { <3 x float>, <3 x i32> } @test_frexp_v3f32_v3i32(<3 x float> %a) nounwi ; WINDOWS: // %bb.0: ; WINDOWS-NEXT: sub sp, sp, #80 ; WINDOWS-NEXT: mov s1, v0.s[1] -; WINDOWS-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; WINDOWS-NEXT: str q0, [sp, #16] // 16-byte Spill ; WINDOWS-NEXT: add x0, sp, #36 ; WINDOWS-NEXT: stp x30, x21, [sp, #48] // 16-byte Folded Spill ; WINDOWS-NEXT: stp x20, x19, [sp, #64] // 16-byte Folded Spill @@ -367,33 +367,33 @@ define { <3 x float>, <3 x i32> } @test_frexp_v3f32_v3i32(<3 x float> %a) nounwi ; WINDOWS-NEXT: bl frexp ; WINDOWS-NEXT: fcvt s0, d0 ; WINDOWS-NEXT: add x0, sp, #32 -; WINDOWS-NEXT: str q0, [sp] // 16-byte Folded Spill -; WINDOWS-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; WINDOWS-NEXT: str q0, [sp] // 16-byte Spill +; WINDOWS-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; WINDOWS-NEXT: fcvt d0, s0 ; WINDOWS-NEXT: bl frexp ; WINDOWS-NEXT: fcvt s0, d0 -; WINDOWS-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q1, [sp] // 16-byte Reload ; WINDOWS-NEXT: add x0, sp, #40 ; WINDOWS-NEXT: add x20, sp, #40 ; WINDOWS-NEXT: mov v0.s[1], v1.s[0] -; WINDOWS-NEXT: str q0, [sp] // 16-byte Folded Spill -; WINDOWS-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; WINDOWS-NEXT: str q0, [sp] // 16-byte Spill +; WINDOWS-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; WINDOWS-NEXT: mov s0, v0.s[2] ; WINDOWS-NEXT: fcvt d0, s0 ; WINDOWS-NEXT: bl frexp ; WINDOWS-NEXT: fcvt s0, d0 -; WINDOWS-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q1, [sp] // 16-byte Reload ; WINDOWS-NEXT: add x0, sp, #44 ; WINDOWS-NEXT: add x21, sp, #44 ; WINDOWS-NEXT: mov v1.s[2], v0.s[0] -; WINDOWS-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; WINDOWS-NEXT: mov s0, v0.s[3] -; WINDOWS-NEXT: str q1, [sp] // 16-byte Folded Spill +; WINDOWS-NEXT: str q1, [sp] // 16-byte Spill ; WINDOWS-NEXT: fcvt d0, s0 ; WINDOWS-NEXT: bl frexp ; WINDOWS-NEXT: ldr s1, [sp, #32] ; WINDOWS-NEXT: fcvt s2, d0 -; WINDOWS-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q0, [sp] // 16-byte Reload ; WINDOWS-NEXT: ld1 { v1.s }[1], [x19] ; WINDOWS-NEXT: mov v0.s[3], v2.s[0] ; WINDOWS-NEXT: ld1 { v1.s }[2], [x20] @@ -506,20 +506,20 @@ define { <2 x float>, <2 x i32> } @test_frexp_v2f32_v2i32(<2 x float> %a) nounwi ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #64 ; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: add x0, sp, #40 ; CHECK-NEXT: mov s0, v0.s[1] ; CHECK-NEXT: stp x30, x19, [sp, #48] // 16-byte Folded Spill ; CHECK-NEXT: add x19, sp, #40 ; CHECK-NEXT: bl frexpf ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-NEXT: add x0, sp, #44 -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-NEXT: bl frexpf ; CHECK-NEXT: ldr s1, [sp, #44] -; CHECK-NEXT: ldr q2, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: ldr q2, [sp, #16] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-NEXT: ld1 { v1.s }[1], [x19] ; CHECK-NEXT: ldp x30, x19, [sp, #48] // 16-byte Folded Reload @@ -534,22 +534,22 @@ define { <2 x float>, <2 x i32> } @test_frexp_v2f32_v2i32(<2 x float> %a) nounwi ; WINDOWS-NEXT: sub sp, sp, #48 ; WINDOWS-NEXT: // kill: def $d0 killed $d0 def $q0 ; WINDOWS-NEXT: mov s1, v0.s[1] -; WINDOWS-NEXT: str q0, [sp] // 16-byte Folded Spill +; WINDOWS-NEXT: str q0, [sp] // 16-byte Spill ; WINDOWS-NEXT: add x0, sp, #28 ; WINDOWS-NEXT: stp x30, x19, [sp, #32] // 16-byte Folded Spill ; WINDOWS-NEXT: add x19, sp, #28 ; WINDOWS-NEXT: fcvt d0, s1 ; WINDOWS-NEXT: bl frexp -; WINDOWS-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q1, [sp] // 16-byte Reload ; WINDOWS-NEXT: fcvt s0, d0 ; WINDOWS-NEXT: add x0, sp, #24 ; WINDOWS-NEXT: fcvt d1, s1 -; WINDOWS-NEXT: str q0, [sp] // 16-byte Folded Spill +; WINDOWS-NEXT: str q0, [sp] // 16-byte Spill ; WINDOWS-NEXT: fmov d0, d1 ; WINDOWS-NEXT: bl frexp ; WINDOWS-NEXT: fcvt s0, d0 ; WINDOWS-NEXT: ldr s1, [sp, #24] -; WINDOWS-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q2, [sp] // 16-byte Reload ; WINDOWS-NEXT: ld1 { v1.s }[1], [x19] ; WINDOWS-NEXT: ldp x30, x19, [sp, #32] // 16-byte Folded Reload ; WINDOWS-NEXT: // kill: def $d1 killed $d1 killed $q1 @@ -566,20 +566,20 @@ define <2 x float> @test_frexp_v2f32_v2i32_only_use_fract(<2 x float> %a) nounwi ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #48 ; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-NEXT: add x0, sp, #40 ; CHECK-NEXT: mov s0, v0.s[1] -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: bl frexpf ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: add x0, sp, #44 -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-NEXT: bl frexpf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: mov v0.s[1], v1.s[0] ; CHECK-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-NEXT: add sp, sp, #48 @@ -590,21 +590,21 @@ define <2 x float> @test_frexp_v2f32_v2i32_only_use_fract(<2 x float> %a) nounwi ; WINDOWS-NEXT: sub sp, sp, #32 ; WINDOWS-NEXT: // kill: def $d0 killed $d0 def $q0 ; WINDOWS-NEXT: mov s1, v0.s[1] -; WINDOWS-NEXT: str q0, [sp] // 16-byte Folded Spill +; WINDOWS-NEXT: str q0, [sp] // 16-byte Spill ; WINDOWS-NEXT: add x0, sp, #28 -; WINDOWS-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; WINDOWS-NEXT: str x30, [sp, #16] // 8-byte Spill ; WINDOWS-NEXT: fcvt d0, s1 ; WINDOWS-NEXT: bl frexp -; WINDOWS-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q1, [sp] // 16-byte Reload ; WINDOWS-NEXT: fcvt s0, d0 ; WINDOWS-NEXT: add x0, sp, #24 ; WINDOWS-NEXT: fcvt d1, s1 -; WINDOWS-NEXT: str q0, [sp] // 16-byte Folded Spill +; WINDOWS-NEXT: str q0, [sp] // 16-byte Spill ; WINDOWS-NEXT: fmov d0, d1 ; WINDOWS-NEXT: bl frexp ; WINDOWS-NEXT: fcvt s0, d0 -; WINDOWS-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; WINDOWS-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; WINDOWS-NEXT: ldr q1, [sp] // 16-byte Reload +; WINDOWS-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; WINDOWS-NEXT: mov v0.s[1], v1.s[0] ; WINDOWS-NEXT: // kill: def $d0 killed $d0 killed $q0 ; WINDOWS-NEXT: add sp, sp, #32 @@ -621,10 +621,10 @@ define <2 x i32> @test_frexp_v2f32_v2i32_only_use_exp(<2 x float> %a) nounwind { ; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-NEXT: add x0, sp, #28 ; CHECK-NEXT: stp x30, x19, [sp, #32] // 16-byte Folded Spill -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-NEXT: bl frexpf -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: add x0, sp, #24 ; CHECK-NEXT: add x19, sp, #24 ; CHECK-NEXT: mov s0, v0.s[1] @@ -640,12 +640,12 @@ define <2 x i32> @test_frexp_v2f32_v2i32_only_use_exp(<2 x float> %a) nounwind { ; WINDOWS: // %bb.0: ; WINDOWS-NEXT: sub sp, sp, #48 ; WINDOWS-NEXT: // kill: def $d0 killed $d0 def $q0 -; WINDOWS-NEXT: str q0, [sp] // 16-byte Folded Spill +; WINDOWS-NEXT: str q0, [sp] // 16-byte Spill ; WINDOWS-NEXT: add x0, sp, #24 ; WINDOWS-NEXT: fcvt d0, s0 ; WINDOWS-NEXT: stp x30, x19, [sp, #32] // 16-byte Folded Spill ; WINDOWS-NEXT: bl frexp -; WINDOWS-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q0, [sp] // 16-byte Reload ; WINDOWS-NEXT: add x0, sp, #28 ; WINDOWS-NEXT: add x19, sp, #28 ; WINDOWS-NEXT: mov s0, v0.s[1] @@ -666,7 +666,7 @@ define { <4 x float>, <4 x i32> } @test_frexp_v4f32_v4i32(<4 x float> %a) nounwi ; CHECK-LABEL: test_frexp_v4f32_v4i32: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #80 -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-NEXT: mov s0, v0.s[1] ; CHECK-NEXT: add x0, sp, #40 ; CHECK-NEXT: stp x30, x21, [sp, #48] // 16-byte Folded Spill @@ -674,31 +674,31 @@ define { <4 x float>, <4 x i32> } @test_frexp_v4f32_v4i32(<4 x float> %a) nounwi ; CHECK-NEXT: add x19, sp, #40 ; CHECK-NEXT: bl frexpf ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: add x0, sp, #44 -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-NEXT: bl frexpf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-NEXT: add x0, sp, #36 ; CHECK-NEXT: add x20, sp, #36 ; CHECK-NEXT: mov v0.s[1], v1.s[0] -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: mov s0, v0.s[2] ; CHECK-NEXT: bl frexpf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-NEXT: add x0, sp, #32 ; CHECK-NEXT: add x21, sp, #32 ; CHECK-NEXT: mov v1.s[2], v0.s[0] -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: mov s0, v0.s[3] -; CHECK-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-NEXT: bl frexpf ; CHECK-NEXT: ldr s1, [sp, #44] -; CHECK-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q2, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-NEXT: mov v2.s[3], v0.s[0] ; CHECK-NEXT: ld1 { v1.s }[1], [x19] @@ -715,7 +715,7 @@ define { <4 x float>, <4 x i32> } @test_frexp_v4f32_v4i32(<4 x float> %a) nounwi ; WINDOWS: // %bb.0: ; WINDOWS-NEXT: sub sp, sp, #80 ; WINDOWS-NEXT: mov s1, v0.s[1] -; WINDOWS-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; WINDOWS-NEXT: str q0, [sp, #16] // 16-byte Spill ; WINDOWS-NEXT: add x0, sp, #36 ; WINDOWS-NEXT: stp x30, x21, [sp, #48] // 16-byte Folded Spill ; WINDOWS-NEXT: stp x20, x19, [sp, #64] // 16-byte Folded Spill @@ -724,33 +724,33 @@ define { <4 x float>, <4 x i32> } @test_frexp_v4f32_v4i32(<4 x float> %a) nounwi ; WINDOWS-NEXT: bl frexp ; WINDOWS-NEXT: fcvt s0, d0 ; WINDOWS-NEXT: add x0, sp, #32 -; WINDOWS-NEXT: str q0, [sp] // 16-byte Folded Spill -; WINDOWS-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; WINDOWS-NEXT: str q0, [sp] // 16-byte Spill +; WINDOWS-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; WINDOWS-NEXT: fcvt d0, s0 ; WINDOWS-NEXT: bl frexp ; WINDOWS-NEXT: fcvt s0, d0 -; WINDOWS-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q1, [sp] // 16-byte Reload ; WINDOWS-NEXT: add x0, sp, #40 ; WINDOWS-NEXT: add x20, sp, #40 ; WINDOWS-NEXT: mov v0.s[1], v1.s[0] -; WINDOWS-NEXT: str q0, [sp] // 16-byte Folded Spill -; WINDOWS-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; WINDOWS-NEXT: str q0, [sp] // 16-byte Spill +; WINDOWS-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; WINDOWS-NEXT: mov s0, v0.s[2] ; WINDOWS-NEXT: fcvt d0, s0 ; WINDOWS-NEXT: bl frexp ; WINDOWS-NEXT: fcvt s0, d0 -; WINDOWS-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q1, [sp] // 16-byte Reload ; WINDOWS-NEXT: add x0, sp, #44 ; WINDOWS-NEXT: add x21, sp, #44 ; WINDOWS-NEXT: mov v1.s[2], v0.s[0] -; WINDOWS-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; WINDOWS-NEXT: mov s0, v0.s[3] -; WINDOWS-NEXT: str q1, [sp] // 16-byte Folded Spill +; WINDOWS-NEXT: str q1, [sp] // 16-byte Spill ; WINDOWS-NEXT: fcvt d0, s0 ; WINDOWS-NEXT: bl frexp ; WINDOWS-NEXT: ldr s1, [sp, #32] ; WINDOWS-NEXT: fcvt s2, d0 -; WINDOWS-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q0, [sp] // 16-byte Reload ; WINDOWS-NEXT: ld1 { v1.s }[1], [x19] ; WINDOWS-NEXT: mov v0.s[3], v2.s[0] ; WINDOWS-NEXT: ld1 { v1.s }[2], [x20] @@ -767,36 +767,36 @@ define <4 x float> @test_frexp_v4f32_v4i32_only_use_fract(<4 x float> %a) nounwi ; CHECK-LABEL: test_frexp_v4f32_v4i32_only_use_fract: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #64 -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-NEXT: mov s0, v0.s[1] ; CHECK-NEXT: add x0, sp, #56 -; CHECK-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-NEXT: bl frexpf ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: add x0, sp, #60 -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-NEXT: bl frexpf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-NEXT: add x0, sp, #44 ; CHECK-NEXT: mov v0.s[1], v1.s[0] -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: mov s0, v0.s[2] ; CHECK-NEXT: bl frexpf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-NEXT: add x0, sp, #40 ; CHECK-NEXT: mov v1.s[2], v0.s[0] -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: mov s0, v0.s[3] -; CHECK-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-NEXT: bl frexpf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-NEXT: mov v1.s[3], v0.s[0] ; CHECK-NEXT: mov v0.16b, v1.16b ; CHECK-NEXT: add sp, sp, #64 @@ -806,38 +806,38 @@ define <4 x float> @test_frexp_v4f32_v4i32_only_use_fract(<4 x float> %a) nounwi ; WINDOWS: // %bb.0: ; WINDOWS-NEXT: sub sp, sp, #64 ; WINDOWS-NEXT: mov s1, v0.s[1] -; WINDOWS-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; WINDOWS-NEXT: str q0, [sp, #16] // 16-byte Spill ; WINDOWS-NEXT: add x0, sp, #44 -; WINDOWS-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; WINDOWS-NEXT: str x30, [sp, #48] // 8-byte Spill ; WINDOWS-NEXT: fcvt d0, s1 ; WINDOWS-NEXT: bl frexp ; WINDOWS-NEXT: fcvt s0, d0 ; WINDOWS-NEXT: add x0, sp, #40 -; WINDOWS-NEXT: str q0, [sp] // 16-byte Folded Spill -; WINDOWS-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; WINDOWS-NEXT: str q0, [sp] // 16-byte Spill +; WINDOWS-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; WINDOWS-NEXT: fcvt d0, s0 ; WINDOWS-NEXT: bl frexp ; WINDOWS-NEXT: fcvt s0, d0 -; WINDOWS-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q1, [sp] // 16-byte Reload ; WINDOWS-NEXT: add x0, sp, #56 ; WINDOWS-NEXT: mov v0.s[1], v1.s[0] -; WINDOWS-NEXT: str q0, [sp] // 16-byte Folded Spill -; WINDOWS-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; WINDOWS-NEXT: str q0, [sp] // 16-byte Spill +; WINDOWS-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; WINDOWS-NEXT: mov s0, v0.s[2] ; WINDOWS-NEXT: fcvt d0, s0 ; WINDOWS-NEXT: bl frexp ; WINDOWS-NEXT: fcvt s0, d0 -; WINDOWS-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q1, [sp] // 16-byte Reload ; WINDOWS-NEXT: add x0, sp, #60 ; WINDOWS-NEXT: mov v1.s[2], v0.s[0] -; WINDOWS-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; WINDOWS-NEXT: mov s0, v0.s[3] -; WINDOWS-NEXT: str q1, [sp] // 16-byte Folded Spill +; WINDOWS-NEXT: str q1, [sp] // 16-byte Spill ; WINDOWS-NEXT: fcvt d0, s0 ; WINDOWS-NEXT: bl frexp ; WINDOWS-NEXT: fcvt s1, d0 -; WINDOWS-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; WINDOWS-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; WINDOWS-NEXT: ldr q0, [sp] // 16-byte Reload +; WINDOWS-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; WINDOWS-NEXT: mov v0.s[3], v1.s[0] ; WINDOWS-NEXT: add sp, sp, #64 ; WINDOWS-NEXT: ret @@ -853,20 +853,20 @@ define <4 x i32> @test_frexp_v4f32_v4i32_only_use_exp(<4 x float> %a) nounwind { ; CHECK-NEXT: add x0, sp, #28 ; CHECK-NEXT: stp x30, x21, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp x20, x19, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-NEXT: bl frexpf -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: add x0, sp, #24 ; CHECK-NEXT: add x19, sp, #24 ; CHECK-NEXT: mov s0, v0.s[1] ; CHECK-NEXT: bl frexpf -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: add x0, sp, #20 ; CHECK-NEXT: add x20, sp, #20 ; CHECK-NEXT: mov s0, v0.s[2] ; CHECK-NEXT: bl frexpf -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: add x0, sp, #16 ; CHECK-NEXT: add x21, sp, #16 ; CHECK-NEXT: mov s0, v0.s[3] @@ -884,25 +884,25 @@ define <4 x i32> @test_frexp_v4f32_v4i32_only_use_exp(<4 x float> %a) nounwind { ; WINDOWS-LABEL: test_frexp_v4f32_v4i32_only_use_exp: ; WINDOWS: // %bb.0: ; WINDOWS-NEXT: sub sp, sp, #64 -; WINDOWS-NEXT: str q0, [sp] // 16-byte Folded Spill +; WINDOWS-NEXT: str q0, [sp] // 16-byte Spill ; WINDOWS-NEXT: fcvt d0, s0 ; WINDOWS-NEXT: add x0, sp, #16 ; WINDOWS-NEXT: stp x30, x21, [sp, #32] // 16-byte Folded Spill ; WINDOWS-NEXT: stp x20, x19, [sp, #48] // 16-byte Folded Spill ; WINDOWS-NEXT: bl frexp -; WINDOWS-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q0, [sp] // 16-byte Reload ; WINDOWS-NEXT: add x0, sp, #20 ; WINDOWS-NEXT: add x19, sp, #20 ; WINDOWS-NEXT: mov s0, v0.s[1] ; WINDOWS-NEXT: fcvt d0, s0 ; WINDOWS-NEXT: bl frexp -; WINDOWS-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q0, [sp] // 16-byte Reload ; WINDOWS-NEXT: add x0, sp, #24 ; WINDOWS-NEXT: add x20, sp, #24 ; WINDOWS-NEXT: mov s0, v0.s[2] ; WINDOWS-NEXT: fcvt d0, s0 ; WINDOWS-NEXT: bl frexp -; WINDOWS-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q0, [sp] // 16-byte Reload ; WINDOWS-NEXT: add x0, sp, #28 ; WINDOWS-NEXT: add x21, sp, #28 ; WINDOWS-NEXT: mov s0, v0.s[3] @@ -991,20 +991,20 @@ define { <2 x double>, <2 x i32> } @test_frexp_v2f64_v2i32(<2 x double> %a) noun ; CHECK-LABEL: test_frexp_v2f64_v2i32: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #64 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: mov d0, v0.d[1] ; CHECK-NEXT: add x0, sp, #40 ; CHECK-NEXT: stp x30, x19, [sp, #48] // 16-byte Folded Spill ; CHECK-NEXT: add x19, sp, #40 ; CHECK-NEXT: bl frexp ; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-NEXT: add x0, sp, #44 -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-NEXT: bl frexp ; CHECK-NEXT: ldr s1, [sp, #44] -; CHECK-NEXT: ldr q2, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: ldr q2, [sp, #16] // 16-byte Reload ; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-NEXT: ld1 { v1.s }[1], [x19] ; CHECK-NEXT: ldp x30, x19, [sp, #48] // 16-byte Folded Reload @@ -1016,20 +1016,20 @@ define { <2 x double>, <2 x i32> } @test_frexp_v2f64_v2i32(<2 x double> %a) noun ; WINDOWS-LABEL: test_frexp_v2f64_v2i32: ; WINDOWS: // %bb.0: ; WINDOWS-NEXT: sub sp, sp, #64 -; WINDOWS-NEXT: str q0, [sp] // 16-byte Folded Spill +; WINDOWS-NEXT: str q0, [sp] // 16-byte Spill ; WINDOWS-NEXT: mov d0, v0.d[1] ; WINDOWS-NEXT: add x0, sp, #40 ; WINDOWS-NEXT: stp x30, x19, [sp, #48] // 16-byte Folded Spill ; WINDOWS-NEXT: add x19, sp, #40 ; WINDOWS-NEXT: bl frexp ; WINDOWS-NEXT: // kill: def $d0 killed $d0 def $q0 -; WINDOWS-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; WINDOWS-NEXT: str q0, [sp, #16] // 16-byte Spill ; WINDOWS-NEXT: add x0, sp, #44 -; WINDOWS-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q0, [sp] // 16-byte Reload ; WINDOWS-NEXT: // kill: def $d0 killed $d0 killed $q0 ; WINDOWS-NEXT: bl frexp ; WINDOWS-NEXT: ldr s1, [sp, #44] -; WINDOWS-NEXT: ldr q2, [sp, #16] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q2, [sp, #16] // 16-byte Reload ; WINDOWS-NEXT: // kill: def $d0 killed $d0 def $q0 ; WINDOWS-NEXT: ld1 { v1.s }[1], [x19] ; WINDOWS-NEXT: ldp x30, x19, [sp, #48] // 16-byte Folded Reload @@ -1045,20 +1045,20 @@ define <2 x double> @test_frexp_v2f64_v2i32_only_use_fract(<2 x double> %a) noun ; CHECK-LABEL: test_frexp_v2f64_v2i32_only_use_fract: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-NEXT: mov d0, v0.d[1] ; CHECK-NEXT: add x0, sp, #40 -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: bl frexp ; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: add x0, sp, #44 -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-NEXT: bl frexp -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: mov v0.d[1], v1.d[0] ; CHECK-NEXT: add sp, sp, #48 ; CHECK-NEXT: ret @@ -1066,20 +1066,20 @@ define <2 x double> @test_frexp_v2f64_v2i32_only_use_fract(<2 x double> %a) noun ; WINDOWS-LABEL: test_frexp_v2f64_v2i32_only_use_fract: ; WINDOWS: // %bb.0: ; WINDOWS-NEXT: sub sp, sp, #48 -; WINDOWS-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; WINDOWS-NEXT: str q0, [sp, #16] // 16-byte Spill ; WINDOWS-NEXT: mov d0, v0.d[1] ; WINDOWS-NEXT: add x0, sp, #40 -; WINDOWS-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; WINDOWS-NEXT: str x30, [sp, #32] // 8-byte Spill ; WINDOWS-NEXT: bl frexp ; WINDOWS-NEXT: // kill: def $d0 killed $d0 def $q0 -; WINDOWS-NEXT: str q0, [sp] // 16-byte Folded Spill +; WINDOWS-NEXT: str q0, [sp] // 16-byte Spill ; WINDOWS-NEXT: add x0, sp, #44 -; WINDOWS-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; WINDOWS-NEXT: // kill: def $d0 killed $d0 killed $q0 ; WINDOWS-NEXT: bl frexp -; WINDOWS-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q1, [sp] // 16-byte Reload ; WINDOWS-NEXT: // kill: def $d0 killed $d0 def $q0 -; WINDOWS-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; WINDOWS-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; WINDOWS-NEXT: mov v0.d[1], v1.d[0] ; WINDOWS-NEXT: add sp, sp, #48 ; WINDOWS-NEXT: ret @@ -1094,10 +1094,10 @@ define <2 x i32> @test_frexp_v2f64_v2i32_only_use_exp(<2 x double> %a) nounwind ; CHECK-NEXT: sub sp, sp, #48 ; CHECK-NEXT: add x0, sp, #28 ; CHECK-NEXT: stp x30, x19, [sp, #32] // 16-byte Folded Spill -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-NEXT: bl frexp -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: add x0, sp, #24 ; CHECK-NEXT: add x19, sp, #24 ; CHECK-NEXT: mov d0, v0.d[1] @@ -1114,10 +1114,10 @@ define <2 x i32> @test_frexp_v2f64_v2i32_only_use_exp(<2 x double> %a) nounwind ; WINDOWS-NEXT: sub sp, sp, #48 ; WINDOWS-NEXT: add x0, sp, #28 ; WINDOWS-NEXT: stp x30, x19, [sp, #32] // 16-byte Folded Spill -; WINDOWS-NEXT: str q0, [sp] // 16-byte Folded Spill +; WINDOWS-NEXT: str q0, [sp] // 16-byte Spill ; WINDOWS-NEXT: // kill: def $d0 killed $d0 killed $q0 ; WINDOWS-NEXT: bl frexp -; WINDOWS-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; WINDOWS-NEXT: ldr q0, [sp] // 16-byte Reload ; WINDOWS-NEXT: add x0, sp, #24 ; WINDOWS-NEXT: add x19, sp, #24 ; WINDOWS-NEXT: mov d0, v0.d[1] diff --git a/llvm/test/CodeGen/AArch64/llvm.modf.ll b/llvm/test/CodeGen/AArch64/llvm.modf.ll index 503742fa1c443..e9544375adc09 100644 --- a/llvm/test/CodeGen/AArch64/llvm.modf.ll +++ b/llvm/test/CodeGen/AArch64/llvm.modf.ll @@ -59,44 +59,44 @@ define { <2 x half>, <2 x half> } @test_modf_v2f16(<2 x half> %a) { ; CHECK-SD-LABEL: test_modf_v2f16: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #64 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-SD-NEXT: mov h1, v0.h[1] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: add x0, sp, #44 ; CHECK-SD-NEXT: fcvt s0, h1 ; CHECK-SD-NEXT: bl modff -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: fcvt h0, s0 ; CHECK-SD-NEXT: add x0, sp, #40 ; CHECK-SD-NEXT: fcvt s1, h1 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: fmov s0, s1 ; CHECK-SD-NEXT: bl modff -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: fcvt h2, s0 ; CHECK-SD-NEXT: add x0, sp, #56 ; CHECK-SD-NEXT: mov h1, v1.h[2] ; CHECK-SD-NEXT: fcvt s0, h1 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v2.h[1], v1.h[0] -; CHECK-SD-NEXT: str q2, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q2, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: bl modff -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: fcvt h2, s0 ; CHECK-SD-NEXT: add x0, sp, #60 ; CHECK-SD-NEXT: mov h1, v1.h[3] ; CHECK-SD-NEXT: fcvt s0, h1 -; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov v1.h[2], v2.h[0] -; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: bl modff ; CHECK-SD-NEXT: ldp s2, s1, [sp, #40] ; CHECK-SD-NEXT: fcvt h4, s0 -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: fcvt h3, s1 ; CHECK-SD-NEXT: fcvt h1, s2 ; CHECK-SD-NEXT: ldr s2, [sp, #56] @@ -115,8 +115,8 @@ define { <2 x half>, <2 x half> } @test_modf_v2f16(<2 x half> %a) { ; CHECK-GI-LABEL: test_modf_v2f16: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #64 -; CHECK-GI-NEXT: str d8, [sp, #48] // 8-byte Folded Spill -; CHECK-GI-NEXT: str x30, [sp, #56] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d8, [sp, #48] // 8-byte Spill +; CHECK-GI-NEXT: str x30, [sp, #56] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 64 ; CHECK-GI-NEXT: .cfi_offset w30, -8 ; CHECK-GI-NEXT: .cfi_offset b8, -16 @@ -128,15 +128,15 @@ define { <2 x half>, <2 x half> } @test_modf_v2f16(<2 x half> %a) { ; CHECK-GI-NEXT: fcvt h0, s0 ; CHECK-GI-NEXT: ldr s1, [sp, #40] ; CHECK-GI-NEXT: add x0, sp, #44 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: fcvt h0, s1 -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fcvt s0, h8 ; CHECK-GI-NEXT: bl modff ; CHECK-GI-NEXT: ldr s1, [sp, #44] ; CHECK-GI-NEXT: fcvt h3, s0 -; CHECK-GI-NEXT: ldr x30, [sp, #56] // 8-byte Folded Reload -; CHECK-GI-NEXT: ldr d8, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #56] // 8-byte Reload +; CHECK-GI-NEXT: ldr d8, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: fcvt h2, s1 ; CHECK-GI-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-GI-NEXT: mov v0.h[1], v3.h[0] @@ -168,36 +168,36 @@ define { <3 x float>, <3 x float> } @test_modf_v3f32(<3 x float> %a) { ; CHECK-SD-LABEL: test_modf_v3f32: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #80 -; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-SD-NEXT: stp x20, x19, [sp, #64] // 16-byte Folded Spill ; CHECK-SD-NEXT: .cfi_def_cfa_offset 80 ; CHECK-SD-NEXT: .cfi_offset w19, -8 ; CHECK-SD-NEXT: .cfi_offset w20, -16 ; CHECK-SD-NEXT: .cfi_offset w30, -32 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: mov s0, v0.s[1] ; CHECK-SD-NEXT: add x0, sp, #56 ; CHECK-SD-NEXT: add x19, sp, #56 ; CHECK-SD-NEXT: bl modff ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: add x0, sp, #44 -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl modff -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: add x0, sp, #60 ; CHECK-SD-NEXT: add x20, sp, #60 ; CHECK-SD-NEXT: mov v0.s[1], v1.s[0] -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: mov s0, v0.s[2] ; CHECK-SD-NEXT: bl modff ; CHECK-SD-NEXT: ldr s1, [sp, #44] -; CHECK-SD-NEXT: ldr q2, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q2, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-SD-NEXT: ld1 { v1.s }[1], [x19] ; CHECK-SD-NEXT: mov v2.s[2], v0.s[0] ; CHECK-SD-NEXT: ld1 { v1.s }[2], [x20] @@ -228,19 +228,19 @@ define { <3 x float>, <3 x float> } @test_modf_v3f32(<3 x float> %a) { ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl modff ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: add x0, sp, #76 ; CHECK-GI-NEXT: add x19, sp, #76 ; CHECK-GI-NEXT: ldr s0, [sp, #72] -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s9 ; CHECK-GI-NEXT: bl modff ; CHECK-GI-NEXT: ldp q3, q2, [sp, #16] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #80] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v2.s[1], v1.s[0] -; CHECK-GI-NEXT: ldr q1, [sp, #48] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp, #48] // 16-byte Reload ; CHECK-GI-NEXT: mov v1.s[1], v3.s[0] ; CHECK-GI-NEXT: mov v2.s[2], v0.s[0] ; CHECK-GI-NEXT: ld1 { v1.s }[2], [x19] @@ -261,19 +261,19 @@ define { <2 x float>, <2 x float> } @test_modf_v2f32(<2 x float> %a) { ; CHECK-SD-NEXT: .cfi_offset w19, -8 ; CHECK-SD-NEXT: .cfi_offset w30, -16 ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: add x0, sp, #40 ; CHECK-SD-NEXT: add x19, sp, #40 ; CHECK-SD-NEXT: mov s0, v0.s[1] ; CHECK-SD-NEXT: bl modff ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: add x0, sp, #44 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-SD-NEXT: bl modff ; CHECK-SD-NEXT: ldr s1, [sp, #44] -; CHECK-SD-NEXT: ldr q2, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q2, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-SD-NEXT: ld1 { v1.s }[1], [x19] ; CHECK-SD-NEXT: ldp x30, x19, [sp, #48] // 16-byte Folded Reload @@ -286,7 +286,7 @@ define { <2 x float>, <2 x float> } @test_modf_v2f32(<2 x float> %a) { ; CHECK-GI-LABEL: test_modf_v2f32: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #64 -; CHECK-GI-NEXT: str d8, [sp, #32] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d8, [sp, #32] // 8-byte Spill ; CHECK-GI-NEXT: stp x30, x19, [sp, #48] // 16-byte Folded Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 64 ; CHECK-GI-NEXT: .cfi_offset w19, -8 @@ -298,16 +298,16 @@ define { <2 x float>, <2 x float> } @test_modf_v2f32(<2 x float> %a) { ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-GI-NEXT: bl modff ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: add x0, sp, #44 ; CHECK-GI-NEXT: add x19, sp, #44 ; CHECK-GI-NEXT: ldr s0, [sp, #40] -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov s0, s8 ; CHECK-GI-NEXT: bl modff ; CHECK-GI-NEXT: ldp q2, q1, [sp] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-GI-NEXT: ldr d8, [sp, #32] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr d8, [sp, #32] // 8-byte Reload ; CHECK-GI-NEXT: mov v2.s[1], v0.s[0] ; CHECK-GI-NEXT: ld1 { v1.s }[1], [x19] ; CHECK-GI-NEXT: ldp x30, x19, [sp, #48] // 16-byte Folded Reload @@ -342,19 +342,19 @@ define { <2 x double>, <2 x double> } @test_modf_v2f64(<2 x double> %a) { ; CHECK-SD-NEXT: .cfi_def_cfa_offset 64 ; CHECK-SD-NEXT: .cfi_offset w19, -8 ; CHECK-SD-NEXT: .cfi_offset w30, -16 -; CHECK-SD-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov d0, v0.d[1] ; CHECK-SD-NEXT: add x0, sp, #32 ; CHECK-SD-NEXT: add x19, sp, #32 ; CHECK-SD-NEXT: bl modf ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-SD-NEXT: add x0, sp, #40 -; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-SD-NEXT: bl modf ; CHECK-SD-NEXT: ldr d1, [sp, #40] -; CHECK-SD-NEXT: ldr q2, [sp, #16] // 16-byte Folded Reload +; CHECK-SD-NEXT: ldr q2, [sp, #16] // 16-byte Reload ; CHECK-SD-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-SD-NEXT: ld1 { v1.d }[1], [x19] ; CHECK-SD-NEXT: ldp x30, x19, [sp, #48] // 16-byte Folded Reload @@ -365,7 +365,7 @@ define { <2 x double>, <2 x double> } @test_modf_v2f64(<2 x double> %a) { ; CHECK-GI-LABEL: test_modf_v2f64: ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #80 -; CHECK-GI-NEXT: str d8, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str d8, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: stp x30, x19, [sp, #64] // 16-byte Folded Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 80 ; CHECK-GI-NEXT: .cfi_offset w19, -8 @@ -376,16 +376,16 @@ define { <2 x double>, <2 x double> } @test_modf_v2f64(<2 x double> %a) { ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-GI-NEXT: bl modf ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-GI-NEXT: add x0, sp, #56 ; CHECK-GI-NEXT: add x19, sp, #56 ; CHECK-GI-NEXT: ldr d0, [sp, #40] -; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-GI-NEXT: fmov d0, d8 ; CHECK-GI-NEXT: bl modf ; CHECK-GI-NEXT: ldp q2, q1, [sp] // 32-byte Folded Reload ; CHECK-GI-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-GI-NEXT: ldr d8, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr d8, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: mov v2.d[1], v0.d[0] ; CHECK-GI-NEXT: ld1 { v1.d }[1], [x19] ; CHECK-GI-NEXT: ldp x30, x19, [sp, #64] // 16-byte Folded Reload @@ -400,13 +400,13 @@ define { fp128, fp128 } @test_modf_fp128(fp128 %a) { ; CHECK-LABEL: test_modf_fp128: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #32 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: mov x0, sp ; CHECK-NEXT: bl modfl ; CHECK-NEXT: ldr q1, [sp] -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: ret %result = call { fp128, fp128 } @llvm.modf.fp128(fp128 %a) diff --git a/llvm/test/CodeGen/AArch64/llvm.sincos.ll b/llvm/test/CodeGen/AArch64/llvm.sincos.ll index f1dcb2a478a0d..50025098acaf2 100644 --- a/llvm/test/CodeGen/AArch64/llvm.sincos.ll +++ b/llvm/test/CodeGen/AArch64/llvm.sincos.ll @@ -20,14 +20,14 @@ define { half, half } @test_sincos_f16(half %a) nounwind { ; NO-LIBCALL: // %bb.0: ; NO-LIBCALL-NEXT: stp d9, d8, [sp, #-32]! // 16-byte Folded Spill ; NO-LIBCALL-NEXT: fcvt s8, h0 -; NO-LIBCALL-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; NO-LIBCALL-NEXT: str x30, [sp, #16] // 8-byte Spill ; NO-LIBCALL-NEXT: fmov s0, s8 ; NO-LIBCALL-NEXT: bl sinf ; NO-LIBCALL-NEXT: fcvt h9, s0 ; NO-LIBCALL-NEXT: fmov s0, s8 ; NO-LIBCALL-NEXT: bl cosf ; NO-LIBCALL-NEXT: fmov s1, s0 -; NO-LIBCALL-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; NO-LIBCALL-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; NO-LIBCALL-NEXT: fmov s0, s9 ; NO-LIBCALL-NEXT: fcvt h1, s1 ; NO-LIBCALL-NEXT: ldp d9, d8, [sp], #32 // 16-byte Folded Reload @@ -94,31 +94,31 @@ define { <2 x half>, <2 x half> } @test_sincos_v2f16(<2 x half> %a) nounwind { ; CHECK-NEXT: sub sp, sp, #64 ; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-NEXT: mov h1, v0.h[1] -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: add x0, sp, #36 ; CHECK-NEXT: add x1, sp, #32 -; CHECK-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-NEXT: fcvt s0, h1 ; CHECK-NEXT: bl sincosf -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: add x0, sp, #28 ; CHECK-NEXT: add x1, sp, #24 ; CHECK-NEXT: fcvt s0, h0 ; CHECK-NEXT: bl sincosf -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: add x0, sp, #44 ; CHECK-NEXT: add x1, sp, #40 ; CHECK-NEXT: mov h0, v0.h[2] ; CHECK-NEXT: fcvt s0, h0 ; CHECK-NEXT: bl sincosf -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: add x0, sp, #60 ; CHECK-NEXT: add x1, sp, #56 ; CHECK-NEXT: mov h0, v0.h[3] ; CHECK-NEXT: fcvt s0, h0 ; CHECK-NEXT: bl sincosf ; CHECK-NEXT: ldp s2, s0, [sp, #32] -; CHECK-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-NEXT: ldp s3, s1, [sp, #24] ; CHECK-NEXT: fcvt h4, s0 ; CHECK-NEXT: fcvt h2, s2 @@ -147,66 +147,66 @@ define { <2 x half>, <2 x half> } @test_sincos_v2f16(<2 x half> %a) nounwind { ; NO-LIBCALL-NEXT: // kill: def $d0 killed $d0 def $q0 ; NO-LIBCALL-NEXT: mov h1, v0.h[1] ; NO-LIBCALL-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; NO-LIBCALL-NEXT: str q0, [sp] // 16-byte Folded Spill +; NO-LIBCALL-NEXT: str q0, [sp] // 16-byte Spill ; NO-LIBCALL-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill -; NO-LIBCALL-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; NO-LIBCALL-NEXT: str x30, [sp, #64] // 8-byte Spill ; NO-LIBCALL-NEXT: fcvt s8, h1 ; NO-LIBCALL-NEXT: fmov s0, s8 ; NO-LIBCALL-NEXT: bl sinf -; NO-LIBCALL-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; NO-LIBCALL-NEXT: ldr q1, [sp] // 16-byte Reload ; NO-LIBCALL-NEXT: fcvt h0, s0 ; NO-LIBCALL-NEXT: fcvt s9, h1 -; NO-LIBCALL-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; NO-LIBCALL-NEXT: str q0, [sp, #16] // 16-byte Spill ; NO-LIBCALL-NEXT: fmov s0, s9 ; NO-LIBCALL-NEXT: bl sinf -; NO-LIBCALL-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; NO-LIBCALL-NEXT: ldr q1, [sp] // 16-byte Reload ; NO-LIBCALL-NEXT: fcvt h0, s0 ; NO-LIBCALL-NEXT: mov h1, v1.h[2] ; NO-LIBCALL-NEXT: fcvt s10, h1 -; NO-LIBCALL-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; NO-LIBCALL-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; NO-LIBCALL-NEXT: mov v0.h[1], v1.h[0] -; NO-LIBCALL-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; NO-LIBCALL-NEXT: str q0, [sp, #16] // 16-byte Spill ; NO-LIBCALL-NEXT: fmov s0, s10 ; NO-LIBCALL-NEXT: bl sinf -; NO-LIBCALL-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; NO-LIBCALL-NEXT: ldr q1, [sp] // 16-byte Reload ; NO-LIBCALL-NEXT: fcvt h0, s0 ; NO-LIBCALL-NEXT: mov h1, v1.h[3] ; NO-LIBCALL-NEXT: fcvt s11, h1 -; NO-LIBCALL-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; NO-LIBCALL-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; NO-LIBCALL-NEXT: mov v1.h[2], v0.h[0] ; NO-LIBCALL-NEXT: fmov s0, s11 -; NO-LIBCALL-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; NO-LIBCALL-NEXT: str q1, [sp, #16] // 16-byte Spill ; NO-LIBCALL-NEXT: bl sinf ; NO-LIBCALL-NEXT: fcvt h0, s0 -; NO-LIBCALL-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; NO-LIBCALL-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; NO-LIBCALL-NEXT: mov v1.h[3], v0.h[0] ; NO-LIBCALL-NEXT: fmov s0, s8 -; NO-LIBCALL-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; NO-LIBCALL-NEXT: str q1, [sp, #16] // 16-byte Spill ; NO-LIBCALL-NEXT: bl cosf ; NO-LIBCALL-NEXT: fcvt h0, s0 -; NO-LIBCALL-NEXT: str q0, [sp] // 16-byte Folded Spill +; NO-LIBCALL-NEXT: str q0, [sp] // 16-byte Spill ; NO-LIBCALL-NEXT: fmov s0, s9 ; NO-LIBCALL-NEXT: bl cosf ; NO-LIBCALL-NEXT: fcvt h0, s0 -; NO-LIBCALL-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; NO-LIBCALL-NEXT: ldr q1, [sp] // 16-byte Reload ; NO-LIBCALL-NEXT: mov v0.h[1], v1.h[0] -; NO-LIBCALL-NEXT: str q0, [sp] // 16-byte Folded Spill +; NO-LIBCALL-NEXT: str q0, [sp] // 16-byte Spill ; NO-LIBCALL-NEXT: fmov s0, s10 ; NO-LIBCALL-NEXT: bl cosf ; NO-LIBCALL-NEXT: fcvt h0, s0 -; NO-LIBCALL-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; NO-LIBCALL-NEXT: ldr q1, [sp] // 16-byte Reload ; NO-LIBCALL-NEXT: mov v1.h[2], v0.h[0] ; NO-LIBCALL-NEXT: fmov s0, s11 -; NO-LIBCALL-NEXT: str q1, [sp] // 16-byte Folded Spill +; NO-LIBCALL-NEXT: str q1, [sp] // 16-byte Spill ; NO-LIBCALL-NEXT: bl cosf ; NO-LIBCALL-NEXT: fmov s1, s0 ; NO-LIBCALL-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; NO-LIBCALL-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload -; NO-LIBCALL-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload -; NO-LIBCALL-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; NO-LIBCALL-NEXT: ldr q0, [sp, #16] // 16-byte Reload +; NO-LIBCALL-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; NO-LIBCALL-NEXT: // kill: def $d0 killed $d0 killed $q0 ; NO-LIBCALL-NEXT: fcvt h2, s1 -; NO-LIBCALL-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; NO-LIBCALL-NEXT: ldr q1, [sp] // 16-byte Reload ; NO-LIBCALL-NEXT: mov v1.h[3], v2.h[0] ; NO-LIBCALL-NEXT: // kill: def $d1 killed $d1 killed $q1 ; NO-LIBCALL-NEXT: add sp, sp, #80 @@ -229,13 +229,13 @@ define { float, float } @test_sincos_f32(float %a) nounwind { ; NO-LIBCALL-LABEL: test_sincos_f32: ; NO-LIBCALL: // %bb.0: ; NO-LIBCALL-NEXT: stp d9, d8, [sp, #-32]! // 16-byte Folded Spill -; NO-LIBCALL-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; NO-LIBCALL-NEXT: str x30, [sp, #16] // 8-byte Spill ; NO-LIBCALL-NEXT: fmov s8, s0 ; NO-LIBCALL-NEXT: bl sinf ; NO-LIBCALL-NEXT: fmov s9, s0 ; NO-LIBCALL-NEXT: fmov s0, s8 ; NO-LIBCALL-NEXT: bl cosf -; NO-LIBCALL-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; NO-LIBCALL-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; NO-LIBCALL-NEXT: fmov s1, s0 ; NO-LIBCALL-NEXT: fmov s0, s9 ; NO-LIBCALL-NEXT: ldp d9, d8, [sp], #32 // 16-byte Folded Reload @@ -250,20 +250,20 @@ define { <3 x float>, <3 x float> } @test_sincos_v3f32(<3 x float> %a) nounwind ; CHECK-NEXT: sub sp, sp, #80 ; CHECK-NEXT: add x0, sp, #20 ; CHECK-NEXT: add x1, sp, #16 -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: stp x22, x21, [sp, #48] // 16-byte Folded Spill ; CHECK-NEXT: stp x20, x19, [sp, #64] // 16-byte Folded Spill -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-NEXT: bl sincosf -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: add x0, sp, #28 ; CHECK-NEXT: add x1, sp, #24 ; CHECK-NEXT: add x19, sp, #28 ; CHECK-NEXT: add x20, sp, #24 ; CHECK-NEXT: mov s0, v0.s[1] ; CHECK-NEXT: bl sincosf -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: add x0, sp, #44 ; CHECK-NEXT: add x1, sp, #40 ; CHECK-NEXT: add x21, sp, #44 @@ -271,7 +271,7 @@ define { <3 x float>, <3 x float> } @test_sincos_v3f32(<3 x float> %a) nounwind ; CHECK-NEXT: mov s0, v0.s[2] ; CHECK-NEXT: bl sincosf ; CHECK-NEXT: ldp s1, s0, [sp, #16] -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: ld1 { v0.s }[1], [x19] ; CHECK-NEXT: ld1 { v1.s }[1], [x20] ; CHECK-NEXT: ldp x20, x19, [sp, #64] // 16-byte Folded Reload @@ -286,44 +286,44 @@ define { <3 x float>, <3 x float> } @test_sincos_v3f32(<3 x float> %a) nounwind ; NO-LIBCALL-NEXT: sub sp, sp, #80 ; NO-LIBCALL-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill ; NO-LIBCALL-NEXT: mov s8, v0.s[1] -; NO-LIBCALL-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; NO-LIBCALL-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; NO-LIBCALL-NEXT: str q0, [sp, #32] // 16-byte Spill +; NO-LIBCALL-NEXT: str x30, [sp, #64] // 8-byte Spill ; NO-LIBCALL-NEXT: fmov s0, s8 ; NO-LIBCALL-NEXT: bl sinf ; NO-LIBCALL-NEXT: // kill: def $s0 killed $s0 def $q0 -; NO-LIBCALL-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; NO-LIBCALL-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; NO-LIBCALL-NEXT: str q0, [sp, #16] // 16-byte Spill +; NO-LIBCALL-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; NO-LIBCALL-NEXT: // kill: def $s0 killed $s0 killed $q0 ; NO-LIBCALL-NEXT: bl sinf -; NO-LIBCALL-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; NO-LIBCALL-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; NO-LIBCALL-NEXT: // kill: def $s0 killed $s0 def $q0 ; NO-LIBCALL-NEXT: mov v0.s[1], v1.s[0] -; NO-LIBCALL-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; NO-LIBCALL-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; NO-LIBCALL-NEXT: str q0, [sp, #16] // 16-byte Spill +; NO-LIBCALL-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; NO-LIBCALL-NEXT: mov s9, v0.s[2] ; NO-LIBCALL-NEXT: fmov s0, s9 ; NO-LIBCALL-NEXT: bl sinf -; NO-LIBCALL-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; NO-LIBCALL-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; NO-LIBCALL-NEXT: // kill: def $s0 killed $s0 def $q0 ; NO-LIBCALL-NEXT: mov v1.s[2], v0.s[0] ; NO-LIBCALL-NEXT: fmov s0, s8 -; NO-LIBCALL-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; NO-LIBCALL-NEXT: str q1, [sp, #16] // 16-byte Spill ; NO-LIBCALL-NEXT: bl cosf ; NO-LIBCALL-NEXT: // kill: def $s0 killed $s0 def $q0 -; NO-LIBCALL-NEXT: str q0, [sp] // 16-byte Folded Spill -; NO-LIBCALL-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; NO-LIBCALL-NEXT: str q0, [sp] // 16-byte Spill +; NO-LIBCALL-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; NO-LIBCALL-NEXT: // kill: def $s0 killed $s0 killed $q0 ; NO-LIBCALL-NEXT: bl cosf -; NO-LIBCALL-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; NO-LIBCALL-NEXT: ldr q1, [sp] // 16-byte Reload ; NO-LIBCALL-NEXT: // kill: def $s0 killed $s0 def $q0 ; NO-LIBCALL-NEXT: mov v0.s[1], v1.s[0] -; NO-LIBCALL-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; NO-LIBCALL-NEXT: str q0, [sp, #32] // 16-byte Spill ; NO-LIBCALL-NEXT: fmov s0, s9 ; NO-LIBCALL-NEXT: bl cosf ; NO-LIBCALL-NEXT: fmov s2, s0 ; NO-LIBCALL-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload ; NO-LIBCALL-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload -; NO-LIBCALL-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; NO-LIBCALL-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; NO-LIBCALL-NEXT: mov v1.s[2], v2.s[0] ; NO-LIBCALL-NEXT: add sp, sp, #80 ; NO-LIBCALL-NEXT: ret @@ -338,12 +338,12 @@ define { <2 x float>, <2 x float> } @test_sincos_v2f32(<2 x float> %a) nounwind ; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-NEXT: add x0, sp, #44 ; CHECK-NEXT: add x1, sp, #40 -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: stp x20, x19, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-NEXT: bl sincosf -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: add x0, sp, #28 ; CHECK-NEXT: add x1, sp, #24 ; CHECK-NEXT: add x19, sp, #28 @@ -351,7 +351,7 @@ define { <2 x float>, <2 x float> } @test_sincos_v2f32(<2 x float> %a) nounwind ; CHECK-NEXT: mov s0, v0.s[1] ; CHECK-NEXT: bl sincosf ; CHECK-NEXT: ldp s1, s0, [sp, #40] -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: ld1 { v0.s }[1], [x19] ; CHECK-NEXT: ld1 { v1.s }[1], [x20] ; CHECK-NEXT: ldp x20, x19, [sp, #48] // 16-byte Folded Reload @@ -363,33 +363,33 @@ define { <2 x float>, <2 x float> } @test_sincos_v2f32(<2 x float> %a) nounwind ; NO-LIBCALL-LABEL: test_sincos_v2f32: ; NO-LIBCALL: // %bb.0: ; NO-LIBCALL-NEXT: sub sp, sp, #64 -; NO-LIBCALL-NEXT: str d8, [sp, #48] // 8-byte Folded Spill +; NO-LIBCALL-NEXT: str d8, [sp, #48] // 8-byte Spill ; NO-LIBCALL-NEXT: // kill: def $d0 killed $d0 def $q0 ; NO-LIBCALL-NEXT: mov s8, v0.s[1] -; NO-LIBCALL-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; NO-LIBCALL-NEXT: str x30, [sp, #56] // 8-byte Folded Spill +; NO-LIBCALL-NEXT: str q0, [sp, #32] // 16-byte Spill +; NO-LIBCALL-NEXT: str x30, [sp, #56] // 8-byte Spill ; NO-LIBCALL-NEXT: fmov s0, s8 ; NO-LIBCALL-NEXT: bl sinf ; NO-LIBCALL-NEXT: // kill: def $s0 killed $s0 def $q0 -; NO-LIBCALL-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; NO-LIBCALL-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; NO-LIBCALL-NEXT: str q0, [sp, #16] // 16-byte Spill +; NO-LIBCALL-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; NO-LIBCALL-NEXT: // kill: def $s0 killed $s0 killed $q0 ; NO-LIBCALL-NEXT: bl sinf -; NO-LIBCALL-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; NO-LIBCALL-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; NO-LIBCALL-NEXT: // kill: def $s0 killed $s0 def $q0 ; NO-LIBCALL-NEXT: mov v0.s[1], v1.s[0] -; NO-LIBCALL-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; NO-LIBCALL-NEXT: str q0, [sp, #16] // 16-byte Spill ; NO-LIBCALL-NEXT: fmov s0, s8 ; NO-LIBCALL-NEXT: bl cosf ; NO-LIBCALL-NEXT: // kill: def $s0 killed $s0 def $q0 -; NO-LIBCALL-NEXT: str q0, [sp] // 16-byte Folded Spill -; NO-LIBCALL-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; NO-LIBCALL-NEXT: str q0, [sp] // 16-byte Spill +; NO-LIBCALL-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; NO-LIBCALL-NEXT: // kill: def $s0 killed $s0 killed $q0 ; NO-LIBCALL-NEXT: bl cosf ; NO-LIBCALL-NEXT: fmov s1, s0 ; NO-LIBCALL-NEXT: ldp q2, q0, [sp] // 32-byte Folded Reload -; NO-LIBCALL-NEXT: ldr x30, [sp, #56] // 8-byte Folded Reload -; NO-LIBCALL-NEXT: ldr d8, [sp, #48] // 8-byte Folded Reload +; NO-LIBCALL-NEXT: ldr x30, [sp, #56] // 8-byte Reload +; NO-LIBCALL-NEXT: ldr d8, [sp, #48] // 8-byte Reload ; NO-LIBCALL-NEXT: // kill: def $d0 killed $d0 killed $q0 ; NO-LIBCALL-NEXT: mov v1.s[1], v2.s[0] ; NO-LIBCALL-NEXT: // kill: def $d1 killed $d1 killed $q1 @@ -405,24 +405,24 @@ define { double, double } @test_sincos_f64(double %a) nounwind { ; CHECK-NEXT: sub sp, sp, #32 ; CHECK-NEXT: add x0, sp, #24 ; CHECK-NEXT: add x1, sp, #8 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: bl sincos ; CHECK-NEXT: ldr d0, [sp, #24] ; CHECK-NEXT: ldr d1, [sp, #8] -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: ret ; ; NO-LIBCALL-LABEL: test_sincos_f64: ; NO-LIBCALL: // %bb.0: ; NO-LIBCALL-NEXT: stp d9, d8, [sp, #-32]! // 16-byte Folded Spill -; NO-LIBCALL-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; NO-LIBCALL-NEXT: str x30, [sp, #16] // 8-byte Spill ; NO-LIBCALL-NEXT: fmov d8, d0 ; NO-LIBCALL-NEXT: bl sin ; NO-LIBCALL-NEXT: fmov d9, d0 ; NO-LIBCALL-NEXT: fmov d0, d8 ; NO-LIBCALL-NEXT: bl cos -; NO-LIBCALL-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; NO-LIBCALL-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; NO-LIBCALL-NEXT: fmov d1, d0 ; NO-LIBCALL-NEXT: fmov d0, d9 ; NO-LIBCALL-NEXT: ldp d9, d8, [sp], #32 // 16-byte Folded Reload @@ -437,12 +437,12 @@ define { <2 x double>, <2 x double> } @test_sincos_v2f64(<2 x double> %a) nounwi ; CHECK-NEXT: sub sp, sp, #80 ; CHECK-NEXT: add x0, sp, #56 ; CHECK-NEXT: add x1, sp, #40 -; CHECK-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-NEXT: stp x20, x19, [sp, #64] // 16-byte Folded Spill -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-NEXT: bl sincos -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: add x0, sp, #32 ; CHECK-NEXT: add x1, sp, #24 ; CHECK-NEXT: add x19, sp, #32 @@ -451,7 +451,7 @@ define { <2 x double>, <2 x double> } @test_sincos_v2f64(<2 x double> %a) nounwi ; CHECK-NEXT: bl sincos ; CHECK-NEXT: ldr d0, [sp, #56] ; CHECK-NEXT: ldr d1, [sp, #40] -; CHECK-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-NEXT: ld1 { v0.d }[1], [x19] ; CHECK-NEXT: ld1 { v1.d }[1], [x20] ; CHECK-NEXT: ldp x20, x19, [sp, #64] // 16-byte Folded Reload @@ -461,32 +461,32 @@ define { <2 x double>, <2 x double> } @test_sincos_v2f64(<2 x double> %a) nounwi ; NO-LIBCALL-LABEL: test_sincos_v2f64: ; NO-LIBCALL: // %bb.0: ; NO-LIBCALL-NEXT: sub sp, sp, #64 -; NO-LIBCALL-NEXT: str d8, [sp, #48] // 8-byte Folded Spill +; NO-LIBCALL-NEXT: str d8, [sp, #48] // 8-byte Spill ; NO-LIBCALL-NEXT: mov d8, v0.d[1] -; NO-LIBCALL-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; NO-LIBCALL-NEXT: str x30, [sp, #56] // 8-byte Folded Spill +; NO-LIBCALL-NEXT: str q0, [sp, #32] // 16-byte Spill +; NO-LIBCALL-NEXT: str x30, [sp, #56] // 8-byte Spill ; NO-LIBCALL-NEXT: fmov d0, d8 ; NO-LIBCALL-NEXT: bl sin ; NO-LIBCALL-NEXT: // kill: def $d0 killed $d0 def $q0 -; NO-LIBCALL-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; NO-LIBCALL-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; NO-LIBCALL-NEXT: str q0, [sp, #16] // 16-byte Spill +; NO-LIBCALL-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; NO-LIBCALL-NEXT: // kill: def $d0 killed $d0 killed $q0 ; NO-LIBCALL-NEXT: bl sin -; NO-LIBCALL-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; NO-LIBCALL-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; NO-LIBCALL-NEXT: // kill: def $d0 killed $d0 def $q0 ; NO-LIBCALL-NEXT: mov v0.d[1], v1.d[0] -; NO-LIBCALL-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; NO-LIBCALL-NEXT: str q0, [sp, #16] // 16-byte Spill ; NO-LIBCALL-NEXT: fmov d0, d8 ; NO-LIBCALL-NEXT: bl cos ; NO-LIBCALL-NEXT: // kill: def $d0 killed $d0 def $q0 -; NO-LIBCALL-NEXT: str q0, [sp] // 16-byte Folded Spill -; NO-LIBCALL-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; NO-LIBCALL-NEXT: str q0, [sp] // 16-byte Spill +; NO-LIBCALL-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; NO-LIBCALL-NEXT: // kill: def $d0 killed $d0 killed $q0 ; NO-LIBCALL-NEXT: bl cos ; NO-LIBCALL-NEXT: fmov d1, d0 ; NO-LIBCALL-NEXT: ldp q2, q0, [sp] // 32-byte Folded Reload -; NO-LIBCALL-NEXT: ldr x30, [sp, #56] // 8-byte Folded Reload -; NO-LIBCALL-NEXT: ldr d8, [sp, #48] // 8-byte Folded Reload +; NO-LIBCALL-NEXT: ldr x30, [sp, #56] // 8-byte Reload +; NO-LIBCALL-NEXT: ldr d8, [sp, #48] // 8-byte Reload ; NO-LIBCALL-NEXT: mov v1.d[1], v2.d[0] ; NO-LIBCALL-NEXT: add sp, sp, #64 ; NO-LIBCALL-NEXT: ret diff --git a/llvm/test/CodeGen/AArch64/llvm.sincospi.ll b/llvm/test/CodeGen/AArch64/llvm.sincospi.ll index d1d7d92adc05a..ea28eca34246c 100644 --- a/llvm/test/CodeGen/AArch64/llvm.sincospi.ll +++ b/llvm/test/CodeGen/AArch64/llvm.sincospi.ll @@ -62,35 +62,35 @@ define { <2 x half>, <2 x half> } @test_sincospi_v2f16(<2 x half> %a) { ; CHECK-LABEL: test_sincospi_v2f16: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #64 -; CHECK-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 64 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-NEXT: mov h1, v0.h[1] -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: add x0, sp, #36 ; CHECK-NEXT: add x1, sp, #32 ; CHECK-NEXT: fcvt s0, h1 ; CHECK-NEXT: bl sincospif -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: add x0, sp, #28 ; CHECK-NEXT: add x1, sp, #24 ; CHECK-NEXT: fcvt s0, h0 ; CHECK-NEXT: bl sincospif -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: add x0, sp, #44 ; CHECK-NEXT: add x1, sp, #40 ; CHECK-NEXT: mov h0, v0.h[2] ; CHECK-NEXT: fcvt s0, h0 ; CHECK-NEXT: bl sincospif -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: add x0, sp, #60 ; CHECK-NEXT: add x1, sp, #56 ; CHECK-NEXT: mov h0, v0.h[3] ; CHECK-NEXT: fcvt s0, h0 ; CHECK-NEXT: bl sincospif ; CHECK-NEXT: ldp s2, s0, [sp, #32] -; CHECK-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-NEXT: ldp s3, s1, [sp, #24] ; CHECK-NEXT: fcvt h4, s0 ; CHECK-NEXT: fcvt h2, s2 @@ -136,7 +136,7 @@ define { <3 x float>, <3 x float> } @test_sincospi_v3f32(<3 x float> %a) { ; CHECK-LABEL: test_sincospi_v3f32: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #80 -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: stp x22, x21, [sp, #48] // 16-byte Folded Spill ; CHECK-NEXT: stp x20, x19, [sp, #64] // 16-byte Folded Spill ; CHECK-NEXT: .cfi_def_cfa_offset 80 @@ -147,17 +147,17 @@ define { <3 x float>, <3 x float> } @test_sincospi_v3f32(<3 x float> %a) { ; CHECK-NEXT: .cfi_offset w30, -48 ; CHECK-NEXT: add x0, sp, #20 ; CHECK-NEXT: add x1, sp, #16 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-NEXT: bl sincospif -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: add x0, sp, #28 ; CHECK-NEXT: add x1, sp, #24 ; CHECK-NEXT: add x19, sp, #28 ; CHECK-NEXT: add x20, sp, #24 ; CHECK-NEXT: mov s0, v0.s[1] ; CHECK-NEXT: bl sincospif -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: add x0, sp, #44 ; CHECK-NEXT: add x1, sp, #40 ; CHECK-NEXT: add x21, sp, #44 @@ -165,7 +165,7 @@ define { <3 x float>, <3 x float> } @test_sincospi_v3f32(<3 x float> %a) { ; CHECK-NEXT: mov s0, v0.s[2] ; CHECK-NEXT: bl sincospif ; CHECK-NEXT: ldp s1, s0, [sp, #16] -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: ld1 { v0.s }[1], [x19] ; CHECK-NEXT: ld1 { v1.s }[1], [x20] ; CHECK-NEXT: ldp x20, x19, [sp, #64] // 16-byte Folded Reload @@ -182,7 +182,7 @@ define { <2 x float>, <2 x float> } @test_sincospi_v2f32(<2 x float> %a) { ; CHECK-LABEL: test_sincospi_v2f32: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #64 -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: stp x20, x19, [sp, #48] // 16-byte Folded Spill ; CHECK-NEXT: .cfi_def_cfa_offset 64 ; CHECK-NEXT: .cfi_offset w19, -8 @@ -191,10 +191,10 @@ define { <2 x float>, <2 x float> } @test_sincospi_v2f32(<2 x float> %a) { ; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-NEXT: add x0, sp, #44 ; CHECK-NEXT: add x1, sp, #40 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-NEXT: bl sincospif -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: add x0, sp, #28 ; CHECK-NEXT: add x1, sp, #24 ; CHECK-NEXT: add x19, sp, #28 @@ -202,7 +202,7 @@ define { <2 x float>, <2 x float> } @test_sincospi_v2f32(<2 x float> %a) { ; CHECK-NEXT: mov s0, v0.s[1] ; CHECK-NEXT: bl sincospif ; CHECK-NEXT: ldp s1, s0, [sp, #40] -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: ld1 { v0.s }[1], [x19] ; CHECK-NEXT: ld1 { v1.s }[1], [x20] ; CHECK-NEXT: ldp x20, x19, [sp, #48] // 16-byte Folded Reload @@ -218,7 +218,7 @@ define { double, double } @test_sincospi_f64(double %a) { ; CHECK-LABEL: test_sincospi_f64: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #32 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: add x0, sp, #24 @@ -226,7 +226,7 @@ define { double, double } @test_sincospi_f64(double %a) { ; CHECK-NEXT: bl sincospi ; CHECK-NEXT: ldr d0, [sp, #24] ; CHECK-NEXT: ldr d1, [sp, #8] -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: ret %result = call { double, double } @llvm.sincospi.f64(double %a) @@ -237,7 +237,7 @@ define { <2 x double>, <2 x double> } @test_sincospi_v2f64(<2 x double> %a) { ; CHECK-LABEL: test_sincospi_v2f64: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #80 -; CHECK-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-NEXT: stp x20, x19, [sp, #64] // 16-byte Folded Spill ; CHECK-NEXT: .cfi_def_cfa_offset 80 ; CHECK-NEXT: .cfi_offset w19, -8 @@ -245,10 +245,10 @@ define { <2 x double>, <2 x double> } @test_sincospi_v2f64(<2 x double> %a) { ; CHECK-NEXT: .cfi_offset w30, -32 ; CHECK-NEXT: add x0, sp, #56 ; CHECK-NEXT: add x1, sp, #40 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-NEXT: bl sincospi -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: add x0, sp, #32 ; CHECK-NEXT: add x1, sp, #24 ; CHECK-NEXT: add x19, sp, #32 @@ -257,7 +257,7 @@ define { <2 x double>, <2 x double> } @test_sincospi_v2f64(<2 x double> %a) { ; CHECK-NEXT: bl sincospi ; CHECK-NEXT: ldr d0, [sp, #56] ; CHECK-NEXT: ldr d1, [sp, #40] -; CHECK-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-NEXT: ld1 { v0.d }[1], [x19] ; CHECK-NEXT: ld1 { v1.d }[1], [x20] ; CHECK-NEXT: ldp x20, x19, [sp, #64] // 16-byte Folded Reload diff --git a/llvm/test/CodeGen/AArch64/luti-with-sme2.ll b/llvm/test/CodeGen/AArch64/luti-with-sme2.ll index 59e1cba8317bd..ae8ed58bcf8f8 100644 --- a/llvm/test/CodeGen/AArch64/luti-with-sme2.ll +++ b/llvm/test/CodeGen/AArch64/luti-with-sme2.ll @@ -6,7 +6,7 @@ define { , } @test_luti4_lane_i16_x2_tuple( ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-3 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: str z12, [sp, #1, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z11, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x48, 0x1e, 0x22 // sp + 16 + 24 * VG @@ -21,7 +21,7 @@ define { , } @test_luti4_lane_i16_x2_tuple( ; CHECK-NEXT: luti4 z1.h, { z11.h, z12.h }, z0[0] ; CHECK-NEXT: ldr z12, [sp, #1, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z11, [sp, #2, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z0.d, z2.d ; CHECK-NEXT: addvl sp, sp, #3 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload @@ -47,7 +47,7 @@ define { , } @test_luti4_lane_f16_x2_tupl ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-3 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: str z12, [sp, #1, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z11, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x48, 0x1e, 0x22 // sp + 16 + 24 * VG @@ -62,7 +62,7 @@ define { , } @test_luti4_lane_f16_x2_tupl ; CHECK-NEXT: luti4 z1.h, { z11.h, z12.h }, z0[0] ; CHECK-NEXT: ldr z12, [sp, #1, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z11, [sp, #2, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z0.d, z2.d ; CHECK-NEXT: addvl sp, sp, #3 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload @@ -88,7 +88,7 @@ define { , } @test_luti4_lane_bf16_x2 ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-3 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: str z12, [sp, #1, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z11, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x48, 0x1e, 0x22 // sp + 16 + 24 * VG @@ -103,7 +103,7 @@ define { , } @test_luti4_lane_bf16_x2 ; CHECK-NEXT: luti4 z1.h, { z11.h, z12.h }, z0[0] ; CHECK-NEXT: ldr z12, [sp, #1, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z11, [sp, #2, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z0.d, z2.d ; CHECK-NEXT: addvl sp, sp, #3 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload diff --git a/llvm/test/CodeGen/AArch64/machine-combiner.ll b/llvm/test/CodeGen/AArch64/machine-combiner.ll index 65afd9276c787..a52eebbe4bfd1 100644 --- a/llvm/test/CodeGen/AArch64/machine-combiner.ll +++ b/llvm/test/CodeGen/AArch64/machine-combiner.ll @@ -873,7 +873,7 @@ define double @reassociate_adds_from_calls() { ; CHECK: // %bb.0: ; CHECK-NEXT: str d10, [sp, #-32]! // 8-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #8] // 16-byte Folded Spill -; CHECK-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset w30, -8 ; CHECK-NEXT: .cfi_offset b8, -16 @@ -888,7 +888,7 @@ define double @reassociate_adds_from_calls() { ; CHECK-NEXT: bl bar ; CHECK-NEXT: fadd d1, d8, d9 ; CHECK-NEXT: ldp d9, d8, [sp, #8] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #24] // 8-byte Reload ; CHECK-NEXT: fadd d1, d1, d10 ; CHECK-NEXT: fadd d0, d1, d0 ; CHECK-NEXT: ldr d10, [sp], #32 // 8-byte Folded Reload @@ -908,7 +908,7 @@ define double @reassociate_adds_from_calls_reassoc() { ; CHECK: // %bb.0: ; CHECK-NEXT: str d10, [sp, #-32]! // 8-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #8] // 16-byte Folded Spill -; CHECK-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset w30, -8 ; CHECK-NEXT: .cfi_offset b8, -16 @@ -923,7 +923,7 @@ define double @reassociate_adds_from_calls_reassoc() { ; CHECK-NEXT: bl bar ; CHECK-NEXT: fadd d1, d8, d9 ; CHECK-NEXT: ldp d9, d8, [sp, #8] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #24] // 8-byte Reload ; CHECK-NEXT: fadd d0, d10, d0 ; CHECK-NEXT: fadd d0, d1, d0 ; CHECK-NEXT: ldr d10, [sp], #32 // 8-byte Folded Reload @@ -943,7 +943,7 @@ define double @already_reassociated() { ; CHECK: // %bb.0: ; CHECK-NEXT: str d10, [sp, #-32]! // 8-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #8] // 16-byte Folded Spill -; CHECK-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset w30, -8 ; CHECK-NEXT: .cfi_offset b8, -16 @@ -958,7 +958,7 @@ define double @already_reassociated() { ; CHECK-NEXT: bl bar ; CHECK-NEXT: fadd d1, d8, d9 ; CHECK-NEXT: ldp d9, d8, [sp, #8] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #24] // 8-byte Reload ; CHECK-NEXT: fadd d0, d10, d0 ; CHECK-NEXT: fadd d0, d1, d0 ; CHECK-NEXT: ldr d10, [sp], #32 // 8-byte Folded Reload @@ -978,7 +978,7 @@ define double @already_reassociated_reassoc() { ; CHECK: // %bb.0: ; CHECK-NEXT: str d10, [sp, #-32]! // 8-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #8] // 16-byte Folded Spill -; CHECK-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset w30, -8 ; CHECK-NEXT: .cfi_offset b8, -16 @@ -993,7 +993,7 @@ define double @already_reassociated_reassoc() { ; CHECK-NEXT: bl bar ; CHECK-NEXT: fadd d1, d8, d9 ; CHECK-NEXT: ldp d9, d8, [sp, #8] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #24] // 8-byte Reload ; CHECK-NEXT: fadd d0, d10, d0 ; CHECK-NEXT: fadd d0, d1, d0 ; CHECK-NEXT: ldr d10, [sp], #32 // 8-byte Folded Reload diff --git a/llvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-non-leaf.ll b/llvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-non-leaf.ll index 1e7224683c6c8..0a6dbed9a9eaf 100644 --- a/llvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-non-leaf.ll +++ b/llvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-non-leaf.ll @@ -11,14 +11,14 @@ define i64 @a(i64 %x) "sign-return-address"="non-leaf" "sign-return-address-key" ; V8A-NEXT: hint #27 ; V8A-NEXT: .cfi_negate_ra_state ; V8A-NEXT: sub sp, sp, #32 -; V8A-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; V8A-NEXT: str x30, [sp, #16] // 8-byte Spill ; V8A-NEXT: .cfi_def_cfa_offset 32 ; V8A-NEXT: .cfi_offset w30, -16 ; V8A-NEXT: bl OUTLINED_FUNCTION_0 ; V8A-NEXT: //APP ; V8A-NEXT: mov x30, x0 ; V8A-NEXT: //NO_APP -; V8A-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; V8A-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; V8A-NEXT: add sp, sp, #32 ; V8A-NEXT: hint #31 ; V8A-NEXT: ret @@ -29,14 +29,14 @@ define i64 @a(i64 %x) "sign-return-address"="non-leaf" "sign-return-address-key" ; V83A-NEXT: pacibsp ; V83A-NEXT: .cfi_negate_ra_state ; V83A-NEXT: sub sp, sp, #32 -; V83A-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; V83A-NEXT: str x30, [sp, #16] // 8-byte Spill ; V83A-NEXT: .cfi_def_cfa_offset 32 ; V83A-NEXT: .cfi_offset w30, -16 ; V83A-NEXT: bl OUTLINED_FUNCTION_0 ; V83A-NEXT: //APP ; V83A-NEXT: mov x30, x0 ; V83A-NEXT: //NO_APP -; V83A-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; V83A-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; V83A-NEXT: add sp, sp, #32 ; V83A-NEXT: retab %1 = alloca i32, align 4 @@ -62,14 +62,14 @@ define i64 @b(i64 %x) "sign-return-address"="non-leaf" "sign-return-address-key" ; V8A-NEXT: hint #27 ; V8A-NEXT: .cfi_negate_ra_state ; V8A-NEXT: sub sp, sp, #32 -; V8A-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; V8A-NEXT: str x30, [sp, #16] // 8-byte Spill ; V8A-NEXT: .cfi_def_cfa_offset 32 ; V8A-NEXT: .cfi_offset w30, -16 ; V8A-NEXT: bl OUTLINED_FUNCTION_0 ; V8A-NEXT: //APP ; V8A-NEXT: mov x30, x0 ; V8A-NEXT: //NO_APP -; V8A-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; V8A-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; V8A-NEXT: add sp, sp, #32 ; V8A-NEXT: hint #31 ; V8A-NEXT: ret @@ -80,14 +80,14 @@ define i64 @b(i64 %x) "sign-return-address"="non-leaf" "sign-return-address-key" ; V83A-NEXT: pacibsp ; V83A-NEXT: .cfi_negate_ra_state ; V83A-NEXT: sub sp, sp, #32 -; V83A-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; V83A-NEXT: str x30, [sp, #16] // 8-byte Spill ; V83A-NEXT: .cfi_def_cfa_offset 32 ; V83A-NEXT: .cfi_offset w30, -16 ; V83A-NEXT: bl OUTLINED_FUNCTION_0 ; V83A-NEXT: //APP ; V83A-NEXT: mov x30, x0 ; V83A-NEXT: //NO_APP -; V83A-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; V83A-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; V83A-NEXT: add sp, sp, #32 ; V83A-NEXT: retab %1 = alloca i32, align 4 @@ -113,14 +113,14 @@ define i64 @c(i64 %x) "sign-return-address"="non-leaf" "sign-return-address-key" ; V8A-NEXT: hint #27 ; V8A-NEXT: .cfi_negate_ra_state ; V8A-NEXT: sub sp, sp, #32 -; V8A-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; V8A-NEXT: str x30, [sp, #16] // 8-byte Spill ; V8A-NEXT: .cfi_def_cfa_offset 32 ; V8A-NEXT: .cfi_offset w30, -16 ; V8A-NEXT: bl OUTLINED_FUNCTION_0 ; V8A-NEXT: //APP ; V8A-NEXT: mov x30, x0 ; V8A-NEXT: //NO_APP -; V8A-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; V8A-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; V8A-NEXT: add sp, sp, #32 ; V8A-NEXT: hint #31 ; V8A-NEXT: ret @@ -131,14 +131,14 @@ define i64 @c(i64 %x) "sign-return-address"="non-leaf" "sign-return-address-key" ; V83A-NEXT: pacibsp ; V83A-NEXT: .cfi_negate_ra_state ; V83A-NEXT: sub sp, sp, #32 -; V83A-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; V83A-NEXT: str x30, [sp, #16] // 8-byte Spill ; V83A-NEXT: .cfi_def_cfa_offset 32 ; V83A-NEXT: .cfi_offset w30, -16 ; V83A-NEXT: bl OUTLINED_FUNCTION_0 ; V83A-NEXT: //APP ; V83A-NEXT: mov x30, x0 ; V83A-NEXT: //NO_APP -; V83A-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; V83A-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; V83A-NEXT: add sp, sp, #32 ; V83A-NEXT: retab %1 = alloca i32, align 4 @@ -164,3 +164,5 @@ define i64 @c(i64 %x) "sign-return-address"="non-leaf" "sign-return-address-key" ; CHECK-NOT: hint #2{{[5,7]}} ; CHECK-NOT: .cfi_negate_ra_state ; CHECK-NOT: auti{{[a,b]}}sp +;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line: +; CHECK: {{.*}} diff --git a/llvm/test/CodeGen/AArch64/mingw-refptr.ll b/llvm/test/CodeGen/AArch64/mingw-refptr.ll index cc9fac0506ff5..02c81440dd753 100644 --- a/llvm/test/CodeGen/AArch64/mingw-refptr.ll +++ b/llvm/test/CodeGen/AArch64/mingw-refptr.ll @@ -82,7 +82,7 @@ define dso_local void @sspFunc() #0 { ; CHECK-NEXT: // %bb.0: // %entry ; CHECK-NEXT: sub sp, sp, #32 ; CHECK-NEXT: .seh_stackalloc 32 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .seh_save_reg x30, 16 ; CHECK-NEXT: .seh_endprologue ; CHECK-NEXT: adrp x8, .refptr.__stack_chk_guard @@ -99,7 +99,7 @@ define dso_local void @sspFunc() #0 { ; CHECK-NEXT: b.ne .LBB6_2 ; CHECK-NEXT: // %bb.1: // %entry ; CHECK-NEXT: .seh_startepilogue -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x30, 16 ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: .seh_stackalloc 32 diff --git a/llvm/test/CodeGen/AArch64/named-vector-shuffle-reverse-neon.ll b/llvm/test/CodeGen/AArch64/named-vector-shuffle-reverse-neon.ll index cff7759c72c94..7c535d4d63a6c 100644 --- a/llvm/test/CodeGen/AArch64/named-vector-shuffle-reverse-neon.ll +++ b/llvm/test/CodeGen/AArch64/named-vector-shuffle-reverse-neon.ll @@ -134,9 +134,9 @@ define <8 x i32> @reverse_v8i32(<8 x i32> %a) #0 { ; CHECK-FASTISEL-LABEL: reverse_v8i32: ; CHECK-FASTISEL: // %bb.0: ; CHECK-FASTISEL-NEXT: sub sp, sp, #16 -; CHECK-FASTISEL-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-FASTISEL-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-FASTISEL-NEXT: mov v1.16b, v0.16b -; CHECK-FASTISEL-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-FASTISEL-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-FASTISEL-NEXT: rev64 v0.4s, v0.4s ; CHECK-FASTISEL-NEXT: ext v0.16b, v0.16b, v0.16b, #8 ; CHECK-FASTISEL-NEXT: rev64 v1.4s, v1.4s @@ -165,12 +165,12 @@ define <16 x float> @reverse_v16f32(<16 x float> %a) #0 { ; CHECK-FASTISEL-LABEL: reverse_v16f32: ; CHECK-FASTISEL: // %bb.0: ; CHECK-FASTISEL-NEXT: sub sp, sp, #32 -; CHECK-FASTISEL-NEXT: str q3, [sp, #16] // 16-byte Folded Spill -; CHECK-FASTISEL-NEXT: str q2, [sp] // 16-byte Folded Spill +; CHECK-FASTISEL-NEXT: str q3, [sp, #16] // 16-byte Spill +; CHECK-FASTISEL-NEXT: str q2, [sp] // 16-byte Spill ; CHECK-FASTISEL-NEXT: mov v2.16b, v1.16b -; CHECK-FASTISEL-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-FASTISEL-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-FASTISEL-NEXT: mov v3.16b, v0.16b -; CHECK-FASTISEL-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-FASTISEL-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-FASTISEL-NEXT: rev64 v0.4s, v0.4s ; CHECK-FASTISEL-NEXT: ext v0.16b, v0.16b, v0.16b, #8 ; CHECK-FASTISEL-NEXT: rev64 v1.4s, v1.4s diff --git a/llvm/test/CodeGen/AArch64/named-vector-shuffle-reverse-sve.ll b/llvm/test/CodeGen/AArch64/named-vector-shuffle-reverse-sve.ll index a84e6e7bcae82..669a49330856d 100644 --- a/llvm/test/CodeGen/AArch64/named-vector-shuffle-reverse-sve.ll +++ b/llvm/test/CodeGen/AArch64/named-vector-shuffle-reverse-sve.ll @@ -61,9 +61,9 @@ define @reverse_nxv32i1( %a) #0 { ; CHECK-FASTISEL: // %bb.0: ; CHECK-FASTISEL-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-FASTISEL-NEXT: addvl sp, sp, #-1 -; CHECK-FASTISEL-NEXT: str p1, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-FASTISEL-NEXT: str p1, [sp, #7, mul vl] // 2-byte Spill ; CHECK-FASTISEL-NEXT: mov p1.b, p0.b -; CHECK-FASTISEL-NEXT: ldr p0, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-FASTISEL-NEXT: ldr p0, [sp, #7, mul vl] // 2-byte Reload ; CHECK-FASTISEL-NEXT: rev p0.b, p0.b ; CHECK-FASTISEL-NEXT: rev p1.b, p1.b ; CHECK-FASTISEL-NEXT: addvl sp, sp, #1 diff --git a/llvm/test/CodeGen/AArch64/neon-dotreduce.ll b/llvm/test/CodeGen/AArch64/neon-dotreduce.ll index fb2a1fa697c26..4b0d110632959 100644 --- a/llvm/test/CodeGen/AArch64/neon-dotreduce.ll +++ b/llvm/test/CodeGen/AArch64/neon-dotreduce.ll @@ -2401,7 +2401,7 @@ define i32 @test_udot_v25i8(ptr nocapture readonly %a, ptr nocapture readonly %b ; CHECK-GI-NEXT: .cfi_offset w29, -96 ; CHECK-GI-NEXT: ldp q2, q1, [x1] ; CHECK-GI-NEXT: movi d0, #0000000000000000 -; CHECK-GI-NEXT: str w2, [sp, #12] // 4-byte Folded Spill +; CHECK-GI-NEXT: str w2, [sp, #12] // 4-byte Spill ; CHECK-GI-NEXT: mov b6, v2.b[3] ; CHECK-GI-NEXT: mov b7, v2.b[4] ; CHECK-GI-NEXT: mov b16, v2.b[5] @@ -2548,7 +2548,7 @@ define i32 @test_udot_v25i8(ptr nocapture readonly %a, ptr nocapture readonly %b ; CHECK-GI-NEXT: mov v16.h[3], w10 ; CHECK-GI-NEXT: uxtb w10, w3 ; CHECK-GI-NEXT: mov v6.h[4], w18 -; CHECK-GI-NEXT: ldr w18, [sp, #4] // 4-byte Folded Reload +; CHECK-GI-NEXT: ldr w18, [sp, #4] // 4-byte Reload ; CHECK-GI-NEXT: mov v7.h[3], w9 ; CHECK-GI-NEXT: uxtb w9, w16 ; CHECK-GI-NEXT: uxtb w16, w22 @@ -2560,7 +2560,7 @@ define i32 @test_udot_v25i8(ptr nocapture readonly %a, ptr nocapture readonly %b ; CHECK-GI-NEXT: ldp x22, x21, [sp, #80] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v16.h[4], w16 ; CHECK-GI-NEXT: mov v7.h[4], w13 -; CHECK-GI-NEXT: ldr w13, [sp, #8] // 4-byte Folded Reload +; CHECK-GI-NEXT: ldr w13, [sp, #8] // 4-byte Reload ; CHECK-GI-NEXT: mov v6.h[5], w9 ; CHECK-GI-NEXT: uxtb w9, w1 ; CHECK-GI-NEXT: mov v3.h[5], w11 @@ -2654,7 +2654,7 @@ define i32 @test_udot_v25i8(ptr nocapture readonly %a, ptr nocapture readonly %b ; CHECK-GI-NEXT: mov v17.s[2], wzr ; CHECK-GI-NEXT: mov v3.s[3], w8 ; CHECK-GI-NEXT: mov v4.s[3], w9 -; CHECK-GI-NEXT: ldr w9, [sp, #12] // 4-byte Folded Reload +; CHECK-GI-NEXT: ldr w9, [sp, #12] // 4-byte Reload ; CHECK-GI-NEXT: mov v5.s[3], w15 ; CHECK-GI-NEXT: mov v6.s[3], w17 ; CHECK-GI-NEXT: mov v7.s[3], w18 @@ -2831,7 +2831,7 @@ define i32 @test_sdot_v25i8(ptr nocapture readonly %a, ptr nocapture readonly %b ; CHECK-GI-NEXT: .cfi_offset w29, -96 ; CHECK-GI-NEXT: ldp q2, q1, [x1] ; CHECK-GI-NEXT: movi d0, #0000000000000000 -; CHECK-GI-NEXT: str w2, [sp, #12] // 4-byte Folded Spill +; CHECK-GI-NEXT: str w2, [sp, #12] // 4-byte Spill ; CHECK-GI-NEXT: mov b5, v2.b[2] ; CHECK-GI-NEXT: mov b6, v2.b[3] ; CHECK-GI-NEXT: mov b7, v2.b[4] @@ -2982,7 +2982,7 @@ define i32 @test_sdot_v25i8(ptr nocapture readonly %a, ptr nocapture readonly %b ; CHECK-GI-NEXT: sxtb w8, w16 ; CHECK-GI-NEXT: sxtb w16, w3 ; CHECK-GI-NEXT: mov v6.h[4], w11 -; CHECK-GI-NEXT: ldr w11, [sp, #4] // 4-byte Folded Reload +; CHECK-GI-NEXT: ldr w11, [sp, #4] // 4-byte Reload ; CHECK-GI-NEXT: mov v3.h[5], w9 ; CHECK-GI-NEXT: sxtb w9, w15 ; CHECK-GI-NEXT: sxtb w15, w27 @@ -2997,7 +2997,7 @@ define i32 @test_sdot_v25i8(ptr nocapture readonly %a, ptr nocapture readonly %b ; CHECK-GI-NEXT: sxtb w10, w26 ; CHECK-GI-NEXT: ldp x26, x25, [sp, #48] // 16-byte Folded Reload ; CHECK-GI-NEXT: mov v6.h[5], w8 -; CHECK-GI-NEXT: ldr w8, [sp, #8] // 4-byte Folded Reload +; CHECK-GI-NEXT: ldr w8, [sp, #8] // 4-byte Reload ; CHECK-GI-NEXT: mov v7.h[5], w10 ; CHECK-GI-NEXT: sxtb w10, w12 ; CHECK-GI-NEXT: sxtb w12, w18 @@ -3085,7 +3085,7 @@ define i32 @test_sdot_v25i8(ptr nocapture readonly %a, ptr nocapture readonly %b ; CHECK-GI-NEXT: mov v17.s[2], wzr ; CHECK-GI-NEXT: mov v3.s[3], w8 ; CHECK-GI-NEXT: mov v4.s[3], w9 -; CHECK-GI-NEXT: ldr w9, [sp, #12] // 4-byte Folded Reload +; CHECK-GI-NEXT: ldr w9, [sp, #12] // 4-byte Reload ; CHECK-GI-NEXT: mov v5.s[3], w16 ; CHECK-GI-NEXT: mov v6.s[3], w17 ; CHECK-GI-NEXT: mov v7.s[3], w18 @@ -4563,7 +4563,7 @@ define i32 @test_udot_v33i8(ptr nocapture readonly %a, ptr nocapture readonly %b ; CHECK-GI-NEXT: .cfi_offset w29, -96 ; CHECK-GI-NEXT: ldp q7, q16, [x1] ; CHECK-GI-NEXT: movi d5, #0000000000000000 -; CHECK-GI-NEXT: str w2, [sp, #12] // 4-byte Folded Spill +; CHECK-GI-NEXT: str w2, [sp, #12] // 4-byte Spill ; CHECK-GI-NEXT: movi d6, #0000000000000000 ; CHECK-GI-NEXT: movi d0, #0000000000000000 ; CHECK-GI-NEXT: movi d1, #0000000000000000 @@ -4623,7 +4623,7 @@ define i32 @test_udot_v33i8(ptr nocapture readonly %a, ptr nocapture readonly %b ; CHECK-GI-NEXT: uxtb w10, w21 ; CHECK-GI-NEXT: mov v7.h[2], w9 ; CHECK-GI-NEXT: uxtb w9, w13 -; CHECK-GI-NEXT: str s20, [sp] // 4-byte Folded Spill +; CHECK-GI-NEXT: str s20, [sp] // 4-byte Spill ; CHECK-GI-NEXT: mov b25, v16.b[10] ; CHECK-GI-NEXT: fmov w25, s18 ; CHECK-GI-NEXT: uxtb w22, w22 @@ -4791,11 +4791,11 @@ define i32 @test_udot_v33i8(ptr nocapture readonly %a, ptr nocapture readonly %b ; CHECK-GI-NEXT: uxtb w11, w7 ; CHECK-GI-NEXT: fmov w8, s26 ; CHECK-GI-NEXT: mov v19.h[4], w15 -; CHECK-GI-NEXT: ldr w15, [sp] // 4-byte Folded Reload +; CHECK-GI-NEXT: ldr w15, [sp] // 4-byte Reload ; CHECK-GI-NEXT: mov v21.h[7], w17 ; CHECK-GI-NEXT: uxtb w17, w6 ; CHECK-GI-NEXT: mov v22.h[4], w11 -; CHECK-GI-NEXT: ldr w11, [sp, #8] // 4-byte Folded Reload +; CHECK-GI-NEXT: ldr w11, [sp, #8] // 4-byte Reload ; CHECK-GI-NEXT: uxtb w8, w8 ; CHECK-GI-NEXT: uxtb w15, w15 ; CHECK-GI-NEXT: fmov w13, s30 @@ -4812,7 +4812,7 @@ define i32 @test_udot_v33i8(ptr nocapture readonly %a, ptr nocapture readonly %b ; CHECK-GI-NEXT: fmov w12, s31 ; CHECK-GI-NEXT: mov v17.h[7], w11 ; CHECK-GI-NEXT: uxtb w11, w13 -; CHECK-GI-NEXT: ldr w13, [sp, #4] // 4-byte Folded Reload +; CHECK-GI-NEXT: ldr w13, [sp, #4] // 4-byte Reload ; CHECK-GI-NEXT: mov v20.h[5], w17 ; CHECK-GI-NEXT: mov v23.h[7], w8 ; CHECK-GI-NEXT: fmov w9, s27 @@ -4917,7 +4917,7 @@ define i32 @test_udot_v33i8(ptr nocapture readonly %a, ptr nocapture readonly %b ; CHECK-GI-NEXT: mov v1.s[3], wzr ; CHECK-GI-NEXT: mov v3.s[3], wzr ; CHECK-GI-NEXT: mov v21.s[3], w9 -; CHECK-GI-NEXT: ldr w9, [sp, #12] // 4-byte Folded Reload +; CHECK-GI-NEXT: ldr w9, [sp, #12] // 4-byte Reload ; CHECK-GI-NEXT: mov v2.s[3], wzr ; CHECK-GI-NEXT: mov v23.s[2], w11 ; CHECK-GI-NEXT: umov w11, v19.h[7] @@ -5165,7 +5165,7 @@ define i32 @test_sdot_v33i8(ptr nocapture readonly %a, ptr nocapture readonly %b ; CHECK-GI-NEXT: .cfi_offset w29, -96 ; CHECK-GI-NEXT: ldp q7, q16, [x1] ; CHECK-GI-NEXT: movi d1, #0000000000000000 -; CHECK-GI-NEXT: str w2, [sp, #12] // 4-byte Folded Spill +; CHECK-GI-NEXT: str w2, [sp, #12] // 4-byte Spill ; CHECK-GI-NEXT: movi d3, #0000000000000000 ; CHECK-GI-NEXT: movi d2, #0000000000000000 ; CHECK-GI-NEXT: movi d5, #0000000000000000 @@ -5386,7 +5386,7 @@ define i32 @test_sdot_v33i8(ptr nocapture readonly %a, ptr nocapture readonly %b ; CHECK-GI-NEXT: sxtb w13, w6 ; CHECK-GI-NEXT: mov v20.h[7], w17 ; CHECK-GI-NEXT: mov v21.h[4], w9 -; CHECK-GI-NEXT: ldr w9, [sp, #8] // 4-byte Folded Reload +; CHECK-GI-NEXT: ldr w9, [sp, #8] // 4-byte Reload ; CHECK-GI-NEXT: mov v22.h[5], w18 ; CHECK-GI-NEXT: mov b25, v17.b[14] ; CHECK-GI-NEXT: fmov w26, s27 @@ -5397,7 +5397,7 @@ define i32 @test_sdot_v33i8(ptr nocapture readonly %a, ptr nocapture readonly %b ; CHECK-GI-NEXT: sxtb w10, w11 ; CHECK-GI-NEXT: sxtb w11, w16 ; CHECK-GI-NEXT: mov v21.h[5], w8 -; CHECK-GI-NEXT: ldr w8, [sp, #4] // 4-byte Folded Reload +; CHECK-GI-NEXT: ldr w8, [sp, #4] // 4-byte Reload ; CHECK-GI-NEXT: sxtb w15, w26 ; CHECK-GI-NEXT: ldp x26, x25, [sp, #48] // 16-byte Folded Reload ; CHECK-GI-NEXT: sxtb w8, w8 @@ -5507,7 +5507,7 @@ define i32 @test_sdot_v33i8(ptr nocapture readonly %a, ptr nocapture readonly %b ; CHECK-GI-NEXT: smov w14, v18.h[3] ; CHECK-GI-NEXT: smov w15, v18.h[7] ; CHECK-GI-NEXT: fmov s18, w9 -; CHECK-GI-NEXT: ldr w9, [sp, #12] // 4-byte Folded Reload +; CHECK-GI-NEXT: ldr w9, [sp, #12] // 4-byte Reload ; CHECK-GI-NEXT: mov v17.s[2], w13 ; CHECK-GI-NEXT: smov w12, v24.h[3] ; CHECK-GI-NEXT: smov w13, v24.h[7] @@ -5848,7 +5848,7 @@ define i32 @test_sdot_v33i8_double(<33 x i8> %a, <33 x i8> %b, <33 x i8> %c, <33 ; CHECK-GI-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x29, [sp, #64] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x29, [sp, #64] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 80 ; CHECK-GI-NEXT: .cfi_offset w29, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -6599,7 +6599,7 @@ define i32 @test_sdot_v33i8_double(<33 x i8> %a, <33 x i8> %b, <33 x i8> %c, <33 ; CHECK-GI-NEXT: add v4.4s, v5.4s, v7.4s ; CHECK-GI-NEXT: add v5.4s, v16.4s, v17.4s ; CHECK-GI-NEXT: add v0.4s, v0.4s, v2.4s -; CHECK-GI-NEXT: ldr x29, [sp, #64] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x29, [sp, #64] // 8-byte Reload ; CHECK-GI-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-GI-NEXT: add v2.4s, v3.4s, v6.4s ; CHECK-GI-NEXT: add v1.4s, v23.4s, v1.4s @@ -6793,7 +6793,7 @@ define i32 @test_sdot_v33i8_double_nomla(<33 x i8> %a, <33 x i8> %b, <33 x i8> % ; CHECK-GI-NEXT: stp d13, d12, [sp, #-64]! // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d11, d10, [sp, #16] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #32] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x29, [sp, #48] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x29, [sp, #48] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 64 ; CHECK-GI-NEXT: .cfi_offset w29, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -7077,7 +7077,7 @@ define i32 @test_sdot_v33i8_double_nomla(<33 x i8> %a, <33 x i8> %b, <33 x i8> % ; CHECK-GI-NEXT: add v7.4s, v7.4s, v17.4s ; CHECK-GI-NEXT: add v16.4s, v20.4s, v21.4s ; CHECK-GI-NEXT: add v1.4s, v1.4s, v2.4s -; CHECK-GI-NEXT: ldr x29, [sp, #48] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x29, [sp, #48] // 8-byte Reload ; CHECK-GI-NEXT: add v0.4s, v18.4s, v0.4s ; CHECK-GI-NEXT: add v2.4s, v3.4s, v4.4s ; CHECK-GI-NEXT: add v3.4s, v5.4s, v6.4s @@ -8901,7 +8901,7 @@ define i32 @test_usdot_v64i8_double(<64 x i8> %a, <64 x i8> %b, <64 x i8> %c, <6 ; CHECK-GI-NEXT: stp d13, d12, [sp, #176] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d11, d10, [sp, #192] // 16-byte Folded Spill ; CHECK-GI-NEXT: stp d9, d8, [sp, #208] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x29, [sp, #224] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x29, [sp, #224] // 8-byte Spill ; CHECK-GI-NEXT: .cfi_def_cfa_offset 240 ; CHECK-GI-NEXT: .cfi_offset w29, -16 ; CHECK-GI-NEXT: .cfi_offset b8, -24 @@ -8914,7 +8914,7 @@ define i32 @test_usdot_v64i8_double(<64 x i8> %a, <64 x i8> %b, <64 x i8> %c, <6 ; CHECK-GI-NEXT: .cfi_offset b15, -80 ; CHECK-GI-NEXT: ushll v31.8h, v0.8b, #0 ; CHECK-GI-NEXT: ushll2 v8.8h, v0.16b, #0 -; CHECK-GI-NEXT: ldr x29, [sp, #224] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x29, [sp, #224] // 8-byte Reload ; CHECK-GI-NEXT: sshll v11.8h, v4.8b, #0 ; CHECK-GI-NEXT: sshll2 v12.8h, v4.16b, #0 ; CHECK-GI-NEXT: ushll v9.8h, v1.8b, #0 @@ -8944,7 +8944,7 @@ define i32 @test_usdot_v64i8_double(<64 x i8> %a, <64 x i8> %b, <64 x i8> %c, <6 ; CHECK-GI-NEXT: smlal2 v27.4s, v10.8h, v14.8h ; CHECK-GI-NEXT: smull v26.4s, v0.4h, v4.4h ; CHECK-GI-NEXT: ushll v31.8h, v25.8b, #0 -; CHECK-GI-NEXT: str q19, [sp, #144] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q19, [sp, #144] // 16-byte Spill ; CHECK-GI-NEXT: ushll2 v25.8h, v25.16b, #0 ; CHECK-GI-NEXT: ushll v8.8h, v22.8b, #0 ; CHECK-GI-NEXT: stp q2, q1, [sp] // 32-byte Folded Spill @@ -8956,9 +8956,9 @@ define i32 @test_usdot_v64i8_double(<64 x i8> %a, <64 x i8> %b, <64 x i8> %c, <6 ; CHECK-GI-NEXT: stp q4, q20, [sp, #112] // 32-byte Folded Spill ; CHECK-GI-NEXT: ushll2 v20.8h, v18.16b, #0 ; CHECK-GI-NEXT: sshll v11.8h, v17.8b, #0 -; CHECK-GI-NEXT: str q27, [sp, #32] // 16-byte Folded Spill -; CHECK-GI-NEXT: ldr q28, [sp, #112] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr q27, [sp, #48] // 16-byte Folded Reload +; CHECK-GI-NEXT: str q27, [sp, #32] // 16-byte Spill +; CHECK-GI-NEXT: ldr q28, [sp, #112] // 16-byte Reload +; CHECK-GI-NEXT: ldr q27, [sp, #48] // 16-byte Reload ; CHECK-GI-NEXT: sshll2 v19.8h, v17.16b, #0 ; CHECK-GI-NEXT: sshll v12.8h, v16.8b, #0 ; CHECK-GI-NEXT: sshll2 v18.8h, v16.16b, #0 @@ -8978,19 +8978,19 @@ define i32 @test_usdot_v64i8_double(<64 x i8> %a, <64 x i8> %b, <64 x i8> %c, <6 ; CHECK-GI-NEXT: smull v1.4s, v10.4h, v14.4h ; CHECK-GI-NEXT: smull v0.4s, v20.4h, v29.4h ; CHECK-GI-NEXT: smlal2 v26.4s, v27.8h, v28.8h -; CHECK-GI-NEXT: ldr q28, [sp, #80] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr q27, [sp, #16] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q28, [sp, #80] // 16-byte Reload +; CHECK-GI-NEXT: ldr q27, [sp, #16] // 16-byte Reload ; CHECK-GI-NEXT: smlal2 v15.4s, v3.8h, v7.8h ; CHECK-GI-NEXT: ldp q7, q3, [sp, #128] // 32-byte Folded Reload ; CHECK-GI-NEXT: smlal2 v23.4s, v27.8h, v28.8h -; CHECK-GI-NEXT: ldr q28, [sp, #64] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr q27, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q28, [sp, #64] // 16-byte Reload +; CHECK-GI-NEXT: ldr q27, [sp] // 16-byte Reload ; CHECK-GI-NEXT: smlal2 v17.4s, v31.8h, v11.8h ; CHECK-GI-NEXT: smlal2 v6.4s, v25.8h, v19.8h ; CHECK-GI-NEXT: smlal2 v16.4s, v8.8h, v12.8h ; CHECK-GI-NEXT: smlal2 v24.4s, v27.8h, v28.8h ; CHECK-GI-NEXT: smlal2 v4.4s, v22.8h, v18.8h -; CHECK-GI-NEXT: ldr q18, [sp, #32] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q18, [sp, #32] // 16-byte Reload ; CHECK-GI-NEXT: smlal2 v5.4s, v9.8h, v13.8h ; CHECK-GI-NEXT: ldp d9, d8, [sp, #208] // 16-byte Folded Reload ; CHECK-GI-NEXT: ldp d13, d12, [sp, #176] // 16-byte Folded Reload @@ -8999,7 +8999,7 @@ define i32 @test_usdot_v64i8_double(<64 x i8> %a, <64 x i8> %b, <64 x i8> %c, <6 ; CHECK-GI-NEXT: ldp d11, d10, [sp, #192] // 16-byte Folded Reload ; CHECK-GI-NEXT: smlal2 v0.4s, v20.8h, v29.8h ; CHECK-GI-NEXT: add v3.4s, v3.4s, v7.4s -; CHECK-GI-NEXT: ldr q7, [sp, #96] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q7, [sp, #96] // 16-byte Reload ; CHECK-GI-NEXT: add v19.4s, v24.4s, v15.4s ; CHECK-GI-NEXT: ldp d15, d14, [sp, #160] // 16-byte Folded Reload ; CHECK-GI-NEXT: add v7.4s, v7.4s, v18.4s diff --git a/llvm/test/CodeGen/AArch64/nontemporal.ll b/llvm/test/CodeGen/AArch64/nontemporal.ll index f7a87ae340a73..61746e673ea1d 100644 --- a/llvm/test/CodeGen/AArch64/nontemporal.ll +++ b/llvm/test/CodeGen/AArch64/nontemporal.ll @@ -502,10 +502,10 @@ define void @test_stnp_v4f32_offset_alloca(<4 x float> %v) #0 { ; CHECK-LE-NEXT: sub sp, sp, #32 ; CHECK-LE-NEXT: mov d1, v0.d[1] ; CHECK-LE-NEXT: mov x0, sp -; CHECK-LE-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-LE-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-LE-NEXT: stnp d0, d1, [sp] ; CHECK-LE-NEXT: bl dummy -; CHECK-LE-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-LE-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-LE-NEXT: add sp, sp, #32 ; CHECK-LE-NEXT: ret ; @@ -513,10 +513,10 @@ define void @test_stnp_v4f32_offset_alloca(<4 x float> %v) #0 { ; CHECK-BE: // %bb.0: ; CHECK-BE-NEXT: sub sp, sp, #32 ; CHECK-BE-NEXT: mov x0, sp -; CHECK-BE-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-BE-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-BE-NEXT: str q0, [sp] ; CHECK-BE-NEXT: bl dummy -; CHECK-BE-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-BE-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-BE-NEXT: add sp, sp, #32 ; CHECK-BE-NEXT: ret %tmp0 = alloca <4 x float> @@ -531,10 +531,10 @@ define void @test_stnp_v4f32_offset_alloca_2(<4 x float> %v) #0 { ; CHECK-LE-NEXT: sub sp, sp, #48 ; CHECK-LE-NEXT: mov d1, v0.d[1] ; CHECK-LE-NEXT: mov x0, sp -; CHECK-LE-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-LE-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-LE-NEXT: stnp d0, d1, [sp, #16] ; CHECK-LE-NEXT: bl dummy -; CHECK-LE-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-LE-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-LE-NEXT: add sp, sp, #48 ; CHECK-LE-NEXT: ret ; @@ -542,10 +542,10 @@ define void @test_stnp_v4f32_offset_alloca_2(<4 x float> %v) #0 { ; CHECK-BE: // %bb.0: ; CHECK-BE-NEXT: sub sp, sp, #48 ; CHECK-BE-NEXT: mov x0, sp -; CHECK-BE-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-BE-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-BE-NEXT: str q0, [sp, #16] ; CHECK-BE-NEXT: bl dummy -; CHECK-BE-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-BE-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-BE-NEXT: add sp, sp, #48 ; CHECK-BE-NEXT: ret %tmp0 = alloca <4 x float>, i32 2 diff --git a/llvm/test/CodeGen/AArch64/outlining-with-streaming-mode-changes.ll b/llvm/test/CodeGen/AArch64/outlining-with-streaming-mode-changes.ll index 22774ebf1a662..5b64d25fbe65f 100644 --- a/llvm/test/CodeGen/AArch64/outlining-with-streaming-mode-changes.ll +++ b/llvm/test/CodeGen/AArch64/outlining-with-streaming-mode-changes.ll @@ -10,12 +10,12 @@ define void @streaming_mode_change1() #0 { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-NEXT: smstop sm ; CHECK-NEXT: bl callee ; CHECK-NEXT: smstart sm ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload ; CHECK-NEXT: ldp d15, d14, [sp], #80 // 16-byte Folded Reload @@ -34,12 +34,12 @@ define void @streaming_mode_change2() #0 { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-NEXT: smstop sm ; CHECK-NEXT: bl callee ; CHECK-NEXT: smstart sm ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload ; CHECK-NEXT: ldp d15, d14, [sp], #80 // 16-byte Folded Reload @@ -58,12 +58,12 @@ define void @streaming_mode_change3() #0 { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-NEXT: smstop sm ; CHECK-NEXT: bl callee ; CHECK-NEXT: smstart sm ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload ; CHECK-NEXT: ldp d15, d14, [sp], #80 // 16-byte Folded Reload diff --git a/llvm/test/CodeGen/AArch64/perm-tb-with-sme2.ll b/llvm/test/CodeGen/AArch64/perm-tb-with-sme2.ll index 1ceb25b89a364..ede66fd09925d 100644 --- a/llvm/test/CodeGen/AArch64/perm-tb-with-sme2.ll +++ b/llvm/test/CodeGen/AArch64/perm-tb-with-sme2.ll @@ -10,7 +10,7 @@ define { , } @tbl2_b_tuple(i64 %stride, ptr ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-3 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: str z12, [sp, #1, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z11, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x48, 0x1e, 0x22 // sp + 16 + 24 * VG @@ -20,7 +20,7 @@ define { , } @tbl2_b_tuple(i64 %stride, ptr ; CHECK-NEXT: ptrue pn8.b ; CHECK-NEXT: ld1b { z3.b, z11.b }, pn8/z, [x1] ; CHECK-NEXT: ld1b { z4.b, z12.b }, pn8/z, [x1, x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: tbl z2.b, { z3.b, z4.b }, z0.b ; CHECK-NEXT: tbl z1.b, { z11.b, z12.b }, z0.b ; CHECK-NEXT: ldr z12, [sp, #1, mul vl] // 16-byte Folded Reload @@ -50,7 +50,7 @@ define { , } @tbl2_h_tuple(i64 %stride, ptr ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-3 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: str z12, [sp, #1, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z11, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x48, 0x1e, 0x22 // sp + 16 + 24 * VG @@ -61,7 +61,7 @@ define { , } @tbl2_h_tuple(i64 %stride, ptr ; CHECK-NEXT: add x8, x1, x0 ; CHECK-NEXT: ld1h { z3.h, z11.h }, pn8/z, [x1] ; CHECK-NEXT: ld1h { z4.h, z12.h }, pn8/z, [x8] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: tbl z2.h, { z3.h, z4.h }, z0.h ; CHECK-NEXT: tbl z1.h, { z11.h, z12.h }, z0.h ; CHECK-NEXT: ldr z12, [sp, #1, mul vl] // 16-byte Folded Reload @@ -91,7 +91,7 @@ define { , } @tbl2_s_tuple(i64 %stride, ptr ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-3 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: str z12, [sp, #1, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z11, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x48, 0x1e, 0x22 // sp + 16 + 24 * VG @@ -102,7 +102,7 @@ define { , } @tbl2_s_tuple(i64 %stride, ptr ; CHECK-NEXT: add x8, x1, x0 ; CHECK-NEXT: ld1w { z3.s, z11.s }, pn8/z, [x1] ; CHECK-NEXT: ld1w { z4.s, z12.s }, pn8/z, [x8] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: tbl z2.s, { z3.s, z4.s }, z0.s ; CHECK-NEXT: tbl z1.s, { z11.s, z12.s }, z0.s ; CHECK-NEXT: ldr z12, [sp, #1, mul vl] // 16-byte Folded Reload @@ -132,7 +132,7 @@ define { , } @tbl2_d_tuple(i64 %stride, ptr ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-3 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: str z12, [sp, #1, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z11, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x48, 0x1e, 0x22 // sp + 16 + 24 * VG @@ -143,7 +143,7 @@ define { , } @tbl2_d_tuple(i64 %stride, ptr ; CHECK-NEXT: add x8, x1, x0 ; CHECK-NEXT: ld1d { z3.d, z11.d }, pn8/z, [x1] ; CHECK-NEXT: ld1d { z4.d, z12.d }, pn8/z, [x8] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: tbl z2.d, { z3.d, z4.d }, z0.d ; CHECK-NEXT: tbl z1.d, { z11.d, z12.d }, z0.d ; CHECK-NEXT: ldr z12, [sp, #1, mul vl] // 16-byte Folded Reload @@ -173,7 +173,7 @@ define { , } @tbl2_bf16_tuple(i64 %st ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-3 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: str z12, [sp, #1, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z11, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x48, 0x1e, 0x22 // sp + 16 + 24 * VG @@ -184,7 +184,7 @@ define { , } @tbl2_bf16_tuple(i64 %st ; CHECK-NEXT: add x8, x1, x0 ; CHECK-NEXT: ld1h { z3.h, z11.h }, pn8/z, [x1] ; CHECK-NEXT: ld1h { z4.h, z12.h }, pn8/z, [x8] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: tbl z2.h, { z3.h, z4.h }, z0.h ; CHECK-NEXT: tbl z1.h, { z11.h, z12.h }, z0.h ; CHECK-NEXT: ldr z12, [sp, #1, mul vl] // 16-byte Folded Reload @@ -214,7 +214,7 @@ define { , } @tbl2_f32_tuple(i64 %strid ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-3 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: str z12, [sp, #1, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z11, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x48, 0x1e, 0x22 // sp + 16 + 24 * VG @@ -225,7 +225,7 @@ define { , } @tbl2_f32_tuple(i64 %strid ; CHECK-NEXT: add x8, x1, x0 ; CHECK-NEXT: ld1w { z3.s, z11.s }, pn8/z, [x1] ; CHECK-NEXT: ld1w { z4.s, z12.s }, pn8/z, [x8] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: tbl z2.s, { z3.s, z4.s }, z0.s ; CHECK-NEXT: tbl z1.s, { z11.s, z12.s }, z0.s ; CHECK-NEXT: ldr z12, [sp, #1, mul vl] // 16-byte Folded Reload @@ -255,7 +255,7 @@ define { , } @tbl2_f64_tuple(i64 %str ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-3 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: str z12, [sp, #1, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z11, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x48, 0x1e, 0x22 // sp + 16 + 24 * VG @@ -266,7 +266,7 @@ define { , } @tbl2_f64_tuple(i64 %str ; CHECK-NEXT: add x8, x1, x0 ; CHECK-NEXT: ld1d { z3.d, z11.d }, pn8/z, [x1] ; CHECK-NEXT: ld1d { z4.d, z12.d }, pn8/z, [x8] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: tbl z2.d, { z3.d, z4.d }, z0.d ; CHECK-NEXT: tbl z1.d, { z11.d, z12.d }, z0.d ; CHECK-NEXT: ldr z12, [sp, #1, mul vl] // 16-byte Folded Reload diff --git a/llvm/test/CodeGen/AArch64/pow.ll b/llvm/test/CodeGen/AArch64/pow.ll index 495541e9fd949..5b27ba8bf8452 100644 --- a/llvm/test/CodeGen/AArch64/pow.ll +++ b/llvm/test/CodeGen/AArch64/pow.ll @@ -69,36 +69,36 @@ define <4 x float> @pow_v4f32_one_fourth_not_enough_fmf(<4 x float> %x) nounwind ; CHECK-LABEL: pow_v4f32_one_fourth_not_enough_fmf: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-NEXT: mov s0, v0.s[1] ; CHECK-NEXT: fmov s1, #0.25000000 -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: bl powf ; CHECK-NEXT: fmov s1, #0.25000000 ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-NEXT: bl powf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-NEXT: mov v0.s[1], v1.s[0] ; CHECK-NEXT: fmov s1, #0.25000000 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: mov s0, v0.s[2] ; CHECK-NEXT: bl powf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-NEXT: mov v1.s[2], v0.s[0] -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: mov s0, v0.s[3] -; CHECK-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-NEXT: fmov s1, #0.25000000 ; CHECK-NEXT: bl powf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: mov v1.s[3], v0.s[0] ; CHECK-NEXT: mov v0.16b, v1.16b ; CHECK-NEXT: add sp, sp, #48 @@ -111,20 +111,20 @@ define <2 x double> @pow_v2f64_one_fourth_not_enough_fmf(<2 x double> %x) nounwi ; CHECK-LABEL: pow_v2f64_one_fourth_not_enough_fmf: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: mov d0, v0.d[1] ; CHECK-NEXT: fmov d1, #0.25000000 -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: bl pow ; CHECK-NEXT: fmov d1, #0.25000000 ; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-NEXT: bl pow -; CHECK-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: mov v0.d[1], v1.d[0] ; CHECK-NEXT: add sp, sp, #48 ; CHECK-NEXT: ret diff --git a/llvm/test/CodeGen/AArch64/pr135821.ll b/llvm/test/CodeGen/AArch64/pr135821.ll index cfd6cd086e130..1f9b68aeae0c7 100644 --- a/llvm/test/CodeGen/AArch64/pr135821.ll +++ b/llvm/test/CodeGen/AArch64/pr135821.ll @@ -5,16 +5,16 @@ define <4 x float> @f(ptr %0) { ; CHECK-LABEL: f: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #32 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: ldr q1, [x0, #56]! ; CHECK-NEXT: ldr d0, [x0, #16] ; CHECK-NEXT: mov v1.d[1], v0.d[0] -; CHECK-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-NEXT: bl use -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: ret %2 = getelementptr inbounds nuw i8, ptr %0, i64 56 diff --git a/llvm/test/CodeGen/AArch64/pr142314.ll b/llvm/test/CodeGen/AArch64/pr142314.ll index f707ed26026f2..5c4f6021063fd 100644 --- a/llvm/test/CodeGen/AArch64/pr142314.ll +++ b/llvm/test/CodeGen/AArch64/pr142314.ll @@ -10,14 +10,14 @@ define <2 x ptr addrspace(1)> @widget() nounwind gc "statepoint-example" { ; CHECK-NEXT: movi v0.2d, #0000000000000000 ; CHECK-NEXT: mov x0, xzr ; CHECK-NEXT: mov x1, xzr -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: str q0, [sp] ; CHECK-NEXT: movi d0, #0000000000000000 ; CHECK-NEXT: blr xzr ; CHECK-NEXT: .Ltmp0: ; CHECK-NEXT: movi v0.2d, #0000000000000000 ; CHECK-NEXT: mov x8, sp -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: orr x8, x8, #0x8 ; CHECK-NEXT: ld1 { v0.d }[1], [x8] ; CHECK-NEXT: add sp, sp, #32 diff --git a/llvm/test/CodeGen/AArch64/pr48188.ll b/llvm/test/CodeGen/AArch64/pr48188.ll index d01069696572e..836690c1e7f0d 100644 --- a/llvm/test/CodeGen/AArch64/pr48188.ll +++ b/llvm/test/CodeGen/AArch64/pr48188.ll @@ -9,15 +9,15 @@ define void @test() nounwind { ; GISEL-NEXT: sub sp, sp, #16 ; GISEL-NEXT: mov x8, xzr ; GISEL-NEXT: mov x9, x8 -; GISEL-NEXT: str x9, [sp] // 8-byte Folded Spill -; GISEL-NEXT: str x8, [sp, #8] // 8-byte Folded Spill +; GISEL-NEXT: str x9, [sp] // 8-byte Spill +; GISEL-NEXT: str x8, [sp, #8] // 8-byte Spill ; GISEL-NEXT: b .LBB0_1 ; GISEL-NEXT: .LBB0_1: // %loop ; GISEL-NEXT: // =>This Inner Loop Header: Depth=1 -; GISEL-NEXT: ldr x8, [sp, #8] // 8-byte Folded Reload -; GISEL-NEXT: ldr x9, [sp] // 8-byte Folded Reload -; GISEL-NEXT: str x9, [sp] // 8-byte Folded Spill -; GISEL-NEXT: str x8, [sp, #8] // 8-byte Folded Spill +; GISEL-NEXT: ldr x8, [sp, #8] // 8-byte Reload +; GISEL-NEXT: ldr x9, [sp] // 8-byte Reload +; GISEL-NEXT: str x9, [sp] // 8-byte Spill +; GISEL-NEXT: str x8, [sp, #8] // 8-byte Spill ; GISEL-NEXT: b .LBB0_1 ; ; SDAG-LABEL: test: @@ -25,15 +25,15 @@ define void @test() nounwind { ; SDAG-NEXT: sub sp, sp, #16 ; SDAG-NEXT: mov x1, xzr ; SDAG-NEXT: mov x0, x1 -; SDAG-NEXT: str x1, [sp] // 8-byte Folded Spill -; SDAG-NEXT: str x0, [sp, #8] // 8-byte Folded Spill +; SDAG-NEXT: str x1, [sp] // 8-byte Spill +; SDAG-NEXT: str x0, [sp, #8] // 8-byte Spill ; SDAG-NEXT: b .LBB0_1 ; SDAG-NEXT: .LBB0_1: // %loop ; SDAG-NEXT: // =>This Inner Loop Header: Depth=1 -; SDAG-NEXT: ldr x0, [sp, #8] // 8-byte Folded Reload -; SDAG-NEXT: ldr x1, [sp] // 8-byte Folded Reload -; SDAG-NEXT: str x1, [sp] // 8-byte Folded Spill -; SDAG-NEXT: str x0, [sp, #8] // 8-byte Folded Spill +; SDAG-NEXT: ldr x0, [sp, #8] // 8-byte Reload +; SDAG-NEXT: ldr x1, [sp] // 8-byte Reload +; SDAG-NEXT: str x1, [sp] // 8-byte Spill +; SDAG-NEXT: str x0, [sp, #8] // 8-byte Spill ; SDAG-NEXT: b .LBB0_1 entry: br label %loop diff --git a/llvm/test/CodeGen/AArch64/pr53315-returned-i128.ll b/llvm/test/CodeGen/AArch64/pr53315-returned-i128.ll index 0418720231288..1b085ca85be4d 100644 --- a/llvm/test/CodeGen/AArch64/pr53315-returned-i128.ll +++ b/llvm/test/CodeGen/AArch64/pr53315-returned-i128.ll @@ -5,15 +5,15 @@ define void @test() nounwind { ; CHECK-LABEL: test: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #32 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: mov x1, xzr -; CHECK-NEXT: str x1, [sp, #8] // 8-byte Folded Spill +; CHECK-NEXT: str x1, [sp, #8] // 8-byte Spill ; CHECK-NEXT: mov x0, x1 ; CHECK-NEXT: bl returns_arg -; CHECK-NEXT: ldr x1, [sp, #8] // 8-byte Folded Reload +; CHECK-NEXT: ldr x1, [sp, #8] // 8-byte Reload ; CHECK-NEXT: mov x0, x1 ; CHECK-NEXT: bl accepts_arg -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: ret %x = call i128 @returns_arg(i128 0) diff --git a/llvm/test/CodeGen/AArch64/pr58516.ll b/llvm/test/CodeGen/AArch64/pr58516.ll index d1775a2e707b6..185cef1e8d514 100644 --- a/llvm/test/CodeGen/AArch64/pr58516.ll +++ b/llvm/test/CodeGen/AArch64/pr58516.ll @@ -14,7 +14,7 @@ define void @osfx(ptr %this) comdat personality ptr @__CxxFrameHandler3 { ; CHECK-NEXT: // %bb.0: // %invoke.cont ; CHECK-NEXT: stp x19, x20, [sp, #-64]! // 16-byte Folded Spill ; CHECK-NEXT: .seh_save_regp_x x19, 64 -; CHECK-NEXT: str x21, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x21, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .seh_save_reg x21, 16 ; CHECK-NEXT: stp x29, x30, [sp, #24] // 16-byte Folded Spill ; CHECK-NEXT: .seh_save_fplr 24 @@ -34,9 +34,9 @@ define void @osfx(ptr %this) comdat personality ptr @__CxxFrameHandler3 { ; CHECK-NEXT: str x8, [x0] ; CHECK-NEXT: str wzr, [x21] ; CHECK-NEXT: ldr x0, [x0] -; CHECK-NEXT: .Ltmp0: +; CHECK-NEXT: .Ltmp0: // EH_LABEL ; CHECK-NEXT: blr x0 -; CHECK-NEXT: .Ltmp1: +; CHECK-NEXT: .Ltmp1: // EH_LABEL ; CHECK-NEXT: // %bb.1: // %invoke.cont12 ; CHECK-NEXT: str wzr, [x20] ; CHECK-NEXT: str wzr, [x21] @@ -48,7 +48,7 @@ define void @osfx(ptr %this) comdat personality ptr @__CxxFrameHandler3 { ; CHECK-NEXT: .seh_add_fp 24 ; CHECK-NEXT: ldp x29, x30, [sp, #24] // 16-byte Folded Reload ; CHECK-NEXT: .seh_save_fplr 24 -; CHECK-NEXT: ldr x21, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x21, [sp, #16] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x21, 16 ; CHECK-NEXT: ldp x19, x20, [sp], #64 // 16-byte Folded Reload ; CHECK-NEXT: .seh_save_regp_x x19, 64 @@ -70,7 +70,7 @@ define void @osfx(ptr %this) comdat personality ptr @__CxxFrameHandler3 { ; CHECK-NEXT: .LBB0_3: // %catch ; CHECK-NEXT: stp x19, x20, [sp, #-48]! // 16-byte Folded Spill ; CHECK-NEXT: .seh_save_regp_x x19, 48 -; CHECK-NEXT: str x21, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x21, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .seh_save_reg x21, 16 ; CHECK-NEXT: stp x29, x30, [sp, #24] // 16-byte Folded Spill ; CHECK-NEXT: .seh_save_fplr 24 @@ -80,7 +80,7 @@ define void @osfx(ptr %this) comdat personality ptr @__CxxFrameHandler3 { ; CHECK-NEXT: .seh_startepilogue ; CHECK-NEXT: ldp x29, x30, [sp, #24] // 16-byte Folded Reload ; CHECK-NEXT: .seh_save_fplr 24 -; CHECK-NEXT: ldr x21, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x21, [sp, #16] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x21, 16 ; CHECK-NEXT: ldp x19, x20, [sp], #48 // 16-byte Folded Reload ; CHECK-NEXT: .seh_save_regp_x x19, 48 diff --git a/llvm/test/CodeGen/AArch64/preserve_nonecc_call.ll b/llvm/test/CodeGen/AArch64/preserve_nonecc_call.ll index 9b9717c19321e..ca0139f5382dc 100644 --- a/llvm/test/CodeGen/AArch64/preserve_nonecc_call.ll +++ b/llvm/test/CodeGen/AArch64/preserve_nonecc_call.ll @@ -18,7 +18,7 @@ define void @caller1(ptr %a) { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-NEXT: stp x28, x27, [sp, #80] // 16-byte Folded Spill ; CHECK-NEXT: stp x26, x25, [sp, #96] // 16-byte Folded Spill ; CHECK-NEXT: stp x24, x23, [sp, #112] // 16-byte Folded Spill @@ -47,7 +47,7 @@ define void @caller1(ptr %a) { ; CHECK-NEXT: mov x20, x0 ; CHECK-NEXT: bl callee ; CHECK-NEXT: ldp x20, x19, [sp, #144] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp x22, x21, [sp, #128] // 16-byte Folded Reload ; CHECK-NEXT: ldp x24, x23, [sp, #112] // 16-byte Folded Reload ; CHECK-NEXT: ldp x26, x25, [sp, #96] // 16-byte Folded Reload @@ -118,7 +118,7 @@ define void @caller1(ptr %a) { ; WIN-NEXT: .seh_save_regp x25, 48 ; WIN-NEXT: stp x27, x28, [sp, #64] // 16-byte Folded Spill ; WIN-NEXT: .seh_save_regp x27, 64 -; WIN-NEXT: str x30, [sp, #80] // 8-byte Folded Spill +; WIN-NEXT: str x30, [sp, #80] // 8-byte Spill ; WIN-NEXT: .seh_save_reg x30, 80 ; WIN-NEXT: stp d8, d9, [sp, #88] // 16-byte Folded Spill ; WIN-NEXT: .seh_save_fregp d8, 88 @@ -140,7 +140,7 @@ define void @caller1(ptr %a) { ; WIN-NEXT: .seh_save_fregp d10, 104 ; WIN-NEXT: ldp d8, d9, [sp, #88] // 16-byte Folded Reload ; WIN-NEXT: .seh_save_fregp d8, 88 -; WIN-NEXT: ldr x30, [sp, #80] // 8-byte Folded Reload +; WIN-NEXT: ldr x30, [sp, #80] // 8-byte Reload ; WIN-NEXT: .seh_save_reg x30, 80 ; WIN-NEXT: ldp x27, x28, [sp, #64] // 16-byte Folded Reload ; WIN-NEXT: .seh_save_regp x27, 64 @@ -256,7 +256,7 @@ define preserve_nonecc i64 @callee_with_many_param(i64 %a1, i64 %a2, i64 %a3, i6 ; WIN-NEXT: // %bb.0: ; WIN-NEXT: sub sp, sp, #32 ; WIN-NEXT: .seh_stackalloc 32 -; WIN-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; WIN-NEXT: str x30, [sp, #16] // 8-byte Spill ; WIN-NEXT: .seh_save_reg x30, 16 ; WIN-NEXT: .seh_endprologue ; WIN-NEXT: ldr x8, [sp, #32] @@ -287,7 +287,7 @@ define preserve_nonecc i64 @callee_with_many_param(i64 %a1, i64 %a2, i64 %a3, i6 ; WIN-NEXT: str x15, [sp] ; WIN-NEXT: bl callee_with_many_param2 ; WIN-NEXT: .seh_startepilogue -; WIN-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; WIN-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; WIN-NEXT: .seh_save_reg x30, 16 ; WIN-NEXT: add sp, sp, #32 ; WIN-NEXT: .seh_stackalloc 32 @@ -306,7 +306,7 @@ define i64 @caller3() { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-NEXT: stp x28, x27, [sp, #80] // 16-byte Folded Spill ; CHECK-NEXT: stp x26, x25, [sp, #96] // 16-byte Folded Spill ; CHECK-NEXT: stp x24, x23, [sp, #112] // 16-byte Folded Spill @@ -358,7 +358,7 @@ define i64 @caller3() { ; CHECK-NEXT: mov w15, #24 // =0x18 ; CHECK-NEXT: bl callee_with_many_param ; CHECK-NEXT: ldp x20, x19, [sp, #144] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp x22, x21, [sp, #128] // 16-byte Folded Reload ; CHECK-NEXT: ldp x24, x23, [sp, #112] // 16-byte Folded Reload ; CHECK-NEXT: ldp x26, x25, [sp, #96] // 16-byte Folded Reload @@ -454,7 +454,7 @@ define i64 @caller3() { ; WIN-NEXT: .seh_save_regp x25, 64 ; WIN-NEXT: stp x27, x28, [sp, #80] // 16-byte Folded Spill ; WIN-NEXT: .seh_save_regp x27, 80 -; WIN-NEXT: str x30, [sp, #96] // 8-byte Folded Spill +; WIN-NEXT: str x30, [sp, #96] // 8-byte Spill ; WIN-NEXT: .seh_save_reg x30, 96 ; WIN-NEXT: stp d8, d9, [sp, #104] // 16-byte Folded Spill ; WIN-NEXT: .seh_save_fregp d8, 104 @@ -500,7 +500,7 @@ define i64 @caller3() { ; WIN-NEXT: .seh_save_fregp d10, 120 ; WIN-NEXT: ldp d8, d9, [sp, #104] // 16-byte Folded Reload ; WIN-NEXT: .seh_save_fregp d8, 104 -; WIN-NEXT: ldr x30, [sp, #96] // 8-byte Folded Reload +; WIN-NEXT: ldr x30, [sp, #96] // 8-byte Reload ; WIN-NEXT: .seh_save_reg x30, 96 ; WIN-NEXT: ldp x27, x28, [sp, #80] // 16-byte Folded Reload ; WIN-NEXT: .seh_save_regp x27, 80 diff --git a/llvm/test/CodeGen/AArch64/preserve_nonecc_varargs_aapcs.ll b/llvm/test/CodeGen/AArch64/preserve_nonecc_varargs_aapcs.ll index 48898719f40ce..a359343eacf79 100644 --- a/llvm/test/CodeGen/AArch64/preserve_nonecc_varargs_aapcs.ll +++ b/llvm/test/CodeGen/AArch64/preserve_nonecc_varargs_aapcs.ll @@ -96,7 +96,7 @@ define i32 @caller() nounwind ssp { ; CHECK-NEXT: stp d13, d12, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #48] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #64] // 16-byte Folded Spill -; CHECK-NEXT: str x30, [sp, #80] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #80] // 8-byte Spill ; CHECK-NEXT: stp x28, x27, [sp, #96] // 16-byte Folded Spill ; CHECK-NEXT: stp x26, x25, [sp, #112] // 16-byte Folded Spill ; CHECK-NEXT: stp x24, x23, [sp, #128] // 16-byte Folded Spill @@ -106,7 +106,7 @@ define i32 @caller() nounwind ssp { ; CHECK-NEXT: str w9, [sp] ; CHECK-NEXT: bl callee ; CHECK-NEXT: ldp x20, x19, [sp, #160] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #80] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #80] // 8-byte Reload ; CHECK-NEXT: ldp x22, x21, [sp, #144] // 16-byte Folded Reload ; CHECK-NEXT: ldp x24, x23, [sp, #128] // 16-byte Folded Reload ; CHECK-NEXT: ldp x26, x25, [sp, #112] // 16-byte Folded Reload diff --git a/llvm/test/CodeGen/AArch64/preserve_nonecc_varargs_win64.ll b/llvm/test/CodeGen/AArch64/preserve_nonecc_varargs_win64.ll index 83dd240a6540f..784d5ed4b3c6f 100644 --- a/llvm/test/CodeGen/AArch64/preserve_nonecc_varargs_win64.ll +++ b/llvm/test/CodeGen/AArch64/preserve_nonecc_varargs_win64.ll @@ -42,7 +42,7 @@ define i32 @caller() nounwind ssp { ; CHECK-NEXT: stp d13, d12, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #48] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #64] // 16-byte Folded Spill -; CHECK-NEXT: str x30, [sp, #80] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #80] // 8-byte Spill ; CHECK-NEXT: stp x28, x27, [sp, #96] // 16-byte Folded Spill ; CHECK-NEXT: stp x26, x25, [sp, #112] // 16-byte Folded Spill ; CHECK-NEXT: stp x24, x23, [sp, #128] // 16-byte Folded Spill @@ -52,7 +52,7 @@ define i32 @caller() nounwind ssp { ; CHECK-NEXT: str w9, [sp] ; CHECK-NEXT: bl callee ; CHECK-NEXT: ldp x20, x19, [sp, #160] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #80] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #80] // 8-byte Reload ; CHECK-NEXT: ldp x22, x21, [sp, #144] // 16-byte Folded Reload ; CHECK-NEXT: ldp x24, x23, [sp, #128] // 16-byte Folded Reload ; CHECK-NEXT: ldp x26, x25, [sp, #112] // 16-byte Folded Reload diff --git a/llvm/test/CodeGen/AArch64/ragreedy-csr.ll b/llvm/test/CodeGen/AArch64/ragreedy-csr.ll index 5b501762418ef..31f004e8d72b7 100644 --- a/llvm/test/CodeGen/AArch64/ragreedy-csr.ll +++ b/llvm/test/CodeGen/AArch64/ragreedy-csr.ll @@ -46,10 +46,10 @@ define fastcc i32 @prune_match(ptr nocapture readonly %a, ptr nocapture readonly ; CHECK-NEXT: stp x9, x0, [sp, #32] ; 16-byte Folded Spill ; CHECK-NEXT: mov w0, w8 ; CHECK-NEXT: mov w1, #32768 ; =0x8000 -; CHECK-NEXT: str x10, [sp, #8] ; 8-byte Folded Spill -; CHECK-NEXT: str x11, [sp, #24] ; 8-byte Folded Spill -; CHECK-NEXT: str w12, [sp, #4] ; 4-byte Folded Spill -; CHECK-NEXT: str w13, [sp, #20] ; 4-byte Folded Spill +; CHECK-NEXT: str x10, [sp, #8] ; 8-byte Spill +; CHECK-NEXT: str x11, [sp, #24] ; 8-byte Spill +; CHECK-NEXT: str w12, [sp, #4] ; 4-byte Spill +; CHECK-NEXT: str w13, [sp, #20] ; 4-byte Spill ; CHECK-NEXT: bl ___maskrune ; CHECK-NEXT: Lloh2: ; CHECK-NEXT: adrp x14, __DefaultRuneLocale@GOTPAGE @@ -57,10 +57,10 @@ define fastcc i32 @prune_match(ptr nocapture readonly %a, ptr nocapture readonly ; CHECK-NEXT: Lloh3: ; CHECK-NEXT: ldr x14, [x14, __DefaultRuneLocale@GOTPAGEOFF] ; CHECK-NEXT: ldp x11, x9, [sp, #24] ; 16-byte Folded Reload -; CHECK-NEXT: ldr w13, [sp, #20] ; 4-byte Folded Reload -; CHECK-NEXT: ldr w12, [sp, #4] ; 4-byte Folded Reload -; CHECK-NEXT: ldr x10, [sp, #8] ; 8-byte Folded Reload -; CHECK-NEXT: ldr x0, [sp, #40] ; 8-byte Folded Reload +; CHECK-NEXT: ldr w13, [sp, #20] ; 4-byte Reload +; CHECK-NEXT: ldr w12, [sp, #4] ; 4-byte Reload +; CHECK-NEXT: ldr x10, [sp, #8] ; 8-byte Reload +; CHECK-NEXT: ldr x0, [sp, #40] ; 8-byte Reload ; CHECK-NEXT: cbz w8, LBB0_4 ; CHECK-NEXT: b LBB0_6 ; CHECK-NEXT: LBB0_3: ; %cond.true.i.i @@ -90,10 +90,10 @@ define fastcc i32 @prune_match(ptr nocapture readonly %a, ptr nocapture readonly ; CHECK-NEXT: stp x9, x0, [sp, #32] ; 16-byte Folded Spill ; CHECK-NEXT: mov w0, w8 ; CHECK-NEXT: mov w1, #32768 ; =0x8000 -; CHECK-NEXT: str x10, [sp, #8] ; 8-byte Folded Spill -; CHECK-NEXT: str x11, [sp, #24] ; 8-byte Folded Spill -; CHECK-NEXT: str w12, [sp, #4] ; 4-byte Folded Spill -; CHECK-NEXT: str w13, [sp, #20] ; 4-byte Folded Spill +; CHECK-NEXT: str x10, [sp, #8] ; 8-byte Spill +; CHECK-NEXT: str x11, [sp, #24] ; 8-byte Spill +; CHECK-NEXT: str w12, [sp, #4] ; 4-byte Spill +; CHECK-NEXT: str w13, [sp, #20] ; 4-byte Spill ; CHECK-NEXT: bl ___maskrune ; CHECK-NEXT: Lloh4: ; CHECK-NEXT: adrp x14, __DefaultRuneLocale@GOTPAGE @@ -101,10 +101,10 @@ define fastcc i32 @prune_match(ptr nocapture readonly %a, ptr nocapture readonly ; CHECK-NEXT: Lloh5: ; CHECK-NEXT: ldr x14, [x14, __DefaultRuneLocale@GOTPAGEOFF] ; CHECK-NEXT: ldp x11, x9, [sp, #24] ; 16-byte Folded Reload -; CHECK-NEXT: ldr w13, [sp, #20] ; 4-byte Folded Reload -; CHECK-NEXT: ldr w12, [sp, #4] ; 4-byte Folded Reload -; CHECK-NEXT: ldr x10, [sp, #8] ; 8-byte Folded Reload -; CHECK-NEXT: ldr x0, [sp, #40] ; 8-byte Folded Reload +; CHECK-NEXT: ldr w13, [sp, #20] ; 4-byte Reload +; CHECK-NEXT: ldr w12, [sp, #4] ; 4-byte Reload +; CHECK-NEXT: ldr x10, [sp, #8] ; 8-byte Reload +; CHECK-NEXT: ldr x0, [sp, #40] ; 8-byte Reload ; CHECK-NEXT: cbnz w8, LBB0_6 ; CHECK-NEXT: LBB0_9: ; %while.end ; CHECK-NEXT: orr w8, w13, w12 diff --git a/llvm/test/CodeGen/AArch64/ragreedy-local-interval-cost.ll b/llvm/test/CodeGen/AArch64/ragreedy-local-interval-cost.ll index e3c623371448b..ae71cd00b9aa4 100644 --- a/llvm/test/CodeGen/AArch64/ragreedy-local-interval-cost.ll +++ b/llvm/test/CodeGen/AArch64/ragreedy-local-interval-cost.ll @@ -81,7 +81,7 @@ define dso_local void @run_test() local_unnamed_addr uwtable { ; CHECK-NEXT: stp q7, q23, [sp, #32] // 32-byte Folded Spill ; CHECK-NEXT: ldr x14, [x14, #8] ; CHECK-NEXT: mul x0, x17, x17 -; CHECK-NEXT: ldr q23, [sp, #80] // 16-byte Folded Reload +; CHECK-NEXT: ldr q23, [sp, #80] // 16-byte Reload ; CHECK-NEXT: mov v9.16b, v30.16b ; CHECK-NEXT: mov v30.16b, v25.16b ; CHECK-NEXT: mov v25.16b, v20.16b @@ -114,7 +114,7 @@ define dso_local void @run_test() local_unnamed_addr uwtable { ; CHECK-NEXT: fmov d5, x20 ; CHECK-NEXT: mul x6, x15, x15 ; CHECK-NEXT: add v23.2d, v23.2d, v0.2d -; CHECK-NEXT: ldr q0, [sp, #64] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #64] // 16-byte Reload ; CHECK-NEXT: mov v1.d[1], x3 ; CHECK-NEXT: mul x7, x15, x5 ; CHECK-NEXT: add v0.2d, v0.2d, v15.2d @@ -123,19 +123,19 @@ define dso_local void @run_test() local_unnamed_addr uwtable { ; CHECK-NEXT: fmov d4, x6 ; CHECK-NEXT: mul x19, x16, x5 ; CHECK-NEXT: stp q0, q23, [sp, #64] // 32-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #96] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #96] // 16-byte Reload ; CHECK-NEXT: fmov d3, x7 -; CHECK-NEXT: ldr q23, [sp, #48] // 16-byte Folded Reload +; CHECK-NEXT: ldr q23, [sp, #48] // 16-byte Reload ; CHECK-NEXT: mul x17, x2, x15 ; CHECK-NEXT: add v0.2d, v0.2d, v15.2d -; CHECK-NEXT: ldr q15, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q15, [sp] // 16-byte Reload ; CHECK-NEXT: mov v5.d[1], x0 ; CHECK-NEXT: mov v4.d[1], x6 ; CHECK-NEXT: mul x16, x16, x15 ; CHECK-NEXT: mov v3.d[1], x7 ; CHECK-NEXT: add v15.2d, v15.2d, v1.2d ; CHECK-NEXT: mov v2.d[1], x19 -; CHECK-NEXT: str q0, [sp, #96] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #96] // 16-byte Spill ; CHECK-NEXT: mov v1.16b, v6.16b ; CHECK-NEXT: mul x14, x14, x15 ; CHECK-NEXT: mov v6.16b, v20.16b @@ -188,7 +188,7 @@ define dso_local void @run_test() local_unnamed_addr uwtable { ; CHECK-NEXT: ldp x20, x19, [sp, #176] // 16-byte Folded Reload ; CHECK-NEXT: stp q10, q13, [x8, #64] ; CHECK-NEXT: stp q28, q18, [x8] -; CHECK-NEXT: ldr q18, [sp, #96] // 16-byte Folded Reload +; CHECK-NEXT: ldr q18, [sp, #96] // 16-byte Reload ; CHECK-NEXT: stp q29, q12, [x8, #96] ; CHECK-NEXT: ldp d13, d12, [sp, #128] // 16-byte Folded Reload ; CHECK-NEXT: stp q18, q15, [x8, #32] diff --git a/llvm/test/CodeGen/AArch64/rem.ll b/llvm/test/CodeGen/AArch64/rem.ll index 7477d33f9aa46..b557ba34107b7 100644 --- a/llvm/test/CodeGen/AArch64/rem.ll +++ b/llvm/test/CodeGen/AArch64/rem.ll @@ -630,51 +630,51 @@ define <32 x i8> @sv32i8(<32 x i8> %d, <32 x i8> %e) { ; CHECK-SD-NEXT: smov w12, v3.b[2] ; CHECK-SD-NEXT: smov w17, v3.b[3] ; CHECK-SD-NEXT: smov w16, v1.b[3] -; CHECK-SD-NEXT: str w8, [sp, #80] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w8, [sp, #80] // 4-byte Spill ; CHECK-SD-NEXT: sdiv w10, w9, w8 ; CHECK-SD-NEXT: smov w8, v2.b[0] -; CHECK-SD-NEXT: str w9, [sp, #88] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w9, [sp, #88] // 4-byte Spill ; CHECK-SD-NEXT: smov w9, v0.b[0] -; CHECK-SD-NEXT: ldr w30, [sp, #80] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w30, [sp, #80] // 4-byte Reload ; CHECK-SD-NEXT: smov w15, v3.b[4] ; CHECK-SD-NEXT: smov w14, v1.b[4] ; CHECK-SD-NEXT: smov w4, v3.b[5] ; CHECK-SD-NEXT: smov w1, v1.b[5] ; CHECK-SD-NEXT: smov w2, v3.b[6] ; CHECK-SD-NEXT: smov w18, v1.b[6] -; CHECK-SD-NEXT: str w8, [sp, #32] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w8, [sp, #32] // 4-byte Spill ; CHECK-SD-NEXT: smov w21, v3.b[9] ; CHECK-SD-NEXT: smov w20, v1.b[9] -; CHECK-SD-NEXT: str w9, [sp, #40] // 4-byte Folded Spill -; CHECK-SD-NEXT: ldr w29, [sp, #32] // 4-byte Folded Reload +; CHECK-SD-NEXT: str w9, [sp, #40] // 4-byte Spill +; CHECK-SD-NEXT: ldr w29, [sp, #32] // 4-byte Reload ; CHECK-SD-NEXT: sdiv w11, w9, w8 ; CHECK-SD-NEXT: smov w8, v2.b[2] ; CHECK-SD-NEXT: smov w9, v0.b[2] -; CHECK-SD-NEXT: str w10, [sp, #96] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w10, [sp, #96] // 4-byte Spill ; CHECK-SD-NEXT: stp w8, w9, [sp, #16] // 8-byte Folded Spill ; CHECK-SD-NEXT: sdiv w10, w9, w8 ; CHECK-SD-NEXT: smov w8, v2.b[3] ; CHECK-SD-NEXT: smov w9, v0.b[3] ; CHECK-SD-NEXT: stp w11, w8, [sp, #48] // 8-byte Folded Spill -; CHECK-SD-NEXT: str w10, [sp, #24] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w10, [sp, #24] // 4-byte Spill ; CHECK-SD-NEXT: sdiv w10, w9, w8 ; CHECK-SD-NEXT: smov w8, v2.b[4] -; CHECK-SD-NEXT: str w8, [sp, #28] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w8, [sp, #28] // 4-byte Spill ; CHECK-SD-NEXT: stp w9, w10, [sp, #56] // 8-byte Folded Spill ; CHECK-SD-NEXT: smov w9, v0.b[4] ; CHECK-SD-NEXT: sdiv w27, w0, w5 -; CHECK-SD-NEXT: str w9, [sp, #36] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w9, [sp, #36] // 4-byte Spill ; CHECK-SD-NEXT: sdiv w10, w9, w8 ; CHECK-SD-NEXT: smov w8, v2.b[5] ; CHECK-SD-NEXT: smov w9, v0.b[5] -; CHECK-SD-NEXT: str w8, [sp, #76] // 4-byte Folded Spill -; CHECK-SD-NEXT: str w9, [sp, #84] // 4-byte Folded Spill -; CHECK-SD-NEXT: str w10, [sp, #44] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w8, [sp, #76] // 4-byte Spill +; CHECK-SD-NEXT: str w9, [sp, #84] // 4-byte Spill +; CHECK-SD-NEXT: str w10, [sp, #44] // 4-byte Spill ; CHECK-SD-NEXT: sdiv w10, w9, w8 ; CHECK-SD-NEXT: smov w8, v2.b[6] ; CHECK-SD-NEXT: smov w9, v0.b[6] ; CHECK-SD-NEXT: stp w8, w9, [sp, #64] // 8-byte Folded Spill -; CHECK-SD-NEXT: str w10, [sp, #92] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w10, [sp, #92] // 4-byte Spill ; CHECK-SD-NEXT: sdiv w10, w9, w8 ; CHECK-SD-NEXT: smov w8, v2.b[7] ; CHECK-SD-NEXT: smov w9, v0.b[7] @@ -682,18 +682,18 @@ define <32 x i8> @sv32i8(<32 x i8> %d, <32 x i8> %e) { ; CHECK-SD-NEXT: sdiv w11, w9, w8 ; CHECK-SD-NEXT: smov w8, v2.b[8] ; CHECK-SD-NEXT: smov w9, v0.b[8] -; CHECK-SD-NEXT: str w10, [sp, #72] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w10, [sp, #72] // 4-byte Spill ; CHECK-SD-NEXT: stp w8, w9, [sp, #100] // 8-byte Folded Spill ; CHECK-SD-NEXT: sdiv w10, w9, w8 ; CHECK-SD-NEXT: smov w8, v2.b[9] ; CHECK-SD-NEXT: smov w9, v0.b[9] ; CHECK-SD-NEXT: stp w8, w9, [sp, #136] // 8-byte Folded Spill -; CHECK-SD-NEXT: str w10, [sp, #108] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w10, [sp, #108] // 4-byte Spill ; CHECK-SD-NEXT: sdiv w10, w9, w8 ; CHECK-SD-NEXT: smov w8, v2.b[10] ; CHECK-SD-NEXT: smov w9, v0.b[10] ; CHECK-SD-NEXT: stp w11, w8, [sp, #120] // 8-byte Folded Spill -; CHECK-SD-NEXT: str w10, [sp, #144] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w10, [sp, #144] // 4-byte Spill ; CHECK-SD-NEXT: sdiv w10, w9, w8 ; CHECK-SD-NEXT: smov w8, v2.b[11] ; CHECK-SD-NEXT: stp w9, w10, [sp, #128] // 8-byte Folded Spill @@ -703,45 +703,45 @@ define <32 x i8> @sv32i8(<32 x i8> %d, <32 x i8> %e) { ; CHECK-SD-NEXT: sdiv w11, w9, w8 ; CHECK-SD-NEXT: smov w8, v2.b[12] ; CHECK-SD-NEXT: smov w9, v0.b[12] -; CHECK-SD-NEXT: str w8, [sp, #152] // 4-byte Folded Spill -; CHECK-SD-NEXT: str w9, [sp, #160] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w8, [sp, #152] // 4-byte Spill +; CHECK-SD-NEXT: str w9, [sp, #160] // 4-byte Spill ; CHECK-SD-NEXT: sdiv w10, w9, w8 ; CHECK-SD-NEXT: smov w8, v2.b[13] ; CHECK-SD-NEXT: smov w9, v0.b[13] ; CHECK-SD-NEXT: stp w8, w9, [sp, #196] // 8-byte Folded Spill -; CHECK-SD-NEXT: str w10, [sp, #168] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w10, [sp, #168] // 4-byte Spill ; CHECK-SD-NEXT: sdiv w10, w9, w8 ; CHECK-SD-NEXT: smov w8, v2.b[14] ; CHECK-SD-NEXT: smov w9, v0.b[14] ; CHECK-SD-NEXT: stp w11, w8, [sp, #180] // 8-byte Folded Spill ; CHECK-SD-NEXT: smov w11, v1.b[2] -; CHECK-SD-NEXT: str w10, [sp, #204] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w10, [sp, #204] // 4-byte Spill ; CHECK-SD-NEXT: sdiv w10, w9, w8 ; CHECK-SD-NEXT: smov w8, v2.b[15] -; CHECK-SD-NEXT: str w8, [sp, #148] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w8, [sp, #148] // 4-byte Spill ; CHECK-SD-NEXT: stp w9, w10, [sp, #188] // 8-byte Folded Spill ; CHECK-SD-NEXT: smov w9, v0.b[15] ; CHECK-SD-NEXT: sdiv w22, w11, w12 -; CHECK-SD-NEXT: str w9, [sp, #156] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w9, [sp, #156] // 4-byte Spill ; CHECK-SD-NEXT: sdiv w10, w9, w8 -; CHECK-SD-NEXT: str w10, [sp, #164] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w10, [sp, #164] // 4-byte Spill ; CHECK-SD-NEXT: smov w10, v1.b[0] ; CHECK-SD-NEXT: sdiv w9, w7, w19 ; CHECK-SD-NEXT: sdiv w8, w3, w6 ; CHECK-SD-NEXT: sdiv w23, w10, w13 ; CHECK-SD-NEXT: stp w8, w9, [sp, #8] // 8-byte Folded Spill -; CHECK-SD-NEXT: ldr w8, [sp, #96] // 4-byte Folded Reload -; CHECK-SD-NEXT: ldr w9, [sp, #88] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w8, [sp, #96] // 4-byte Reload +; CHECK-SD-NEXT: ldr w9, [sp, #88] // 4-byte Reload ; CHECK-SD-NEXT: msub w9, w8, w30, w9 -; CHECK-SD-NEXT: ldr w8, [sp, #48] // 4-byte Folded Reload -; CHECK-SD-NEXT: ldr w30, [sp, #40] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w8, [sp, #48] // 4-byte Reload +; CHECK-SD-NEXT: ldr w30, [sp, #40] // 4-byte Reload ; CHECK-SD-NEXT: msub w8, w8, w29, w30 ; CHECK-SD-NEXT: ldp x29, x30, [sp, #208] // 16-byte Folded Reload ; CHECK-SD-NEXT: fmov s0, w8 ; CHECK-SD-NEXT: msub w10, w23, w13, w10 ; CHECK-SD-NEXT: sdiv w24, w14, w15 ; CHECK-SD-NEXT: msub w13, w27, w5, w0 -; CHECK-SD-NEXT: ldr w5, [sp, #16] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w5, [sp, #16] // 4-byte Reload ; CHECK-SD-NEXT: mov v0.b[1], w9 ; CHECK-SD-NEXT: msub w9, w22, w12, w11 ; CHECK-SD-NEXT: smov w11, v1.b[10] @@ -749,34 +749,34 @@ define <32 x i8> @sv32i8(<32 x i8> %d, <32 x i8> %e) { ; CHECK-SD-NEXT: ldp w10, w8, [sp, #20] // 8-byte Folded Reload ; CHECK-SD-NEXT: mov v2.b[1], w13 ; CHECK-SD-NEXT: msub w8, w8, w5, w10 -; CHECK-SD-NEXT: ldr w5, [sp, #52] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w5, [sp, #52] // 4-byte Reload ; CHECK-SD-NEXT: smov w10, v3.b[10] ; CHECK-SD-NEXT: sdiv w28, w1, w4 ; CHECK-SD-NEXT: ldp w13, w12, [sp, #56] // 8-byte Folded Reload ; CHECK-SD-NEXT: mov v2.b[2], w9 ; CHECK-SD-NEXT: mov v0.b[2], w8 ; CHECK-SD-NEXT: msub w8, w25, w17, w16 -; CHECK-SD-NEXT: ldr w17, [sp, #28] // 4-byte Folded Reload -; CHECK-SD-NEXT: ldr w16, [sp, #36] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w17, [sp, #28] // 4-byte Reload +; CHECK-SD-NEXT: ldr w16, [sp, #36] // 4-byte Reload ; CHECK-SD-NEXT: msub w12, w12, w5, w13 -; CHECK-SD-NEXT: ldr w13, [sp, #44] // 4-byte Folded Reload -; CHECK-SD-NEXT: ldr w5, [sp, #136] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w13, [sp, #44] // 4-byte Reload +; CHECK-SD-NEXT: ldr w5, [sp, #136] // 4-byte Reload ; CHECK-SD-NEXT: mov v2.b[3], w8 ; CHECK-SD-NEXT: msub w8, w24, w15, w14 -; CHECK-SD-NEXT: ldr w15, [sp, #92] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w15, [sp, #92] // 4-byte Reload ; CHECK-SD-NEXT: mov v0.b[3], w12 ; CHECK-SD-NEXT: msub w13, w13, w17, w16 -; CHECK-SD-NEXT: ldr w17, [sp, #76] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w17, [sp, #76] // 4-byte Reload ; CHECK-SD-NEXT: sdiv w26, w18, w2 -; CHECK-SD-NEXT: ldr w16, [sp, #84] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w16, [sp, #84] // 4-byte Reload ; CHECK-SD-NEXT: smov w12, v3.b[11] ; CHECK-SD-NEXT: msub w15, w15, w17, w16 ; CHECK-SD-NEXT: smov w14, v1.b[11] ; CHECK-SD-NEXT: mov v2.b[4], w8 ; CHECK-SD-NEXT: msub w8, w28, w4, w1 -; CHECK-SD-NEXT: ldr w1, [sp, #64] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w1, [sp, #64] // 4-byte Reload ; CHECK-SD-NEXT: mov v0.b[4], w13 -; CHECK-SD-NEXT: ldr w4, [sp, #100] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w4, [sp, #100] // 4-byte Reload ; CHECK-SD-NEXT: ldp w17, w16, [sp, #68] // 8-byte Folded Reload ; CHECK-SD-NEXT: ldp x24, x23, [sp, #256] // 16-byte Folded Reload ; CHECK-SD-NEXT: mov v2.b[5], w8 @@ -785,13 +785,13 @@ define <32 x i8> @sv32i8(<32 x i8> %d, <32 x i8> %e) { ; CHECK-SD-NEXT: msub w16, w16, w1, w17 ; CHECK-SD-NEXT: smov w15, v3.b[12] ; CHECK-SD-NEXT: msub w8, w26, w2, w18 -; CHECK-SD-NEXT: ldr w2, [sp, #112] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w2, [sp, #112] // 4-byte Reload ; CHECK-SD-NEXT: sdiv w0, w20, w21 ; CHECK-SD-NEXT: ldp w1, w18, [sp, #116] // 8-byte Folded Reload ; CHECK-SD-NEXT: smov w17, v1.b[12] ; CHECK-SD-NEXT: ldp x26, x25, [sp, #240] // 16-byte Folded Reload ; CHECK-SD-NEXT: mov v2.b[6], w8 -; CHECK-SD-NEXT: ldr w8, [sp, #12] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w8, [sp, #12] // 4-byte Reload ; CHECK-SD-NEXT: mov v0.b[6], w16 ; CHECK-SD-NEXT: msub w18, w18, w2, w1 ; CHECK-SD-NEXT: msub w8, w8, w19, w7 @@ -799,7 +799,7 @@ define <32 x i8> @sv32i8(<32 x i8> %d, <32 x i8> %e) { ; CHECK-SD-NEXT: mov v0.b[7], w18 ; CHECK-SD-NEXT: smov w18, v3.b[13] ; CHECK-SD-NEXT: mov v2.b[7], w8 -; CHECK-SD-NEXT: ldr w8, [sp, #8] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w8, [sp, #8] // 4-byte Reload ; CHECK-SD-NEXT: sdiv w9, w11, w10 ; CHECK-SD-NEXT: msub w1, w1, w4, w2 ; CHECK-SD-NEXT: smov w2, v1.b[13] @@ -809,7 +809,7 @@ define <32 x i8> @sv32i8(<32 x i8> %d, <32 x i8> %e) { ; CHECK-SD-NEXT: mov v2.b[8], w8 ; CHECK-SD-NEXT: msub w8, w0, w21, w20 ; CHECK-SD-NEXT: msub w3, w3, w5, w4 -; CHECK-SD-NEXT: ldr w5, [sp, #124] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w5, [sp, #124] // 4-byte Reload ; CHECK-SD-NEXT: ldp w4, w1, [sp, #128] // 8-byte Folded Reload ; CHECK-SD-NEXT: sdiv w13, w14, w12 ; CHECK-SD-NEXT: ldp x20, x19, [sp, #288] // 16-byte Folded Reload @@ -817,19 +817,19 @@ define <32 x i8> @sv32i8(<32 x i8> %d, <32 x i8> %e) { ; CHECK-SD-NEXT: mov v0.b[9], w3 ; CHECK-SD-NEXT: msub w8, w9, w10, w11 ; CHECK-SD-NEXT: msub w1, w1, w5, w4 -; CHECK-SD-NEXT: ldr w4, [sp, #172] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w4, [sp, #172] // 4-byte Reload ; CHECK-SD-NEXT: smov w9, v3.b[14] ; CHECK-SD-NEXT: ldp w3, w11, [sp, #176] // 8-byte Folded Reload ; CHECK-SD-NEXT: smov w10, v1.b[14] ; CHECK-SD-NEXT: ldp x22, x21, [sp, #272] // 16-byte Folded Reload ; CHECK-SD-NEXT: mov v2.b[10], w8 ; CHECK-SD-NEXT: mov v0.b[10], w1 -; CHECK-SD-NEXT: ldr w1, [sp, #152] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w1, [sp, #152] // 4-byte Reload ; CHECK-SD-NEXT: msub w11, w11, w4, w3 ; CHECK-SD-NEXT: sdiv w16, w17, w15 ; CHECK-SD-NEXT: msub w8, w13, w12, w14 -; CHECK-SD-NEXT: ldr w13, [sp, #168] // 4-byte Folded Reload -; CHECK-SD-NEXT: ldr w14, [sp, #160] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w13, [sp, #168] // 4-byte Reload +; CHECK-SD-NEXT: ldr w14, [sp, #160] // 4-byte Reload ; CHECK-SD-NEXT: mov v0.b[11], w11 ; CHECK-SD-NEXT: smov w11, v3.b[15] ; CHECK-SD-NEXT: msub w13, w13, w1, w14 @@ -838,7 +838,7 @@ define <32 x i8> @sv32i8(<32 x i8> %d, <32 x i8> %e) { ; CHECK-SD-NEXT: mov v0.b[12], w13 ; CHECK-SD-NEXT: sdiv w0, w2, w18 ; CHECK-SD-NEXT: msub w8, w16, w15, w17 -; CHECK-SD-NEXT: ldr w17, [sp, #196] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w17, [sp, #196] // 4-byte Reload ; CHECK-SD-NEXT: ldp w16, w15, [sp, #200] // 8-byte Folded Reload ; CHECK-SD-NEXT: mov v2.b[12], w8 ; CHECK-SD-NEXT: msub w15, w15, w17, w16 @@ -846,15 +846,15 @@ define <32 x i8> @sv32i8(<32 x i8> %d, <32 x i8> %e) { ; CHECK-SD-NEXT: mov v0.b[13], w15 ; CHECK-SD-NEXT: sdiv w12, w10, w9 ; CHECK-SD-NEXT: msub w8, w0, w18, w2 -; CHECK-SD-NEXT: ldr w18, [sp, #184] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w18, [sp, #184] // 4-byte Reload ; CHECK-SD-NEXT: msub w16, w16, w18, w17 ; CHECK-SD-NEXT: mov v2.b[13], w8 ; CHECK-SD-NEXT: mov v0.b[14], w16 ; CHECK-SD-NEXT: sdiv w13, w14, w11 ; CHECK-SD-NEXT: msub w8, w12, w9, w10 -; CHECK-SD-NEXT: ldr w9, [sp, #164] // 4-byte Folded Reload -; CHECK-SD-NEXT: ldr w12, [sp, #148] // 4-byte Folded Reload -; CHECK-SD-NEXT: ldr w10, [sp, #156] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w9, [sp, #164] // 4-byte Reload +; CHECK-SD-NEXT: ldr w12, [sp, #148] // 4-byte Reload +; CHECK-SD-NEXT: ldr w10, [sp, #156] // 4-byte Reload ; CHECK-SD-NEXT: mov v2.b[14], w8 ; CHECK-SD-NEXT: msub w9, w9, w12, w10 ; CHECK-SD-NEXT: mov v0.b[15], w9 @@ -927,8 +927,8 @@ define <32 x i8> @sv32i8(<32 x i8> %d, <32 x i8> %e) { ; CHECK-GI-NEXT: mov v20.s[2], w9 ; CHECK-GI-NEXT: sdiv w13, w12, w13 ; CHECK-GI-NEXT: mov w12, v4.s[1] -; CHECK-GI-NEXT: str w8, [sp, #12] // 4-byte Folded Spill -; CHECK-GI-NEXT: ldr w11, [sp, #12] // 4-byte Folded Reload +; CHECK-GI-NEXT: str w8, [sp, #12] // 4-byte Spill +; CHECK-GI-NEXT: ldr w11, [sp, #12] // 4-byte Reload ; CHECK-GI-NEXT: mov v20.s[3], w11 ; CHECK-GI-NEXT: sdiv w15, w12, w14 ; CHECK-GI-NEXT: mov w12, v4.s[2] @@ -1552,51 +1552,51 @@ define <32 x i8> @uv32i8(<32 x i8> %d, <32 x i8> %e) { ; CHECK-SD-NEXT: umov w12, v3.b[2] ; CHECK-SD-NEXT: umov w17, v3.b[3] ; CHECK-SD-NEXT: umov w16, v1.b[3] -; CHECK-SD-NEXT: str w8, [sp, #80] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w8, [sp, #80] // 4-byte Spill ; CHECK-SD-NEXT: udiv w10, w9, w8 ; CHECK-SD-NEXT: umov w8, v2.b[0] -; CHECK-SD-NEXT: str w9, [sp, #88] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w9, [sp, #88] // 4-byte Spill ; CHECK-SD-NEXT: umov w9, v0.b[0] -; CHECK-SD-NEXT: ldr w30, [sp, #80] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w30, [sp, #80] // 4-byte Reload ; CHECK-SD-NEXT: umov w15, v3.b[4] ; CHECK-SD-NEXT: umov w14, v1.b[4] ; CHECK-SD-NEXT: umov w4, v3.b[5] ; CHECK-SD-NEXT: umov w1, v1.b[5] ; CHECK-SD-NEXT: umov w2, v3.b[6] ; CHECK-SD-NEXT: umov w18, v1.b[6] -; CHECK-SD-NEXT: str w8, [sp, #32] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w8, [sp, #32] // 4-byte Spill ; CHECK-SD-NEXT: umov w21, v3.b[9] ; CHECK-SD-NEXT: umov w20, v1.b[9] -; CHECK-SD-NEXT: str w9, [sp, #40] // 4-byte Folded Spill -; CHECK-SD-NEXT: ldr w29, [sp, #32] // 4-byte Folded Reload +; CHECK-SD-NEXT: str w9, [sp, #40] // 4-byte Spill +; CHECK-SD-NEXT: ldr w29, [sp, #32] // 4-byte Reload ; CHECK-SD-NEXT: udiv w11, w9, w8 ; CHECK-SD-NEXT: umov w8, v2.b[2] ; CHECK-SD-NEXT: umov w9, v0.b[2] -; CHECK-SD-NEXT: str w10, [sp, #96] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w10, [sp, #96] // 4-byte Spill ; CHECK-SD-NEXT: stp w8, w9, [sp, #16] // 8-byte Folded Spill ; CHECK-SD-NEXT: udiv w10, w9, w8 ; CHECK-SD-NEXT: umov w8, v2.b[3] ; CHECK-SD-NEXT: umov w9, v0.b[3] ; CHECK-SD-NEXT: stp w11, w8, [sp, #48] // 8-byte Folded Spill -; CHECK-SD-NEXT: str w10, [sp, #24] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w10, [sp, #24] // 4-byte Spill ; CHECK-SD-NEXT: udiv w10, w9, w8 ; CHECK-SD-NEXT: umov w8, v2.b[4] -; CHECK-SD-NEXT: str w8, [sp, #28] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w8, [sp, #28] // 4-byte Spill ; CHECK-SD-NEXT: stp w9, w10, [sp, #56] // 8-byte Folded Spill ; CHECK-SD-NEXT: umov w9, v0.b[4] ; CHECK-SD-NEXT: udiv w27, w0, w5 -; CHECK-SD-NEXT: str w9, [sp, #36] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w9, [sp, #36] // 4-byte Spill ; CHECK-SD-NEXT: udiv w10, w9, w8 ; CHECK-SD-NEXT: umov w8, v2.b[5] ; CHECK-SD-NEXT: umov w9, v0.b[5] -; CHECK-SD-NEXT: str w8, [sp, #76] // 4-byte Folded Spill -; CHECK-SD-NEXT: str w9, [sp, #84] // 4-byte Folded Spill -; CHECK-SD-NEXT: str w10, [sp, #44] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w8, [sp, #76] // 4-byte Spill +; CHECK-SD-NEXT: str w9, [sp, #84] // 4-byte Spill +; CHECK-SD-NEXT: str w10, [sp, #44] // 4-byte Spill ; CHECK-SD-NEXT: udiv w10, w9, w8 ; CHECK-SD-NEXT: umov w8, v2.b[6] ; CHECK-SD-NEXT: umov w9, v0.b[6] ; CHECK-SD-NEXT: stp w8, w9, [sp, #64] // 8-byte Folded Spill -; CHECK-SD-NEXT: str w10, [sp, #92] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w10, [sp, #92] // 4-byte Spill ; CHECK-SD-NEXT: udiv w10, w9, w8 ; CHECK-SD-NEXT: umov w8, v2.b[7] ; CHECK-SD-NEXT: umov w9, v0.b[7] @@ -1604,18 +1604,18 @@ define <32 x i8> @uv32i8(<32 x i8> %d, <32 x i8> %e) { ; CHECK-SD-NEXT: udiv w11, w9, w8 ; CHECK-SD-NEXT: umov w8, v2.b[8] ; CHECK-SD-NEXT: umov w9, v0.b[8] -; CHECK-SD-NEXT: str w10, [sp, #72] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w10, [sp, #72] // 4-byte Spill ; CHECK-SD-NEXT: stp w8, w9, [sp, #100] // 8-byte Folded Spill ; CHECK-SD-NEXT: udiv w10, w9, w8 ; CHECK-SD-NEXT: umov w8, v2.b[9] ; CHECK-SD-NEXT: umov w9, v0.b[9] ; CHECK-SD-NEXT: stp w8, w9, [sp, #136] // 8-byte Folded Spill -; CHECK-SD-NEXT: str w10, [sp, #108] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w10, [sp, #108] // 4-byte Spill ; CHECK-SD-NEXT: udiv w10, w9, w8 ; CHECK-SD-NEXT: umov w8, v2.b[10] ; CHECK-SD-NEXT: umov w9, v0.b[10] ; CHECK-SD-NEXT: stp w11, w8, [sp, #120] // 8-byte Folded Spill -; CHECK-SD-NEXT: str w10, [sp, #144] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w10, [sp, #144] // 4-byte Spill ; CHECK-SD-NEXT: udiv w10, w9, w8 ; CHECK-SD-NEXT: umov w8, v2.b[11] ; CHECK-SD-NEXT: stp w9, w10, [sp, #128] // 8-byte Folded Spill @@ -1625,45 +1625,45 @@ define <32 x i8> @uv32i8(<32 x i8> %d, <32 x i8> %e) { ; CHECK-SD-NEXT: udiv w11, w9, w8 ; CHECK-SD-NEXT: umov w8, v2.b[12] ; CHECK-SD-NEXT: umov w9, v0.b[12] -; CHECK-SD-NEXT: str w8, [sp, #152] // 4-byte Folded Spill -; CHECK-SD-NEXT: str w9, [sp, #160] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w8, [sp, #152] // 4-byte Spill +; CHECK-SD-NEXT: str w9, [sp, #160] // 4-byte Spill ; CHECK-SD-NEXT: udiv w10, w9, w8 ; CHECK-SD-NEXT: umov w8, v2.b[13] ; CHECK-SD-NEXT: umov w9, v0.b[13] ; CHECK-SD-NEXT: stp w8, w9, [sp, #196] // 8-byte Folded Spill -; CHECK-SD-NEXT: str w10, [sp, #168] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w10, [sp, #168] // 4-byte Spill ; CHECK-SD-NEXT: udiv w10, w9, w8 ; CHECK-SD-NEXT: umov w8, v2.b[14] ; CHECK-SD-NEXT: umov w9, v0.b[14] ; CHECK-SD-NEXT: stp w11, w8, [sp, #180] // 8-byte Folded Spill ; CHECK-SD-NEXT: umov w11, v1.b[2] -; CHECK-SD-NEXT: str w10, [sp, #204] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w10, [sp, #204] // 4-byte Spill ; CHECK-SD-NEXT: udiv w10, w9, w8 ; CHECK-SD-NEXT: umov w8, v2.b[15] -; CHECK-SD-NEXT: str w8, [sp, #148] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w8, [sp, #148] // 4-byte Spill ; CHECK-SD-NEXT: stp w9, w10, [sp, #188] // 8-byte Folded Spill ; CHECK-SD-NEXT: umov w9, v0.b[15] ; CHECK-SD-NEXT: udiv w22, w11, w12 -; CHECK-SD-NEXT: str w9, [sp, #156] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w9, [sp, #156] // 4-byte Spill ; CHECK-SD-NEXT: udiv w10, w9, w8 -; CHECK-SD-NEXT: str w10, [sp, #164] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w10, [sp, #164] // 4-byte Spill ; CHECK-SD-NEXT: umov w10, v1.b[0] ; CHECK-SD-NEXT: udiv w9, w7, w19 ; CHECK-SD-NEXT: udiv w8, w3, w6 ; CHECK-SD-NEXT: udiv w23, w10, w13 ; CHECK-SD-NEXT: stp w8, w9, [sp, #8] // 8-byte Folded Spill -; CHECK-SD-NEXT: ldr w8, [sp, #96] // 4-byte Folded Reload -; CHECK-SD-NEXT: ldr w9, [sp, #88] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w8, [sp, #96] // 4-byte Reload +; CHECK-SD-NEXT: ldr w9, [sp, #88] // 4-byte Reload ; CHECK-SD-NEXT: msub w9, w8, w30, w9 -; CHECK-SD-NEXT: ldr w8, [sp, #48] // 4-byte Folded Reload -; CHECK-SD-NEXT: ldr w30, [sp, #40] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w8, [sp, #48] // 4-byte Reload +; CHECK-SD-NEXT: ldr w30, [sp, #40] // 4-byte Reload ; CHECK-SD-NEXT: msub w8, w8, w29, w30 ; CHECK-SD-NEXT: ldp x29, x30, [sp, #208] // 16-byte Folded Reload ; CHECK-SD-NEXT: fmov s0, w8 ; CHECK-SD-NEXT: msub w10, w23, w13, w10 ; CHECK-SD-NEXT: udiv w24, w14, w15 ; CHECK-SD-NEXT: msub w13, w27, w5, w0 -; CHECK-SD-NEXT: ldr w5, [sp, #16] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w5, [sp, #16] // 4-byte Reload ; CHECK-SD-NEXT: mov v0.b[1], w9 ; CHECK-SD-NEXT: msub w9, w22, w12, w11 ; CHECK-SD-NEXT: umov w11, v1.b[10] @@ -1671,34 +1671,34 @@ define <32 x i8> @uv32i8(<32 x i8> %d, <32 x i8> %e) { ; CHECK-SD-NEXT: ldp w10, w8, [sp, #20] // 8-byte Folded Reload ; CHECK-SD-NEXT: mov v2.b[1], w13 ; CHECK-SD-NEXT: msub w8, w8, w5, w10 -; CHECK-SD-NEXT: ldr w5, [sp, #52] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w5, [sp, #52] // 4-byte Reload ; CHECK-SD-NEXT: umov w10, v3.b[10] ; CHECK-SD-NEXT: udiv w28, w1, w4 ; CHECK-SD-NEXT: ldp w13, w12, [sp, #56] // 8-byte Folded Reload ; CHECK-SD-NEXT: mov v2.b[2], w9 ; CHECK-SD-NEXT: mov v0.b[2], w8 ; CHECK-SD-NEXT: msub w8, w25, w17, w16 -; CHECK-SD-NEXT: ldr w17, [sp, #28] // 4-byte Folded Reload -; CHECK-SD-NEXT: ldr w16, [sp, #36] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w17, [sp, #28] // 4-byte Reload +; CHECK-SD-NEXT: ldr w16, [sp, #36] // 4-byte Reload ; CHECK-SD-NEXT: msub w12, w12, w5, w13 -; CHECK-SD-NEXT: ldr w13, [sp, #44] // 4-byte Folded Reload -; CHECK-SD-NEXT: ldr w5, [sp, #136] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w13, [sp, #44] // 4-byte Reload +; CHECK-SD-NEXT: ldr w5, [sp, #136] // 4-byte Reload ; CHECK-SD-NEXT: mov v2.b[3], w8 ; CHECK-SD-NEXT: msub w8, w24, w15, w14 -; CHECK-SD-NEXT: ldr w15, [sp, #92] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w15, [sp, #92] // 4-byte Reload ; CHECK-SD-NEXT: mov v0.b[3], w12 ; CHECK-SD-NEXT: msub w13, w13, w17, w16 -; CHECK-SD-NEXT: ldr w17, [sp, #76] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w17, [sp, #76] // 4-byte Reload ; CHECK-SD-NEXT: udiv w26, w18, w2 -; CHECK-SD-NEXT: ldr w16, [sp, #84] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w16, [sp, #84] // 4-byte Reload ; CHECK-SD-NEXT: umov w12, v3.b[11] ; CHECK-SD-NEXT: msub w15, w15, w17, w16 ; CHECK-SD-NEXT: umov w14, v1.b[11] ; CHECK-SD-NEXT: mov v2.b[4], w8 ; CHECK-SD-NEXT: msub w8, w28, w4, w1 -; CHECK-SD-NEXT: ldr w1, [sp, #64] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w1, [sp, #64] // 4-byte Reload ; CHECK-SD-NEXT: mov v0.b[4], w13 -; CHECK-SD-NEXT: ldr w4, [sp, #100] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w4, [sp, #100] // 4-byte Reload ; CHECK-SD-NEXT: ldp w17, w16, [sp, #68] // 8-byte Folded Reload ; CHECK-SD-NEXT: ldp x24, x23, [sp, #256] // 16-byte Folded Reload ; CHECK-SD-NEXT: mov v2.b[5], w8 @@ -1707,13 +1707,13 @@ define <32 x i8> @uv32i8(<32 x i8> %d, <32 x i8> %e) { ; CHECK-SD-NEXT: msub w16, w16, w1, w17 ; CHECK-SD-NEXT: umov w15, v3.b[12] ; CHECK-SD-NEXT: msub w8, w26, w2, w18 -; CHECK-SD-NEXT: ldr w2, [sp, #112] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w2, [sp, #112] // 4-byte Reload ; CHECK-SD-NEXT: udiv w0, w20, w21 ; CHECK-SD-NEXT: ldp w1, w18, [sp, #116] // 8-byte Folded Reload ; CHECK-SD-NEXT: umov w17, v1.b[12] ; CHECK-SD-NEXT: ldp x26, x25, [sp, #240] // 16-byte Folded Reload ; CHECK-SD-NEXT: mov v2.b[6], w8 -; CHECK-SD-NEXT: ldr w8, [sp, #12] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w8, [sp, #12] // 4-byte Reload ; CHECK-SD-NEXT: mov v0.b[6], w16 ; CHECK-SD-NEXT: msub w18, w18, w2, w1 ; CHECK-SD-NEXT: msub w8, w8, w19, w7 @@ -1721,7 +1721,7 @@ define <32 x i8> @uv32i8(<32 x i8> %d, <32 x i8> %e) { ; CHECK-SD-NEXT: mov v0.b[7], w18 ; CHECK-SD-NEXT: umov w18, v3.b[13] ; CHECK-SD-NEXT: mov v2.b[7], w8 -; CHECK-SD-NEXT: ldr w8, [sp, #8] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w8, [sp, #8] // 4-byte Reload ; CHECK-SD-NEXT: udiv w9, w11, w10 ; CHECK-SD-NEXT: msub w1, w1, w4, w2 ; CHECK-SD-NEXT: umov w2, v1.b[13] @@ -1731,7 +1731,7 @@ define <32 x i8> @uv32i8(<32 x i8> %d, <32 x i8> %e) { ; CHECK-SD-NEXT: mov v2.b[8], w8 ; CHECK-SD-NEXT: msub w8, w0, w21, w20 ; CHECK-SD-NEXT: msub w3, w3, w5, w4 -; CHECK-SD-NEXT: ldr w5, [sp, #124] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w5, [sp, #124] // 4-byte Reload ; CHECK-SD-NEXT: ldp w4, w1, [sp, #128] // 8-byte Folded Reload ; CHECK-SD-NEXT: udiv w13, w14, w12 ; CHECK-SD-NEXT: ldp x20, x19, [sp, #288] // 16-byte Folded Reload @@ -1739,19 +1739,19 @@ define <32 x i8> @uv32i8(<32 x i8> %d, <32 x i8> %e) { ; CHECK-SD-NEXT: mov v0.b[9], w3 ; CHECK-SD-NEXT: msub w8, w9, w10, w11 ; CHECK-SD-NEXT: msub w1, w1, w5, w4 -; CHECK-SD-NEXT: ldr w4, [sp, #172] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w4, [sp, #172] // 4-byte Reload ; CHECK-SD-NEXT: umov w9, v3.b[14] ; CHECK-SD-NEXT: ldp w3, w11, [sp, #176] // 8-byte Folded Reload ; CHECK-SD-NEXT: umov w10, v1.b[14] ; CHECK-SD-NEXT: ldp x22, x21, [sp, #272] // 16-byte Folded Reload ; CHECK-SD-NEXT: mov v2.b[10], w8 ; CHECK-SD-NEXT: mov v0.b[10], w1 -; CHECK-SD-NEXT: ldr w1, [sp, #152] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w1, [sp, #152] // 4-byte Reload ; CHECK-SD-NEXT: msub w11, w11, w4, w3 ; CHECK-SD-NEXT: udiv w16, w17, w15 ; CHECK-SD-NEXT: msub w8, w13, w12, w14 -; CHECK-SD-NEXT: ldr w13, [sp, #168] // 4-byte Folded Reload -; CHECK-SD-NEXT: ldr w14, [sp, #160] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w13, [sp, #168] // 4-byte Reload +; CHECK-SD-NEXT: ldr w14, [sp, #160] // 4-byte Reload ; CHECK-SD-NEXT: mov v0.b[11], w11 ; CHECK-SD-NEXT: umov w11, v3.b[15] ; CHECK-SD-NEXT: msub w13, w13, w1, w14 @@ -1760,7 +1760,7 @@ define <32 x i8> @uv32i8(<32 x i8> %d, <32 x i8> %e) { ; CHECK-SD-NEXT: mov v0.b[12], w13 ; CHECK-SD-NEXT: udiv w0, w2, w18 ; CHECK-SD-NEXT: msub w8, w16, w15, w17 -; CHECK-SD-NEXT: ldr w17, [sp, #196] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w17, [sp, #196] // 4-byte Reload ; CHECK-SD-NEXT: ldp w16, w15, [sp, #200] // 8-byte Folded Reload ; CHECK-SD-NEXT: mov v2.b[12], w8 ; CHECK-SD-NEXT: msub w15, w15, w17, w16 @@ -1768,15 +1768,15 @@ define <32 x i8> @uv32i8(<32 x i8> %d, <32 x i8> %e) { ; CHECK-SD-NEXT: mov v0.b[13], w15 ; CHECK-SD-NEXT: udiv w12, w10, w9 ; CHECK-SD-NEXT: msub w8, w0, w18, w2 -; CHECK-SD-NEXT: ldr w18, [sp, #184] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w18, [sp, #184] // 4-byte Reload ; CHECK-SD-NEXT: msub w16, w16, w18, w17 ; CHECK-SD-NEXT: mov v2.b[13], w8 ; CHECK-SD-NEXT: mov v0.b[14], w16 ; CHECK-SD-NEXT: udiv w13, w14, w11 ; CHECK-SD-NEXT: msub w8, w12, w9, w10 -; CHECK-SD-NEXT: ldr w9, [sp, #164] // 4-byte Folded Reload -; CHECK-SD-NEXT: ldr w12, [sp, #148] // 4-byte Folded Reload -; CHECK-SD-NEXT: ldr w10, [sp, #156] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w9, [sp, #164] // 4-byte Reload +; CHECK-SD-NEXT: ldr w12, [sp, #148] // 4-byte Reload +; CHECK-SD-NEXT: ldr w10, [sp, #156] // 4-byte Reload ; CHECK-SD-NEXT: mov v2.b[14], w8 ; CHECK-SD-NEXT: msub w9, w9, w12, w10 ; CHECK-SD-NEXT: mov v0.b[15], w9 @@ -1849,8 +1849,8 @@ define <32 x i8> @uv32i8(<32 x i8> %d, <32 x i8> %e) { ; CHECK-GI-NEXT: mov v20.s[2], w9 ; CHECK-GI-NEXT: udiv w13, w12, w13 ; CHECK-GI-NEXT: mov w12, v4.s[1] -; CHECK-GI-NEXT: str w8, [sp, #12] // 4-byte Folded Spill -; CHECK-GI-NEXT: ldr w11, [sp, #12] // 4-byte Folded Reload +; CHECK-GI-NEXT: str w8, [sp, #12] // 4-byte Spill +; CHECK-GI-NEXT: ldr w11, [sp, #12] // 4-byte Reload ; CHECK-GI-NEXT: mov v20.s[3], w11 ; CHECK-GI-NEXT: udiv w15, w12, w14 ; CHECK-GI-NEXT: mov w12, v4.s[2] @@ -2280,40 +2280,40 @@ define <16 x i16> @sv16i16(<16 x i16> %d, <16 x i16> %e) { ; CHECK-SD-NEXT: smov w0, v2.h[4] ; CHECK-SD-NEXT: smov w5, v0.h[4] ; CHECK-SD-NEXT: smov w2, v2.h[7] -; CHECK-SD-NEXT: str w8, [sp, #52] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w8, [sp, #52] // 4-byte Spill ; CHECK-SD-NEXT: smov w6, v0.h[7] ; CHECK-SD-NEXT: smov w27, v3.h[0] -; CHECK-SD-NEXT: str w9, [sp, #44] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w9, [sp, #44] // 4-byte Spill ; CHECK-SD-NEXT: sdiv w9, w9, w8 ; CHECK-SD-NEXT: smov w28, v1.h[0] ; CHECK-SD-NEXT: smov w24, v3.h[1] ; CHECK-SD-NEXT: smov w25, v1.h[1] -; CHECK-SD-NEXT: ldr w21, [sp, #52] // 4-byte Folded Reload -; CHECK-SD-NEXT: ldr w23, [sp, #44] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w21, [sp, #52] // 4-byte Reload +; CHECK-SD-NEXT: ldr w23, [sp, #44] // 4-byte Reload ; CHECK-SD-NEXT: smov w30, v3.h[2] ; CHECK-SD-NEXT: smov w12, v3.h[3] ; CHECK-SD-NEXT: smov w11, v1.h[3] ; CHECK-SD-NEXT: smov w14, v3.h[5] ; CHECK-SD-NEXT: smov w13, v1.h[5] ; CHECK-SD-NEXT: sdiv w8, w22, w19 -; CHECK-SD-NEXT: str w9, [sp, #60] // 4-byte Folded Spill -; CHECK-SD-NEXT: ldr w20, [sp, #60] // 4-byte Folded Reload +; CHECK-SD-NEXT: str w9, [sp, #60] // 4-byte Spill +; CHECK-SD-NEXT: ldr w20, [sp, #60] // 4-byte Reload ; CHECK-SD-NEXT: msub w21, w20, w21, w23 ; CHECK-SD-NEXT: sdiv w9, w3, w1 -; CHECK-SD-NEXT: str w8, [sp, #12] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w8, [sp, #12] // 4-byte Spill ; CHECK-SD-NEXT: sdiv w8, w18, w7 ; CHECK-SD-NEXT: stp w9, w8, [sp, #24] // 8-byte Folded Spill ; CHECK-SD-NEXT: smov w8, v2.h[5] ; CHECK-SD-NEXT: smov w9, v0.h[5] ; CHECK-SD-NEXT: sdiv w10, w5, w0 -; CHECK-SD-NEXT: ldr w20, [sp, #24] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w20, [sp, #24] // 4-byte Reload ; CHECK-SD-NEXT: msub w1, w20, w1, w3 -; CHECK-SD-NEXT: str w9, [sp, #40] // 4-byte Folded Spill -; CHECK-SD-NEXT: str w8, [sp, #48] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w9, [sp, #40] // 4-byte Spill +; CHECK-SD-NEXT: str w8, [sp, #48] // 4-byte Spill ; CHECK-SD-NEXT: fmov s0, w1 -; CHECK-SD-NEXT: ldr w1, [sp, #12] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w1, [sp, #12] // 4-byte Reload ; CHECK-SD-NEXT: msub w1, w1, w19, w22 -; CHECK-SD-NEXT: ldr w19, [sp, #28] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w19, [sp, #28] // 4-byte Reload ; CHECK-SD-NEXT: sdiv w9, w9, w8 ; CHECK-SD-NEXT: smov w8, v2.h[6] ; CHECK-SD-NEXT: mov v0.h[1], w21 @@ -2321,10 +2321,10 @@ define <16 x i16> @sv16i16(<16 x i16> %d, <16 x i16> %e) { ; CHECK-SD-NEXT: ldp x20, x19, [sp, #144] // 16-byte Folded Reload ; CHECK-SD-NEXT: ldp x22, x21, [sp, #128] // 16-byte Folded Reload ; CHECK-SD-NEXT: mov v0.h[2], w1 -; CHECK-SD-NEXT: str w9, [sp, #56] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w9, [sp, #56] // 4-byte Spill ; CHECK-SD-NEXT: sdiv w9, w4, w8 ; CHECK-SD-NEXT: mov v0.h[3], w18 -; CHECK-SD-NEXT: ldr w18, [sp, #40] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w18, [sp, #40] // 4-byte Reload ; CHECK-SD-NEXT: stp w8, w9, [sp, #32] // 8-byte Folded Spill ; CHECK-SD-NEXT: sdiv w8, w6, w2 ; CHECK-SD-NEXT: smov w9, v1.h[4] @@ -2348,8 +2348,8 @@ define <16 x i16> @sv16i16(<16 x i16> %d, <16 x i16> %e) { ; CHECK-SD-NEXT: mov v2.h[2], w8 ; CHECK-SD-NEXT: sdiv w16, w9, w10 ; CHECK-SD-NEXT: msub w8, w17, w12, w11 -; CHECK-SD-NEXT: ldr w12, [sp, #20] // 4-byte Folded Reload -; CHECK-SD-NEXT: ldr w17, [sp, #48] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w12, [sp, #20] // 4-byte Reload +; CHECK-SD-NEXT: ldr w17, [sp, #48] // 4-byte Reload ; CHECK-SD-NEXT: msub w12, w12, w0, w5 ; CHECK-SD-NEXT: mov v2.h[3], w8 ; CHECK-SD-NEXT: mov v0.h[4], w12 @@ -2357,7 +2357,7 @@ define <16 x i16> @sv16i16(<16 x i16> %d, <16 x i16> %e) { ; CHECK-SD-NEXT: msub w8, w16, w10, w9 ; CHECK-SD-NEXT: smov w9, v3.h[7] ; CHECK-SD-NEXT: smov w10, v1.h[7] -; CHECK-SD-NEXT: ldr w16, [sp, #56] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w16, [sp, #56] // 4-byte Reload ; CHECK-SD-NEXT: mov v2.h[4], w8 ; CHECK-SD-NEXT: msub w16, w16, w17, w18 ; CHECK-SD-NEXT: mov v0.h[5], w16 @@ -2370,7 +2370,7 @@ define <16 x i16> @sv16i16(<16 x i16> %d, <16 x i16> %e) { ; CHECK-SD-NEXT: mov v0.h[6], w13 ; CHECK-SD-NEXT: sdiv w12, w10, w9 ; CHECK-SD-NEXT: msub w8, w11, w15, w3 -; CHECK-SD-NEXT: ldr w11, [sp, #16] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w11, [sp, #16] // 4-byte Reload ; CHECK-SD-NEXT: msub w11, w11, w2, w6 ; CHECK-SD-NEXT: mov v2.h[6], w8 ; CHECK-SD-NEXT: mov v0.h[7], w11 @@ -2748,40 +2748,40 @@ define <16 x i16> @uv16i16(<16 x i16> %d, <16 x i16> %e) { ; CHECK-SD-NEXT: umov w0, v2.h[4] ; CHECK-SD-NEXT: umov w5, v0.h[4] ; CHECK-SD-NEXT: umov w2, v2.h[7] -; CHECK-SD-NEXT: str w8, [sp, #52] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w8, [sp, #52] // 4-byte Spill ; CHECK-SD-NEXT: umov w6, v0.h[7] ; CHECK-SD-NEXT: umov w27, v3.h[0] -; CHECK-SD-NEXT: str w9, [sp, #44] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w9, [sp, #44] // 4-byte Spill ; CHECK-SD-NEXT: udiv w9, w9, w8 ; CHECK-SD-NEXT: umov w28, v1.h[0] ; CHECK-SD-NEXT: umov w24, v3.h[1] ; CHECK-SD-NEXT: umov w25, v1.h[1] -; CHECK-SD-NEXT: ldr w21, [sp, #52] // 4-byte Folded Reload -; CHECK-SD-NEXT: ldr w23, [sp, #44] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w21, [sp, #52] // 4-byte Reload +; CHECK-SD-NEXT: ldr w23, [sp, #44] // 4-byte Reload ; CHECK-SD-NEXT: umov w30, v3.h[2] ; CHECK-SD-NEXT: umov w12, v3.h[3] ; CHECK-SD-NEXT: umov w11, v1.h[3] ; CHECK-SD-NEXT: umov w14, v3.h[5] ; CHECK-SD-NEXT: umov w13, v1.h[5] ; CHECK-SD-NEXT: udiv w8, w22, w19 -; CHECK-SD-NEXT: str w9, [sp, #60] // 4-byte Folded Spill -; CHECK-SD-NEXT: ldr w20, [sp, #60] // 4-byte Folded Reload +; CHECK-SD-NEXT: str w9, [sp, #60] // 4-byte Spill +; CHECK-SD-NEXT: ldr w20, [sp, #60] // 4-byte Reload ; CHECK-SD-NEXT: msub w21, w20, w21, w23 ; CHECK-SD-NEXT: udiv w9, w3, w1 -; CHECK-SD-NEXT: str w8, [sp, #12] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w8, [sp, #12] // 4-byte Spill ; CHECK-SD-NEXT: udiv w8, w18, w7 ; CHECK-SD-NEXT: stp w9, w8, [sp, #24] // 8-byte Folded Spill ; CHECK-SD-NEXT: umov w8, v2.h[5] ; CHECK-SD-NEXT: umov w9, v0.h[5] ; CHECK-SD-NEXT: udiv w10, w5, w0 -; CHECK-SD-NEXT: ldr w20, [sp, #24] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w20, [sp, #24] // 4-byte Reload ; CHECK-SD-NEXT: msub w1, w20, w1, w3 -; CHECK-SD-NEXT: str w9, [sp, #40] // 4-byte Folded Spill -; CHECK-SD-NEXT: str w8, [sp, #48] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w9, [sp, #40] // 4-byte Spill +; CHECK-SD-NEXT: str w8, [sp, #48] // 4-byte Spill ; CHECK-SD-NEXT: fmov s0, w1 -; CHECK-SD-NEXT: ldr w1, [sp, #12] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w1, [sp, #12] // 4-byte Reload ; CHECK-SD-NEXT: msub w1, w1, w19, w22 -; CHECK-SD-NEXT: ldr w19, [sp, #28] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w19, [sp, #28] // 4-byte Reload ; CHECK-SD-NEXT: udiv w9, w9, w8 ; CHECK-SD-NEXT: umov w8, v2.h[6] ; CHECK-SD-NEXT: mov v0.h[1], w21 @@ -2789,10 +2789,10 @@ define <16 x i16> @uv16i16(<16 x i16> %d, <16 x i16> %e) { ; CHECK-SD-NEXT: ldp x20, x19, [sp, #144] // 16-byte Folded Reload ; CHECK-SD-NEXT: ldp x22, x21, [sp, #128] // 16-byte Folded Reload ; CHECK-SD-NEXT: mov v0.h[2], w1 -; CHECK-SD-NEXT: str w9, [sp, #56] // 4-byte Folded Spill +; CHECK-SD-NEXT: str w9, [sp, #56] // 4-byte Spill ; CHECK-SD-NEXT: udiv w9, w4, w8 ; CHECK-SD-NEXT: mov v0.h[3], w18 -; CHECK-SD-NEXT: ldr w18, [sp, #40] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w18, [sp, #40] // 4-byte Reload ; CHECK-SD-NEXT: stp w8, w9, [sp, #32] // 8-byte Folded Spill ; CHECK-SD-NEXT: udiv w8, w6, w2 ; CHECK-SD-NEXT: umov w9, v1.h[4] @@ -2816,8 +2816,8 @@ define <16 x i16> @uv16i16(<16 x i16> %d, <16 x i16> %e) { ; CHECK-SD-NEXT: mov v2.h[2], w8 ; CHECK-SD-NEXT: udiv w16, w9, w10 ; CHECK-SD-NEXT: msub w8, w17, w12, w11 -; CHECK-SD-NEXT: ldr w12, [sp, #20] // 4-byte Folded Reload -; CHECK-SD-NEXT: ldr w17, [sp, #48] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w12, [sp, #20] // 4-byte Reload +; CHECK-SD-NEXT: ldr w17, [sp, #48] // 4-byte Reload ; CHECK-SD-NEXT: msub w12, w12, w0, w5 ; CHECK-SD-NEXT: mov v2.h[3], w8 ; CHECK-SD-NEXT: mov v0.h[4], w12 @@ -2825,7 +2825,7 @@ define <16 x i16> @uv16i16(<16 x i16> %d, <16 x i16> %e) { ; CHECK-SD-NEXT: msub w8, w16, w10, w9 ; CHECK-SD-NEXT: umov w9, v3.h[7] ; CHECK-SD-NEXT: umov w10, v1.h[7] -; CHECK-SD-NEXT: ldr w16, [sp, #56] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w16, [sp, #56] // 4-byte Reload ; CHECK-SD-NEXT: mov v2.h[4], w8 ; CHECK-SD-NEXT: msub w16, w16, w17, w18 ; CHECK-SD-NEXT: mov v0.h[5], w16 @@ -2838,7 +2838,7 @@ define <16 x i16> @uv16i16(<16 x i16> %d, <16 x i16> %e) { ; CHECK-SD-NEXT: mov v0.h[6], w13 ; CHECK-SD-NEXT: udiv w12, w10, w9 ; CHECK-SD-NEXT: msub w8, w11, w15, w3 -; CHECK-SD-NEXT: ldr w11, [sp, #16] // 4-byte Folded Reload +; CHECK-SD-NEXT: ldr w11, [sp, #16] // 4-byte Reload ; CHECK-SD-NEXT: msub w11, w11, w2, w6 ; CHECK-SD-NEXT: mov v2.h[6], w8 ; CHECK-SD-NEXT: mov v0.h[7], w11 @@ -3962,7 +3962,7 @@ define <4 x i128> @sv4i128(<4 x i128> %d, <4 x i128> %e) { ; CHECK-SD-NEXT: mov x22, x4 ; CHECK-SD-NEXT: ldp x27, x28, [sp, #160] ; CHECK-SD-NEXT: ldp x29, x19, [sp, #144] -; CHECK-SD-NEXT: str x8, [sp, #8] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x8, [sp, #8] // 8-byte Spill ; CHECK-SD-NEXT: bl __modti3 ; CHECK-SD-NEXT: mov x20, x0 ; CHECK-SD-NEXT: mov x25, x1 @@ -3980,7 +3980,7 @@ define <4 x i128> @sv4i128(<4 x i128> %d, <4 x i128> %e) { ; CHECK-SD-NEXT: bl __modti3 ; CHECK-SD-NEXT: mov x21, x0 ; CHECK-SD-NEXT: mov x22, x1 -; CHECK-SD-NEXT: ldr x2, [sp, #8] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x2, [sp, #8] // 8-byte Reload ; CHECK-SD-NEXT: ldp x0, x1, [sp, #16] // 16-byte Folded Reload ; CHECK-SD-NEXT: mov x3, x26 ; CHECK-SD-NEXT: bl __modti3 @@ -4033,7 +4033,7 @@ define <4 x i128> @sv4i128(<4 x i128> %d, <4 x i128> %e) { ; CHECK-GI-NEXT: ldp x24, x25, [sp, #144] ; CHECK-GI-NEXT: ldp x26, x27, [sp, #160] ; CHECK-GI-NEXT: stp x9, x6, [sp, #16] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x8, [sp, #8] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x8, [sp, #8] // 8-byte Spill ; CHECK-GI-NEXT: bl __modti3 ; CHECK-GI-NEXT: mov x28, x0 ; CHECK-GI-NEXT: mov x29, x1 @@ -4051,7 +4051,7 @@ define <4 x i128> @sv4i128(<4 x i128> %d, <4 x i128> %e) { ; CHECK-GI-NEXT: bl __modti3 ; CHECK-GI-NEXT: mov x21, x0 ; CHECK-GI-NEXT: ldp x2, x0, [sp, #16] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x3, [sp, #8] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x3, [sp, #8] // 8-byte Reload ; CHECK-GI-NEXT: mov x22, x1 ; CHECK-GI-NEXT: mov x1, x23 ; CHECK-GI-NEXT: bl __modti3 @@ -4308,7 +4308,7 @@ define <4 x i128> @uv4i128(<4 x i128> %d, <4 x i128> %e) { ; CHECK-SD-NEXT: mov x22, x4 ; CHECK-SD-NEXT: ldp x27, x28, [sp, #160] ; CHECK-SD-NEXT: ldp x29, x19, [sp, #144] -; CHECK-SD-NEXT: str x8, [sp, #8] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x8, [sp, #8] // 8-byte Spill ; CHECK-SD-NEXT: bl __umodti3 ; CHECK-SD-NEXT: mov x20, x0 ; CHECK-SD-NEXT: mov x25, x1 @@ -4326,7 +4326,7 @@ define <4 x i128> @uv4i128(<4 x i128> %d, <4 x i128> %e) { ; CHECK-SD-NEXT: bl __umodti3 ; CHECK-SD-NEXT: mov x21, x0 ; CHECK-SD-NEXT: mov x22, x1 -; CHECK-SD-NEXT: ldr x2, [sp, #8] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr x2, [sp, #8] // 8-byte Reload ; CHECK-SD-NEXT: ldp x0, x1, [sp, #16] // 16-byte Folded Reload ; CHECK-SD-NEXT: mov x3, x26 ; CHECK-SD-NEXT: bl __umodti3 @@ -4379,7 +4379,7 @@ define <4 x i128> @uv4i128(<4 x i128> %d, <4 x i128> %e) { ; CHECK-GI-NEXT: ldp x24, x25, [sp, #144] ; CHECK-GI-NEXT: ldp x26, x27, [sp, #160] ; CHECK-GI-NEXT: stp x9, x6, [sp, #16] // 16-byte Folded Spill -; CHECK-GI-NEXT: str x8, [sp, #8] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x8, [sp, #8] // 8-byte Spill ; CHECK-GI-NEXT: bl __umodti3 ; CHECK-GI-NEXT: mov x28, x0 ; CHECK-GI-NEXT: mov x29, x1 @@ -4397,7 +4397,7 @@ define <4 x i128> @uv4i128(<4 x i128> %d, <4 x i128> %e) { ; CHECK-GI-NEXT: bl __umodti3 ; CHECK-GI-NEXT: mov x21, x0 ; CHECK-GI-NEXT: ldp x2, x0, [sp, #16] // 16-byte Folded Reload -; CHECK-GI-NEXT: ldr x3, [sp, #8] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x3, [sp, #8] // 8-byte Reload ; CHECK-GI-NEXT: mov x22, x1 ; CHECK-GI-NEXT: mov x1, x23 ; CHECK-GI-NEXT: bl __umodti3 diff --git a/llvm/test/CodeGen/AArch64/settag-merge.ll b/llvm/test/CodeGen/AArch64/settag-merge.ll index af922b91b221a..c0495833a3a69 100644 --- a/llvm/test/CodeGen/AArch64/settag-merge.ll +++ b/llvm/test/CodeGen/AArch64/settag-merge.ll @@ -175,7 +175,7 @@ define void @early_128_128(i1 %flag) { ; CHECK-LABEL: early_128_128: ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: sub sp, sp, #320 -; CHECK-NEXT: str x29, [sp, #304] // 8-byte Folded Spill +; CHECK-NEXT: str x29, [sp, #304] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 320 ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: tbz w0, #0, .LBB7_4 diff --git a/llvm/test/CodeGen/AArch64/settag.ll b/llvm/test/CodeGen/AArch64/settag.ll index 3d094ac8a517d..22016a793c13d 100644 --- a/llvm/test/CodeGen/AArch64/settag.ll +++ b/llvm/test/CodeGen/AArch64/settag.ll @@ -151,7 +151,7 @@ define void @stg_alloca17() nounwind { ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: sub sp, sp, #288 ; CHECK-NEXT: mov x8, #256 // =0x100 -; CHECK-NEXT: str x29, [sp, #272] // 8-byte Folded Spill +; CHECK-NEXT: str x29, [sp, #272] // 8-byte Spill ; CHECK-NEXT: .LBB11_1: // %entry ; CHECK-NEXT: // =>This Inner Loop Header: Depth=1 ; CHECK-NEXT: st2g sp, [sp], #32 @@ -172,7 +172,7 @@ define void @stg_alloca18() uwtable { ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: sub sp, sp, #288 ; CHECK-NEXT: .cfi_def_cfa_offset 288 -; CHECK-NEXT: str x29, [sp, #272] // 8-byte Folded Spill +; CHECK-NEXT: str x29, [sp, #272] // 8-byte Spill ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: mov x9, sp ; CHECK-NEXT: mov x8, #256 // =0x100 @@ -203,7 +203,7 @@ define void @test_slh() speculative_load_hardening { ; CHECK-NEXT: cmp sp, #0 ; CHECK-NEXT: csetm x16, ne ; CHECK-NEXT: sub sp, sp, #208 -; CHECK-NEXT: str x30, [sp, #192] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #192] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 208 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: mov x1, sp @@ -212,7 +212,7 @@ define void @test_slh() speculative_load_hardening { ; CHECK-NEXT: mov sp, x1 ; CHECK-NEXT: bl b ; CHECK-NEXT: cmp sp, #0 -; CHECK-NEXT: ldr x30, [sp, #192] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #192] // 8-byte Reload ; CHECK-NEXT: csetm x16, ne ; CHECK-NEXT: and x30, x30, x16 ; CHECK-NEXT: add sp, sp, #208 diff --git a/llvm/test/CodeGen/AArch64/sibling-call.ll b/llvm/test/CodeGen/AArch64/sibling-call.ll index 98323350bb3b3..60031aec49e07 100644 --- a/llvm/test/CodeGen/AArch64/sibling-call.ll +++ b/llvm/test/CodeGen/AArch64/sibling-call.ll @@ -26,13 +26,13 @@ define dso_local void @caller_to8_from0() { ; CHECK-LABEL: caller_to8_from0: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #32 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset w30, -16 -; CHECK-NEXT: mov w8, #42 +; CHECK-NEXT: mov w8, #42 // =0x2a ; CHECK-NEXT: str x8, [sp] ; CHECK-NEXT: bl callee_stack8 -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: ret @@ -45,7 +45,7 @@ define dso_local void @caller_to8_from0() { define dso_local void @caller_to8_from8([8 x i64], i64 %a) { ; CHECK-LABEL: caller_to8_from8: ; CHECK: // %bb.0: -; CHECK-NEXT: mov w8, #42 +; CHECK-NEXT: mov w8, #42 // =0x2a ; CHECK-NEXT: str x8, [sp] ; CHECK-NEXT: b callee_stack8 @@ -58,11 +58,11 @@ define dso_local void @caller_to16_from8([8 x i64], i64 %a) { ; CHECK-LABEL: caller_to16_from8: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #32 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: bl callee_stack16 -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: ret @@ -76,7 +76,7 @@ define dso_local void @caller_to16_from8([8 x i64], i64 %a) { define dso_local void @caller_to8_from24([8 x i64], i64 %a, i64 %b, i64 %c) { ; CHECK-LABEL: caller_to8_from24: ; CHECK: // %bb.0: -; CHECK-NEXT: mov w8, #42 +; CHECK-NEXT: mov w8, #42 // =0x2a ; CHECK-NEXT: str x8, [sp] ; CHECK-NEXT: b callee_stack8 @@ -106,7 +106,7 @@ define dso_local void @indirect_tail() { ; CHECK-LABEL: indirect_tail: ; CHECK: // %bb.0: ; CHECK-NEXT: adrp x8, func -; CHECK-NEXT: mov w0, #42 +; CHECK-NEXT: mov w0, #42 // =0x2a ; CHECK-NEXT: ldr x1, [x8, :lo12:func] ; CHECK-NEXT: br x1 diff --git a/llvm/test/CodeGen/AArch64/sincos-stack-slots.ll b/llvm/test/CodeGen/AArch64/sincos-stack-slots.ll index c5fef61c96af3..fa8bb82392708 100644 --- a/llvm/test/CodeGen/AArch64/sincos-stack-slots.ll +++ b/llvm/test/CodeGen/AArch64/sincos-stack-slots.ll @@ -62,7 +62,7 @@ define { double, double } @sincos_f64_value_return(double %x) { ; CHECK-LABEL: sincos_f64_value_return: ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: sub sp, sp, #32 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: add x0, sp, #24 @@ -70,7 +70,7 @@ define { double, double } @sincos_f64_value_return(double %x) { ; CHECK-NEXT: bl sincos ; CHECK-NEXT: ldr d0, [sp, #24] ; CHECK-NEXT: ldr d1, [sp, #8] -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: ret entry: @@ -227,7 +227,7 @@ define void @sincos_misaligned_result_stores(double %x, ptr noalias %out_sin, pt ; CHECK-LABEL: sincos_misaligned_result_stores: ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: stp x20, x19, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NEXT: .cfi_offset w19, -8 @@ -240,7 +240,7 @@ define void @sincos_misaligned_result_stores(double %x, ptr noalias %out_sin, pt ; CHECK-NEXT: bl sincos ; CHECK-NEXT: ldr d0, [sp, #24] ; CHECK-NEXT: ldr d1, [sp, #8] -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: str d0, [x20] ; CHECK-NEXT: str d1, [x19] ; CHECK-NEXT: ldp x20, x19, [sp, #32] // 16-byte Folded Reload @@ -260,7 +260,7 @@ define void @can_fold_with_call_in_chain(float %x, ptr noalias %a, ptr noalias % ; CHECK-LABEL: can_fold_with_call_in_chain: ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: str d8, [sp, #-32]! // 8-byte Folded Spill -; CHECK-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-NEXT: stp x20, x19, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset w19, -8 @@ -276,7 +276,7 @@ define void @can_fold_with_call_in_chain(float %x, ptr noalias %a, ptr noalias % ; CHECK-NEXT: mov x1, x19 ; CHECK-NEXT: bl sincosf ; CHECK-NEXT: ldp x20, x19, [sp, #16] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-NEXT: ldr d8, [sp], #32 // 8-byte Folded Reload ; CHECK-NEXT: ret entry: diff --git a/llvm/test/CodeGen/AArch64/sls-stackprotector-outliner.ll b/llvm/test/CodeGen/AArch64/sls-stackprotector-outliner.ll index b281204a66e46..bda5e579e8fd2 100644 --- a/llvm/test/CodeGen/AArch64/sls-stackprotector-outliner.ll +++ b/llvm/test/CodeGen/AArch64/sls-stackprotector-outliner.ll @@ -11,13 +11,13 @@ define hidden void @_ZTv0_n24_N2C6D1Ev(ptr %this) minsize sspreq "target-feature ; CHECK-LABEL: _ZTv0_n24_N2C6D1Ev: ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: sub sp, sp, #32 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: bl OUTLINED_FUNCTION_0 ; CHECK-NEXT: b.ne .LBB0_2 ; CHECK-NEXT: // %bb.1: // %entry -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: add x0, x0, x8 ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: b _ZN2C6D1Ev @@ -39,13 +39,13 @@ define hidden void @_ZTv0_n24_N2C6D0Ev(ptr %this) minsize sspreq "target-feature ; CHECK-LABEL: _ZTv0_n24_N2C6D0Ev: ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: sub sp, sp, #32 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: bl OUTLINED_FUNCTION_0 ; CHECK-NEXT: b.ne .LBB1_2 ; CHECK-NEXT: // %bb.1: // %entry -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: add x0, x0, x8 ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: b _ZN2C6D0Ev @@ -66,13 +66,13 @@ define hidden void @_ZTv0_n24_N3C10D1Ev(ptr %this) minsize sspreq "target-featur ; CHECK-LABEL: _ZTv0_n24_N3C10D1Ev: ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: sub sp, sp, #32 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: bl OUTLINED_FUNCTION_0 ; CHECK-NEXT: b.ne .LBB2_2 ; CHECK-NEXT: // %bb.1: // %entry -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: add x0, x0, x8 ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: b _ZN3C10D1Ev @@ -93,13 +93,13 @@ define hidden void @_ZTv0_n24_N3C10D0Ev(ptr %this) minsize sspreq "target-featur ; CHECK-LABEL: _ZTv0_n24_N3C10D0Ev: ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: sub sp, sp, #32 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: bl OUTLINED_FUNCTION_0 ; CHECK-NEXT: b.ne .LBB3_2 ; CHECK-NEXT: // %bb.1: // %entry -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: add x0, x0, x8 ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: b _ZN3C10D0Ev diff --git a/llvm/test/CodeGen/AArch64/sme-agnostic-za.ll b/llvm/test/CodeGen/AArch64/sme-agnostic-za.ll index e3007a3723484..2eed02b0e7ab1 100644 --- a/llvm/test/CodeGen/AArch64/sme-agnostic-za.ll +++ b/llvm/test/CodeGen/AArch64/sme-agnostic-za.ll @@ -27,7 +27,7 @@ define i64 @agnostic_caller_private_za_callee(i64 %v) nounwind "aarch64_za_state ; CHECK-LABEL: agnostic_caller_private_za_callee: ; CHECK: // %bb.0: ; CHECK-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill -; CHECK-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-NEXT: mov x29, sp ; CHECK-NEXT: mov x8, x0 ; CHECK-NEXT: bl __arm_sme_state_size @@ -49,14 +49,14 @@ define i64 @agnostic_caller_private_za_callee(i64 %v) nounwind "aarch64_za_state ; CHECK-NEXT: bl __arm_sme_restore ; CHECK-NEXT: mov x0, x1 ; CHECK-NEXT: mov sp, x29 -; CHECK-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-NEXT: ret ; ; CHECK-NEWLOWERING-LABEL: agnostic_caller_private_za_callee: ; CHECK-NEWLOWERING: // %bb.0: ; CHECK-NEWLOWERING-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill -; CHECK-NEWLOWERING-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-NEWLOWERING-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-NEWLOWERING-NEXT: mov x29, sp ; CHECK-NEWLOWERING-NEXT: mov x8, x0 ; CHECK-NEWLOWERING-NEXT: bl __arm_sme_state_size @@ -72,7 +72,7 @@ define i64 @agnostic_caller_private_za_callee(i64 %v) nounwind "aarch64_za_state ; CHECK-NEWLOWERING-NEXT: bl __arm_sme_restore ; CHECK-NEWLOWERING-NEXT: mov x0, x8 ; CHECK-NEWLOWERING-NEXT: mov sp, x29 -; CHECK-NEWLOWERING-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-NEWLOWERING-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-NEWLOWERING-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-NEWLOWERING-NEXT: ret %res = call i64 @private_za_decl(i64 %v) @@ -298,7 +298,7 @@ define i64 @test_many_callee_arguments( ; CHECK-LABEL: test_many_callee_arguments: ; CHECK: // %bb.0: ; CHECK-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill -; CHECK-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-NEXT: mov x29, sp ; CHECK-NEXT: mov x8, x0 ; CHECK-NEXT: bl __arm_sme_state_size @@ -316,14 +316,14 @@ define i64 @test_many_callee_arguments( ; CHECK-NEXT: bl __arm_sme_restore ; CHECK-NEXT: mov x0, x1 ; CHECK-NEXT: mov sp, x29 -; CHECK-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-NEXT: ret ; ; CHECK-NEWLOWERING-LABEL: test_many_callee_arguments: ; CHECK-NEWLOWERING: // %bb.0: ; CHECK-NEWLOWERING-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill -; CHECK-NEWLOWERING-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-NEWLOWERING-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-NEWLOWERING-NEXT: mov x29, sp ; CHECK-NEWLOWERING-NEXT: mov x8, x0 ; CHECK-NEWLOWERING-NEXT: bl __arm_sme_state_size @@ -341,7 +341,7 @@ define i64 @test_many_callee_arguments( ; CHECK-NEWLOWERING-NEXT: bl __arm_sme_restore ; CHECK-NEWLOWERING-NEXT: mov x0, x8 ; CHECK-NEWLOWERING-NEXT: mov sp, x29 -; CHECK-NEWLOWERING-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-NEWLOWERING-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-NEWLOWERING-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-NEWLOWERING-NEXT: ret i64 %0, i64 %1, i64 %2, i64 %3, i64 %4, i64 %5, i64 %6, i64 %7, i64 %8, i64 %9 @@ -356,7 +356,7 @@ define void @agnostic_za_buffer_alloc_with_stack_probes() nounwind "aarch64_za_s ; CHECK-LABEL: agnostic_za_buffer_alloc_with_stack_probes: ; CHECK: // %bb.0: ; CHECK-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill -; CHECK-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-NEXT: mov x29, sp ; CHECK-NEXT: bl __arm_sme_state_size ; CHECK-NEXT: mov x8, sp @@ -377,14 +377,14 @@ define void @agnostic_za_buffer_alloc_with_stack_probes() nounwind "aarch64_za_s ; CHECK-NEXT: mov x0, x19 ; CHECK-NEXT: bl __arm_sme_restore ; CHECK-NEXT: mov sp, x29 -; CHECK-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-NEXT: ret ; ; CHECK-NEWLOWERING-LABEL: agnostic_za_buffer_alloc_with_stack_probes: ; CHECK-NEWLOWERING: // %bb.0: ; CHECK-NEWLOWERING-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill -; CHECK-NEWLOWERING-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-NEWLOWERING-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-NEWLOWERING-NEXT: mov x29, sp ; CHECK-NEWLOWERING-NEXT: bl __arm_sme_state_size ; CHECK-NEWLOWERING-NEXT: mov x8, sp @@ -409,7 +409,7 @@ define void @agnostic_za_buffer_alloc_with_stack_probes() nounwind "aarch64_za_s ; CHECK-NEWLOWERING-NEXT: mov x0, x19 ; CHECK-NEWLOWERING-NEXT: bl __arm_sme_restore ; CHECK-NEWLOWERING-NEXT: mov sp, x29 -; CHECK-NEWLOWERING-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-NEWLOWERING-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-NEWLOWERING-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-NEWLOWERING-NEXT: ret call void @private_za() diff --git a/llvm/test/CodeGen/AArch64/sme-call-streaming-compatible-to-normal-fn-wihout-sme-attr.ll b/llvm/test/CodeGen/AArch64/sme-call-streaming-compatible-to-normal-fn-wihout-sme-attr.ll index 9bc5ee6988bcf..45e98f9d82c96 100644 --- a/llvm/test/CodeGen/AArch64/sme-call-streaming-compatible-to-normal-fn-wihout-sme-attr.ll +++ b/llvm/test/CodeGen/AArch64/sme-call-streaming-compatible-to-normal-fn-wihout-sme-attr.ll @@ -50,14 +50,14 @@ define void @streaming_compatible_arg(float %f) #0 { ; CHECK-NEXT: stp d11, d10, [sp, #48] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #64] // 16-byte Folded Spill ; CHECK-NEXT: stp x30, x19, [sp, #80] // 16-byte Folded Spill -; CHECK-NEXT: str s0, [sp, #12] // 4-byte Folded Spill +; CHECK-NEXT: str s0, [sp, #12] // 4-byte Spill ; CHECK-NEXT: bl __arm_sme_state ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: tbz w19, #0, .LBB1_2 ; CHECK-NEXT: // %bb.1: ; CHECK-NEXT: smstop sm ; CHECK-NEXT: .LBB1_2: -; CHECK-NEXT: ldr s0, [sp, #12] // 4-byte Folded Reload +; CHECK-NEXT: ldr s0, [sp, #12] // 4-byte Reload ; CHECK-NEXT: bl non_streaming ; CHECK-NEXT: tbz w19, #0, .LBB1_4 ; CHECK-NEXT: // %bb.3: diff --git a/llvm/test/CodeGen/AArch64/sme-callee-save-restore-pairs.ll b/llvm/test/CodeGen/AArch64/sme-callee-save-restore-pairs.ll index b58a857f3a3cb..b9a542b330c0f 100644 --- a/llvm/test/CodeGen/AArch64/sme-callee-save-restore-pairs.ll +++ b/llvm/test/CodeGen/AArch64/sme-callee-save-restore-pairs.ll @@ -12,18 +12,18 @@ define void @fbyte( %v) #0{ ; NOPAIR-NEXT: str x29, [sp, #-32]! // 8-byte Folded Spill ; NOPAIR-NEXT: stp x30, x19, [sp, #16] // 16-byte Folded Spill ; NOPAIR-NEXT: addvl sp, sp, #-18 -; NOPAIR-NEXT: str p15, [sp, #4, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p14, [sp, #5, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p13, [sp, #6, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; NOPAIR-NEXT: str p15, [sp, #4, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p14, [sp, #5, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p13, [sp, #6, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; NOPAIR-NEXT: str z23, [sp, #2, mul vl] // 16-byte Folded Spill ; NOPAIR-NEXT: str z22, [sp, #3, mul vl] // 16-byte Folded Spill ; NOPAIR-NEXT: str z21, [sp, #4, mul vl] // 16-byte Folded Spill @@ -76,18 +76,18 @@ define void @fbyte( %v) #0{ ; NOPAIR-NEXT: ldr z10, [sp, #15, mul vl] // 16-byte Folded Reload ; NOPAIR-NEXT: ldr z9, [sp, #16, mul vl] // 16-byte Folded Reload ; NOPAIR-NEXT: ldr z8, [sp, #17, mul vl] // 16-byte Folded Reload -; NOPAIR-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; NOPAIR-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; NOPAIR-NEXT: addvl sp, sp, #18 ; NOPAIR-NEXT: ldp x30, x19, [sp, #16] // 16-byte Folded Reload ; NOPAIR-NEXT: ldr x29, [sp], #32 // 8-byte Folded Reload @@ -98,18 +98,18 @@ define void @fbyte( %v) #0{ ; PAIR-NEXT: str x29, [sp, #-32]! // 8-byte Folded Spill ; PAIR-NEXT: stp x30, x19, [sp, #16] // 16-byte Folded Spill ; PAIR-NEXT: addvl sp, sp, #-18 -; PAIR-NEXT: str p15, [sp, #4, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p14, [sp, #5, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p13, [sp, #6, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; PAIR-NEXT: str p15, [sp, #4, mul vl] // 2-byte Spill +; PAIR-NEXT: str p14, [sp, #5, mul vl] // 2-byte Spill +; PAIR-NEXT: str p13, [sp, #6, mul vl] // 2-byte Spill +; PAIR-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill +; PAIR-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; PAIR-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; PAIR-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; PAIR-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill +; PAIR-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; PAIR-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; PAIR-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; PAIR-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; PAIR-NEXT: str z23, [sp, #2, mul vl] // 16-byte Folded Spill ; PAIR-NEXT: str z22, [sp, #3, mul vl] // 16-byte Folded Spill ; PAIR-NEXT: str z21, [sp, #4, mul vl] // 16-byte Folded Spill @@ -162,18 +162,18 @@ define void @fbyte( %v) #0{ ; PAIR-NEXT: ldr z10, [sp, #15, mul vl] // 16-byte Folded Reload ; PAIR-NEXT: ldr z9, [sp, #16, mul vl] // 16-byte Folded Reload ; PAIR-NEXT: ldr z8, [sp, #17, mul vl] // 16-byte Folded Reload -; PAIR-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; PAIR-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; PAIR-NEXT: addvl sp, sp, #18 ; PAIR-NEXT: ldp x30, x19, [sp, #16] // 16-byte Folded Reload ; PAIR-NEXT: ldr x29, [sp], #32 // 8-byte Folded Reload @@ -187,18 +187,18 @@ define void @fhalf( %v) #1{ ; NOPAIR: // %bb.0: ; NOPAIR-NEXT: stp x29, x30, [sp, #-16]! // 16-byte Folded Spill ; NOPAIR-NEXT: addvl sp, sp, #-18 -; NOPAIR-NEXT: str p15, [sp, #4, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p14, [sp, #5, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p13, [sp, #6, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; NOPAIR-NEXT: str p15, [sp, #4, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p14, [sp, #5, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p13, [sp, #6, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; NOPAIR-NEXT: str z23, [sp, #2, mul vl] // 16-byte Folded Spill ; NOPAIR-NEXT: str z22, [sp, #3, mul vl] // 16-byte Folded Spill ; NOPAIR-NEXT: str z21, [sp, #4, mul vl] // 16-byte Folded Spill @@ -234,18 +234,18 @@ define void @fhalf( %v) #1{ ; NOPAIR-NEXT: ldr z10, [sp, #15, mul vl] // 16-byte Folded Reload ; NOPAIR-NEXT: ldr z9, [sp, #16, mul vl] // 16-byte Folded Reload ; NOPAIR-NEXT: ldr z8, [sp, #17, mul vl] // 16-byte Folded Reload -; NOPAIR-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; NOPAIR-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; NOPAIR-NEXT: addvl sp, sp, #18 ; NOPAIR-NEXT: ldp x29, x30, [sp], #16 // 16-byte Folded Reload ; NOPAIR-NEXT: ret @@ -254,26 +254,26 @@ define void @fhalf( %v) #1{ ; PAIR: // %bb.0: ; PAIR-NEXT: stp x29, x30, [sp, #-16]! // 16-byte Folded Spill ; PAIR-NEXT: addvl sp, sp, #-18 -; PAIR-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill +; PAIR-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill ; PAIR-NEXT: ptrue pn8.b -; PAIR-NEXT: str p15, [sp, #4, mul vl] // 2-byte Folded Spill +; PAIR-NEXT: str p15, [sp, #4, mul vl] // 2-byte Spill ; PAIR-NEXT: st1b { z22.b, z23.b }, pn8, [sp, #2, mul vl] // 32-byte Folded Spill ; PAIR-NEXT: st1b { z20.b, z21.b }, pn8, [sp, #4, mul vl] // 32-byte Folded Spill -; PAIR-NEXT: str p14, [sp, #5, mul vl] // 2-byte Folded Spill +; PAIR-NEXT: str p14, [sp, #5, mul vl] // 2-byte Spill ; PAIR-NEXT: st1b { z18.b, z19.b }, pn8, [sp, #6, mul vl] // 32-byte Folded Spill ; PAIR-NEXT: st1b { z16.b, z17.b }, pn8, [sp, #8, mul vl] // 32-byte Folded Spill -; PAIR-NEXT: str p13, [sp, #6, mul vl] // 2-byte Folded Spill +; PAIR-NEXT: str p13, [sp, #6, mul vl] // 2-byte Spill ; PAIR-NEXT: st1b { z14.b, z15.b }, pn8, [sp, #10, mul vl] // 32-byte Folded Spill ; PAIR-NEXT: st1b { z12.b, z13.b }, pn8, [sp, #12, mul vl] // 32-byte Folded Spill -; PAIR-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill +; PAIR-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill ; PAIR-NEXT: st1b { z10.b, z11.b }, pn8, [sp, #14, mul vl] // 32-byte Folded Spill -; PAIR-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; PAIR-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; PAIR-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; PAIR-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; PAIR-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; PAIR-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; PAIR-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; PAIR-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; PAIR-NEXT: str z9, [sp, #16, mul vl] // 16-byte Folded Spill ; PAIR-NEXT: str z8, [sp, #17, mul vl] // 16-byte Folded Spill ; PAIR-NEXT: smstop sm @@ -289,18 +289,18 @@ define void @fhalf( %v) #1{ ; PAIR-NEXT: ld1b { z14.b, z15.b }, pn8/z, [sp, #10, mul vl] // 32-byte Folded Reload ; PAIR-NEXT: ld1b { z12.b, z13.b }, pn8/z, [sp, #12, mul vl] // 32-byte Folded Reload ; PAIR-NEXT: ld1b { z10.b, z11.b }, pn8/z, [sp, #14, mul vl] // 32-byte Folded Reload -; PAIR-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; PAIR-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; PAIR-NEXT: addvl sp, sp, #18 ; PAIR-NEXT: ldp x29, x30, [sp], #16 // 16-byte Folded Reload ; PAIR-NEXT: ret @@ -313,18 +313,18 @@ define void @ffloat( %v) #2 { ; NOPAIR: // %bb.0: ; NOPAIR-NEXT: stp x29, x30, [sp, #-16]! // 16-byte Folded Spill ; NOPAIR-NEXT: addsvl sp, sp, #-18 -; NOPAIR-NEXT: str p15, [sp, #4, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p14, [sp, #5, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p13, [sp, #6, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; NOPAIR-NEXT: str p15, [sp, #4, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p14, [sp, #5, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p13, [sp, #6, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; NOPAIR-NEXT: str z23, [sp, #2, mul vl] // 16-byte Folded Spill ; NOPAIR-NEXT: str z22, [sp, #3, mul vl] // 16-byte Folded Spill ; NOPAIR-NEXT: str z21, [sp, #4, mul vl] // 16-byte Folded Spill @@ -360,18 +360,18 @@ define void @ffloat( %v) #2 { ; NOPAIR-NEXT: ldr z10, [sp, #15, mul vl] // 16-byte Folded Reload ; NOPAIR-NEXT: ldr z9, [sp, #16, mul vl] // 16-byte Folded Reload ; NOPAIR-NEXT: ldr z8, [sp, #17, mul vl] // 16-byte Folded Reload -; NOPAIR-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; NOPAIR-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; NOPAIR-NEXT: addsvl sp, sp, #18 ; NOPAIR-NEXT: ldp x29, x30, [sp], #16 // 16-byte Folded Reload ; NOPAIR-NEXT: ret @@ -380,18 +380,18 @@ define void @ffloat( %v) #2 { ; PAIR: // %bb.0: ; PAIR-NEXT: stp x29, x30, [sp, #-16]! // 16-byte Folded Spill ; PAIR-NEXT: addsvl sp, sp, #-18 -; PAIR-NEXT: str p15, [sp, #4, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p14, [sp, #5, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p13, [sp, #6, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; PAIR-NEXT: str p15, [sp, #4, mul vl] // 2-byte Spill +; PAIR-NEXT: str p14, [sp, #5, mul vl] // 2-byte Spill +; PAIR-NEXT: str p13, [sp, #6, mul vl] // 2-byte Spill +; PAIR-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill +; PAIR-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; PAIR-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; PAIR-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; PAIR-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill +; PAIR-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; PAIR-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; PAIR-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; PAIR-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; PAIR-NEXT: str z23, [sp, #2, mul vl] // 16-byte Folded Spill ; PAIR-NEXT: str z22, [sp, #3, mul vl] // 16-byte Folded Spill ; PAIR-NEXT: str z21, [sp, #4, mul vl] // 16-byte Folded Spill @@ -427,18 +427,18 @@ define void @ffloat( %v) #2 { ; PAIR-NEXT: ldr z10, [sp, #15, mul vl] // 16-byte Folded Reload ; PAIR-NEXT: ldr z9, [sp, #16, mul vl] // 16-byte Folded Reload ; PAIR-NEXT: ldr z8, [sp, #17, mul vl] // 16-byte Folded Reload -; PAIR-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; PAIR-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; PAIR-NEXT: addsvl sp, sp, #18 ; PAIR-NEXT: ldp x29, x30, [sp], #16 // 16-byte Folded Reload ; PAIR-NEXT: ret diff --git a/llvm/test/CodeGen/AArch64/sme-darwin-sve-vg.ll b/llvm/test/CodeGen/AArch64/sme-darwin-sve-vg.ll index 48ac156a43875..f7d8b4dc4513d 100644 --- a/llvm/test/CodeGen/AArch64/sme-darwin-sve-vg.ll +++ b/llvm/test/CodeGen/AArch64/sme-darwin-sve-vg.ll @@ -12,7 +12,7 @@ define void @locally_streaming_fn() #0 { ; CHECK-NEXT: stp d11, d10, [sp, #32] ; 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] ; 16-byte Folded Spill ; CHECK-NEXT: stp x29, x30, [sp, #64] ; 16-byte Folded Spill -; CHECK-NEXT: str x9, [sp, #80] ; 8-byte Folded Spill +; CHECK-NEXT: str x9, [sp, #80] ; 8-byte Spill ; CHECK-NEXT: .cfi_offset vg, -16 ; CHECK-NEXT: .cfi_offset w30, -24 ; CHECK-NEXT: .cfi_offset w29, -32 diff --git a/llvm/test/CodeGen/AArch64/sme-disable-gisel-fisel.ll b/llvm/test/CodeGen/AArch64/sme-disable-gisel-fisel.ll index 05d636158b92b..57025ea172097 100644 --- a/llvm/test/CodeGen/AArch64/sme-disable-gisel-fisel.ll +++ b/llvm/test/CodeGen/AArch64/sme-disable-gisel-fisel.ll @@ -16,18 +16,18 @@ define double @nonstreaming_caller_streaming_callee(double %x) nounwind noinline ; CHECK-FISEL-NEXT: stp d13, d12, [sp, #32] // 16-byte Folded Spill ; CHECK-FISEL-NEXT: stp d11, d10, [sp, #48] // 16-byte Folded Spill ; CHECK-FISEL-NEXT: stp d9, d8, [sp, #64] // 16-byte Folded Spill -; CHECK-FISEL-NEXT: str x30, [sp, #80] // 8-byte Folded Spill -; CHECK-FISEL-NEXT: str d0, [sp] // 8-byte Folded Spill +; CHECK-FISEL-NEXT: str x30, [sp, #80] // 8-byte Spill +; CHECK-FISEL-NEXT: str d0, [sp] // 8-byte Spill ; CHECK-FISEL-NEXT: smstart sm -; CHECK-FISEL-NEXT: ldr d0, [sp] // 8-byte Folded Reload +; CHECK-FISEL-NEXT: ldr d0, [sp] // 8-byte Reload ; CHECK-FISEL-NEXT: bl streaming_callee -; CHECK-FISEL-NEXT: str d0, [sp, #8] // 8-byte Folded Spill +; CHECK-FISEL-NEXT: str d0, [sp, #8] // 8-byte Spill ; CHECK-FISEL-NEXT: smstop sm -; CHECK-FISEL-NEXT: ldr d1, [sp, #8] // 8-byte Folded Reload +; CHECK-FISEL-NEXT: ldr d1, [sp, #8] // 8-byte Reload ; CHECK-FISEL-NEXT: adrp x8, .LCPI0_0 ; CHECK-FISEL-NEXT: ldr d0, [x8, :lo12:.LCPI0_0] ; CHECK-FISEL-NEXT: fadd d0, d1, d0 -; CHECK-FISEL-NEXT: ldr x30, [sp, #80] // 8-byte Folded Reload +; CHECK-FISEL-NEXT: ldr x30, [sp, #80] // 8-byte Reload ; CHECK-FISEL-NEXT: ldp d9, d8, [sp, #64] // 16-byte Folded Reload ; CHECK-FISEL-NEXT: ldp d11, d10, [sp, #48] // 16-byte Folded Reload ; CHECK-FISEL-NEXT: ldp d13, d12, [sp, #32] // 16-byte Folded Reload @@ -42,18 +42,18 @@ define double @nonstreaming_caller_streaming_callee(double %x) nounwind noinline ; CHECK-GISEL-NEXT: stp d13, d12, [sp, #32] // 16-byte Folded Spill ; CHECK-GISEL-NEXT: stp d11, d10, [sp, #48] // 16-byte Folded Spill ; CHECK-GISEL-NEXT: stp d9, d8, [sp, #64] // 16-byte Folded Spill -; CHECK-GISEL-NEXT: str x30, [sp, #80] // 8-byte Folded Spill -; CHECK-GISEL-NEXT: str d0, [sp] // 8-byte Folded Spill +; CHECK-GISEL-NEXT: str x30, [sp, #80] // 8-byte Spill +; CHECK-GISEL-NEXT: str d0, [sp] // 8-byte Spill ; CHECK-GISEL-NEXT: smstart sm -; CHECK-GISEL-NEXT: ldr d0, [sp] // 8-byte Folded Reload +; CHECK-GISEL-NEXT: ldr d0, [sp] // 8-byte Reload ; CHECK-GISEL-NEXT: bl streaming_callee -; CHECK-GISEL-NEXT: str d0, [sp, #8] // 8-byte Folded Spill +; CHECK-GISEL-NEXT: str d0, [sp, #8] // 8-byte Spill ; CHECK-GISEL-NEXT: smstop sm -; CHECK-GISEL-NEXT: ldr d1, [sp, #8] // 8-byte Folded Reload +; CHECK-GISEL-NEXT: ldr d1, [sp, #8] // 8-byte Reload ; CHECK-GISEL-NEXT: mov x8, #4631107791820423168 // =0x4045000000000000 ; CHECK-GISEL-NEXT: fmov d0, x8 ; CHECK-GISEL-NEXT: fadd d0, d1, d0 -; CHECK-GISEL-NEXT: ldr x30, [sp, #80] // 8-byte Folded Reload +; CHECK-GISEL-NEXT: ldr x30, [sp, #80] // 8-byte Reload ; CHECK-GISEL-NEXT: ldp d9, d8, [sp, #64] // 16-byte Folded Reload ; CHECK-GISEL-NEXT: ldp d11, d10, [sp, #48] // 16-byte Folded Reload ; CHECK-GISEL-NEXT: ldp d13, d12, [sp, #32] // 16-byte Folded Reload @@ -75,18 +75,18 @@ define double @streaming_caller_nonstreaming_callee(double %x) nounwind noinline ; CHECK-COMMON-NEXT: stp d13, d12, [sp, #32] // 16-byte Folded Spill ; CHECK-COMMON-NEXT: stp d11, d10, [sp, #48] // 16-byte Folded Spill ; CHECK-COMMON-NEXT: stp d9, d8, [sp, #64] // 16-byte Folded Spill -; CHECK-COMMON-NEXT: str x30, [sp, #80] // 8-byte Folded Spill -; CHECK-COMMON-NEXT: str d0, [sp] // 8-byte Folded Spill +; CHECK-COMMON-NEXT: str x30, [sp, #80] // 8-byte Spill +; CHECK-COMMON-NEXT: str d0, [sp] // 8-byte Spill ; CHECK-COMMON-NEXT: smstop sm -; CHECK-COMMON-NEXT: ldr d0, [sp] // 8-byte Folded Reload +; CHECK-COMMON-NEXT: ldr d0, [sp] // 8-byte Reload ; CHECK-COMMON-NEXT: bl normal_callee -; CHECK-COMMON-NEXT: str d0, [sp, #8] // 8-byte Folded Spill +; CHECK-COMMON-NEXT: str d0, [sp, #8] // 8-byte Spill ; CHECK-COMMON-NEXT: smstart sm -; CHECK-COMMON-NEXT: ldr d1, [sp, #8] // 8-byte Folded Reload +; CHECK-COMMON-NEXT: ldr d1, [sp, #8] // 8-byte Reload ; CHECK-COMMON-NEXT: mov x8, #4631107791820423168 // =0x4045000000000000 ; CHECK-COMMON-NEXT: fmov d0, x8 ; CHECK-COMMON-NEXT: fadd d0, d1, d0 -; CHECK-COMMON-NEXT: ldr x30, [sp, #80] // 8-byte Folded Reload +; CHECK-COMMON-NEXT: ldr x30, [sp, #80] // 8-byte Reload ; CHECK-COMMON-NEXT: ldp d9, d8, [sp, #64] // 16-byte Folded Reload ; CHECK-COMMON-NEXT: ldp d11, d10, [sp, #48] // 16-byte Folded Reload ; CHECK-COMMON-NEXT: ldp d13, d12, [sp, #32] // 16-byte Folded Reload @@ -107,24 +107,24 @@ define double @locally_streaming_caller_normal_callee(double %x) nounwind noinli ; CHECK-COMMON-NEXT: stp d13, d12, [sp, #48] // 16-byte Folded Spill ; CHECK-COMMON-NEXT: stp d11, d10, [sp, #64] // 16-byte Folded Spill ; CHECK-COMMON-NEXT: stp d9, d8, [sp, #80] // 16-byte Folded Spill -; CHECK-COMMON-NEXT: str x30, [sp, #96] // 8-byte Folded Spill -; CHECK-COMMON-NEXT: str d0, [sp, #24] // 8-byte Folded Spill +; CHECK-COMMON-NEXT: str x30, [sp, #96] // 8-byte Spill +; CHECK-COMMON-NEXT: str d0, [sp, #24] // 8-byte Spill ; CHECK-COMMON-NEXT: smstart sm -; CHECK-COMMON-NEXT: ldr d0, [sp, #24] // 8-byte Folded Reload -; CHECK-COMMON-NEXT: str d0, [sp, #24] // 8-byte Folded Spill +; CHECK-COMMON-NEXT: ldr d0, [sp, #24] // 8-byte Reload +; CHECK-COMMON-NEXT: str d0, [sp, #24] // 8-byte Spill ; CHECK-COMMON-NEXT: smstop sm -; CHECK-COMMON-NEXT: ldr d0, [sp, #24] // 8-byte Folded Reload +; CHECK-COMMON-NEXT: ldr d0, [sp, #24] // 8-byte Reload ; CHECK-COMMON-NEXT: bl normal_callee -; CHECK-COMMON-NEXT: str d0, [sp, #16] // 8-byte Folded Spill +; CHECK-COMMON-NEXT: str d0, [sp, #16] // 8-byte Spill ; CHECK-COMMON-NEXT: smstart sm -; CHECK-COMMON-NEXT: ldr d1, [sp, #16] // 8-byte Folded Reload +; CHECK-COMMON-NEXT: ldr d1, [sp, #16] // 8-byte Reload ; CHECK-COMMON-NEXT: mov x8, #4631107791820423168 // =0x4045000000000000 ; CHECK-COMMON-NEXT: fmov d0, x8 ; CHECK-COMMON-NEXT: fadd d0, d1, d0 -; CHECK-COMMON-NEXT: str d0, [sp, #8] // 8-byte Folded Spill +; CHECK-COMMON-NEXT: str d0, [sp, #8] // 8-byte Spill ; CHECK-COMMON-NEXT: smstop sm -; CHECK-COMMON-NEXT: ldr d0, [sp, #8] // 8-byte Folded Reload -; CHECK-COMMON-NEXT: ldr x30, [sp, #96] // 8-byte Folded Reload +; CHECK-COMMON-NEXT: ldr d0, [sp, #8] // 8-byte Reload +; CHECK-COMMON-NEXT: ldr x30, [sp, #96] // 8-byte Reload ; CHECK-COMMON-NEXT: ldp d9, d8, [sp, #80] // 16-byte Folded Reload ; CHECK-COMMON-NEXT: ldp d11, d10, [sp, #64] // 16-byte Folded Reload ; CHECK-COMMON-NEXT: ldp d13, d12, [sp, #48] // 16-byte Folded Reload @@ -170,11 +170,11 @@ define void @locally_streaming_caller_streaming_callee_ptr(ptr %p) nounwind noin ; CHECK-COMMON-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-COMMON-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-COMMON-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-COMMON-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-COMMON-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-COMMON-NEXT: smstart sm ; CHECK-COMMON-NEXT: blr x0 ; CHECK-COMMON-NEXT: smstop sm -; CHECK-COMMON-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-COMMON-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-COMMON-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-COMMON-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-COMMON-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -191,11 +191,11 @@ define void @normal_call_to_streaming_callee_ptr(ptr %p) nounwind noinline optno ; CHECK-COMMON-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-COMMON-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-COMMON-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-COMMON-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-COMMON-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-COMMON-NEXT: smstart sm ; CHECK-COMMON-NEXT: blr x0 ; CHECK-COMMON-NEXT: smstop sm -; CHECK-COMMON-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-COMMON-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-COMMON-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-COMMON-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-COMMON-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -243,7 +243,7 @@ define double @za_shared_caller_to_za_none_callee(double %x) nounwind noinline ; CHECK-COMMON-LABEL: za_shared_caller_to_za_none_callee: ; CHECK-COMMON: // %bb.0: // %entry ; CHECK-COMMON-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill -; CHECK-COMMON-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-COMMON-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-COMMON-NEXT: mov x29, sp ; CHECK-COMMON-NEXT: sub sp, sp, #16 ; CHECK-COMMON-NEXT: rdsvl x8, #1 @@ -268,7 +268,7 @@ define double @za_shared_caller_to_za_none_callee(double %x) nounwind noinline ; CHECK-COMMON-NEXT: fmov d1, x8 ; CHECK-COMMON-NEXT: fadd d0, d0, d1 ; CHECK-COMMON-NEXT: mov sp, x29 -; CHECK-COMMON-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-COMMON-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-COMMON-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-COMMON-NEXT: ret entry: @@ -282,7 +282,7 @@ define fp128 @f128_call_za(fp128 %a, fp128 %b) "aarch64_inout_za" nounwind { ; CHECK-COMMON-LABEL: f128_call_za: ; CHECK-COMMON: // %bb.0: ; CHECK-COMMON-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill -; CHECK-COMMON-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-COMMON-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-COMMON-NEXT: mov x29, sp ; CHECK-COMMON-NEXT: sub sp, sp, #16 ; CHECK-COMMON-NEXT: rdsvl x8, #1 @@ -302,7 +302,7 @@ define fp128 @f128_call_za(fp128 %a, fp128 %b) "aarch64_inout_za" nounwind { ; CHECK-COMMON-NEXT: .LBB8_2: ; CHECK-COMMON-NEXT: msr TPIDR2_EL0, xzr ; CHECK-COMMON-NEXT: mov sp, x29 -; CHECK-COMMON-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-COMMON-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-COMMON-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-COMMON-NEXT: ret %res = fadd fp128 %a, %b @@ -319,17 +319,17 @@ define fp128 @f128_call_sm(fp128 %a, fp128 %b) "aarch64_pstate_sm_enabled" nounw ; CHECK-COMMON-NEXT: stp d13, d12, [sp, #48] // 16-byte Folded Spill ; CHECK-COMMON-NEXT: stp d11, d10, [sp, #64] // 16-byte Folded Spill ; CHECK-COMMON-NEXT: stp d9, d8, [sp, #80] // 16-byte Folded Spill -; CHECK-COMMON-NEXT: str x30, [sp, #96] // 8-byte Folded Spill +; CHECK-COMMON-NEXT: str x30, [sp, #96] // 8-byte Spill ; CHECK-COMMON-NEXT: stp q0, q1, [sp] // 32-byte Folded Spill ; CHECK-COMMON-NEXT: smstop sm ; CHECK-COMMON-NEXT: ldp q0, q1, [sp] // 32-byte Folded Reload ; CHECK-COMMON-NEXT: bl __addtf3 -; CHECK-COMMON-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-COMMON-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-COMMON-NEXT: smstart sm ; CHECK-COMMON-NEXT: ldp d9, d8, [sp, #80] // 16-byte Folded Reload -; CHECK-COMMON-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-COMMON-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-COMMON-NEXT: ldp d11, d10, [sp, #64] // 16-byte Folded Reload -; CHECK-COMMON-NEXT: ldr x30, [sp, #96] // 8-byte Folded Reload +; CHECK-COMMON-NEXT: ldr x30, [sp, #96] // 8-byte Reload ; CHECK-COMMON-NEXT: ldp d13, d12, [sp, #48] // 16-byte Folded Reload ; CHECK-COMMON-NEXT: ldp d15, d14, [sp, #32] // 16-byte Folded Reload ; CHECK-COMMON-NEXT: add sp, sp, #112 @@ -343,7 +343,7 @@ define double @frem_call_za(double %a, double %b) "aarch64_inout_za" nounwind { ; CHECK-COMMON-LABEL: frem_call_za: ; CHECK-COMMON: // %bb.0: ; CHECK-COMMON-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill -; CHECK-COMMON-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-COMMON-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-COMMON-NEXT: mov x29, sp ; CHECK-COMMON-NEXT: sub sp, sp, #16 ; CHECK-COMMON-NEXT: rdsvl x8, #1 @@ -363,7 +363,7 @@ define double @frem_call_za(double %a, double %b) "aarch64_inout_za" nounwind { ; CHECK-COMMON-NEXT: .LBB10_2: ; CHECK-COMMON-NEXT: msr TPIDR2_EL0, xzr ; CHECK-COMMON-NEXT: mov sp, x29 -; CHECK-COMMON-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-COMMON-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-COMMON-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-COMMON-NEXT: ret %res = frem double %a, %b @@ -379,17 +379,17 @@ define float @frem_call_sm(float %a, float %b) "aarch64_pstate_sm_enabled" nounw ; CHECK-COMMON-NEXT: stp d13, d12, [sp, #32] // 16-byte Folded Spill ; CHECK-COMMON-NEXT: stp d11, d10, [sp, #48] // 16-byte Folded Spill ; CHECK-COMMON-NEXT: stp d9, d8, [sp, #64] // 16-byte Folded Spill -; CHECK-COMMON-NEXT: str x30, [sp, #80] // 8-byte Folded Spill +; CHECK-COMMON-NEXT: str x30, [sp, #80] // 8-byte Spill ; CHECK-COMMON-NEXT: stp s0, s1, [sp, #8] // 8-byte Folded Spill ; CHECK-COMMON-NEXT: smstop sm ; CHECK-COMMON-NEXT: ldp s0, s1, [sp, #8] // 8-byte Folded Reload ; CHECK-COMMON-NEXT: bl fmodf -; CHECK-COMMON-NEXT: str s0, [sp, #12] // 4-byte Folded Spill +; CHECK-COMMON-NEXT: str s0, [sp, #12] // 4-byte Spill ; CHECK-COMMON-NEXT: smstart sm ; CHECK-COMMON-NEXT: ldp d9, d8, [sp, #64] // 16-byte Folded Reload -; CHECK-COMMON-NEXT: ldr s0, [sp, #12] // 4-byte Folded Reload +; CHECK-COMMON-NEXT: ldr s0, [sp, #12] // 4-byte Reload ; CHECK-COMMON-NEXT: ldp d11, d10, [sp, #48] // 16-byte Folded Reload -; CHECK-COMMON-NEXT: ldr x30, [sp, #80] // 8-byte Folded Reload +; CHECK-COMMON-NEXT: ldr x30, [sp, #80] // 8-byte Reload ; CHECK-COMMON-NEXT: ldp d13, d12, [sp, #32] // 16-byte Folded Reload ; CHECK-COMMON-NEXT: ldp d15, d14, [sp, #16] // 16-byte Folded Reload ; CHECK-COMMON-NEXT: add sp, sp, #96 @@ -416,13 +416,13 @@ define float @frem_call_sm_compat(float %a, float %b) "aarch64_pstate_sm_compati ; CHECK-COMMON-NEXT: .LBB12_2: ; CHECK-COMMON-NEXT: ldp s0, s1, [sp, #8] // 8-byte Folded Reload ; CHECK-COMMON-NEXT: bl fmodf -; CHECK-COMMON-NEXT: str s0, [sp, #12] // 4-byte Folded Spill +; CHECK-COMMON-NEXT: str s0, [sp, #12] // 4-byte Spill ; CHECK-COMMON-NEXT: tbz w19, #0, .LBB12_4 ; CHECK-COMMON-NEXT: // %bb.3: ; CHECK-COMMON-NEXT: smstart sm ; CHECK-COMMON-NEXT: .LBB12_4: ; CHECK-COMMON-NEXT: ldp x30, x19, [sp, #80] // 16-byte Folded Reload -; CHECK-COMMON-NEXT: ldr s0, [sp, #12] // 4-byte Folded Reload +; CHECK-COMMON-NEXT: ldr s0, [sp, #12] // 4-byte Reload ; CHECK-COMMON-NEXT: ldp d9, d8, [sp, #64] // 16-byte Folded Reload ; CHECK-COMMON-NEXT: ldp d11, d10, [sp, #48] // 16-byte Folded Reload ; CHECK-COMMON-NEXT: ldp d13, d12, [sp, #32] // 16-byte Folded Reload diff --git a/llvm/test/CodeGen/AArch64/sme-lazy-save-call.ll b/llvm/test/CodeGen/AArch64/sme-lazy-save-call.ll index a7d51968c5157..50dd0c699284c 100644 --- a/llvm/test/CodeGen/AArch64/sme-lazy-save-call.ll +++ b/llvm/test/CodeGen/AArch64/sme-lazy-save-call.ll @@ -13,7 +13,7 @@ define void @test_lazy_save_1_callee() nounwind "aarch64_inout_za" { ; CHECK-COMMON-LABEL: test_lazy_save_1_callee: ; CHECK-COMMON: // %bb.0: ; CHECK-COMMON-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill -; CHECK-COMMON-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-COMMON-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-COMMON-NEXT: mov x29, sp ; CHECK-COMMON-NEXT: sub sp, sp, #16 ; CHECK-COMMON-NEXT: rdsvl x8, #1 @@ -33,7 +33,7 @@ define void @test_lazy_save_1_callee() nounwind "aarch64_inout_za" { ; CHECK-COMMON-NEXT: .LBB0_2: ; CHECK-COMMON-NEXT: msr TPIDR2_EL0, xzr ; CHECK-COMMON-NEXT: mov sp, x29 -; CHECK-COMMON-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-COMMON-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-COMMON-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-COMMON-NEXT: ret call void @private_za_callee() @@ -82,7 +82,7 @@ define void @test_lazy_save_2_callees() nounwind "aarch64_inout_za" { ; CHECK-NEWLOWERING-LABEL: test_lazy_save_2_callees: ; CHECK-NEWLOWERING: // %bb.0: ; CHECK-NEWLOWERING-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill -; CHECK-NEWLOWERING-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-NEWLOWERING-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-NEWLOWERING-NEXT: mov x29, sp ; CHECK-NEWLOWERING-NEXT: sub sp, sp, #16 ; CHECK-NEWLOWERING-NEXT: rdsvl x8, #1 @@ -103,7 +103,7 @@ define void @test_lazy_save_2_callees() nounwind "aarch64_inout_za" { ; CHECK-NEWLOWERING-NEXT: .LBB1_2: ; CHECK-NEWLOWERING-NEXT: msr TPIDR2_EL0, xzr ; CHECK-NEWLOWERING-NEXT: mov sp, x29 -; CHECK-NEWLOWERING-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-NEWLOWERING-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-NEWLOWERING-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-NEWLOWERING-NEXT: ret call void @private_za_callee() @@ -116,7 +116,7 @@ define float @test_lazy_save_expanded_intrinsic(float %a) nounwind "aarch64_inou ; CHECK-COMMON-LABEL: test_lazy_save_expanded_intrinsic: ; CHECK-COMMON: // %bb.0: ; CHECK-COMMON-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill -; CHECK-COMMON-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-COMMON-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-COMMON-NEXT: mov x29, sp ; CHECK-COMMON-NEXT: sub sp, sp, #16 ; CHECK-COMMON-NEXT: rdsvl x8, #1 @@ -136,7 +136,7 @@ define float @test_lazy_save_expanded_intrinsic(float %a) nounwind "aarch64_inou ; CHECK-COMMON-NEXT: .LBB2_2: ; CHECK-COMMON-NEXT: msr TPIDR2_EL0, xzr ; CHECK-COMMON-NEXT: mov sp, x29 -; CHECK-COMMON-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-COMMON-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-COMMON-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-COMMON-NEXT: ret %res = call float @llvm.cos.f32(float %a) @@ -296,7 +296,7 @@ define void @test_lazy_save_mixed_shared_and_private_callees() "aarch64_new_za" ; CHECK-NEWLOWERING-LABEL: test_lazy_save_mixed_shared_and_private_callees: ; CHECK-NEWLOWERING: // %bb.0: ; CHECK-NEWLOWERING-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill -; CHECK-NEWLOWERING-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-NEWLOWERING-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-NEWLOWERING-NEXT: mov x29, sp ; CHECK-NEWLOWERING-NEXT: sub sp, sp, #16 ; CHECK-NEWLOWERING-NEXT: .cfi_def_cfa w29, 32 @@ -335,7 +335,7 @@ define void @test_lazy_save_mixed_shared_and_private_callees() "aarch64_new_za" ; CHECK-NEWLOWERING-NEXT: msr TPIDR2_EL0, xzr ; CHECK-NEWLOWERING-NEXT: smstop za ; CHECK-NEWLOWERING-NEXT: mov sp, x29 -; CHECK-NEWLOWERING-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-NEWLOWERING-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-NEWLOWERING-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-NEWLOWERING-NEXT: ret { @@ -434,7 +434,7 @@ define void @test_many_back2back_private_za_calls() "aarch64_inout_za" { ; CHECK-NEWLOWERING-LABEL: test_many_back2back_private_za_calls: ; CHECK-NEWLOWERING: // %bb.0: ; CHECK-NEWLOWERING-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill -; CHECK-NEWLOWERING-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-NEWLOWERING-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-NEWLOWERING-NEXT: mov x29, sp ; CHECK-NEWLOWERING-NEXT: sub sp, sp, #16 ; CHECK-NEWLOWERING-NEXT: .cfi_def_cfa w29, 32 @@ -465,7 +465,7 @@ define void @test_many_back2back_private_za_calls() "aarch64_inout_za" { ; CHECK-NEWLOWERING-NEXT: msr TPIDR2_EL0, xzr ; CHECK-NEWLOWERING-NEXT: bl shared_za_callee ; CHECK-NEWLOWERING-NEXT: mov sp, x29 -; CHECK-NEWLOWERING-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-NEWLOWERING-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-NEWLOWERING-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-NEWLOWERING-NEXT: ret call void @shared_za_callee() @@ -483,7 +483,7 @@ define void @test_shared_private_shared() nounwind "aarch64_inout_za" { ; CHECK-COMMON-LABEL: test_shared_private_shared: ; CHECK-COMMON: // %bb.0: ; CHECK-COMMON-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill -; CHECK-COMMON-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-COMMON-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-COMMON-NEXT: mov x29, sp ; CHECK-COMMON-NEXT: sub sp, sp, #16 ; CHECK-COMMON-NEXT: rdsvl x8, #1 @@ -505,7 +505,7 @@ define void @test_shared_private_shared() nounwind "aarch64_inout_za" { ; CHECK-COMMON-NEXT: msr TPIDR2_EL0, xzr ; CHECK-COMMON-NEXT: bl shared_za_callee ; CHECK-COMMON-NEXT: mov sp, x29 -; CHECK-COMMON-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-COMMON-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-COMMON-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-COMMON-NEXT: ret call void @shared_za_callee() @@ -532,7 +532,7 @@ define i64 @test_shared_private_shared_i64(i64 %x) nounwind "aarch64_inout_za" { ; CHECK-COMMON-LABEL: test_shared_private_shared_i64: ; CHECK-COMMON: // %bb.0: ; CHECK-COMMON-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill -; CHECK-COMMON-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-COMMON-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-COMMON-NEXT: mov x29, sp ; CHECK-COMMON-NEXT: sub sp, sp, #16 ; CHECK-COMMON-NEXT: rdsvl x8, #1 @@ -556,7 +556,7 @@ define i64 @test_shared_private_shared_i64(i64 %x) nounwind "aarch64_inout_za" { ; CHECK-COMMON-NEXT: msr TPIDR2_EL0, xzr ; CHECK-COMMON-NEXT: bl shared_za_callee_i64 ; CHECK-COMMON-NEXT: mov sp, x29 -; CHECK-COMMON-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-COMMON-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-COMMON-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-COMMON-NEXT: ret %a = call i64 @shared_za_callee_i64(i64 %x) @@ -575,7 +575,7 @@ define i64 @test_many_callee_arguments( ; CHECK-LABEL: test_many_callee_arguments: ; CHECK: // %bb.0: ; CHECK-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill -; CHECK-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-NEXT: mov x29, sp ; CHECK-NEXT: sub sp, sp, #16 ; CHECK-NEXT: mov x8, sp @@ -600,14 +600,14 @@ define i64 @test_many_callee_arguments( ; CHECK-NEXT: mov x0, x1 ; CHECK-NEXT: msr TPIDR2_EL0, xzr ; CHECK-NEXT: mov sp, x29 -; CHECK-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-NEXT: ret ; ; CHECK-NEWLOWERING-LABEL: test_many_callee_arguments: ; CHECK-NEWLOWERING: // %bb.0: ; CHECK-NEWLOWERING-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill -; CHECK-NEWLOWERING-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-NEWLOWERING-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-NEWLOWERING-NEXT: mov x29, sp ; CHECK-NEWLOWERING-NEXT: sub sp, sp, #16 ; CHECK-NEWLOWERING-NEXT: rdsvl x8, #1 @@ -632,7 +632,7 @@ define i64 @test_many_callee_arguments( ; CHECK-NEWLOWERING-NEXT: mov x0, x8 ; CHECK-NEWLOWERING-NEXT: msr TPIDR2_EL0, xzr ; CHECK-NEWLOWERING-NEXT: mov sp, x29 -; CHECK-NEWLOWERING-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-NEWLOWERING-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-NEWLOWERING-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-NEWLOWERING-NEXT: ret i64 %0, i64 %1, i64 %2, i64 %3, i64 %4, i64 %5, i64 %6, i64 %7, i64 %8, i64 %9 diff --git a/llvm/test/CodeGen/AArch64/sme-lazy-save-windows.ll b/llvm/test/CodeGen/AArch64/sme-lazy-save-windows.ll index 1c341e8daf491..f7f8b223f233b 100644 --- a/llvm/test/CodeGen/AArch64/sme-lazy-save-windows.ll +++ b/llvm/test/CodeGen/AArch64/sme-lazy-save-windows.ll @@ -9,7 +9,7 @@ define void @test_lazy_save() nounwind "aarch64_inout_za" { ; CHECK-LABEL: test_lazy_save: ; CHECK: // %bb.0: ; CHECK-NEXT: stp x30, x29, [sp, #-32]! // 16-byte Folded Spill -; CHECK-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-NEXT: mov x29, sp ; CHECK-NEXT: sub sp, sp, #16 ; CHECK-NEXT: rdsvl x8, #1 @@ -31,7 +31,7 @@ define void @test_lazy_save() nounwind "aarch64_inout_za" { ; CHECK-NEXT: .LBB0_2: ; CHECK-NEXT: msr TPIDR2_EL0, xzr ; CHECK-NEXT: mov sp, x29 -; CHECK-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-NEXT: ldp x30, x29, [sp], #32 // 16-byte Folded Reload ; CHECK-NEXT: ret call void @private_za_callee() diff --git a/llvm/test/CodeGen/AArch64/sme-must-save-lr-for-vg.ll b/llvm/test/CodeGen/AArch64/sme-must-save-lr-for-vg.ll index 2e198ad8f0d05..af9466046c27c 100644 --- a/llvm/test/CodeGen/AArch64/sme-must-save-lr-for-vg.ll +++ b/llvm/test/CodeGen/AArch64/sme-must-save-lr-for-vg.ll @@ -13,7 +13,7 @@ define void @foo() "aarch64_pstate_sm_body" { ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill ; CHECK-NEXT: stp x29, x30, [sp, #64] // 16-byte Folded Spill ; CHECK-NEXT: bl __arm_get_current_vg -; CHECK-NEXT: str x0, [sp, #80] // 8-byte Folded Spill +; CHECK-NEXT: str x0, [sp, #80] // 8-byte Spill ; CHECK-NEXT: .cfi_offset vg, -16 ; CHECK-NEXT: .cfi_offset w30, -24 ; CHECK-NEXT: .cfi_offset w29, -32 diff --git a/llvm/test/CodeGen/AArch64/sme-new-za-function.ll b/llvm/test/CodeGen/AArch64/sme-new-za-function.ll index 78f7e5c009288..0717387ae2963 100644 --- a/llvm/test/CodeGen/AArch64/sme-new-za-function.ll +++ b/llvm/test/CodeGen/AArch64/sme-new-za-function.ll @@ -56,12 +56,12 @@ define i32 @private_za_multiple_exit(i32 %a, i32 %b, i64 %cond) "aarch64_new_za" ; CHECK-LABEL: private_za_multiple_exit: ; CHECK: // %bb.0: // %prelude ; CHECK-NEXT: sub sp, sp, #32 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset w30, -16 -; CHECK-NEXT: str x2, [sp] // 8-byte Folded Spill -; CHECK-NEXT: str w1, [sp, #8] // 4-byte Folded Spill -; CHECK-NEXT: str w0, [sp, #12] // 4-byte Folded Spill +; CHECK-NEXT: str x2, [sp] // 8-byte Spill +; CHECK-NEXT: str w1, [sp, #8] // 4-byte Spill +; CHECK-NEXT: str w0, [sp, #12] // 4-byte Spill ; CHECK-NEXT: rdsvl x8, #1 ; CHECK-NEXT: mrs x8, TPIDR2_EL0 ; CHECK-NEXT: cbz x8, .LBB1_2 @@ -72,26 +72,26 @@ define i32 @private_za_multiple_exit(i32 %a, i32 %b, i64 %cond) "aarch64_new_za" ; CHECK-NEXT: msr TPIDR2_EL0, x8 ; CHECK-NEXT: b .LBB1_2 ; CHECK-NEXT: .LBB1_2: // %entry -; CHECK-NEXT: ldr x8, [sp] // 8-byte Folded Reload +; CHECK-NEXT: ldr x8, [sp] // 8-byte Reload ; CHECK-NEXT: smstart za ; CHECK-NEXT: zero {za} ; CHECK-NEXT: subs x8, x8, #1 ; CHECK-NEXT: b.ne .LBB1_4 ; CHECK-NEXT: b .LBB1_3 ; CHECK-NEXT: .LBB1_3: // %if.else -; CHECK-NEXT: ldr w8, [sp, #12] // 4-byte Folded Reload -; CHECK-NEXT: ldr w9, [sp, #8] // 4-byte Folded Reload +; CHECK-NEXT: ldr w8, [sp, #12] // 4-byte Reload +; CHECK-NEXT: ldr w9, [sp, #8] // 4-byte Reload ; CHECK-NEXT: add w0, w8, w9 ; CHECK-NEXT: smstop za -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: ret ; CHECK-NEXT: .LBB1_4: // %if.end -; CHECK-NEXT: ldr w8, [sp, #12] // 4-byte Folded Reload -; CHECK-NEXT: ldr w9, [sp, #8] // 4-byte Folded Reload +; CHECK-NEXT: ldr w8, [sp, #12] // 4-byte Reload +; CHECK-NEXT: ldr w9, [sp, #8] // 4-byte Reload ; CHECK-NEXT: subs w0, w8, w9 ; CHECK-NEXT: smstop za -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: ret ; @@ -109,21 +109,21 @@ define i32 @private_za_multiple_exit(i32 %a, i32 %b, i64 %cond) "aarch64_new_za" ; CHECK-NEWLOWERING-NEXT: b .LBB1_2 ; CHECK-NEWLOWERING-NEXT: .LBB1_2: // %entry ; CHECK-NEWLOWERING-NEXT: smstart za -; CHECK-NEWLOWERING-NEXT: str w1, [sp, #8] // 4-byte Folded Spill -; CHECK-NEWLOWERING-NEXT: str w0, [sp, #12] // 4-byte Folded Spill +; CHECK-NEWLOWERING-NEXT: str w1, [sp, #8] // 4-byte Spill +; CHECK-NEWLOWERING-NEXT: str w0, [sp, #12] // 4-byte Spill ; CHECK-NEWLOWERING-NEXT: subs x8, x2, #1 ; CHECK-NEWLOWERING-NEXT: b.ne .LBB1_4 ; CHECK-NEWLOWERING-NEXT: b .LBB1_3 ; CHECK-NEWLOWERING-NEXT: .LBB1_3: // %if.else -; CHECK-NEWLOWERING-NEXT: ldr w8, [sp, #12] // 4-byte Folded Reload -; CHECK-NEWLOWERING-NEXT: ldr w9, [sp, #8] // 4-byte Folded Reload +; CHECK-NEWLOWERING-NEXT: ldr w8, [sp, #12] // 4-byte Reload +; CHECK-NEWLOWERING-NEXT: ldr w9, [sp, #8] // 4-byte Reload ; CHECK-NEWLOWERING-NEXT: add w0, w8, w9 ; CHECK-NEWLOWERING-NEXT: smstop za ; CHECK-NEWLOWERING-NEXT: add sp, sp, #16 ; CHECK-NEWLOWERING-NEXT: ret ; CHECK-NEWLOWERING-NEXT: .LBB1_4: // %if.end -; CHECK-NEWLOWERING-NEXT: ldr w8, [sp, #12] // 4-byte Folded Reload -; CHECK-NEWLOWERING-NEXT: ldr w9, [sp, #8] // 4-byte Folded Reload +; CHECK-NEWLOWERING-NEXT: ldr w8, [sp, #12] // 4-byte Reload +; CHECK-NEWLOWERING-NEXT: ldr w9, [sp, #8] // 4-byte Reload ; CHECK-NEWLOWERING-NEXT: subs w0, w8, w9 ; CHECK-NEWLOWERING-NEXT: smstop za ; CHECK-NEWLOWERING-NEXT: add sp, sp, #16 @@ -146,10 +146,10 @@ define i32 @private_za_trivially_does_not_use_za(i32 %x) "aarch64_new_za" { ; CHECK-LABEL: private_za_trivially_does_not_use_za: ; CHECK: // %bb.0: // %prelude ; CHECK-NEXT: sub sp, sp, #32 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset w30, -16 -; CHECK-NEXT: str w0, [sp, #12] // 4-byte Folded Spill +; CHECK-NEXT: str w0, [sp, #12] // 4-byte Spill ; CHECK-NEXT: rdsvl x8, #1 ; CHECK-NEXT: mrs x8, TPIDR2_EL0 ; CHECK-NEXT: cbz x8, .LBB2_2 @@ -160,12 +160,12 @@ define i32 @private_za_trivially_does_not_use_za(i32 %x) "aarch64_new_za" { ; CHECK-NEXT: msr TPIDR2_EL0, x8 ; CHECK-NEXT: b .LBB2_2 ; CHECK-NEXT: .LBB2_2: -; CHECK-NEXT: ldr w8, [sp, #12] // 4-byte Folded Reload +; CHECK-NEXT: ldr w8, [sp, #12] // 4-byte Reload ; CHECK-NEXT: smstart za ; CHECK-NEXT: zero {za} ; CHECK-NEXT: add w0, w8, w8 ; CHECK-NEXT: smstop za -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: ret ; diff --git a/llvm/test/CodeGen/AArch64/sme-peephole-opts.ll b/llvm/test/CodeGen/AArch64/sme-peephole-opts.ll index ced0d41c22dab..a3027f01e73cf 100644 --- a/llvm/test/CodeGen/AArch64/sme-peephole-opts.ll +++ b/llvm/test/CodeGen/AArch64/sme-peephole-opts.ll @@ -14,13 +14,13 @@ define void @test0(ptr %callee) nounwind { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-NEXT: smstart sm ; CHECK-NEXT: bl callee_sm ; CHECK-NEXT: bl callee_sm ; CHECK-NEXT: smstop sm ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload ; CHECK-NEXT: ldp d15, d14, [sp], #80 // 16-byte Folded Reload @@ -38,13 +38,13 @@ define void @test1() nounwind "aarch64_pstate_sm_enabled" { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-NEXT: smstop sm ; CHECK-NEXT: bl callee ; CHECK-NEXT: bl callee ; CHECK-NEXT: smstart sm ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload ; CHECK-NEXT: ldp d15, d14, [sp], #80 // 16-byte Folded Reload @@ -142,7 +142,7 @@ define void @test4() nounwind "aarch64_pstate_sm_enabled" { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-NEXT: smstop sm ; CHECK-NEXT: fmov s0, wzr ; CHECK-NEXT: bl callee_farg @@ -150,7 +150,7 @@ define void @test4() nounwind "aarch64_pstate_sm_enabled" { ; CHECK-NEXT: bl callee_farg ; CHECK-NEXT: smstart sm ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload ; CHECK-NEXT: ldp d15, d14, [sp], #80 // 16-byte Folded Reload @@ -169,16 +169,16 @@ define void @test5(float %f) nounwind "aarch64_pstate_sm_enabled" { ; CHECK-NEXT: stp d13, d12, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #48] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #64] // 16-byte Folded Spill -; CHECK-NEXT: str x30, [sp, #80] // 8-byte Folded Spill -; CHECK-NEXT: str s0, [sp, #12] // 4-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #80] // 8-byte Spill +; CHECK-NEXT: str s0, [sp, #12] // 4-byte Spill ; CHECK-NEXT: smstop sm -; CHECK-NEXT: ldr s0, [sp, #12] // 4-byte Folded Reload +; CHECK-NEXT: ldr s0, [sp, #12] // 4-byte Reload ; CHECK-NEXT: bl callee_farg -; CHECK-NEXT: ldr s0, [sp, #12] // 4-byte Folded Reload +; CHECK-NEXT: ldr s0, [sp, #12] // 4-byte Reload ; CHECK-NEXT: bl callee_farg ; CHECK-NEXT: smstart sm ; CHECK-NEXT: ldp d9, d8, [sp, #64] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #80] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #80] // 8-byte Reload ; CHECK-NEXT: ldp d11, d10, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d15, d14, [sp, #16] // 16-byte Folded Reload @@ -197,18 +197,18 @@ define float @test6(float %f) nounwind "aarch64_pstate_sm_enabled" { ; CHECK-NEXT: stp d13, d12, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #48] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #64] // 16-byte Folded Spill -; CHECK-NEXT: str x30, [sp, #80] // 8-byte Folded Spill -; CHECK-NEXT: str s0, [sp, #12] // 4-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #80] // 8-byte Spill +; CHECK-NEXT: str s0, [sp, #12] // 4-byte Spill ; CHECK-NEXT: smstop sm -; CHECK-NEXT: ldr s0, [sp, #12] // 4-byte Folded Reload +; CHECK-NEXT: ldr s0, [sp, #12] // 4-byte Reload ; CHECK-NEXT: bl callee_farg_fret ; CHECK-NEXT: bl callee_farg_fret -; CHECK-NEXT: str s0, [sp, #12] // 4-byte Folded Spill +; CHECK-NEXT: str s0, [sp, #12] // 4-byte Spill ; CHECK-NEXT: smstart sm ; CHECK-NEXT: ldp d9, d8, [sp, #64] // 16-byte Folded Reload -; CHECK-NEXT: ldr s0, [sp, #12] // 4-byte Folded Reload +; CHECK-NEXT: ldr s0, [sp, #12] // 4-byte Reload ; CHECK-NEXT: ldp d11, d10, [sp, #48] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #80] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #80] // 8-byte Reload ; CHECK-NEXT: ldp d13, d12, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d15, d14, [sp, #16] // 16-byte Folded Reload ; CHECK-NEXT: add sp, sp, #96 @@ -253,13 +253,13 @@ define void @test8() nounwind "aarch64_pstate_sm_enabled" { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-NEXT: smstop sm ; CHECK-NEXT: bl callee ; CHECK-NEXT: smstart sm ; CHECK-NEXT: smstop za ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload ; CHECK-NEXT: ldp d15, d14, [sp], #80 // 16-byte Folded Reload @@ -291,21 +291,21 @@ define aarch64_sve_vector_pcs void @test9_1() "aarch64_pstate_sm_body" { ; CHECK-LABEL: test9_1: ; CHECK: // %bb.0: ; CHECK-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill -; CHECK-NEXT: str x28, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x28, [sp, #16] // 8-byte Spill ; CHECK-NEXT: mov x29, sp ; CHECK-NEXT: addsvl sp, sp, #-18 -; CHECK-NEXT: str p15, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p14, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p13, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p15, [sp, #4, mul vl] // 2-byte Spill +; CHECK-NEXT: str p14, [sp, #5, mul vl] // 2-byte Spill +; CHECK-NEXT: str p13, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill +; CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill +; CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; CHECK-NEXT: str z23, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z22, [sp, #3, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z21, [sp, #4, mul vl] // 16-byte Folded Spill @@ -351,20 +351,20 @@ define aarch64_sve_vector_pcs void @test9_1() "aarch64_pstate_sm_body" { ; CHECK-NEXT: ldr z10, [sp, #15, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z9, [sp, #16, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z8, [sp, #17, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; CHECK-NEXT: addsvl sp, sp, #18 -; CHECK-NEXT: ldr x28, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x28, [sp, #16] // 8-byte Reload ; CHECK-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-NEXT: ret call void @callee() @@ -384,7 +384,7 @@ define void @test10() "aarch64_pstate_sm_body" { ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill ; CHECK-NEXT: stp x29, x30, [sp, #64] // 16-byte Folded Spill -; CHECK-NEXT: str x9, [sp, #80] // 8-byte Folded Spill +; CHECK-NEXT: str x9, [sp, #80] // 8-byte Spill ; CHECK-NEXT: .cfi_offset vg, -16 ; CHECK-NEXT: .cfi_offset w30, -24 ; CHECK-NEXT: .cfi_offset w29, -32 @@ -469,7 +469,7 @@ define void @test12() "aarch64_pstate_sm_body" { ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill ; CHECK-NEXT: stp x29, x30, [sp, #64] // 16-byte Folded Spill -; CHECK-NEXT: str x9, [sp, #80] // 8-byte Folded Spill +; CHECK-NEXT: str x9, [sp, #80] // 8-byte Spill ; CHECK-NEXT: .cfi_offset vg, -16 ; CHECK-NEXT: .cfi_offset w30, -24 ; CHECK-NEXT: .cfi_offset w29, -32 @@ -522,7 +522,7 @@ define void @test13(ptr %ptr) nounwind "aarch64_pstate_sm_enabled" { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x29, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x29, [sp, #64] // 8-byte Spill ; CHECK-NEXT: stp x30, x19, [sp, #80] // 16-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: mov z0.s, #0 // =0x0 @@ -552,7 +552,7 @@ define void @test13(ptr %ptr) nounwind "aarch64_pstate_sm_enabled" { ; CHECK-NEXT: str z0, [x19] ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldp x30, x19, [sp, #80] // 16-byte Folded Reload -; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -574,7 +574,7 @@ define void @test14(ptr %callee) nounwind "aarch64_inout_za" { ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill ; CHECK-NEXT: stp x29, x30, [sp, #64] // 16-byte Folded Spill ; CHECK-NEXT: add x29, sp, #64 -; CHECK-NEXT: str x19, [sp, #80] // 8-byte Folded Spill +; CHECK-NEXT: str x19, [sp, #80] // 8-byte Spill ; CHECK-NEXT: sub sp, sp, #16 ; CHECK-NEXT: rdsvl x8, #1 ; CHECK-NEXT: mov x9, sp @@ -597,7 +597,7 @@ define void @test14(ptr %callee) nounwind "aarch64_inout_za" { ; CHECK-NEXT: msr TPIDR2_EL0, xzr ; CHECK-NEXT: sub sp, x29, #64 ; CHECK-NEXT: ldp x29, x30, [sp, #64] // 16-byte Folded Reload -; CHECK-NEXT: ldr x19, [sp, #80] // 8-byte Folded Reload +; CHECK-NEXT: ldr x19, [sp, #80] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -653,7 +653,7 @@ define void @test16(ptr %callee) nounwind "aarch64_pstate_sm_body" "aarch64_new_ ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill ; CHECK-NEXT: stp x29, x30, [sp, #64] // 16-byte Folded Spill ; CHECK-NEXT: add x29, sp, #64 -; CHECK-NEXT: str x19, [sp, #80] // 8-byte Folded Spill +; CHECK-NEXT: str x19, [sp, #80] // 8-byte Spill ; CHECK-NEXT: sub sp, sp, #16 ; CHECK-NEXT: rdsvl x8, #1 ; CHECK-NEXT: mov x9, sp @@ -678,7 +678,7 @@ define void @test16(ptr %callee) nounwind "aarch64_pstate_sm_body" "aarch64_new_ ; CHECK-NEXT: smstop za ; CHECK-NEXT: sub sp, x29, #64 ; CHECK-NEXT: ldp x29, x30, [sp, #64] // 16-byte Folded Reload -; CHECK-NEXT: ldr x19, [sp, #80] // 8-byte Folded Reload +; CHECK-NEXT: ldr x19, [sp, #80] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload diff --git a/llvm/test/CodeGen/AArch64/sme-pstate-sm-changing-call-disable-coalescing.ll b/llvm/test/CodeGen/AArch64/sme-pstate-sm-changing-call-disable-coalescing.ll index b947c943ba448..d5736b89c5966 100644 --- a/llvm/test/CodeGen/AArch64/sme-pstate-sm-changing-call-disable-coalescing.ll +++ b/llvm/test/CodeGen/AArch64/sme-pstate-sm-changing-call-disable-coalescing.ll @@ -19,7 +19,7 @@ define void @dont_coalesce_arg_i8(i8 %arg, ptr %ptr) #0 { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x29, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x29, [sp, #64] // 8-byte Spill ; CHECK-NEXT: stp x30, x19, [sp, #80] // 16-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: fmov s0, w0 @@ -32,7 +32,7 @@ define void @dont_coalesce_arg_i8(i8 %arg, ptr %ptr) #0 { ; CHECK-NEXT: str z0, [x19] ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldp x30, x19, [sp, #80] // 16-byte Folded Reload -; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -51,7 +51,7 @@ define void @dont_coalesce_arg_i16(i16 %arg, ptr %ptr) #0 { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x29, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x29, [sp, #64] // 8-byte Spill ; CHECK-NEXT: stp x30, x19, [sp, #80] // 16-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: fmov s0, w0 @@ -64,7 +64,7 @@ define void @dont_coalesce_arg_i16(i16 %arg, ptr %ptr) #0 { ; CHECK-NEXT: str z0, [x19] ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldp x30, x19, [sp, #80] // 16-byte Folded Reload -; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -83,7 +83,7 @@ define void @dont_coalesce_arg_i32(i32 %arg, ptr %ptr) #0 { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x29, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x29, [sp, #64] // 8-byte Spill ; CHECK-NEXT: stp x30, x19, [sp, #80] // 16-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: fmov s0, w0 @@ -96,7 +96,7 @@ define void @dont_coalesce_arg_i32(i32 %arg, ptr %ptr) #0 { ; CHECK-NEXT: str z0, [x19] ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldp x30, x19, [sp, #80] // 16-byte Folded Reload -; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -115,7 +115,7 @@ define void @dont_coalesce_arg_i64(i64 %arg, ptr %ptr) #0 { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x29, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x29, [sp, #64] // 8-byte Spill ; CHECK-NEXT: stp x30, x19, [sp, #80] // 16-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: fmov d0, x0 @@ -128,7 +128,7 @@ define void @dont_coalesce_arg_i64(i64 %arg, ptr %ptr) #0 { ; CHECK-NEXT: str z0, [x19] ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldp x30, x19, [sp, #80] // 16-byte Folded Reload -; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -147,7 +147,7 @@ define void @dont_coalesce_arg_f16(half %arg, ptr %ptr) #0 { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x29, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x29, [sp, #64] // 8-byte Spill ; CHECK-NEXT: stp x30, x19, [sp, #80] // 16-byte Folded Spill ; CHECK-NEXT: sub sp, sp, #16 ; CHECK-NEXT: addvl sp, sp, #-1 @@ -156,9 +156,9 @@ define void @dont_coalesce_arg_f16(half %arg, ptr %ptr) #0 { ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: str z0, [x8] // 16-byte Folded Spill ; CHECK-NEXT: // kill: def $h0 killed $h0 killed $z0 -; CHECK-NEXT: str h0, [sp, #14] // 2-byte Folded Spill +; CHECK-NEXT: str h0, [sp, #14] // 2-byte Spill ; CHECK-NEXT: smstop sm -; CHECK-NEXT: ldr h0, [sp, #14] // 2-byte Folded Reload +; CHECK-NEXT: ldr h0, [sp, #14] // 2-byte Reload ; CHECK-NEXT: bl use_f16 ; CHECK-NEXT: smstart sm ; CHECK-NEXT: add x8, sp, #16 @@ -167,7 +167,7 @@ define void @dont_coalesce_arg_f16(half %arg, ptr %ptr) #0 { ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: add sp, sp, #16 ; CHECK-NEXT: ldp x30, x19, [sp, #80] // 16-byte Folded Reload -; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -186,7 +186,7 @@ define void @dont_coalesce_arg_f32(float %arg, ptr %ptr) #0 { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x29, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x29, [sp, #64] // 8-byte Spill ; CHECK-NEXT: stp x30, x19, [sp, #80] // 16-byte Folded Spill ; CHECK-NEXT: sub sp, sp, #16 ; CHECK-NEXT: addvl sp, sp, #-1 @@ -195,9 +195,9 @@ define void @dont_coalesce_arg_f32(float %arg, ptr %ptr) #0 { ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: str z0, [x8] // 16-byte Folded Spill ; CHECK-NEXT: // kill: def $s0 killed $s0 killed $z0 -; CHECK-NEXT: str s0, [sp, #12] // 4-byte Folded Spill +; CHECK-NEXT: str s0, [sp, #12] // 4-byte Spill ; CHECK-NEXT: smstop sm -; CHECK-NEXT: ldr s0, [sp, #12] // 4-byte Folded Reload +; CHECK-NEXT: ldr s0, [sp, #12] // 4-byte Reload ; CHECK-NEXT: bl use_f32 ; CHECK-NEXT: smstart sm ; CHECK-NEXT: add x8, sp, #16 @@ -206,7 +206,7 @@ define void @dont_coalesce_arg_f32(float %arg, ptr %ptr) #0 { ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: add sp, sp, #16 ; CHECK-NEXT: ldp x30, x19, [sp, #80] // 16-byte Folded Reload -; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -225,7 +225,7 @@ define void @dont_coalesce_arg_f64(double %arg, ptr %ptr) #0 { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x29, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x29, [sp, #64] // 8-byte Spill ; CHECK-NEXT: stp x30, x19, [sp, #80] // 16-byte Folded Spill ; CHECK-NEXT: sub sp, sp, #16 ; CHECK-NEXT: addvl sp, sp, #-1 @@ -234,9 +234,9 @@ define void @dont_coalesce_arg_f64(double %arg, ptr %ptr) #0 { ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: str z0, [x8] // 16-byte Folded Spill ; CHECK-NEXT: // kill: def $d0 killed $d0 killed $z0 -; CHECK-NEXT: str d0, [sp, #8] // 8-byte Folded Spill +; CHECK-NEXT: str d0, [sp, #8] // 8-byte Spill ; CHECK-NEXT: smstop sm -; CHECK-NEXT: ldr d0, [sp, #8] // 8-byte Folded Reload +; CHECK-NEXT: ldr d0, [sp, #8] // 8-byte Reload ; CHECK-NEXT: bl use_f64 ; CHECK-NEXT: smstart sm ; CHECK-NEXT: add x8, sp, #16 @@ -245,7 +245,7 @@ define void @dont_coalesce_arg_f64(double %arg, ptr %ptr) #0 { ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: add sp, sp, #16 ; CHECK-NEXT: ldp x30, x19, [sp, #80] // 16-byte Folded Reload -; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -269,7 +269,7 @@ define void @dont_coalesce_arg_v1i8(<1 x i8> %arg, ptr %ptr) #0 { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x29, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x29, [sp, #64] // 8-byte Spill ; CHECK-NEXT: stp x30, x19, [sp, #80] // 16-byte Folded Spill ; CHECK-NEXT: sub sp, sp, #16 ; CHECK-NEXT: addvl sp, sp, #-1 @@ -278,9 +278,9 @@ define void @dont_coalesce_arg_v1i8(<1 x i8> %arg, ptr %ptr) #0 { ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: str z0, [x8] // 16-byte Folded Spill ; CHECK-NEXT: // kill: def $d0 killed $d0 killed $z0 -; CHECK-NEXT: str d0, [sp, #8] // 8-byte Folded Spill +; CHECK-NEXT: str d0, [sp, #8] // 8-byte Spill ; CHECK-NEXT: smstop sm -; CHECK-NEXT: ldr d0, [sp, #8] // 8-byte Folded Reload +; CHECK-NEXT: ldr d0, [sp, #8] // 8-byte Reload ; CHECK-NEXT: bl use_v16i8 ; CHECK-NEXT: smstart sm ; CHECK-NEXT: add x8, sp, #16 @@ -289,7 +289,7 @@ define void @dont_coalesce_arg_v1i8(<1 x i8> %arg, ptr %ptr) #0 { ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: add sp, sp, #16 ; CHECK-NEXT: ldp x30, x19, [sp, #80] // 16-byte Folded Reload -; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -309,7 +309,7 @@ define void @dont_coalesce_arg_v1i16(<1 x i16> %arg, ptr %ptr) #0 { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x29, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x29, [sp, #64] // 8-byte Spill ; CHECK-NEXT: stp x30, x19, [sp, #80] // 16-byte Folded Spill ; CHECK-NEXT: sub sp, sp, #16 ; CHECK-NEXT: addvl sp, sp, #-1 @@ -318,9 +318,9 @@ define void @dont_coalesce_arg_v1i16(<1 x i16> %arg, ptr %ptr) #0 { ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: str z0, [x8] // 16-byte Folded Spill ; CHECK-NEXT: // kill: def $d0 killed $d0 killed $z0 -; CHECK-NEXT: str d0, [sp, #8] // 8-byte Folded Spill +; CHECK-NEXT: str d0, [sp, #8] // 8-byte Spill ; CHECK-NEXT: smstop sm -; CHECK-NEXT: ldr d0, [sp, #8] // 8-byte Folded Reload +; CHECK-NEXT: ldr d0, [sp, #8] // 8-byte Reload ; CHECK-NEXT: bl use_v8i16 ; CHECK-NEXT: smstart sm ; CHECK-NEXT: add x8, sp, #16 @@ -329,7 +329,7 @@ define void @dont_coalesce_arg_v1i16(<1 x i16> %arg, ptr %ptr) #0 { ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: add sp, sp, #16 ; CHECK-NEXT: ldp x30, x19, [sp, #80] // 16-byte Folded Reload -; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -349,7 +349,7 @@ define void @dont_coalesce_arg_v1i32(<1 x i32> %arg, ptr %ptr) #0 { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x29, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x29, [sp, #64] // 8-byte Spill ; CHECK-NEXT: stp x30, x19, [sp, #80] // 16-byte Folded Spill ; CHECK-NEXT: sub sp, sp, #16 ; CHECK-NEXT: addvl sp, sp, #-1 @@ -358,9 +358,9 @@ define void @dont_coalesce_arg_v1i32(<1 x i32> %arg, ptr %ptr) #0 { ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: str z0, [x8] // 16-byte Folded Spill ; CHECK-NEXT: // kill: def $d0 killed $d0 killed $z0 -; CHECK-NEXT: str d0, [sp, #8] // 8-byte Folded Spill +; CHECK-NEXT: str d0, [sp, #8] // 8-byte Spill ; CHECK-NEXT: smstop sm -; CHECK-NEXT: ldr d0, [sp, #8] // 8-byte Folded Reload +; CHECK-NEXT: ldr d0, [sp, #8] // 8-byte Reload ; CHECK-NEXT: bl use_v4i32 ; CHECK-NEXT: smstart sm ; CHECK-NEXT: add x8, sp, #16 @@ -369,7 +369,7 @@ define void @dont_coalesce_arg_v1i32(<1 x i32> %arg, ptr %ptr) #0 { ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: add sp, sp, #16 ; CHECK-NEXT: ldp x30, x19, [sp, #80] // 16-byte Folded Reload -; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -389,7 +389,7 @@ define void @dont_coalesce_arg_v1i64(<1 x i64> %arg, ptr %ptr) #0 { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x29, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x29, [sp, #64] // 8-byte Spill ; CHECK-NEXT: stp x30, x19, [sp, #80] // 16-byte Folded Spill ; CHECK-NEXT: sub sp, sp, #16 ; CHECK-NEXT: addvl sp, sp, #-1 @@ -398,9 +398,9 @@ define void @dont_coalesce_arg_v1i64(<1 x i64> %arg, ptr %ptr) #0 { ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: str z0, [x8] // 16-byte Folded Spill ; CHECK-NEXT: // kill: def $d0 killed $d0 killed $z0 -; CHECK-NEXT: str d0, [sp, #8] // 8-byte Folded Spill +; CHECK-NEXT: str d0, [sp, #8] // 8-byte Spill ; CHECK-NEXT: smstop sm -; CHECK-NEXT: ldr d0, [sp, #8] // 8-byte Folded Reload +; CHECK-NEXT: ldr d0, [sp, #8] // 8-byte Reload ; CHECK-NEXT: bl use_v2i64 ; CHECK-NEXT: smstart sm ; CHECK-NEXT: add x8, sp, #16 @@ -409,7 +409,7 @@ define void @dont_coalesce_arg_v1i64(<1 x i64> %arg, ptr %ptr) #0 { ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: add sp, sp, #16 ; CHECK-NEXT: ldp x30, x19, [sp, #80] // 16-byte Folded Reload -; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -429,7 +429,7 @@ define void @dont_coalesce_arg_v1f16(<1 x half> %arg, ptr %ptr) #0 { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x29, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x29, [sp, #64] // 8-byte Spill ; CHECK-NEXT: stp x30, x19, [sp, #80] // 16-byte Folded Spill ; CHECK-NEXT: sub sp, sp, #16 ; CHECK-NEXT: addvl sp, sp, #-1 @@ -438,9 +438,9 @@ define void @dont_coalesce_arg_v1f16(<1 x half> %arg, ptr %ptr) #0 { ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: str z0, [x8] // 16-byte Folded Spill ; CHECK-NEXT: // kill: def $h0 killed $h0 killed $z0 -; CHECK-NEXT: str h0, [sp, #14] // 2-byte Folded Spill +; CHECK-NEXT: str h0, [sp, #14] // 2-byte Spill ; CHECK-NEXT: smstop sm -; CHECK-NEXT: ldr h0, [sp, #14] // 2-byte Folded Reload +; CHECK-NEXT: ldr h0, [sp, #14] // 2-byte Reload ; CHECK-NEXT: bl use_v8f16 ; CHECK-NEXT: smstart sm ; CHECK-NEXT: add x8, sp, #16 @@ -449,7 +449,7 @@ define void @dont_coalesce_arg_v1f16(<1 x half> %arg, ptr %ptr) #0 { ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: add sp, sp, #16 ; CHECK-NEXT: ldp x30, x19, [sp, #80] // 16-byte Folded Reload -; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -469,7 +469,7 @@ define void @dont_coalesce_arg_v1f32(<1 x float> %arg, ptr %ptr) #0 { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x29, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x29, [sp, #64] // 8-byte Spill ; CHECK-NEXT: stp x30, x19, [sp, #80] // 16-byte Folded Spill ; CHECK-NEXT: sub sp, sp, #16 ; CHECK-NEXT: addvl sp, sp, #-1 @@ -478,9 +478,9 @@ define void @dont_coalesce_arg_v1f32(<1 x float> %arg, ptr %ptr) #0 { ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: str z0, [x8] // 16-byte Folded Spill ; CHECK-NEXT: // kill: def $d0 killed $d0 killed $z0 -; CHECK-NEXT: str d0, [sp, #8] // 8-byte Folded Spill +; CHECK-NEXT: str d0, [sp, #8] // 8-byte Spill ; CHECK-NEXT: smstop sm -; CHECK-NEXT: ldr d0, [sp, #8] // 8-byte Folded Reload +; CHECK-NEXT: ldr d0, [sp, #8] // 8-byte Reload ; CHECK-NEXT: bl use_v4f32 ; CHECK-NEXT: smstart sm ; CHECK-NEXT: add x8, sp, #16 @@ -489,7 +489,7 @@ define void @dont_coalesce_arg_v1f32(<1 x float> %arg, ptr %ptr) #0 { ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: add sp, sp, #16 ; CHECK-NEXT: ldp x30, x19, [sp, #80] // 16-byte Folded Reload -; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -509,7 +509,7 @@ define void @dont_coalesce_arg_v1f64(<1 x double> %arg, ptr %ptr) #0 { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x29, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x29, [sp, #64] // 8-byte Spill ; CHECK-NEXT: stp x30, x19, [sp, #80] // 16-byte Folded Spill ; CHECK-NEXT: sub sp, sp, #16 ; CHECK-NEXT: addvl sp, sp, #-1 @@ -518,9 +518,9 @@ define void @dont_coalesce_arg_v1f64(<1 x double> %arg, ptr %ptr) #0 { ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: str z0, [x8] // 16-byte Folded Spill ; CHECK-NEXT: // kill: def $d0 killed $d0 killed $z0 -; CHECK-NEXT: str d0, [sp, #8] // 8-byte Folded Spill +; CHECK-NEXT: str d0, [sp, #8] // 8-byte Spill ; CHECK-NEXT: smstop sm -; CHECK-NEXT: ldr d0, [sp, #8] // 8-byte Folded Reload +; CHECK-NEXT: ldr d0, [sp, #8] // 8-byte Reload ; CHECK-NEXT: bl use_v2f64 ; CHECK-NEXT: smstart sm ; CHECK-NEXT: add x8, sp, #16 @@ -529,7 +529,7 @@ define void @dont_coalesce_arg_v1f64(<1 x double> %arg, ptr %ptr) #0 { ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: add sp, sp, #16 ; CHECK-NEXT: ldp x30, x19, [sp, #80] // 16-byte Folded Reload -; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -553,7 +553,7 @@ define void @dont_coalesce_arg_v16i8(<16 x i8> %arg, ptr %ptr) #0 { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x29, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x29, [sp, #64] // 8-byte Spill ; CHECK-NEXT: stp x30, x19, [sp, #80] // 16-byte Folded Spill ; CHECK-NEXT: sub sp, sp, #16 ; CHECK-NEXT: addvl sp, sp, #-1 @@ -562,9 +562,9 @@ define void @dont_coalesce_arg_v16i8(<16 x i8> %arg, ptr %ptr) #0 { ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: str z0, [x8] // 16-byte Folded Spill ; CHECK-NEXT: // kill: def $q0 killed $q0 killed $z0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: smstop sm -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: bl use_v16i8 ; CHECK-NEXT: smstart sm ; CHECK-NEXT: add x8, sp, #16 @@ -573,7 +573,7 @@ define void @dont_coalesce_arg_v16i8(<16 x i8> %arg, ptr %ptr) #0 { ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: add sp, sp, #16 ; CHECK-NEXT: ldp x30, x19, [sp, #80] // 16-byte Folded Reload -; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -592,7 +592,7 @@ define void @dont_coalesce_arg_v8i16(<8 x i16> %arg, ptr %ptr) #0 { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x29, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x29, [sp, #64] // 8-byte Spill ; CHECK-NEXT: stp x30, x19, [sp, #80] // 16-byte Folded Spill ; CHECK-NEXT: sub sp, sp, #16 ; CHECK-NEXT: addvl sp, sp, #-1 @@ -601,9 +601,9 @@ define void @dont_coalesce_arg_v8i16(<8 x i16> %arg, ptr %ptr) #0 { ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: str z0, [x8] // 16-byte Folded Spill ; CHECK-NEXT: // kill: def $q0 killed $q0 killed $z0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: smstop sm -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: bl use_v8i16 ; CHECK-NEXT: smstart sm ; CHECK-NEXT: add x8, sp, #16 @@ -612,7 +612,7 @@ define void @dont_coalesce_arg_v8i16(<8 x i16> %arg, ptr %ptr) #0 { ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: add sp, sp, #16 ; CHECK-NEXT: ldp x30, x19, [sp, #80] // 16-byte Folded Reload -; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -631,7 +631,7 @@ define void @dont_coalesce_arg_v4i32(<4 x i32> %arg, ptr %ptr) #0 { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x29, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x29, [sp, #64] // 8-byte Spill ; CHECK-NEXT: stp x30, x19, [sp, #80] // 16-byte Folded Spill ; CHECK-NEXT: sub sp, sp, #16 ; CHECK-NEXT: addvl sp, sp, #-1 @@ -640,9 +640,9 @@ define void @dont_coalesce_arg_v4i32(<4 x i32> %arg, ptr %ptr) #0 { ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: str z0, [x8] // 16-byte Folded Spill ; CHECK-NEXT: // kill: def $q0 killed $q0 killed $z0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: smstop sm -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: bl use_v4i32 ; CHECK-NEXT: smstart sm ; CHECK-NEXT: add x8, sp, #16 @@ -651,7 +651,7 @@ define void @dont_coalesce_arg_v4i32(<4 x i32> %arg, ptr %ptr) #0 { ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: add sp, sp, #16 ; CHECK-NEXT: ldp x30, x19, [sp, #80] // 16-byte Folded Reload -; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -670,7 +670,7 @@ define void @dont_coalesce_arg_v2i64(<2 x i64> %arg, ptr %ptr) #0 { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x29, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x29, [sp, #64] // 8-byte Spill ; CHECK-NEXT: stp x30, x19, [sp, #80] // 16-byte Folded Spill ; CHECK-NEXT: sub sp, sp, #16 ; CHECK-NEXT: addvl sp, sp, #-1 @@ -679,9 +679,9 @@ define void @dont_coalesce_arg_v2i64(<2 x i64> %arg, ptr %ptr) #0 { ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: str z0, [x8] // 16-byte Folded Spill ; CHECK-NEXT: // kill: def $q0 killed $q0 killed $z0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: smstop sm -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: bl use_v2i64 ; CHECK-NEXT: smstart sm ; CHECK-NEXT: add x8, sp, #16 @@ -690,7 +690,7 @@ define void @dont_coalesce_arg_v2i64(<2 x i64> %arg, ptr %ptr) #0 { ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: add sp, sp, #16 ; CHECK-NEXT: ldp x30, x19, [sp, #80] // 16-byte Folded Reload -; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -709,7 +709,7 @@ define void @dont_coalesce_arg_v8f16(<8 x half> %arg, ptr %ptr) #0 { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x29, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x29, [sp, #64] // 8-byte Spill ; CHECK-NEXT: stp x30, x19, [sp, #80] // 16-byte Folded Spill ; CHECK-NEXT: sub sp, sp, #16 ; CHECK-NEXT: addvl sp, sp, #-1 @@ -718,9 +718,9 @@ define void @dont_coalesce_arg_v8f16(<8 x half> %arg, ptr %ptr) #0 { ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: str z0, [x8] // 16-byte Folded Spill ; CHECK-NEXT: // kill: def $q0 killed $q0 killed $z0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: smstop sm -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: bl use_v8f16 ; CHECK-NEXT: smstart sm ; CHECK-NEXT: add x8, sp, #16 @@ -729,7 +729,7 @@ define void @dont_coalesce_arg_v8f16(<8 x half> %arg, ptr %ptr) #0 { ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: add sp, sp, #16 ; CHECK-NEXT: ldp x30, x19, [sp, #80] // 16-byte Folded Reload -; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -748,7 +748,7 @@ define void @dont_coalesce_arg_v8bf16(<8 x bfloat> %arg, ptr %ptr) #0 { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x29, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x29, [sp, #64] // 8-byte Spill ; CHECK-NEXT: stp x30, x19, [sp, #80] // 16-byte Folded Spill ; CHECK-NEXT: sub sp, sp, #16 ; CHECK-NEXT: addvl sp, sp, #-1 @@ -757,9 +757,9 @@ define void @dont_coalesce_arg_v8bf16(<8 x bfloat> %arg, ptr %ptr) #0 { ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: str z0, [x8] // 16-byte Folded Spill ; CHECK-NEXT: // kill: def $q0 killed $q0 killed $z0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: smstop sm -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: bl use_v8bf16 ; CHECK-NEXT: smstart sm ; CHECK-NEXT: add x8, sp, #16 @@ -768,7 +768,7 @@ define void @dont_coalesce_arg_v8bf16(<8 x bfloat> %arg, ptr %ptr) #0 { ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: add sp, sp, #16 ; CHECK-NEXT: ldp x30, x19, [sp, #80] // 16-byte Folded Reload -; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -787,7 +787,7 @@ define void @dont_coalesce_arg_v4f32(<4 x float> %arg, ptr %ptr) #0 { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x29, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x29, [sp, #64] // 8-byte Spill ; CHECK-NEXT: stp x30, x19, [sp, #80] // 16-byte Folded Spill ; CHECK-NEXT: sub sp, sp, #16 ; CHECK-NEXT: addvl sp, sp, #-1 @@ -796,9 +796,9 @@ define void @dont_coalesce_arg_v4f32(<4 x float> %arg, ptr %ptr) #0 { ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: str z0, [x8] // 16-byte Folded Spill ; CHECK-NEXT: // kill: def $q0 killed $q0 killed $z0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: smstop sm -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: bl use_v4f32 ; CHECK-NEXT: smstart sm ; CHECK-NEXT: add x8, sp, #16 @@ -807,7 +807,7 @@ define void @dont_coalesce_arg_v4f32(<4 x float> %arg, ptr %ptr) #0 { ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: add sp, sp, #16 ; CHECK-NEXT: ldp x30, x19, [sp, #80] // 16-byte Folded Reload -; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -826,7 +826,7 @@ define void @dont_coalesce_arg_v2f64(<2 x double> %arg, ptr %ptr) #0 { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x29, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x29, [sp, #64] // 8-byte Spill ; CHECK-NEXT: stp x30, x19, [sp, #80] // 16-byte Folded Spill ; CHECK-NEXT: sub sp, sp, #16 ; CHECK-NEXT: addvl sp, sp, #-1 @@ -835,9 +835,9 @@ define void @dont_coalesce_arg_v2f64(<2 x double> %arg, ptr %ptr) #0 { ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: str z0, [x8] // 16-byte Folded Spill ; CHECK-NEXT: // kill: def $q0 killed $q0 killed $z0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: smstop sm -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: bl use_v2f64 ; CHECK-NEXT: smstart sm ; CHECK-NEXT: add x8, sp, #16 @@ -846,7 +846,7 @@ define void @dont_coalesce_arg_v2f64(<2 x double> %arg, ptr %ptr) #0 { ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: add sp, sp, #16 ; CHECK-NEXT: ldp x30, x19, [sp, #80] // 16-byte Folded Reload -; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -868,7 +868,7 @@ define void @dont_coalesce_arg_v8i1(<8 x i1> %arg, ptr %ptr) #0 { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x29, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x29, [sp, #64] // 8-byte Spill ; CHECK-NEXT: stp x30, x19, [sp, #80] // 16-byte Folded Spill ; CHECK-NEXT: sub sp, sp, #16 ; CHECK-NEXT: addvl sp, sp, #-1 @@ -878,21 +878,21 @@ define void @dont_coalesce_arg_v8i1(<8 x i1> %arg, ptr %ptr) #0 { ; CHECK-NEXT: add x8, sp, #16 ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: // kill: def $d0 killed $d0 killed $z0 -; CHECK-NEXT: str d0, [sp, #8] // 8-byte Folded Spill +; CHECK-NEXT: str d0, [sp, #8] // 8-byte Spill ; CHECK-NEXT: and z1.b, z1.b, #0x1 ; CHECK-NEXT: cmpne p0.b, p0/z, z1.b, #0 -; CHECK-NEXT: str p0, [x8, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p0, [x8, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: smstop sm -; CHECK-NEXT: ldr d0, [sp, #8] // 8-byte Folded Reload +; CHECK-NEXT: ldr d0, [sp, #8] // 8-byte Reload ; CHECK-NEXT: bl use_v8i1 ; CHECK-NEXT: smstart sm ; CHECK-NEXT: add x8, sp, #16 -; CHECK-NEXT: ldr p0, [x8, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p0, [x8, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: str p0, [x19] ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: add sp, sp, #16 ; CHECK-NEXT: ldp x30, x19, [sp, #80] // 16-byte Folded Reload -; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -1024,9 +1024,9 @@ define void @dont_coalesce_res_f16(ptr %ptr) #0 { ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: smstop sm ; CHECK-NEXT: bl get_f16 -; CHECK-NEXT: str h0, [sp, #14] // 2-byte Folded Spill +; CHECK-NEXT: str h0, [sp, #14] // 2-byte Spill ; CHECK-NEXT: smstart sm -; CHECK-NEXT: ldr h0, [sp, #14] // 2-byte Folded Reload +; CHECK-NEXT: ldr h0, [sp, #14] // 2-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #64] // 16-byte Folded Reload ; CHECK-NEXT: // kill: def $h0 killed $h0 def $z0 ; CHECK-NEXT: str z0, [x19] @@ -1054,9 +1054,9 @@ define void @dont_coalesce_res_f32(ptr %ptr) #0 { ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: smstop sm ; CHECK-NEXT: bl get_f32 -; CHECK-NEXT: str s0, [sp, #12] // 4-byte Folded Spill +; CHECK-NEXT: str s0, [sp, #12] // 4-byte Spill ; CHECK-NEXT: smstart sm -; CHECK-NEXT: ldr s0, [sp, #12] // 4-byte Folded Reload +; CHECK-NEXT: ldr s0, [sp, #12] // 4-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #64] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: str z0, [x19] @@ -1083,9 +1083,9 @@ define void @dont_coalesce_res_f64(ptr %ptr) #0 { ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: smstop sm ; CHECK-NEXT: bl get_f64 -; CHECK-NEXT: str d0, [sp, #8] // 8-byte Folded Spill +; CHECK-NEXT: str d0, [sp, #8] // 8-byte Spill ; CHECK-NEXT: smstart sm -; CHECK-NEXT: ldr d0, [sp, #8] // 8-byte Folded Reload +; CHECK-NEXT: ldr d0, [sp, #8] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #64] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: str z0, [x19] @@ -1116,9 +1116,9 @@ define void @dont_coalesce_res_v1i8(ptr %ptr) #0 { ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: smstop sm ; CHECK-NEXT: bl get_v1i8 -; CHECK-NEXT: str d0, [sp, #8] // 8-byte Folded Spill +; CHECK-NEXT: str d0, [sp, #8] // 8-byte Spill ; CHECK-NEXT: smstart sm -; CHECK-NEXT: ldr d0, [sp, #8] // 8-byte Folded Reload +; CHECK-NEXT: ldr d0, [sp, #8] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #64] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: str z0, [x19] @@ -1146,9 +1146,9 @@ define void @dont_coalesce_res_v1i16(ptr %ptr) #0 { ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: smstop sm ; CHECK-NEXT: bl get_v1i16 -; CHECK-NEXT: str d0, [sp, #8] // 8-byte Folded Spill +; CHECK-NEXT: str d0, [sp, #8] // 8-byte Spill ; CHECK-NEXT: smstart sm -; CHECK-NEXT: ldr d0, [sp, #8] // 8-byte Folded Reload +; CHECK-NEXT: ldr d0, [sp, #8] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #64] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: str z0, [x19] @@ -1176,9 +1176,9 @@ define void @dont_coalesce_res_v1i32(ptr %ptr) #0 { ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: smstop sm ; CHECK-NEXT: bl get_v1i32 -; CHECK-NEXT: str d0, [sp, #8] // 8-byte Folded Spill +; CHECK-NEXT: str d0, [sp, #8] // 8-byte Spill ; CHECK-NEXT: smstart sm -; CHECK-NEXT: ldr d0, [sp, #8] // 8-byte Folded Reload +; CHECK-NEXT: ldr d0, [sp, #8] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #64] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: str z0, [x19] @@ -1206,9 +1206,9 @@ define void @dont_coalesce_res_v1i64(ptr %ptr) #0 { ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: smstop sm ; CHECK-NEXT: bl get_v1i64 -; CHECK-NEXT: str d0, [sp, #8] // 8-byte Folded Spill +; CHECK-NEXT: str d0, [sp, #8] // 8-byte Spill ; CHECK-NEXT: smstart sm -; CHECK-NEXT: ldr d0, [sp, #8] // 8-byte Folded Reload +; CHECK-NEXT: ldr d0, [sp, #8] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #64] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: str z0, [x19] @@ -1236,9 +1236,9 @@ define void @dont_coalesce_res_v1f16(ptr %ptr) #0 { ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: smstop sm ; CHECK-NEXT: bl get_v1f16 -; CHECK-NEXT: str h0, [sp, #14] // 2-byte Folded Spill +; CHECK-NEXT: str h0, [sp, #14] // 2-byte Spill ; CHECK-NEXT: smstart sm -; CHECK-NEXT: ldr h0, [sp, #14] // 2-byte Folded Reload +; CHECK-NEXT: ldr h0, [sp, #14] // 2-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #64] // 16-byte Folded Reload ; CHECK-NEXT: // kill: def $h0 killed $h0 def $z0 ; CHECK-NEXT: str z0, [x19] @@ -1267,9 +1267,9 @@ define void @dont_coalesce_res_v1f32(ptr %ptr) #0 { ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: smstop sm ; CHECK-NEXT: bl get_v1f32 -; CHECK-NEXT: str d0, [sp, #8] // 8-byte Folded Spill +; CHECK-NEXT: str d0, [sp, #8] // 8-byte Spill ; CHECK-NEXT: smstart sm -; CHECK-NEXT: ldr d0, [sp, #8] // 8-byte Folded Reload +; CHECK-NEXT: ldr d0, [sp, #8] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #64] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: str z0, [x19] @@ -1297,9 +1297,9 @@ define void @dont_coalesce_res_v1f64(ptr %ptr) #0 { ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: smstop sm ; CHECK-NEXT: bl get_v1f64 -; CHECK-NEXT: str d0, [sp, #8] // 8-byte Folded Spill +; CHECK-NEXT: str d0, [sp, #8] // 8-byte Spill ; CHECK-NEXT: smstart sm -; CHECK-NEXT: ldr d0, [sp, #8] // 8-byte Folded Reload +; CHECK-NEXT: ldr d0, [sp, #8] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #64] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: str z0, [x19] @@ -1331,9 +1331,9 @@ define void @dont_coalesce_res_v16i8(ptr %ptr) #0 { ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: smstop sm ; CHECK-NEXT: bl get_v16i8 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: smstart sm -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #64] // 16-byte Folded Reload ; CHECK-NEXT: // kill: def $q0 killed $q0 def $z0 ; CHECK-NEXT: str z0, [x19] @@ -1361,9 +1361,9 @@ define void @dont_coalesce_res_v8i16(ptr %ptr) #0 { ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: smstop sm ; CHECK-NEXT: bl get_v8i16 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: smstart sm -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #64] // 16-byte Folded Reload ; CHECK-NEXT: // kill: def $q0 killed $q0 def $z0 ; CHECK-NEXT: str z0, [x19] @@ -1391,9 +1391,9 @@ define void @dont_coalesce_res_v4i32(ptr %ptr) #0 { ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: smstop sm ; CHECK-NEXT: bl get_v4i32 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: smstart sm -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #64] // 16-byte Folded Reload ; CHECK-NEXT: // kill: def $q0 killed $q0 def $z0 ; CHECK-NEXT: str z0, [x19] @@ -1421,9 +1421,9 @@ define void @dont_coalesce_res_v2i64(ptr %ptr) #0 { ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: smstop sm ; CHECK-NEXT: bl get_v2i64 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: smstart sm -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #64] // 16-byte Folded Reload ; CHECK-NEXT: // kill: def $q0 killed $q0 def $z0 ; CHECK-NEXT: str z0, [x19] @@ -1451,9 +1451,9 @@ define void @dont_coalesce_res_v8f16(ptr %ptr) #0 { ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: smstop sm ; CHECK-NEXT: bl get_v8f16 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: smstart sm -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #64] // 16-byte Folded Reload ; CHECK-NEXT: // kill: def $q0 killed $q0 def $z0 ; CHECK-NEXT: str z0, [x19] @@ -1481,9 +1481,9 @@ define void @dont_coalesce_res_v4f32(ptr %ptr) #0 { ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: smstop sm ; CHECK-NEXT: bl get_v4f32 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: smstart sm -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #64] // 16-byte Folded Reload ; CHECK-NEXT: // kill: def $q0 killed $q0 def $z0 ; CHECK-NEXT: str z0, [x19] @@ -1511,9 +1511,9 @@ define void @dont_coalesce_res_v2f64(ptr %ptr) #0 { ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: smstop sm ; CHECK-NEXT: bl get_v2f64 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: smstart sm -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #64] // 16-byte Folded Reload ; CHECK-NEXT: // kill: def $q0 killed $q0 def $z0 ; CHECK-NEXT: str z0, [x19] diff --git a/llvm/test/CodeGen/AArch64/sme-streaming-body.ll b/llvm/test/CodeGen/AArch64/sme-streaming-body.ll index a3ec2ddb2b872..6c3975a9b452b 100644 --- a/llvm/test/CodeGen/AArch64/sme-streaming-body.ll +++ b/llvm/test/CodeGen/AArch64/sme-streaming-body.ll @@ -12,13 +12,13 @@ define void @locally_streaming_caller_streaming_callee() "aarch64_pstate_sm_body ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-NEXT: smstart sm ; CHECK-NEXT: bl streaming_compatible_callee ; CHECK-NEXT: bl streaming_compatible_callee ; CHECK-NEXT: smstop sm ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload ; CHECK-NEXT: ldp d15, d14, [sp], #80 // 16-byte Folded Reload @@ -92,18 +92,18 @@ define <2 x i64> @locally_streaming_caller_no_callee(<2 x i64> %a) "aarch64_psta ; CHECK-NEXT: stp d13, d12, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #48] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #64] // 16-byte Folded Spill -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: smstart sm ; CHECK-NEXT: index z0.d, #0, #1 -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $q1 killed $q1 def $z1 ; CHECK-NEXT: add z0.d, z0.d, z1.d ; CHECK-NEXT: add z0.d, z0.d, #41 // =0x29 ; CHECK-NEXT: // kill: def $q0 killed $q0 killed $z0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: smstop sm ; CHECK-NEXT: ldp d9, d8, [sp, #64] // 16-byte Folded Reload -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: ldp d11, d10, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d15, d14, [sp, #16] // 16-byte Folded Reload @@ -144,17 +144,17 @@ define <2 x i64> @locally_streaming_caller_compatible_callee_vec_args_ret(<2 x i ; CHECK-NEXT: stp d13, d12, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #48] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #64] // 16-byte Folded Spill -; CHECK-NEXT: str x30, [sp, #80] // 8-byte Folded Spill -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #80] // 8-byte Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: smstart sm -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: bl streaming_compatible_callee_vec_args_ret -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: smstop sm ; CHECK-NEXT: ldp d9, d8, [sp, #64] // 16-byte Folded Reload -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: ldp d11, d10, [sp, #48] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #80] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #80] // 8-byte Reload ; CHECK-NEXT: ldp d13, d12, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d15, d14, [sp, #16] // 16-byte Folded Reload ; CHECK-NEXT: add sp, sp, #96 @@ -173,15 +173,15 @@ define {<2 x i64>, <2 x i64>} @locally_streaming_caller_compatible_callee_struct ; CHECK-NEXT: stp d13, d12, [sp, #48] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #64] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #80] // 16-byte Folded Spill -; CHECK-NEXT: str x30, [sp, #96] // 8-byte Folded Spill -; CHECK-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #96] // 8-byte Spill +; CHECK-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-NEXT: smstart sm -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: bl streaming_compatible_callee_vec_arg_struct_ret ; CHECK-NEXT: stp q1, q0, [sp] // 32-byte Folded Spill ; CHECK-NEXT: smstop sm ; CHECK-NEXT: ldp q1, q0, [sp] // 32-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #96] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #96] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #80] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #64] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #48] // 16-byte Folded Reload @@ -247,7 +247,7 @@ define float @test_arg_survives_loop(float %arg, i32 %N) nounwind "aarch64_pstat ; CHECK-NEXT: stp d13, d12, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #48] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #64] // 16-byte Folded Spill -; CHECK-NEXT: str s0, [sp, #12] // 4-byte Folded Spill +; CHECK-NEXT: str s0, [sp, #12] // 4-byte Spill ; CHECK-NEXT: smstart sm ; CHECK-NEXT: .LBB9_1: // %for.body ; CHECK-NEXT: // =>This Inner Loop Header: Depth=1 @@ -255,12 +255,12 @@ define float @test_arg_survives_loop(float %arg, i32 %N) nounwind "aarch64_pstat ; CHECK-NEXT: b.ne .LBB9_1 ; CHECK-NEXT: // %bb.2: // %for.cond.cleanup ; CHECK-NEXT: fmov s0, #1.00000000 -; CHECK-NEXT: ldr s1, [sp, #12] // 4-byte Folded Reload +; CHECK-NEXT: ldr s1, [sp, #12] // 4-byte Reload ; CHECK-NEXT: fadd s0, s1, s0 -; CHECK-NEXT: str s0, [sp, #12] // 4-byte Folded Spill +; CHECK-NEXT: str s0, [sp, #12] // 4-byte Spill ; CHECK-NEXT: smstop sm ; CHECK-NEXT: ldp d9, d8, [sp, #64] // 16-byte Folded Reload -; CHECK-NEXT: ldr s0, [sp, #12] // 4-byte Folded Reload +; CHECK-NEXT: ldr s0, [sp, #12] // 4-byte Reload ; CHECK-NEXT: ldp d11, d10, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d15, d14, [sp, #16] // 16-byte Folded Reload @@ -288,12 +288,12 @@ define void @disable_tailcallopt() "aarch64_pstate_sm_body" nounwind { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-NEXT: smstart sm ; CHECK-NEXT: bl streaming_compatible_callee ; CHECK-NEXT: smstop sm ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload ; CHECK-NEXT: ldp d15, d14, [sp], #80 // 16-byte Folded Reload diff --git a/llvm/test/CodeGen/AArch64/sme-streaming-checkvl.ll b/llvm/test/CodeGen/AArch64/sme-streaming-checkvl.ll index a1eb1ceeaf19b..58c6e2e27c451 100644 --- a/llvm/test/CodeGen/AArch64/sme-streaming-checkvl.ll +++ b/llvm/test/CodeGen/AArch64/sme-streaming-checkvl.ll @@ -51,7 +51,7 @@ define void @foo_non_streaming_pass_arg(ptr %arg) { ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: .cfi_def_cfa wsp, 96 ; CHECK-NEXT: ldp x29, x30, [sp, #64] // 16-byte Folded Reload -; CHECK-NEXT: ldr x28, [sp, #88] // 8-byte Folded Reload +; CHECK-NEXT: ldr x28, [sp, #88] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -87,11 +87,11 @@ define void @foo_streaming_compatible_pass_arg(ptr %arg) #1 { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x29, [sp, #1088] // 8-byte Folded Spill -; CHECK-NEXT: str x30, [sp, #1096] // 8-byte Folded Spill -; CHECK-NEXT: str x9, [sp, #1104] // 8-byte Folded Spill -; CHECK-NEXT: str x28, [sp, #1112] // 8-byte Folded Spill -; CHECK-NEXT: str x19, [sp, #1120] // 8-byte Folded Spill +; CHECK-NEXT: str x29, [sp, #1088] // 8-byte Spill +; CHECK-NEXT: str x30, [sp, #1096] // 8-byte Spill +; CHECK-NEXT: str x9, [sp, #1104] // 8-byte Spill +; CHECK-NEXT: str x28, [sp, #1112] // 8-byte Spill +; CHECK-NEXT: str x19, [sp, #1120] // 8-byte Spill ; CHECK-NEXT: add x29, sp, #1088 ; CHECK-NEXT: .cfi_def_cfa w29, 48 ; CHECK-NEXT: .cfi_offset w19, -16 @@ -133,11 +133,11 @@ define void @foo_streaming_compatible_pass_arg(ptr %arg) #1 { ; CHECK-NEXT: add sp, sp, #1024 ; CHECK-NEXT: .cfi_def_cfa wsp, 1136 ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload -; CHECK-NEXT: ldr x19, [sp, #1120] // 8-byte Folded Reload +; CHECK-NEXT: ldr x19, [sp, #1120] // 8-byte Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload -; CHECK-NEXT: ldr x28, [sp, #1112] // 8-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #1096] // 8-byte Folded Reload -; CHECK-NEXT: ldr x29, [sp, #1088] // 8-byte Folded Reload +; CHECK-NEXT: ldr x28, [sp, #1112] // 8-byte Reload +; CHECK-NEXT: ldr x30, [sp, #1096] // 8-byte Reload +; CHECK-NEXT: ldr x29, [sp, #1088] // 8-byte Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload ; CHECK-NEXT: ldp d15, d14, [sp] // 16-byte Folded Reload ; CHECK-NEXT: add sp, sp, #1136 @@ -173,10 +173,10 @@ define void @foo_streaming_pass_arg(ptr %arg) #0 { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x29, [sp, #1088] // 8-byte Folded Spill -; CHECK-NEXT: str x30, [sp, #1096] // 8-byte Folded Spill -; CHECK-NEXT: str x9, [sp, #1104] // 8-byte Folded Spill -; CHECK-NEXT: str x28, [sp, #1112] // 8-byte Folded Spill +; CHECK-NEXT: str x29, [sp, #1088] // 8-byte Spill +; CHECK-NEXT: str x30, [sp, #1096] // 8-byte Spill +; CHECK-NEXT: str x9, [sp, #1104] // 8-byte Spill +; CHECK-NEXT: str x28, [sp, #1112] // 8-byte Spill ; CHECK-NEXT: .cfi_offset w28, -8 ; CHECK-NEXT: .cfi_offset vg, -16 ; CHECK-NEXT: .cfi_offset w30, -24 @@ -204,10 +204,10 @@ define void @foo_streaming_pass_arg(ptr %arg) #0 { ; CHECK-NEXT: add sp, sp, #1024 ; CHECK-NEXT: .cfi_def_cfa_offset 1120 ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload -; CHECK-NEXT: ldr x28, [sp, #1112] // 8-byte Folded Reload +; CHECK-NEXT: ldr x28, [sp, #1112] // 8-byte Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #1096] // 8-byte Folded Reload -; CHECK-NEXT: ldr x29, [sp, #1088] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #1096] // 8-byte Reload +; CHECK-NEXT: ldr x29, [sp, #1088] // 8-byte Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload ; CHECK-NEXT: ldp d15, d14, [sp] // 16-byte Folded Reload ; CHECK-NEXT: add sp, sp, #1120 @@ -242,7 +242,7 @@ define void @foo_non_streaming_retval(ptr %ptr) { ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill ; CHECK-NEXT: stp x29, x30, [sp, #64] // 16-byte Folded Spill -; CHECK-NEXT: str x9, [sp, #80] // 8-byte Folded Spill +; CHECK-NEXT: str x9, [sp, #80] // 8-byte Spill ; CHECK-NEXT: stp x28, x19, [sp, #96] // 16-byte Folded Spill ; CHECK-NEXT: add x29, sp, #64 ; CHECK-NEXT: .cfi_def_cfa w29, 48 @@ -314,12 +314,12 @@ define void @foo_streaming_compatible_retval(ptr %ptr) #1 { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x29, [sp, #1088] // 8-byte Folded Spill -; CHECK-NEXT: str x30, [sp, #1096] // 8-byte Folded Spill -; CHECK-NEXT: str x9, [sp, #1104] // 8-byte Folded Spill -; CHECK-NEXT: str x28, [sp, #1112] // 8-byte Folded Spill -; CHECK-NEXT: str x20, [sp, #1120] // 8-byte Folded Spill -; CHECK-NEXT: str x19, [sp, #1128] // 8-byte Folded Spill +; CHECK-NEXT: str x29, [sp, #1088] // 8-byte Spill +; CHECK-NEXT: str x30, [sp, #1096] // 8-byte Spill +; CHECK-NEXT: str x9, [sp, #1104] // 8-byte Spill +; CHECK-NEXT: str x28, [sp, #1112] // 8-byte Spill +; CHECK-NEXT: str x20, [sp, #1120] // 8-byte Spill +; CHECK-NEXT: str x19, [sp, #1128] // 8-byte Spill ; CHECK-NEXT: add x29, sp, #1088 ; CHECK-NEXT: .cfi_def_cfa w29, 48 ; CHECK-NEXT: .cfi_offset w19, -8 @@ -363,12 +363,12 @@ define void @foo_streaming_compatible_retval(ptr %ptr) #1 { ; CHECK-NEXT: add sp, sp, #1024 ; CHECK-NEXT: .cfi_def_cfa wsp, 1136 ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload -; CHECK-NEXT: ldr x19, [sp, #1128] // 8-byte Folded Reload +; CHECK-NEXT: ldr x19, [sp, #1128] // 8-byte Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload -; CHECK-NEXT: ldr x20, [sp, #1120] // 8-byte Folded Reload -; CHECK-NEXT: ldr x28, [sp, #1112] // 8-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #1096] // 8-byte Folded Reload -; CHECK-NEXT: ldr x29, [sp, #1088] // 8-byte Folded Reload +; CHECK-NEXT: ldr x20, [sp, #1120] // 8-byte Reload +; CHECK-NEXT: ldr x28, [sp, #1112] // 8-byte Reload +; CHECK-NEXT: ldr x30, [sp, #1096] // 8-byte Reload +; CHECK-NEXT: ldr x29, [sp, #1088] // 8-byte Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload ; CHECK-NEXT: ldp d15, d14, [sp] // 16-byte Folded Reload ; CHECK-NEXT: add sp, sp, #1136 @@ -405,11 +405,11 @@ define void @foo_streaming_retval(ptr %ptr) #0 { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x29, [sp, #1088] // 8-byte Folded Spill -; CHECK-NEXT: str x30, [sp, #1096] // 8-byte Folded Spill -; CHECK-NEXT: str x9, [sp, #1104] // 8-byte Folded Spill -; CHECK-NEXT: str x28, [sp, #1112] // 8-byte Folded Spill -; CHECK-NEXT: str x19, [sp, #1120] // 8-byte Folded Spill +; CHECK-NEXT: str x29, [sp, #1088] // 8-byte Spill +; CHECK-NEXT: str x30, [sp, #1096] // 8-byte Spill +; CHECK-NEXT: str x9, [sp, #1104] // 8-byte Spill +; CHECK-NEXT: str x28, [sp, #1112] // 8-byte Spill +; CHECK-NEXT: str x19, [sp, #1120] // 8-byte Spill ; CHECK-NEXT: add x29, sp, #1088 ; CHECK-NEXT: .cfi_def_cfa w29, 48 ; CHECK-NEXT: .cfi_offset w19, -16 @@ -445,11 +445,11 @@ define void @foo_streaming_retval(ptr %ptr) #0 { ; CHECK-NEXT: add sp, sp, #1024 ; CHECK-NEXT: .cfi_def_cfa wsp, 1136 ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload -; CHECK-NEXT: ldr x19, [sp, #1120] // 8-byte Folded Reload +; CHECK-NEXT: ldr x19, [sp, #1120] // 8-byte Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload -; CHECK-NEXT: ldr x28, [sp, #1112] // 8-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #1096] // 8-byte Folded Reload -; CHECK-NEXT: ldr x29, [sp, #1088] // 8-byte Folded Reload +; CHECK-NEXT: ldr x28, [sp, #1112] // 8-byte Reload +; CHECK-NEXT: ldr x30, [sp, #1096] // 8-byte Reload +; CHECK-NEXT: ldr x29, [sp, #1088] // 8-byte Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload ; CHECK-NEXT: ldp d15, d14, [sp] // 16-byte Folded Reload ; CHECK-NEXT: add sp, sp, #1136 diff --git a/llvm/test/CodeGen/AArch64/sme-streaming-compatible-interface.ll b/llvm/test/CodeGen/AArch64/sme-streaming-compatible-interface.ll index f2163ad15bafc..04db7d5d03039 100644 --- a/llvm/test/CodeGen/AArch64/sme-streaming-compatible-interface.ll +++ b/llvm/test/CodeGen/AArch64/sme-streaming-compatible-interface.ll @@ -125,7 +125,7 @@ define <2 x double> @streaming_compatible_with_neon_vectors(<2 x double> %arg) " ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x29, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x29, [sp, #64] // 8-byte Spill ; CHECK-NEXT: stp x30, x19, [sp, #80] // 16-byte Folded Spill ; CHECK-NEXT: sub sp, sp, #16 ; CHECK-NEXT: addvl sp, sp, #-1 @@ -134,21 +134,21 @@ define <2 x double> @streaming_compatible_with_neon_vectors(<2 x double> %arg) " ; CHECK-NEXT: str z0, [x8] // 16-byte Folded Spill ; CHECK-NEXT: mrs x19, SVCR ; CHECK-NEXT: // kill: def $q0 killed $q0 killed $z0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: tbz w19, #0, .LBB4_2 ; CHECK-NEXT: // %bb.1: ; CHECK-NEXT: smstop sm ; CHECK-NEXT: .LBB4_2: -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: bl normal_callee_vec_arg -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: tbz w19, #0, .LBB4_4 ; CHECK-NEXT: // %bb.3: ; CHECK-NEXT: smstart sm ; CHECK-NEXT: .LBB4_4: ; CHECK-NEXT: add x8, sp, #16 ; CHECK-NEXT: ptrue p0.d, vl2 -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: ldr z1, [x8] // 16-byte Folded Reload ; CHECK-NEXT: // kill: def $q0 killed $q0 def $z0 ; CHECK-NEXT: fadd z0.d, p0/m, z0.d, z1.d @@ -156,7 +156,7 @@ define <2 x double> @streaming_compatible_with_neon_vectors(<2 x double> %arg) " ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: add sp, sp, #16 ; CHECK-NEXT: ldp x30, x19, [sp, #80] // 16-byte Folded Reload -; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -174,18 +174,18 @@ define @streaming_compatible_with_scalable_vectors( @streaming_compatible_with_scalable_vectors( @streaming_compatible_with_predicate_vectors( @streaming_compatible_with_predicate_vectors( @streaming_compatible_with_predicate_vectors( @streaming_compatible_with_predicate_vectors( @smstart_clobber_simdfp(<4 x i32> %x) nounwind { ; CHECK-NEXT: stp d13, d12, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #48] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #64] // 16-byte Folded Spill -; CHECK-NEXT: str x30, [sp, #80] // 8-byte Folded Spill -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #80] // 8-byte Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: smstart sm ; CHECK-NEXT: bl streaming_callee ; CHECK-NEXT: smstop sm ; CHECK-NEXT: ldp d9, d8, [sp, #64] // 16-byte Folded Reload -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: ldp d11, d10, [sp, #48] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #80] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #80] // 8-byte Reload ; CHECK-NEXT: ldp d13, d12, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d15, d14, [sp, #16] // 16-byte Folded Reload ; CHECK-NEXT: add sp, sp, #96 @@ -152,18 +152,18 @@ define @smstart_clobber_sve( %x) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: stp x29, x30, [sp, #-16]! // 16-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-18 -; CHECK-NEXT: str p15, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p14, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p13, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p15, [sp, #4, mul vl] // 2-byte Spill +; CHECK-NEXT: str p14, [sp, #5, mul vl] // 2-byte Spill +; CHECK-NEXT: str p13, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill +; CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill +; CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; CHECK-NEXT: str z23, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z22, [sp, #3, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z21, [sp, #4, mul vl] // 16-byte Folded Spill @@ -203,18 +203,18 @@ define @smstart_clobber_sve( %x) nounwind { ; CHECK-NEXT: ldr z10, [sp, #15, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z9, [sp, #16, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z8, [sp, #17, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #18 ; CHECK-NEXT: ldp x29, x30, [sp], #16 // 16-byte Folded Reload ; CHECK-NEXT: ret @@ -229,18 +229,18 @@ define @smstart_clobber_sve_duplicate( %x) ; CHECK: // %bb.0: ; CHECK-NEXT: stp x29, x30, [sp, #-16]! // 16-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-18 -; CHECK-NEXT: str p15, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p14, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p13, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p15, [sp, #4, mul vl] // 2-byte Spill +; CHECK-NEXT: str p14, [sp, #5, mul vl] // 2-byte Spill +; CHECK-NEXT: str p13, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill +; CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill +; CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; CHECK-NEXT: str z23, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z22, [sp, #3, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z21, [sp, #4, mul vl] // 16-byte Folded Spill @@ -281,18 +281,18 @@ define @smstart_clobber_sve_duplicate( %x) ; CHECK-NEXT: ldr z10, [sp, #15, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z9, [sp, #16, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z8, [sp, #17, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #18 ; CHECK-NEXT: ldp x29, x30, [sp], #16 // 16-byte Folded Reload ; CHECK-NEXT: ret @@ -310,15 +310,15 @@ define double @call_to_intrinsic_without_chain(double %x) nounwind "aarch64_psta ; CHECK-NEXT: stp d13, d12, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #48] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #64] // 16-byte Folded Spill -; CHECK-NEXT: str x30, [sp, #80] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #80] // 8-byte Spill ; CHECK-NEXT: stp d0, d0, [sp] // 16-byte Folded Spill ; CHECK-NEXT: smstop sm -; CHECK-NEXT: ldr d0, [sp] // 8-byte Folded Reload +; CHECK-NEXT: ldr d0, [sp] // 8-byte Reload ; CHECK-NEXT: bl cos -; CHECK-NEXT: str d0, [sp] // 8-byte Folded Spill +; CHECK-NEXT: str d0, [sp] // 8-byte Spill ; CHECK-NEXT: smstart sm ; CHECK-NEXT: ldp d1, d0, [sp] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #80] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #80] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #64] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #32] // 16-byte Folded Reload @@ -343,12 +343,12 @@ define void @disable_tailcallopt() nounwind { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-NEXT: smstart sm ; CHECK-NEXT: bl streaming_callee ; CHECK-NEXT: smstop sm ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload ; CHECK-NEXT: ldp d15, d14, [sp], #80 // 16-byte Folded Reload @@ -402,7 +402,7 @@ define void @call_to_non_streaming_pass_args(ptr nocapture noundef readnone %ptr ; CHECK-NEXT: stp d13, d12, [sp, #48] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #64] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #80] // 16-byte Folded Spill -; CHECK-NEXT: str x30, [sp, #96] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #96] // 8-byte Spill ; CHECK-NEXT: stp d2, d3, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp s0, s1, [sp, #8] // 8-byte Folded Spill ; CHECK-NEXT: smstop sm @@ -411,7 +411,7 @@ define void @call_to_non_streaming_pass_args(ptr nocapture noundef readnone %ptr ; CHECK-NEXT: bl bar ; CHECK-NEXT: smstart sm ; CHECK-NEXT: ldp d9, d8, [sp, #80] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #96] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #96] // 8-byte Reload ; CHECK-NEXT: ldp d11, d10, [sp, #64] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d15, d14, [sp, #32] // 16-byte Folded Reload diff --git a/llvm/test/CodeGen/AArch64/sme-streaming-mode-changes-unwindinfo.ll b/llvm/test/CodeGen/AArch64/sme-streaming-mode-changes-unwindinfo.ll index 7be5e6fe29869..30f98b10cfdaa 100644 --- a/llvm/test/CodeGen/AArch64/sme-streaming-mode-changes-unwindinfo.ll +++ b/llvm/test/CodeGen/AArch64/sme-streaming-mode-changes-unwindinfo.ll @@ -262,7 +262,7 @@ define aarch64_sve_vector_pcs void @streaming_compatible_caller_conditional_mode ; CHECK: .cfi_def_cfa_offset 48 ; CHECK: cntd x9 ; CHECK: stp x28, x19, [sp, #32] // 16-byte Folded Spill -; CHECK: str x9, [sp, #16] // 8-byte Folded Spill +; CHECK: str x9, [sp, #16] // 8-byte Spill ; CHECK: mov x29, sp ; CHECK: .cfi_def_cfa w29, 48 ; CHECK: .cfi_offset vg, -32 diff --git a/llvm/test/CodeGen/AArch64/sme-streaming-mode-changing-call-disable-stackslot-scavenging.ll b/llvm/test/CodeGen/AArch64/sme-streaming-mode-changing-call-disable-stackslot-scavenging.ll index 7efa1d8f7a6a7..72f0eac9b659c 100644 --- a/llvm/test/CodeGen/AArch64/sme-streaming-mode-changing-call-disable-stackslot-scavenging.ll +++ b/llvm/test/CodeGen/AArch64/sme-streaming-mode-changing-call-disable-stackslot-scavenging.ll @@ -18,21 +18,21 @@ define void @test_no_stackslot_scavenging(float %f) #0 { ; CHECK-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x29, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x29, [sp, #64] // 8-byte Spill ; CHECK-NEXT: stp x30, x24, [sp, #80] // 16-byte Folded Spill ; CHECK-NEXT: sub sp, sp, #16 ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str s0, [sp, #12] // 4-byte Folded Spill +; CHECK-NEXT: str s0, [sp, #12] // 4-byte Spill ; CHECK-NEXT: //APP ; CHECK-NEXT: //NO_APP ; CHECK-NEXT: smstop sm -; CHECK-NEXT: ldr s0, [sp, #12] // 4-byte Folded Reload +; CHECK-NEXT: ldr s0, [sp, #12] // 4-byte Reload ; CHECK-NEXT: bl use_f ; CHECK-NEXT: smstart sm ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: add sp, sp, #16 ; CHECK-NEXT: ldp x30, x24, [sp, #80] // 16-byte Folded Reload -; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x29, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -60,7 +60,7 @@ define void @test_no_stackslot_scavenging_with_fp(float %f, i64 %n) #0 "frame-po ; CHECK-NEXT: lsl x9, x0, #3 ; CHECK-NEXT: mov x8, sp ; CHECK-NEXT: mov x19, sp -; CHECK-NEXT: str s0, [x19, #12] // 4-byte Folded Spill +; CHECK-NEXT: str s0, [x19, #12] // 4-byte Spill ; CHECK-NEXT: add x9, x9, #15 ; CHECK-NEXT: and x9, x9, #0xfffffffffffffff0 ; CHECK-NEXT: sub x8, x8, x9 @@ -68,7 +68,7 @@ define void @test_no_stackslot_scavenging_with_fp(float %f, i64 %n) #0 "frame-po ; CHECK-NEXT: //APP ; CHECK-NEXT: //NO_APP ; CHECK-NEXT: smstop sm -; CHECK-NEXT: ldr s0, [x19, #12] // 4-byte Folded Reload +; CHECK-NEXT: ldr s0, [x19, #12] // 4-byte Reload ; CHECK-NEXT: bl use_f ; CHECK-NEXT: smstart sm ; CHECK-NEXT: sub sp, x29, #64 diff --git a/llvm/test/CodeGen/AArch64/sme-vg-to-stack.ll b/llvm/test/CodeGen/AArch64/sme-vg-to-stack.ll index 125cea7dc469a..06fb52ae10374 100644 --- a/llvm/test/CodeGen/AArch64/sme-vg-to-stack.ll +++ b/llvm/test/CodeGen/AArch64/sme-vg-to-stack.ll @@ -23,7 +23,7 @@ define void @vg_unwind_simple() #0 { ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill ; CHECK-NEXT: stp x29, x30, [sp, #64] // 16-byte Folded Spill -; CHECK-NEXT: str x9, [sp, #80] // 8-byte Folded Spill +; CHECK-NEXT: str x9, [sp, #80] // 8-byte Spill ; CHECK-NEXT: .cfi_offset vg, -16 ; CHECK-NEXT: .cfi_offset w30, -24 ; CHECK-NEXT: .cfi_offset w29, -32 @@ -66,7 +66,7 @@ define void @vg_unwind_simple() #0 { ; FP-CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; FP-CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill ; FP-CHECK-NEXT: stp x29, x30, [sp, #64] // 16-byte Folded Spill -; FP-CHECK-NEXT: str x9, [sp, #80] // 8-byte Folded Spill +; FP-CHECK-NEXT: str x9, [sp, #80] // 8-byte Spill ; FP-CHECK-NEXT: add x29, sp, #64 ; FP-CHECK-NEXT: .cfi_def_cfa w29, 32 ; FP-CHECK-NEXT: .cfi_offset vg, -16 @@ -141,7 +141,7 @@ define void @vg_unwind_needs_gap() #0 { ; CHECK-NEXT: bl callee ; CHECK-NEXT: smstart sm ; CHECK-NEXT: ldp x29, x30, [sp, #64] // 16-byte Folded Reload -; CHECK-NEXT: ldr x20, [sp, #88] // 8-byte Folded Reload +; CHECK-NEXT: ldr x20, [sp, #88] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -192,7 +192,7 @@ define void @vg_unwind_needs_gap() #0 { ; FP-CHECK-NEXT: smstart sm ; FP-CHECK-NEXT: .cfi_def_cfa wsp, 96 ; FP-CHECK-NEXT: ldp x29, x30, [sp, #64] // 16-byte Folded Reload -; FP-CHECK-NEXT: ldr x20, [sp, #88] // 8-byte Folded Reload +; FP-CHECK-NEXT: ldr x20, [sp, #88] // 8-byte Reload ; FP-CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; FP-CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; FP-CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -231,7 +231,7 @@ define void @vg_unwind_with_fixed_args(<4 x i32> %x) #0 { ; CHECK-NEXT: stp d11, d10, [sp, #48] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #64] // 16-byte Folded Spill ; CHECK-NEXT: stp x29, x30, [sp, #80] // 16-byte Folded Spill -; CHECK-NEXT: str x9, [sp, #96] // 8-byte Folded Spill +; CHECK-NEXT: str x9, [sp, #96] // 8-byte Spill ; CHECK-NEXT: .cfi_offset vg, -16 ; CHECK-NEXT: .cfi_offset w30, -24 ; CHECK-NEXT: .cfi_offset w29, -32 @@ -243,9 +243,9 @@ define void @vg_unwind_with_fixed_args(<4 x i32> %x) #0 { ; CHECK-NEXT: .cfi_offset b13, -80 ; CHECK-NEXT: .cfi_offset b14, -88 ; CHECK-NEXT: .cfi_offset b15, -96 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: smstop sm -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: bl fixed_callee ; CHECK-NEXT: smstart sm ; CHECK-NEXT: ldp x29, x30, [sp, #80] // 16-byte Folded Reload @@ -278,7 +278,7 @@ define void @vg_unwind_with_fixed_args(<4 x i32> %x) #0 { ; FP-CHECK-NEXT: stp d11, d10, [sp, #48] // 16-byte Folded Spill ; FP-CHECK-NEXT: stp d9, d8, [sp, #64] // 16-byte Folded Spill ; FP-CHECK-NEXT: stp x29, x30, [sp, #80] // 16-byte Folded Spill -; FP-CHECK-NEXT: str x9, [sp, #96] // 8-byte Folded Spill +; FP-CHECK-NEXT: str x9, [sp, #96] // 8-byte Spill ; FP-CHECK-NEXT: add x29, sp, #80 ; FP-CHECK-NEXT: .cfi_def_cfa w29, 32 ; FP-CHECK-NEXT: .cfi_offset vg, -16 @@ -292,9 +292,9 @@ define void @vg_unwind_with_fixed_args(<4 x i32> %x) #0 { ; FP-CHECK-NEXT: .cfi_offset b13, -80 ; FP-CHECK-NEXT: .cfi_offset b14, -88 ; FP-CHECK-NEXT: .cfi_offset b15, -96 -; FP-CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; FP-CHECK-NEXT: str q0, [sp] // 16-byte Spill ; FP-CHECK-NEXT: smstop sm -; FP-CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; FP-CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; FP-CHECK-NEXT: bl fixed_callee ; FP-CHECK-NEXT: smstart sm ; FP-CHECK-NEXT: .cfi_def_cfa wsp, 112 @@ -332,7 +332,7 @@ define void @vg_unwind_with_sve_args( %x) #0 { ; CHECK-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NEXT: cntd x9 ; CHECK-NEXT: stp x28, x27, [sp, #32] // 16-byte Folded Spill -; CHECK-NEXT: str x9, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x9, [sp, #16] // 8-byte Spill ; CHECK-NEXT: mov x29, sp ; CHECK-NEXT: .cfi_def_cfa w29, 48 ; CHECK-NEXT: .cfi_offset w27, -8 @@ -341,26 +341,26 @@ define void @vg_unwind_with_sve_args( %x) #0 { ; CHECK-NEXT: .cfi_offset w30, -40 ; CHECK-NEXT: .cfi_offset w29, -48 ; CHECK-NEXT: addvl sp, sp, #-18 -; CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill ; CHECK-NEXT: ptrue pn8.b -; CHECK-NEXT: str p15, [sp, #4, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p15, [sp, #4, mul vl] // 2-byte Spill ; CHECK-NEXT: st1b { z22.b, z23.b }, pn8, [sp, #2, mul vl] // 32-byte Folded Spill ; CHECK-NEXT: st1b { z20.b, z21.b }, pn8, [sp, #4, mul vl] // 32-byte Folded Spill -; CHECK-NEXT: str p14, [sp, #5, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p14, [sp, #5, mul vl] // 2-byte Spill ; CHECK-NEXT: st1b { z18.b, z19.b }, pn8, [sp, #6, mul vl] // 32-byte Folded Spill ; CHECK-NEXT: st1b { z16.b, z17.b }, pn8, [sp, #8, mul vl] // 32-byte Folded Spill -; CHECK-NEXT: str p13, [sp, #6, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p13, [sp, #6, mul vl] // 2-byte Spill ; CHECK-NEXT: st1b { z14.b, z15.b }, pn8, [sp, #10, mul vl] // 32-byte Folded Spill ; CHECK-NEXT: st1b { z12.b, z13.b }, pn8, [sp, #12, mul vl] // 32-byte Folded Spill -; CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: st1b { z10.b, z11.b }, pn8, [sp, #14, mul vl] // 32-byte Folded Spill -; CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; CHECK-NEXT: str z9, [sp, #16, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z8, [sp, #17, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: .cfi_escape 0x10, 0x48, 0x0c, 0x12, 0x11, 0x60, 0x22, 0x06, 0x11, 0x78, 0x1e, 0x22, 0x11, 0x50, 0x22 // $d8 @ cfa - 8 * IncomingVG - 48 @@ -396,18 +396,18 @@ define void @vg_unwind_with_sve_args( %x) #0 { ; CHECK-NEXT: ld1b { z14.b, z15.b }, pn8/z, [sp, #10, mul vl] // 32-byte Folded Reload ; CHECK-NEXT: ld1b { z12.b, z13.b }, pn8/z, [sp, #12, mul vl] // 32-byte Folded Reload ; CHECK-NEXT: ld1b { z10.b, z11.b }, pn8/z, [sp, #14, mul vl] // 32-byte Folded Reload -; CHECK-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #18 ; CHECK-NEXT: .cfi_restore z8 ; CHECK-NEXT: .cfi_restore z9 @@ -434,7 +434,7 @@ define void @vg_unwind_with_sve_args( %x) #0 { ; FP-CHECK-NEXT: .cfi_def_cfa_offset 48 ; FP-CHECK-NEXT: cntd x9 ; FP-CHECK-NEXT: stp x28, x27, [sp, #32] // 16-byte Folded Spill -; FP-CHECK-NEXT: str x9, [sp, #16] // 8-byte Folded Spill +; FP-CHECK-NEXT: str x9, [sp, #16] // 8-byte Spill ; FP-CHECK-NEXT: mov x29, sp ; FP-CHECK-NEXT: .cfi_def_cfa w29, 48 ; FP-CHECK-NEXT: .cfi_offset w27, -8 @@ -443,26 +443,26 @@ define void @vg_unwind_with_sve_args( %x) #0 { ; FP-CHECK-NEXT: .cfi_offset w30, -40 ; FP-CHECK-NEXT: .cfi_offset w29, -48 ; FP-CHECK-NEXT: addvl sp, sp, #-18 -; FP-CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill +; FP-CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill ; FP-CHECK-NEXT: ptrue pn8.b -; FP-CHECK-NEXT: str p15, [sp, #4, mul vl] // 2-byte Folded Spill +; FP-CHECK-NEXT: str p15, [sp, #4, mul vl] // 2-byte Spill ; FP-CHECK-NEXT: st1b { z22.b, z23.b }, pn8, [sp, #2, mul vl] // 32-byte Folded Spill ; FP-CHECK-NEXT: st1b { z20.b, z21.b }, pn8, [sp, #4, mul vl] // 32-byte Folded Spill -; FP-CHECK-NEXT: str p14, [sp, #5, mul vl] // 2-byte Folded Spill +; FP-CHECK-NEXT: str p14, [sp, #5, mul vl] // 2-byte Spill ; FP-CHECK-NEXT: st1b { z18.b, z19.b }, pn8, [sp, #6, mul vl] // 32-byte Folded Spill ; FP-CHECK-NEXT: st1b { z16.b, z17.b }, pn8, [sp, #8, mul vl] // 32-byte Folded Spill -; FP-CHECK-NEXT: str p13, [sp, #6, mul vl] // 2-byte Folded Spill +; FP-CHECK-NEXT: str p13, [sp, #6, mul vl] // 2-byte Spill ; FP-CHECK-NEXT: st1b { z14.b, z15.b }, pn8, [sp, #10, mul vl] // 32-byte Folded Spill ; FP-CHECK-NEXT: st1b { z12.b, z13.b }, pn8, [sp, #12, mul vl] // 32-byte Folded Spill -; FP-CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill +; FP-CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill ; FP-CHECK-NEXT: st1b { z10.b, z11.b }, pn8, [sp, #14, mul vl] // 32-byte Folded Spill -; FP-CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; FP-CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; FP-CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; FP-CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; FP-CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; FP-CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; FP-CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; FP-CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; FP-CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; FP-CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; FP-CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; FP-CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; FP-CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; FP-CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; FP-CHECK-NEXT: str z9, [sp, #16, mul vl] // 16-byte Folded Spill ; FP-CHECK-NEXT: str z8, [sp, #17, mul vl] // 16-byte Folded Spill ; FP-CHECK-NEXT: .cfi_escape 0x10, 0x48, 0x0c, 0x12, 0x11, 0x60, 0x22, 0x06, 0x11, 0x78, 0x1e, 0x22, 0x11, 0x50, 0x22 // $d8 @ cfa - 8 * IncomingVG - 48 @@ -498,18 +498,18 @@ define void @vg_unwind_with_sve_args( %x) #0 { ; FP-CHECK-NEXT: ld1b { z14.b, z15.b }, pn8/z, [sp, #10, mul vl] // 32-byte Folded Reload ; FP-CHECK-NEXT: ld1b { z12.b, z13.b }, pn8/z, [sp, #12, mul vl] // 32-byte Folded Reload ; FP-CHECK-NEXT: ld1b { z10.b, z11.b }, pn8/z, [sp, #14, mul vl] // 32-byte Folded Reload -; FP-CHECK-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Folded Reload -; FP-CHECK-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Folded Reload -; FP-CHECK-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Folded Reload -; FP-CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; FP-CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; FP-CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; FP-CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; FP-CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; FP-CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; FP-CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; FP-CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; FP-CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; FP-CHECK-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Reload +; FP-CHECK-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Reload +; FP-CHECK-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Reload +; FP-CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; FP-CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; FP-CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; FP-CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; FP-CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; FP-CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; FP-CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; FP-CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; FP-CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; FP-CHECK-NEXT: addvl sp, sp, #18 ; FP-CHECK-NEXT: .cfi_restore z8 ; FP-CHECK-NEXT: .cfi_restore z9 @@ -582,7 +582,7 @@ define void @vg_unwind_multiple_scratch_regs(ptr %out) #1 { ; CHECK-NEXT: add sp, sp, #80, lsl #12 // =327680 ; CHECK-NEXT: .cfi_def_cfa_offset 96 ; CHECK-NEXT: ldp x29, x30, [sp, #64] // 16-byte Folded Reload -; CHECK-NEXT: ldr x28, [sp, #88] // 8-byte Folded Reload +; CHECK-NEXT: ldr x28, [sp, #88] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -642,7 +642,7 @@ define void @vg_unwind_multiple_scratch_regs(ptr %out) #1 { ; FP-CHECK-NEXT: add sp, sp, #80, lsl #12 // =327680 ; FP-CHECK-NEXT: .cfi_def_cfa wsp, 96 ; FP-CHECK-NEXT: ldp x29, x30, [sp, #64] // 16-byte Folded Reload -; FP-CHECK-NEXT: ldr x28, [sp, #88] // 8-byte Folded Reload +; FP-CHECK-NEXT: ldr x28, [sp, #88] // 8-byte Reload ; FP-CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; FP-CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; FP-CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -682,7 +682,7 @@ define void @vg_locally_streaming_fn() #3 { ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill ; CHECK-NEXT: stp x29, x30, [sp, #64] // 16-byte Folded Spill -; CHECK-NEXT: str x9, [sp, #80] // 8-byte Folded Spill +; CHECK-NEXT: str x9, [sp, #80] // 8-byte Spill ; CHECK-NEXT: .cfi_offset vg, -16 ; CHECK-NEXT: .cfi_offset w30, -24 ; CHECK-NEXT: .cfi_offset w29, -32 @@ -727,7 +727,7 @@ define void @vg_locally_streaming_fn() #3 { ; FP-CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; FP-CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill ; FP-CHECK-NEXT: stp x29, x30, [sp, #64] // 16-byte Folded Spill -; FP-CHECK-NEXT: str x9, [sp, #80] // 8-byte Folded Spill +; FP-CHECK-NEXT: str x9, [sp, #80] // 8-byte Spill ; FP-CHECK-NEXT: add x29, sp, #64 ; FP-CHECK-NEXT: .cfi_def_cfa w29, 32 ; FP-CHECK-NEXT: .cfi_offset vg, -16 @@ -809,7 +809,7 @@ define void @streaming_compatible_to_streaming() #4 { ; CHECK-NEXT: smstop sm ; CHECK-NEXT: .LBB6_4: ; CHECK-NEXT: ldp x29, x30, [sp, #64] // 16-byte Folded Reload -; CHECK-NEXT: ldr x19, [sp, #88] // 8-byte Folded Reload +; CHECK-NEXT: ldr x19, [sp, #88] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -865,7 +865,7 @@ define void @streaming_compatible_to_streaming() #4 { ; FP-CHECK-NEXT: .LBB6_4: ; FP-CHECK-NEXT: .cfi_def_cfa wsp, 96 ; FP-CHECK-NEXT: ldp x29, x30, [sp, #64] // 16-byte Folded Reload -; FP-CHECK-NEXT: ldr x19, [sp, #88] // 8-byte Folded Reload +; FP-CHECK-NEXT: ldr x19, [sp, #88] // 8-byte Reload ; FP-CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; FP-CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; FP-CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -926,7 +926,7 @@ define void @streaming_compatible_to_non_streaming() #4 { ; CHECK-NEXT: smstart sm ; CHECK-NEXT: .LBB7_4: ; CHECK-NEXT: ldp x29, x30, [sp, #64] // 16-byte Folded Reload -; CHECK-NEXT: ldr x19, [sp, #88] // 8-byte Folded Reload +; CHECK-NEXT: ldr x19, [sp, #88] // 8-byte Reload ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -982,7 +982,7 @@ define void @streaming_compatible_to_non_streaming() #4 { ; FP-CHECK-NEXT: .LBB7_4: ; FP-CHECK-NEXT: .cfi_def_cfa wsp, 96 ; FP-CHECK-NEXT: ldp x29, x30, [sp, #64] // 16-byte Folded Reload -; FP-CHECK-NEXT: ldr x19, [sp, #88] // 8-byte Folded Reload +; FP-CHECK-NEXT: ldr x19, [sp, #88] // 8-byte Reload ; FP-CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; FP-CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; FP-CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -1053,7 +1053,7 @@ define void @streaming_compatible_no_sve(i32 noundef %x) #4 { ; NO-SVE-CHECK-NEXT: .LBB8_4: ; NO-SVE-CHECK-NEXT: .cfi_def_cfa wsp, 96 ; NO-SVE-CHECK-NEXT: ldp x29, x30, [sp, #64] // 16-byte Folded Reload -; NO-SVE-CHECK-NEXT: ldr x19, [sp, #88] // 8-byte Folded Reload +; NO-SVE-CHECK-NEXT: ldr x19, [sp, #88] // 8-byte Reload ; NO-SVE-CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; NO-SVE-CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; NO-SVE-CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload @@ -1130,7 +1130,7 @@ define void @vg_unwind_noasync() #5 { ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill ; CHECK-NEXT: stp x29, x30, [sp, #64] // 16-byte Folded Spill -; CHECK-NEXT: str x9, [sp, #80] // 8-byte Folded Spill +; CHECK-NEXT: str x9, [sp, #80] // 8-byte Spill ; CHECK-NEXT: .cfi_offset vg, -16 ; CHECK-NEXT: .cfi_offset w30, -24 ; CHECK-NEXT: .cfi_offset w29, -32 @@ -1173,7 +1173,7 @@ define void @vg_unwind_noasync() #5 { ; FP-CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; FP-CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill ; FP-CHECK-NEXT: stp x29, x30, [sp, #64] // 16-byte Folded Spill -; FP-CHECK-NEXT: str x9, [sp, #80] // 8-byte Folded Spill +; FP-CHECK-NEXT: str x9, [sp, #80] // 8-byte Spill ; FP-CHECK-NEXT: add x29, sp, #64 ; FP-CHECK-NEXT: .cfi_def_cfa w29, 32 ; FP-CHECK-NEXT: .cfi_offset vg, -16 diff --git a/llvm/test/CodeGen/AArch64/sme-za-control-flow.ll b/llvm/test/CodeGen/AArch64/sme-za-control-flow.ll index 18ea07e38fe89..2b4a1cb4ff770 100644 --- a/llvm/test/CodeGen/AArch64/sme-za-control-flow.ll +++ b/llvm/test/CodeGen/AArch64/sme-za-control-flow.ll @@ -49,7 +49,7 @@ define void @private_za_loop(i32 %n) "aarch64_inout_za" nounwind { ; CHECK-NEWLOWERING-LABEL: private_za_loop: ; CHECK-NEWLOWERING: // %bb.0: // %entry ; CHECK-NEWLOWERING-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill -; CHECK-NEWLOWERING-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-NEWLOWERING-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-NEWLOWERING-NEXT: mov x29, sp ; CHECK-NEWLOWERING-NEXT: sub sp, sp, #16 ; CHECK-NEWLOWERING-NEXT: rdsvl x8, #1 @@ -78,7 +78,7 @@ define void @private_za_loop(i32 %n) "aarch64_inout_za" nounwind { ; CHECK-NEWLOWERING-NEXT: .LBB0_5: // %exit ; CHECK-NEWLOWERING-NEXT: msr TPIDR2_EL0, xzr ; CHECK-NEWLOWERING-NEXT: mov sp, x29 -; CHECK-NEWLOWERING-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-NEWLOWERING-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-NEWLOWERING-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-NEWLOWERING-NEXT: ret entry: @@ -398,7 +398,7 @@ define void @cond_clobber_followed_by_clobber(i1 %cond) "aarch64_inout_za" nounw ; CHECK-LABEL: cond_clobber_followed_by_clobber: ; CHECK: // %bb.0: ; CHECK-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill -; CHECK-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-NEXT: mov x29, sp ; CHECK-NEXT: sub sp, sp, #16 ; CHECK-NEXT: rdsvl x8, #1 @@ -434,14 +434,14 @@ define void @cond_clobber_followed_by_clobber(i1 %cond) "aarch64_inout_za" nounw ; CHECK-NEXT: .LBB5_6: // %exit ; CHECK-NEXT: msr TPIDR2_EL0, xzr ; CHECK-NEXT: mov sp, x29 -; CHECK-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-NEXT: b shared_za_call ; ; CHECK-NEWLOWERING-LABEL: cond_clobber_followed_by_clobber: ; CHECK-NEWLOWERING: // %bb.0: ; CHECK-NEWLOWERING-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill -; CHECK-NEWLOWERING-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-NEWLOWERING-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-NEWLOWERING-NEXT: mov x29, sp ; CHECK-NEWLOWERING-NEXT: sub sp, sp, #16 ; CHECK-NEWLOWERING-NEXT: rdsvl x8, #1 @@ -467,7 +467,7 @@ define void @cond_clobber_followed_by_clobber(i1 %cond) "aarch64_inout_za" nounw ; CHECK-NEWLOWERING-NEXT: .LBB5_4: // %exit ; CHECK-NEWLOWERING-NEXT: msr TPIDR2_EL0, xzr ; CHECK-NEWLOWERING-NEXT: mov sp, x29 -; CHECK-NEWLOWERING-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-NEWLOWERING-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-NEWLOWERING-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-NEWLOWERING-NEXT: b shared_za_call tail call void @shared_za_call() @@ -669,7 +669,7 @@ define void @critical_edge_mixed_za(i1 %c1, i1 %c2) "aarch64_inout_za" nounwind ; CHECK-LABEL: critical_edge_mixed_za: ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill -; CHECK-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-NEXT: mov x29, sp ; CHECK-NEXT: sub sp, sp, #16 ; CHECK-NEXT: rdsvl x8, #1 @@ -712,14 +712,14 @@ define void @critical_edge_mixed_za(i1 %c1, i1 %c2) "aarch64_inout_za" nounwind ; CHECK-NEXT: bl shared_za_call ; CHECK-NEXT: .LBB9_9: // %common.ret ; CHECK-NEXT: mov sp, x29 -; CHECK-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-NEXT: ret ; ; CHECK-NEWLOWERING-LABEL: critical_edge_mixed_za: ; CHECK-NEWLOWERING: // %bb.0: // %entry ; CHECK-NEWLOWERING-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill -; CHECK-NEWLOWERING-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-NEWLOWERING-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-NEWLOWERING-NEXT: mov x29, sp ; CHECK-NEWLOWERING-NEXT: sub sp, sp, #16 ; CHECK-NEWLOWERING-NEXT: rdsvl x8, #1 @@ -762,7 +762,7 @@ define void @critical_edge_mixed_za(i1 %c1, i1 %c2) "aarch64_inout_za" nounwind ; CHECK-NEWLOWERING-NEXT: bl shared_za_call ; CHECK-NEWLOWERING-NEXT: .LBB9_9: // %common.ret ; CHECK-NEWLOWERING-NEXT: mov sp, x29 -; CHECK-NEWLOWERING-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-NEWLOWERING-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-NEWLOWERING-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-NEWLOWERING-NEXT: ret entry: @@ -910,7 +910,7 @@ define void @loop_with_external_entry(i1 %c1, i1 %c2) "aarch64_inout_za" nounwin ; CHECK-NEWLOWERING-LABEL: loop_with_external_entry: ; CHECK-NEWLOWERING: // %bb.0: // %entry ; CHECK-NEWLOWERING-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill -; CHECK-NEWLOWERING-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-NEWLOWERING-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-NEWLOWERING-NEXT: mov x29, sp ; CHECK-NEWLOWERING-NEXT: sub sp, sp, #16 ; CHECK-NEWLOWERING-NEXT: rdsvl x8, #1 @@ -939,7 +939,7 @@ define void @loop_with_external_entry(i1 %c1, i1 %c2) "aarch64_inout_za" nounwin ; CHECK-NEWLOWERING-NEXT: .LBB11_6: // %exit ; CHECK-NEWLOWERING-NEXT: msr TPIDR2_EL0, xzr ; CHECK-NEWLOWERING-NEXT: mov sp, x29 -; CHECK-NEWLOWERING-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-NEWLOWERING-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-NEWLOWERING-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-NEWLOWERING-NEXT: ret entry: diff --git a/llvm/test/CodeGen/AArch64/sme-za-exceptions.ll b/llvm/test/CodeGen/AArch64/sme-za-exceptions.ll index b6dee97ea2962..57adb37d151da 100644 --- a/llvm/test/CodeGen/AArch64/sme-za-exceptions.ll +++ b/llvm/test/CodeGen/AArch64/sme-za-exceptions.ll @@ -31,7 +31,7 @@ define void @za_with_raii(i1 %fail) "aarch64_inout_za" personality ptr @__gxx_pe ; CHECK-NEXT: .cfi_lsda 28, .Lexception0 ; CHECK-NEXT: // %bb.0: ; CHECK-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill -; CHECK-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-NEXT: mov x29, sp ; CHECK-NEXT: sub sp, sp, #16 ; CHECK-NEXT: .cfi_def_cfa w29, 32 @@ -46,7 +46,7 @@ define void @za_with_raii(i1 %fail) "aarch64_inout_za" personality ptr @__gxx_pe ; CHECK-NEXT: tbnz w0, #0, .LBB0_2 ; CHECK-NEXT: // %bb.1: // %return_normally ; CHECK-NEXT: mov sp, x29 -; CHECK-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-NEXT: b shared_za_call ; CHECK-NEXT: .LBB0_2: // %throw_exception @@ -268,7 +268,7 @@ define void @try_catch() "aarch64_inout_za" personality ptr @__gxx_personality_v ; CHECK-SDAG-NEXT: .cfi_lsda 28, .Lexception1 ; CHECK-SDAG-NEXT: // %bb.0: ; CHECK-SDAG-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill -; CHECK-SDAG-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-SDAG-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-SDAG-NEXT: mov x29, sp ; CHECK-SDAG-NEXT: sub sp, sp, #16 ; CHECK-SDAG-NEXT: .cfi_def_cfa w29, 32 @@ -295,7 +295,7 @@ define void @try_catch() "aarch64_inout_za" personality ptr @__gxx_personality_v ; CHECK-SDAG-NEXT: .Ltmp4: // EH_LABEL ; CHECK-SDAG-NEXT: .LBB1_3: // %after_catch ; CHECK-SDAG-NEXT: mov sp, x29 -; CHECK-SDAG-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-SDAG-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-SDAG-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-SDAG-NEXT: b shared_za_call ; CHECK-SDAG-NEXT: .LBB1_4: // %catch @@ -425,7 +425,7 @@ define void @try_catch_shared_za_callee() "aarch64_new_za" personality ptr @__gx ; CHECK-SDAG-NEXT: .cfi_lsda 28, .Lexception2 ; CHECK-SDAG-NEXT: // %bb.0: // %prelude ; CHECK-SDAG-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill -; CHECK-SDAG-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-SDAG-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-SDAG-NEXT: mov x29, sp ; CHECK-SDAG-NEXT: sub sp, sp, #16 ; CHECK-SDAG-NEXT: .cfi_def_cfa w29, 32 @@ -451,7 +451,7 @@ define void @try_catch_shared_za_callee() "aarch64_new_za" personality ptr @__gx ; CHECK-SDAG-NEXT: .LBB2_3: // %exit ; CHECK-SDAG-NEXT: smstop za ; CHECK-SDAG-NEXT: mov sp, x29 -; CHECK-SDAG-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-SDAG-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-SDAG-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-SDAG-NEXT: ret ; CHECK-SDAG-NEXT: .LBB2_4: // %catch @@ -581,7 +581,7 @@ define void @try_catch_shared_zt0_callee() "aarch64_inout_zt0" personality ptr @ ; CHECK-SDAG-NEXT: .cfi_lsda 28, .Lexception3 ; CHECK-SDAG-NEXT: // %bb.0: ; CHECK-SDAG-NEXT: sub sp, sp, #96 -; CHECK-SDAG-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-SDAG-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-SDAG-NEXT: stp x20, x19, [sp, #80] // 16-byte Folded Spill ; CHECK-SDAG-NEXT: .cfi_def_cfa_offset 96 ; CHECK-SDAG-NEXT: .cfi_offset w19, -8 @@ -597,7 +597,7 @@ define void @try_catch_shared_zt0_callee() "aarch64_inout_zt0" personality ptr @ ; CHECK-SDAG-NEXT: .Ltmp10: // EH_LABEL ; CHECK-SDAG-NEXT: // %bb.1: // %return_normally ; CHECK-SDAG-NEXT: ldp x20, x19, [sp, #80] // 16-byte Folded Reload -; CHECK-SDAG-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-SDAG-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-SDAG-NEXT: add sp, sp, #96 ; CHECK-SDAG-NEXT: ret ; CHECK-SDAG-NEXT: .LBB3_2: // %unwind_dtors @@ -646,7 +646,7 @@ define void @try_catch_agnostic_za() "aarch64_za_state_agnostic" personality ptr ; CHECK-NEXT: .cfi_lsda 28, .Lexception4 ; CHECK-NEXT: // %bb.0: ; CHECK-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill -; CHECK-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-NEXT: mov x29, sp ; CHECK-NEXT: .cfi_def_cfa w29, 32 ; CHECK-NEXT: .cfi_offset w19, -16 @@ -664,7 +664,7 @@ define void @try_catch_agnostic_za() "aarch64_za_state_agnostic" personality ptr ; CHECK-NEXT: mov x0, x19 ; CHECK-NEXT: bl __arm_sme_restore ; CHECK-NEXT: mov sp, x29 -; CHECK-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-NEXT: ret ; CHECK-NEXT: .LBB4_2: // %catch @@ -680,7 +680,7 @@ define void @try_catch_agnostic_za() "aarch64_za_state_agnostic" personality ptr ; CHECK-SDAG-NEXT: .cfi_lsda 28, .Lexception4 ; CHECK-SDAG-NEXT: // %bb.0: ; CHECK-SDAG-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill -; CHECK-SDAG-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-SDAG-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-SDAG-NEXT: mov x29, sp ; CHECK-SDAG-NEXT: .cfi_def_cfa w29, 32 ; CHECK-SDAG-NEXT: .cfi_offset w19, -16 @@ -698,7 +698,7 @@ define void @try_catch_agnostic_za() "aarch64_za_state_agnostic" personality ptr ; CHECK-SDAG-NEXT: .Ltmp13: // EH_LABEL ; CHECK-SDAG-NEXT: .LBB4_1: // %exit ; CHECK-SDAG-NEXT: mov sp, x29 -; CHECK-SDAG-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-SDAG-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-SDAG-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-SDAG-NEXT: ret ; CHECK-SDAG-NEXT: .LBB4_2: // %catch diff --git a/llvm/test/CodeGen/AArch64/sme-zt0-state.ll b/llvm/test/CodeGen/AArch64/sme-zt0-state.ll index 2583a93e514a2..4b9dd5131f176 100644 --- a/llvm/test/CodeGen/AArch64/sme-zt0-state.ll +++ b/llvm/test/CodeGen/AArch64/sme-zt0-state.ll @@ -33,7 +33,7 @@ define void @za_zt0_shared_caller_no_state_callee(ptr %callee) "aarch64_inout_za ; CHECK-LABEL: za_zt0_shared_caller_no_state_callee: ; CHECK: // %bb.0: ; CHECK-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill -; CHECK-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-NEXT: mov x29, sp ; CHECK-NEXT: sub sp, sp, #80 ; CHECK-NEXT: rdsvl x8, #1 @@ -56,14 +56,14 @@ define void @za_zt0_shared_caller_no_state_callee(ptr %callee) "aarch64_inout_za ; CHECK-NEXT: .LBB1_2: ; CHECK-NEXT: msr TPIDR2_EL0, xzr ; CHECK-NEXT: mov sp, x29 -; CHECK-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-NEXT: ret ; ; CHECK-NEWLOWERING-LABEL: za_zt0_shared_caller_no_state_callee: ; CHECK-NEWLOWERING: // %bb.0: ; CHECK-NEWLOWERING-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill -; CHECK-NEWLOWERING-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-NEWLOWERING-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-NEWLOWERING-NEXT: mov x29, sp ; CHECK-NEWLOWERING-NEXT: sub sp, sp, #80 ; CHECK-NEWLOWERING-NEXT: rdsvl x8, #1 @@ -86,7 +86,7 @@ define void @za_zt0_shared_caller_no_state_callee(ptr %callee) "aarch64_inout_za ; CHECK-NEWLOWERING-NEXT: msr TPIDR2_EL0, xzr ; CHECK-NEWLOWERING-NEXT: ldr zt0, [x19] ; CHECK-NEWLOWERING-NEXT: mov sp, x29 -; CHECK-NEWLOWERING-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-NEWLOWERING-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-NEWLOWERING-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-NEWLOWERING-NEXT: ret call void %callee(); @@ -395,7 +395,7 @@ define void @zt0_multiple_private_za_calls(ptr %callee) "aarch64_in_zt0" nounwin ; CHECK-COMMON-NEXT: stp x20, x19, [sp, #80] // 16-byte Folded Spill ; CHECK-COMMON-NEXT: mov x20, sp ; CHECK-COMMON-NEXT: mov x19, x0 -; CHECK-COMMON-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-COMMON-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-COMMON-NEXT: str zt0, [x20] ; CHECK-COMMON-NEXT: smstop za ; CHECK-COMMON-NEXT: blr x0 @@ -417,7 +417,7 @@ define void @zt0_multiple_private_za_calls(ptr %callee) "aarch64_in_zt0" nounwin ; CHECK-COMMON-NEXT: smstart za ; CHECK-COMMON-NEXT: ldr zt0, [x20] ; CHECK-COMMON-NEXT: ldp x20, x19, [sp, #80] // 16-byte Folded Reload -; CHECK-COMMON-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-COMMON-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-COMMON-NEXT: add sp, sp, #96 ; CHECK-COMMON-NEXT: ret call void %callee() diff --git a/llvm/test/CodeGen/AArch64/sme2-fp8-intrinsics-cvt.ll b/llvm/test/CodeGen/AArch64/sme2-fp8-intrinsics-cvt.ll index 8398e07f63801..971b1e240ad15 100644 --- a/llvm/test/CodeGen/AArch64/sme2-fp8-intrinsics-cvt.ll +++ b/llvm/test/CodeGen/AArch64/sme2-fp8-intrinsics-cvt.ll @@ -27,7 +27,7 @@ define { , , , , , , , } @bfcvt_tuple(i64 %stride, ptr ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-3 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: str z11, [sp, #1, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z10, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x48, 0x1e, 0x22 // sp + 16 + 24 * VG @@ -141,7 +141,7 @@ define { , } @bfcvt_tuple(i64 %stride, ptr ; CHECK-NEXT: bfcvt z1.b, { z10.h, z11.h } ; CHECK-NEXT: ldr z11, [sp, #1, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z10, [sp, #2, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #3 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret diff --git a/llvm/test/CodeGen/AArch64/sme2-intrinsics-int-dots.ll b/llvm/test/CodeGen/AArch64/sme2-intrinsics-int-dots.ll index ae561016e58b1..111b3fde29a37 100644 --- a/llvm/test/CodeGen/AArch64/sme2-intrinsics-int-dots.ll +++ b/llvm/test/CodeGen/AArch64/sme2-intrinsics-int-dots.ll @@ -597,7 +597,7 @@ define void @udot_single_za32_u16_vg1x2_tuple(ptr %ptr, i64 %stride, ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-3 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: ptrue pn8.b ; CHECK-NEXT: mov w8, wzr ; CHECK-NEXT: str z11, [sp, #1, mul vl] // 16-byte Folded Spill @@ -1370,7 +1370,7 @@ define void @udot_form_2x_tuple_svecc(ptr %ptr, i64 %stride, ; CHECK-NEXT: udot za.s[w8, 0, vgx2], { z10.b, z11.b }, z0.b[0] ; CHECK-NEXT: ldr z11, [sp, #1, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z10, [sp, #2, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: str z0, [x0] ; CHECK-NEXT: addvl sp, sp, #3 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload @@ -1446,7 +1446,7 @@ define void @udot_form_4x_tuple_svecc(ptr %ptr, i64 %stride, ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-9 ; CHECK-NEXT: lsl x9, x1, #1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: ptrue pn8.b ; CHECK-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: mov w8, wzr @@ -1474,7 +1474,7 @@ define void @udot_form_4x_tuple_svecc(ptr %ptr, i64 %stride, ; CHECK-NEXT: ldr z18, [sp, #6, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z17, [sp, #7, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z16, [sp, #8, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: str z0, [x0] ; CHECK-NEXT: addvl sp, sp, #9 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload @@ -1520,7 +1520,7 @@ define void @udot_single_za32_u16_vg1x4_x2load_x4tuple(ptr %ptr, i64 %stride, ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-3 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: ptrue pn8.b ; CHECK-NEXT: mov w8, wzr ; CHECK-NEXT: str z11, [sp, #1, mul vl] // 16-byte Folded Spill @@ -1674,7 +1674,7 @@ define void @usdot_form_2x_tuple_svecc(ptr %ptr, i64 %stride, ; CHECK-NEXT: usdot za.s[w8, 0, vgx2], { z10.b, z11.b }, z0.b[0] ; CHECK-NEXT: ldr z11, [sp, #1, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z10, [sp, #2, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: str z0, [x0] ; CHECK-NEXT: addvl sp, sp, #3 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload @@ -1750,7 +1750,7 @@ define void @usdot_form_4x_tuple_svecc(ptr %ptr, i64 %stride, ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-9 ; CHECK-NEXT: lsl x9, x1, #1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: ptrue pn8.b ; CHECK-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: mov w8, wzr @@ -1778,7 +1778,7 @@ define void @usdot_form_4x_tuple_svecc(ptr %ptr, i64 %stride, ; CHECK-NEXT: ldr z18, [sp, #6, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z17, [sp, #7, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z16, [sp, #8, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: str z0, [x0] ; CHECK-NEXT: addvl sp, sp, #9 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload @@ -1917,7 +1917,7 @@ define void @sdot_form_2x_tuple_svecc(ptr %ptr, i64 %stride, ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-3 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: ptrue pn8.b ; CHECK-NEXT: mov w8, wzr ; CHECK-NEXT: str z11, [sp, #1, mul vl] // 16-byte Folded Spill @@ -1928,7 +1928,7 @@ define void @sdot_form_2x_tuple_svecc(ptr %ptr, i64 %stride, ; CHECK-NEXT: sdot za.s[w8, 0, vgx2], { z10.b, z11.b }, z0.b[0] ; CHECK-NEXT: ldr z11, [sp, #1, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z10, [sp, #2, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: str z0, [x0] ; CHECK-NEXT: addvl sp, sp, #3 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload @@ -2004,7 +2004,7 @@ define void @sdot_form_4x_tuple_svecc(ptr %ptr, i64 %stride, ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-9 ; CHECK-NEXT: lsl x9, x1, #1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: ptrue pn8.b ; CHECK-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: mov w8, wzr @@ -2032,7 +2032,7 @@ define void @sdot_form_4x_tuple_svecc(ptr %ptr, i64 %stride, ; CHECK-NEXT: ldr z18, [sp, #6, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z17, [sp, #7, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z16, [sp, #8, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: str z0, [x0] ; CHECK-NEXT: addvl sp, sp, #9 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload @@ -2171,7 +2171,7 @@ define void @sudot_form_2x_tuple_svecc(ptr %ptr, i64 %stride, ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-3 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: ptrue pn8.b ; CHECK-NEXT: mov w8, wzr ; CHECK-NEXT: str z11, [sp, #1, mul vl] // 16-byte Folded Spill @@ -2182,7 +2182,7 @@ define void @sudot_form_2x_tuple_svecc(ptr %ptr, i64 %stride, ; CHECK-NEXT: sudot za.s[w8, 0, vgx2], { z10.b, z11.b }, z0.b[0] ; CHECK-NEXT: ldr z11, [sp, #1, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z10, [sp, #2, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: str z0, [x0] ; CHECK-NEXT: addvl sp, sp, #3 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload @@ -2258,7 +2258,7 @@ define void @sudot_form_4x_tuple_svecc(ptr %ptr, i64 %stride, ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-9 ; CHECK-NEXT: lsl x9, x1, #1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: ptrue pn8.b ; CHECK-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: mov w8, wzr @@ -2286,7 +2286,7 @@ define void @sudot_form_4x_tuple_svecc(ptr %ptr, i64 %stride, ; CHECK-NEXT: ldr z18, [sp, #6, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z17, [sp, #7, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z16, [sp, #8, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: str z0, [x0] ; CHECK-NEXT: addvl sp, sp, #9 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload diff --git a/llvm/test/CodeGen/AArch64/sme2-intrinsics-ld1.ll b/llvm/test/CodeGen/AArch64/sme2-intrinsics-ld1.ll index 19ac03d1200b7..0e62c7f223414 100644 --- a/llvm/test/CodeGen/AArch64/sme2-intrinsics-ld1.ll +++ b/llvm/test/CodeGen/AArch64/sme2-intrinsics-ld1.ll @@ -55,7 +55,7 @@ define @ld1_x2_i8_z0_z8( %unused, @ld1_x2_i8_z0_z8( %unused, @ld1_x2_i8_z0_z8( %unused, @ld1_x2_i8_z0_z8( %unused, @ld1_x2_i8_z0_z8_scalar( %unused, @ld1_x2_i8_z0_z8_scalar( %unused, @ld1_x2_i8_z0_z8_scalar( %unused, @ld1_x2_i8_z0_z8_scalar( %unused, @ld1_x2_i16_z0_z8( %unused, @ld1_x2_i16_z0_z8( %unused, @ld1_x2_i16_z0_z8( %unused, @ld1_x2_i16_z0_z8( %unused, @ld1_x2_i16_z0_z8_scalar( %unused, ; STRIDED: // %bb.0: ; STRIDED-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; STRIDED-NEXT: addvl sp, sp, #-17 -; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; STRIDED-NEXT: mov p8.b, p0.b ; STRIDED-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; STRIDED-NEXT: str z22, [sp, #2, mul vl] // 16-byte Folded Spill @@ -543,7 +543,7 @@ define @ld1_x2_i16_z0_z8_scalar( %unused, ; STRIDED-NEXT: //APP ; STRIDED-NEXT: nop ; STRIDED-NEXT: //NO_APP -; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; STRIDED-NEXT: ldr z23, [sp, #1, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z22, [sp, #2, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z21, [sp, #3, mul vl] // 16-byte Folded Reload @@ -569,7 +569,7 @@ define @ld1_x2_i16_z0_z8_scalar( %unused, ; CONTIGUOUS: // %bb.0: ; CONTIGUOUS-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CONTIGUOUS-NEXT: addvl sp, sp, #-16 -; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CONTIGUOUS-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; CONTIGUOUS-NEXT: str z22, [sp, #2, mul vl] // 16-byte Folded Spill ; CONTIGUOUS-NEXT: str z21, [sp, #3, mul vl] // 16-byte Folded Spill @@ -611,7 +611,7 @@ define @ld1_x2_i16_z0_z8_scalar( %unused, ; CONTIGUOUS-NEXT: ldr z11, [sp, #13, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z10, [sp, #14, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z9, [sp, #15, mul vl] // 16-byte Folded Reload -; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CONTIGUOUS-NEXT: addvl sp, sp, #16 ; CONTIGUOUS-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CONTIGUOUS-NEXT: ret @@ -677,7 +677,7 @@ define @ld1_x2_i32_z0_z8( %unused, @ld1_x2_i32_z0_z8( %unused, @ld1_x2_i32_z0_z8( %unused, @ld1_x2_i32_z0_z8( %unused, @ld1_x2_i32_z0_z8_scalar( %unused, < ; STRIDED: // %bb.0: ; STRIDED-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; STRIDED-NEXT: addvl sp, sp, #-17 -; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; STRIDED-NEXT: mov p8.b, p0.b ; STRIDED-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; STRIDED-NEXT: str z22, [sp, #2, mul vl] // 16-byte Folded Spill @@ -854,7 +854,7 @@ define @ld1_x2_i32_z0_z8_scalar( %unused, < ; STRIDED-NEXT: //APP ; STRIDED-NEXT: nop ; STRIDED-NEXT: //NO_APP -; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; STRIDED-NEXT: ldr z23, [sp, #1, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z22, [sp, #2, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z21, [sp, #3, mul vl] // 16-byte Folded Reload @@ -880,7 +880,7 @@ define @ld1_x2_i32_z0_z8_scalar( %unused, < ; CONTIGUOUS: // %bb.0: ; CONTIGUOUS-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CONTIGUOUS-NEXT: addvl sp, sp, #-16 -; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CONTIGUOUS-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; CONTIGUOUS-NEXT: str z22, [sp, #2, mul vl] // 16-byte Folded Spill ; CONTIGUOUS-NEXT: str z21, [sp, #3, mul vl] // 16-byte Folded Spill @@ -922,7 +922,7 @@ define @ld1_x2_i32_z0_z8_scalar( %unused, < ; CONTIGUOUS-NEXT: ldr z11, [sp, #13, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z10, [sp, #14, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z9, [sp, #15, mul vl] // 16-byte Folded Reload -; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CONTIGUOUS-NEXT: addvl sp, sp, #16 ; CONTIGUOUS-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CONTIGUOUS-NEXT: ret @@ -988,7 +988,7 @@ define @ld1_x2_i64_z0_z8( %unused, @ld1_x2_i64_z0_z8( %unused, @ld1_x2_i64_z0_z8( %unused, @ld1_x2_i64_z0_z8( %unused, @ld1_x2_i64_z0_z8_scalar( %unused, < ; STRIDED: // %bb.0: ; STRIDED-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; STRIDED-NEXT: addvl sp, sp, #-17 -; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; STRIDED-NEXT: mov p8.b, p0.b ; STRIDED-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; STRIDED-NEXT: str z22, [sp, #2, mul vl] // 16-byte Folded Spill @@ -1165,7 +1165,7 @@ define @ld1_x2_i64_z0_z8_scalar( %unused, < ; STRIDED-NEXT: //APP ; STRIDED-NEXT: nop ; STRIDED-NEXT: //NO_APP -; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; STRIDED-NEXT: ldr z23, [sp, #1, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z22, [sp, #2, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z21, [sp, #3, mul vl] // 16-byte Folded Reload @@ -1191,7 +1191,7 @@ define @ld1_x2_i64_z0_z8_scalar( %unused, < ; CONTIGUOUS: // %bb.0: ; CONTIGUOUS-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CONTIGUOUS-NEXT: addvl sp, sp, #-16 -; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CONTIGUOUS-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; CONTIGUOUS-NEXT: str z22, [sp, #2, mul vl] // 16-byte Folded Spill ; CONTIGUOUS-NEXT: str z21, [sp, #3, mul vl] // 16-byte Folded Spill @@ -1233,7 +1233,7 @@ define @ld1_x2_i64_z0_z8_scalar( %unused, < ; CONTIGUOUS-NEXT: ldr z11, [sp, #13, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z10, [sp, #14, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z9, [sp, #15, mul vl] // 16-byte Folded Reload -; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CONTIGUOUS-NEXT: addvl sp, sp, #16 ; CONTIGUOUS-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CONTIGUOUS-NEXT: ret @@ -1301,7 +1301,7 @@ define @ld1_x4_i8_z0_z4_z8_z12( %unused, @ld1_x4_i8_z0_z4_z8_z12( %unused, @ld1_x4_i8_z0_z4_z8_z12( %unused, @ld1_x4_i8_z0_z4_z8_z12( %unused, @ld1_x4_i8_z0_z4_z8_z12_scalar( %unu ; STRIDED: // %bb.0: ; STRIDED-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; STRIDED-NEXT: addvl sp, sp, #-17 -; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; STRIDED-NEXT: mov p8.b, p0.b ; STRIDED-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; STRIDED-NEXT: str z22, [sp, #2, mul vl] // 16-byte Folded Spill @@ -1488,7 +1488,7 @@ define @ld1_x4_i8_z0_z4_z8_z12_scalar( %unu ; STRIDED-NEXT: //APP ; STRIDED-NEXT: nop ; STRIDED-NEXT: //NO_APP -; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; STRIDED-NEXT: ldr z23, [sp, #1, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z22, [sp, #2, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z21, [sp, #3, mul vl] // 16-byte Folded Reload @@ -1516,7 +1516,7 @@ define @ld1_x4_i8_z0_z4_z8_z12_scalar( %unu ; CONTIGUOUS: // %bb.0: ; CONTIGUOUS-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CONTIGUOUS-NEXT: addvl sp, sp, #-15 -; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CONTIGUOUS-NEXT: ptrue pn8.b ; CONTIGUOUS-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; CONTIGUOUS-NEXT: st1b { z10.b, z11.b }, pn8, [sp, #12, mul vl] // 32-byte Folded Spill @@ -1560,7 +1560,7 @@ define @ld1_x4_i8_z0_z4_z8_z12_scalar( %unu ; CONTIGUOUS-NEXT: ldr z14, [sp, #10, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z13, [sp, #11, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z9, [sp, #14, mul vl] // 16-byte Folded Reload -; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CONTIGUOUS-NEXT: addvl sp, sp, #15 ; CONTIGUOUS-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CONTIGUOUS-NEXT: ret @@ -1632,7 +1632,7 @@ define @ld1_x4_i16_z0_z4_z8_z12( %unused, ; STRIDED: // %bb.0: ; STRIDED-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; STRIDED-NEXT: addvl sp, sp, #-17 -; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; STRIDED-NEXT: mov p8.b, p0.b ; STRIDED-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; STRIDED-NEXT: str z22, [sp, #2, mul vl] // 16-byte Folded Spill @@ -1654,7 +1654,7 @@ define @ld1_x4_i16_z0_z4_z8_z12( %unused, ; STRIDED-NEXT: //APP ; STRIDED-NEXT: nop ; STRIDED-NEXT: //NO_APP -; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; STRIDED-NEXT: ldr z23, [sp, #1, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z22, [sp, #2, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z21, [sp, #3, mul vl] // 16-byte Folded Reload @@ -1682,7 +1682,7 @@ define @ld1_x4_i16_z0_z4_z8_z12( %unused, ; CONTIGUOUS: // %bb.0: ; CONTIGUOUS-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CONTIGUOUS-NEXT: addvl sp, sp, #-15 -; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CONTIGUOUS-NEXT: ptrue pn8.b ; CONTIGUOUS-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; CONTIGUOUS-NEXT: st1b { z10.b, z11.b }, pn8, [sp, #12, mul vl] // 32-byte Folded Spill @@ -1726,7 +1726,7 @@ define @ld1_x4_i16_z0_z4_z8_z12( %unused, ; CONTIGUOUS-NEXT: ldr z14, [sp, #10, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z13, [sp, #11, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z9, [sp, #14, mul vl] // 16-byte Folded Reload -; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CONTIGUOUS-NEXT: addvl sp, sp, #15 ; CONTIGUOUS-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CONTIGUOUS-NEXT: ret @@ -1798,7 +1798,7 @@ define @ld1_x4_i16_z0_z4_z8_z12_scalar( %u ; STRIDED: // %bb.0: ; STRIDED-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; STRIDED-NEXT: addvl sp, sp, #-17 -; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; STRIDED-NEXT: mov p8.b, p0.b ; STRIDED-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; STRIDED-NEXT: str z22, [sp, #2, mul vl] // 16-byte Folded Spill @@ -1820,7 +1820,7 @@ define @ld1_x4_i16_z0_z4_z8_z12_scalar( %u ; STRIDED-NEXT: //APP ; STRIDED-NEXT: nop ; STRIDED-NEXT: //NO_APP -; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; STRIDED-NEXT: ldr z23, [sp, #1, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z22, [sp, #2, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z21, [sp, #3, mul vl] // 16-byte Folded Reload @@ -1848,7 +1848,7 @@ define @ld1_x4_i16_z0_z4_z8_z12_scalar( %u ; CONTIGUOUS: // %bb.0: ; CONTIGUOUS-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CONTIGUOUS-NEXT: addvl sp, sp, #-15 -; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CONTIGUOUS-NEXT: ptrue pn8.b ; CONTIGUOUS-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; CONTIGUOUS-NEXT: st1b { z10.b, z11.b }, pn8, [sp, #12, mul vl] // 32-byte Folded Spill @@ -1892,7 +1892,7 @@ define @ld1_x4_i16_z0_z4_z8_z12_scalar( %u ; CONTIGUOUS-NEXT: ldr z14, [sp, #10, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z13, [sp, #11, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z9, [sp, #14, mul vl] // 16-byte Folded Reload -; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CONTIGUOUS-NEXT: addvl sp, sp, #15 ; CONTIGUOUS-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CONTIGUOUS-NEXT: ret @@ -1964,7 +1964,7 @@ define @ld1_x4_i32_z0_z4_z8_z12( %unused, ; STRIDED: // %bb.0: ; STRIDED-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; STRIDED-NEXT: addvl sp, sp, #-17 -; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; STRIDED-NEXT: mov p8.b, p0.b ; STRIDED-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; STRIDED-NEXT: str z22, [sp, #2, mul vl] // 16-byte Folded Spill @@ -1986,7 +1986,7 @@ define @ld1_x4_i32_z0_z4_z8_z12( %unused, ; STRIDED-NEXT: //APP ; STRIDED-NEXT: nop ; STRIDED-NEXT: //NO_APP -; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; STRIDED-NEXT: ldr z23, [sp, #1, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z22, [sp, #2, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z21, [sp, #3, mul vl] // 16-byte Folded Reload @@ -2014,7 +2014,7 @@ define @ld1_x4_i32_z0_z4_z8_z12( %unused, ; CONTIGUOUS: // %bb.0: ; CONTIGUOUS-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CONTIGUOUS-NEXT: addvl sp, sp, #-15 -; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CONTIGUOUS-NEXT: ptrue pn8.b ; CONTIGUOUS-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; CONTIGUOUS-NEXT: st1b { z10.b, z11.b }, pn8, [sp, #12, mul vl] // 32-byte Folded Spill @@ -2058,7 +2058,7 @@ define @ld1_x4_i32_z0_z4_z8_z12( %unused, ; CONTIGUOUS-NEXT: ldr z14, [sp, #10, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z13, [sp, #11, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z9, [sp, #14, mul vl] // 16-byte Folded Reload -; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CONTIGUOUS-NEXT: addvl sp, sp, #15 ; CONTIGUOUS-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CONTIGUOUS-NEXT: ret @@ -2130,7 +2130,7 @@ define @ld1_x4_i32_z0_z4_z8_z12_scalar( %u ; STRIDED: // %bb.0: ; STRIDED-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; STRIDED-NEXT: addvl sp, sp, #-17 -; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; STRIDED-NEXT: mov p8.b, p0.b ; STRIDED-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; STRIDED-NEXT: str z22, [sp, #2, mul vl] // 16-byte Folded Spill @@ -2152,7 +2152,7 @@ define @ld1_x4_i32_z0_z4_z8_z12_scalar( %u ; STRIDED-NEXT: //APP ; STRIDED-NEXT: nop ; STRIDED-NEXT: //NO_APP -; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; STRIDED-NEXT: ldr z23, [sp, #1, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z22, [sp, #2, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z21, [sp, #3, mul vl] // 16-byte Folded Reload @@ -2180,7 +2180,7 @@ define @ld1_x4_i32_z0_z4_z8_z12_scalar( %u ; CONTIGUOUS: // %bb.0: ; CONTIGUOUS-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CONTIGUOUS-NEXT: addvl sp, sp, #-15 -; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CONTIGUOUS-NEXT: ptrue pn8.b ; CONTIGUOUS-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; CONTIGUOUS-NEXT: st1b { z10.b, z11.b }, pn8, [sp, #12, mul vl] // 32-byte Folded Spill @@ -2224,7 +2224,7 @@ define @ld1_x4_i32_z0_z4_z8_z12_scalar( %u ; CONTIGUOUS-NEXT: ldr z14, [sp, #10, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z13, [sp, #11, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z9, [sp, #14, mul vl] // 16-byte Folded Reload -; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CONTIGUOUS-NEXT: addvl sp, sp, #15 ; CONTIGUOUS-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CONTIGUOUS-NEXT: ret @@ -2296,7 +2296,7 @@ define @ld1_x4_i64_z0_z4_z8_z12( %unused, < ; STRIDED: // %bb.0: ; STRIDED-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; STRIDED-NEXT: addvl sp, sp, #-17 -; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; STRIDED-NEXT: mov p8.b, p0.b ; STRIDED-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; STRIDED-NEXT: str z22, [sp, #2, mul vl] // 16-byte Folded Spill @@ -2318,7 +2318,7 @@ define @ld1_x4_i64_z0_z4_z8_z12( %unused, < ; STRIDED-NEXT: //APP ; STRIDED-NEXT: nop ; STRIDED-NEXT: //NO_APP -; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; STRIDED-NEXT: ldr z23, [sp, #1, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z22, [sp, #2, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z21, [sp, #3, mul vl] // 16-byte Folded Reload @@ -2346,7 +2346,7 @@ define @ld1_x4_i64_z0_z4_z8_z12( %unused, < ; CONTIGUOUS: // %bb.0: ; CONTIGUOUS-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CONTIGUOUS-NEXT: addvl sp, sp, #-15 -; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CONTIGUOUS-NEXT: ptrue pn8.b ; CONTIGUOUS-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; CONTIGUOUS-NEXT: st1b { z10.b, z11.b }, pn8, [sp, #12, mul vl] // 32-byte Folded Spill @@ -2390,7 +2390,7 @@ define @ld1_x4_i64_z0_z4_z8_z12( %unused, < ; CONTIGUOUS-NEXT: ldr z14, [sp, #10, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z13, [sp, #11, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z9, [sp, #14, mul vl] // 16-byte Folded Reload -; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CONTIGUOUS-NEXT: addvl sp, sp, #15 ; CONTIGUOUS-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CONTIGUOUS-NEXT: ret @@ -2462,7 +2462,7 @@ define @ld1_x4_i64_z0_z4_z8_z12_scalar( %un ; STRIDED: // %bb.0: ; STRIDED-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; STRIDED-NEXT: addvl sp, sp, #-17 -; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; STRIDED-NEXT: mov p8.b, p0.b ; STRIDED-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; STRIDED-NEXT: str z22, [sp, #2, mul vl] // 16-byte Folded Spill @@ -2484,7 +2484,7 @@ define @ld1_x4_i64_z0_z4_z8_z12_scalar( %un ; STRIDED-NEXT: //APP ; STRIDED-NEXT: nop ; STRIDED-NEXT: //NO_APP -; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; STRIDED-NEXT: ldr z23, [sp, #1, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z22, [sp, #2, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z21, [sp, #3, mul vl] // 16-byte Folded Reload @@ -2512,7 +2512,7 @@ define @ld1_x4_i64_z0_z4_z8_z12_scalar( %un ; CONTIGUOUS: // %bb.0: ; CONTIGUOUS-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CONTIGUOUS-NEXT: addvl sp, sp, #-15 -; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CONTIGUOUS-NEXT: ptrue pn8.b ; CONTIGUOUS-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; CONTIGUOUS-NEXT: st1b { z10.b, z11.b }, pn8, [sp, #12, mul vl] // 32-byte Folded Spill @@ -2556,7 +2556,7 @@ define @ld1_x4_i64_z0_z4_z8_z12_scalar( %un ; CONTIGUOUS-NEXT: ldr z14, [sp, #10, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z13, [sp, #11, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z9, [sp, #14, mul vl] // 16-byte Folded Reload -; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CONTIGUOUS-NEXT: addvl sp, sp, #15 ; CONTIGUOUS-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CONTIGUOUS-NEXT: ret diff --git a/llvm/test/CodeGen/AArch64/sme2-intrinsics-ldnt1.ll b/llvm/test/CodeGen/AArch64/sme2-intrinsics-ldnt1.ll index 039b6214ac860..1cec418249d46 100644 --- a/llvm/test/CodeGen/AArch64/sme2-intrinsics-ldnt1.ll +++ b/llvm/test/CodeGen/AArch64/sme2-intrinsics-ldnt1.ll @@ -8,7 +8,7 @@ define @ldnt1_x2_i8_z0_z8( %unused, @ldnt1_x2_i8_z0_z8( %unused, @ldnt1_x2_i8_z0_z8( %unused, @ldnt1_x2_i8_z0_z8( %unused, @ldnt1_x2_i8_z0_z8_scalar( %unused, ; STRIDED: // %bb.0: ; STRIDED-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; STRIDED-NEXT: addvl sp, sp, #-17 -; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; STRIDED-NEXT: mov p8.b, p0.b ; STRIDED-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; STRIDED-NEXT: str z22, [sp, #2, mul vl] // 16-byte Folded Spill @@ -138,7 +138,7 @@ define @ldnt1_x2_i8_z0_z8_scalar( %unused, ; STRIDED-NEXT: //APP ; STRIDED-NEXT: nop ; STRIDED-NEXT: //NO_APP -; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; STRIDED-NEXT: ldr z23, [sp, #1, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z22, [sp, #2, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z21, [sp, #3, mul vl] // 16-byte Folded Reload @@ -164,7 +164,7 @@ define @ldnt1_x2_i8_z0_z8_scalar( %unused, ; CONTIGUOUS: // %bb.0: ; CONTIGUOUS-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CONTIGUOUS-NEXT: addvl sp, sp, #-16 -; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CONTIGUOUS-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; CONTIGUOUS-NEXT: str z22, [sp, #2, mul vl] // 16-byte Folded Spill ; CONTIGUOUS-NEXT: str z21, [sp, #3, mul vl] // 16-byte Folded Spill @@ -206,7 +206,7 @@ define @ldnt1_x2_i8_z0_z8_scalar( %unused, ; CONTIGUOUS-NEXT: ldr z11, [sp, #13, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z10, [sp, #14, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z9, [sp, #15, mul vl] // 16-byte Folded Reload -; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CONTIGUOUS-NEXT: addvl sp, sp, #16 ; CONTIGUOUS-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CONTIGUOUS-NEXT: ret @@ -225,7 +225,7 @@ define @ldnt1_x2_i16_z0_z8( %unused, @ldnt1_x2_i16_z0_z8( %unused, @ldnt1_x2_i16_z0_z8( %unused, @ldnt1_x2_i16_z0_z8( %unused, @ldnt1_x2_i16_z0_z8_scalar( %unused ; STRIDED: // %bb.0: ; STRIDED-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; STRIDED-NEXT: addvl sp, sp, #-17 -; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; STRIDED-NEXT: mov p8.b, p0.b ; STRIDED-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; STRIDED-NEXT: str z22, [sp, #2, mul vl] // 16-byte Folded Spill @@ -355,7 +355,7 @@ define @ldnt1_x2_i16_z0_z8_scalar( %unused ; STRIDED-NEXT: //APP ; STRIDED-NEXT: nop ; STRIDED-NEXT: //NO_APP -; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; STRIDED-NEXT: ldr z23, [sp, #1, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z22, [sp, #2, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z21, [sp, #3, mul vl] // 16-byte Folded Reload @@ -381,7 +381,7 @@ define @ldnt1_x2_i16_z0_z8_scalar( %unused ; CONTIGUOUS: // %bb.0: ; CONTIGUOUS-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CONTIGUOUS-NEXT: addvl sp, sp, #-16 -; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CONTIGUOUS-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; CONTIGUOUS-NEXT: str z22, [sp, #2, mul vl] // 16-byte Folded Spill ; CONTIGUOUS-NEXT: str z21, [sp, #3, mul vl] // 16-byte Folded Spill @@ -423,7 +423,7 @@ define @ldnt1_x2_i16_z0_z8_scalar( %unused ; CONTIGUOUS-NEXT: ldr z11, [sp, #13, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z10, [sp, #14, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z9, [sp, #15, mul vl] // 16-byte Folded Reload -; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CONTIGUOUS-NEXT: addvl sp, sp, #16 ; CONTIGUOUS-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CONTIGUOUS-NEXT: ret @@ -442,7 +442,7 @@ define @ldnt1_x2_i32_z0_z8( %unused, @ldnt1_x2_i32_z0_z8( %unused, @ldnt1_x2_i32_z0_z8( %unused, @ldnt1_x2_i32_z0_z8( %unused, @ldnt1_x2_i32_z0_z8_scalar( %unused, ; STRIDED: // %bb.0: ; STRIDED-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; STRIDED-NEXT: addvl sp, sp, #-17 -; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; STRIDED-NEXT: mov p8.b, p0.b ; STRIDED-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; STRIDED-NEXT: str z22, [sp, #2, mul vl] // 16-byte Folded Spill @@ -572,7 +572,7 @@ define @ldnt1_x2_i32_z0_z8_scalar( %unused, ; STRIDED-NEXT: //APP ; STRIDED-NEXT: nop ; STRIDED-NEXT: //NO_APP -; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; STRIDED-NEXT: ldr z23, [sp, #1, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z22, [sp, #2, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z21, [sp, #3, mul vl] // 16-byte Folded Reload @@ -598,7 +598,7 @@ define @ldnt1_x2_i32_z0_z8_scalar( %unused, ; CONTIGUOUS: // %bb.0: ; CONTIGUOUS-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CONTIGUOUS-NEXT: addvl sp, sp, #-16 -; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CONTIGUOUS-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; CONTIGUOUS-NEXT: str z22, [sp, #2, mul vl] // 16-byte Folded Spill ; CONTIGUOUS-NEXT: str z21, [sp, #3, mul vl] // 16-byte Folded Spill @@ -640,7 +640,7 @@ define @ldnt1_x2_i32_z0_z8_scalar( %unused, ; CONTIGUOUS-NEXT: ldr z11, [sp, #13, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z10, [sp, #14, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z9, [sp, #15, mul vl] // 16-byte Folded Reload -; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CONTIGUOUS-NEXT: addvl sp, sp, #16 ; CONTIGUOUS-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CONTIGUOUS-NEXT: ret @@ -659,7 +659,7 @@ define @ldnt1_x2_i64_z0_z8( %unused, @ldnt1_x2_i64_z0_z8( %unused, @ldnt1_x2_i64_z0_z8( %unused, @ldnt1_x2_i64_z0_z8( %unused, @ldnt1_x2_i64_z0_z8_scalar( %unused, ; STRIDED: // %bb.0: ; STRIDED-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; STRIDED-NEXT: addvl sp, sp, #-17 -; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; STRIDED-NEXT: mov p8.b, p0.b ; STRIDED-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; STRIDED-NEXT: str z22, [sp, #2, mul vl] // 16-byte Folded Spill @@ -789,7 +789,7 @@ define @ldnt1_x2_i64_z0_z8_scalar( %unused, ; STRIDED-NEXT: //APP ; STRIDED-NEXT: nop ; STRIDED-NEXT: //NO_APP -; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; STRIDED-NEXT: ldr z23, [sp, #1, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z22, [sp, #2, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z21, [sp, #3, mul vl] // 16-byte Folded Reload @@ -815,7 +815,7 @@ define @ldnt1_x2_i64_z0_z8_scalar( %unused, ; CONTIGUOUS: // %bb.0: ; CONTIGUOUS-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CONTIGUOUS-NEXT: addvl sp, sp, #-16 -; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CONTIGUOUS-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; CONTIGUOUS-NEXT: str z22, [sp, #2, mul vl] // 16-byte Folded Spill ; CONTIGUOUS-NEXT: str z21, [sp, #3, mul vl] // 16-byte Folded Spill @@ -857,7 +857,7 @@ define @ldnt1_x2_i64_z0_z8_scalar( %unused, ; CONTIGUOUS-NEXT: ldr z11, [sp, #13, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z10, [sp, #14, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z9, [sp, #15, mul vl] // 16-byte Folded Reload -; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CONTIGUOUS-NEXT: addvl sp, sp, #16 ; CONTIGUOUS-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CONTIGUOUS-NEXT: ret @@ -876,7 +876,7 @@ define @ldnt1_x4_i8_z0_z4_z8_z12( %unused, ; STRIDED: // %bb.0: ; STRIDED-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; STRIDED-NEXT: addvl sp, sp, #-17 -; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; STRIDED-NEXT: mov p8.b, p0.b ; STRIDED-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; STRIDED-NEXT: str z22, [sp, #2, mul vl] // 16-byte Folded Spill @@ -898,7 +898,7 @@ define @ldnt1_x4_i8_z0_z4_z8_z12( %unused, ; STRIDED-NEXT: //APP ; STRIDED-NEXT: nop ; STRIDED-NEXT: //NO_APP -; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; STRIDED-NEXT: ldr z23, [sp, #1, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z22, [sp, #2, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z21, [sp, #3, mul vl] // 16-byte Folded Reload @@ -926,7 +926,7 @@ define @ldnt1_x4_i8_z0_z4_z8_z12( %unused, ; CONTIGUOUS: // %bb.0: ; CONTIGUOUS-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CONTIGUOUS-NEXT: addvl sp, sp, #-15 -; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CONTIGUOUS-NEXT: ptrue pn8.b ; CONTIGUOUS-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; CONTIGUOUS-NEXT: st1b { z10.b, z11.b }, pn8, [sp, #12, mul vl] // 32-byte Folded Spill @@ -970,7 +970,7 @@ define @ldnt1_x4_i8_z0_z4_z8_z12( %unused, ; CONTIGUOUS-NEXT: ldr z14, [sp, #10, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z13, [sp, #11, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z9, [sp, #14, mul vl] // 16-byte Folded Reload -; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CONTIGUOUS-NEXT: addvl sp, sp, #15 ; CONTIGUOUS-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CONTIGUOUS-NEXT: ret @@ -992,7 +992,7 @@ define @ldnt1_x4_i8_z0_z4_z8_z12_scalar( %u ; STRIDED: // %bb.0: ; STRIDED-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; STRIDED-NEXT: addvl sp, sp, #-17 -; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; STRIDED-NEXT: mov p8.b, p0.b ; STRIDED-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; STRIDED-NEXT: str z22, [sp, #2, mul vl] // 16-byte Folded Spill @@ -1014,7 +1014,7 @@ define @ldnt1_x4_i8_z0_z4_z8_z12_scalar( %u ; STRIDED-NEXT: //APP ; STRIDED-NEXT: nop ; STRIDED-NEXT: //NO_APP -; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; STRIDED-NEXT: ldr z23, [sp, #1, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z22, [sp, #2, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z21, [sp, #3, mul vl] // 16-byte Folded Reload @@ -1042,7 +1042,7 @@ define @ldnt1_x4_i8_z0_z4_z8_z12_scalar( %u ; CONTIGUOUS: // %bb.0: ; CONTIGUOUS-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CONTIGUOUS-NEXT: addvl sp, sp, #-15 -; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CONTIGUOUS-NEXT: ptrue pn8.b ; CONTIGUOUS-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; CONTIGUOUS-NEXT: st1b { z10.b, z11.b }, pn8, [sp, #12, mul vl] // 32-byte Folded Spill @@ -1086,7 +1086,7 @@ define @ldnt1_x4_i8_z0_z4_z8_z12_scalar( %u ; CONTIGUOUS-NEXT: ldr z14, [sp, #10, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z13, [sp, #11, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z9, [sp, #14, mul vl] // 16-byte Folded Reload -; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CONTIGUOUS-NEXT: addvl sp, sp, #15 ; CONTIGUOUS-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CONTIGUOUS-NEXT: ret @@ -1109,7 +1109,7 @@ define @ldnt1_x4_i16_z0_z4_z8_z12( %unused ; STRIDED: // %bb.0: ; STRIDED-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; STRIDED-NEXT: addvl sp, sp, #-17 -; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; STRIDED-NEXT: mov p8.b, p0.b ; STRIDED-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; STRIDED-NEXT: str z22, [sp, #2, mul vl] // 16-byte Folded Spill @@ -1131,7 +1131,7 @@ define @ldnt1_x4_i16_z0_z4_z8_z12( %unused ; STRIDED-NEXT: //APP ; STRIDED-NEXT: nop ; STRIDED-NEXT: //NO_APP -; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; STRIDED-NEXT: ldr z23, [sp, #1, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z22, [sp, #2, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z21, [sp, #3, mul vl] // 16-byte Folded Reload @@ -1159,7 +1159,7 @@ define @ldnt1_x4_i16_z0_z4_z8_z12( %unused ; CONTIGUOUS: // %bb.0: ; CONTIGUOUS-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CONTIGUOUS-NEXT: addvl sp, sp, #-15 -; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CONTIGUOUS-NEXT: ptrue pn8.b ; CONTIGUOUS-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; CONTIGUOUS-NEXT: st1b { z10.b, z11.b }, pn8, [sp, #12, mul vl] // 32-byte Folded Spill @@ -1203,7 +1203,7 @@ define @ldnt1_x4_i16_z0_z4_z8_z12( %unused ; CONTIGUOUS-NEXT: ldr z14, [sp, #10, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z13, [sp, #11, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z9, [sp, #14, mul vl] // 16-byte Folded Reload -; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CONTIGUOUS-NEXT: addvl sp, sp, #15 ; CONTIGUOUS-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CONTIGUOUS-NEXT: ret @@ -1225,7 +1225,7 @@ define @ldnt1_x4_i16_z0_z4_z8_z12_scalar( ; STRIDED: // %bb.0: ; STRIDED-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; STRIDED-NEXT: addvl sp, sp, #-17 -; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; STRIDED-NEXT: mov p8.b, p0.b ; STRIDED-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; STRIDED-NEXT: str z22, [sp, #2, mul vl] // 16-byte Folded Spill @@ -1247,7 +1247,7 @@ define @ldnt1_x4_i16_z0_z4_z8_z12_scalar( ; STRIDED-NEXT: //APP ; STRIDED-NEXT: nop ; STRIDED-NEXT: //NO_APP -; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; STRIDED-NEXT: ldr z23, [sp, #1, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z22, [sp, #2, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z21, [sp, #3, mul vl] // 16-byte Folded Reload @@ -1275,7 +1275,7 @@ define @ldnt1_x4_i16_z0_z4_z8_z12_scalar( ; CONTIGUOUS: // %bb.0: ; CONTIGUOUS-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CONTIGUOUS-NEXT: addvl sp, sp, #-15 -; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CONTIGUOUS-NEXT: ptrue pn8.b ; CONTIGUOUS-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; CONTIGUOUS-NEXT: st1b { z10.b, z11.b }, pn8, [sp, #12, mul vl] // 32-byte Folded Spill @@ -1319,7 +1319,7 @@ define @ldnt1_x4_i16_z0_z4_z8_z12_scalar( ; CONTIGUOUS-NEXT: ldr z14, [sp, #10, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z13, [sp, #11, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z9, [sp, #14, mul vl] // 16-byte Folded Reload -; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CONTIGUOUS-NEXT: addvl sp, sp, #15 ; CONTIGUOUS-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CONTIGUOUS-NEXT: ret @@ -1342,7 +1342,7 @@ define @ldnt1_x4_i32_z0_z4_z8_z12( %unused ; STRIDED: // %bb.0: ; STRIDED-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; STRIDED-NEXT: addvl sp, sp, #-17 -; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; STRIDED-NEXT: mov p8.b, p0.b ; STRIDED-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; STRIDED-NEXT: str z22, [sp, #2, mul vl] // 16-byte Folded Spill @@ -1364,7 +1364,7 @@ define @ldnt1_x4_i32_z0_z4_z8_z12( %unused ; STRIDED-NEXT: //APP ; STRIDED-NEXT: nop ; STRIDED-NEXT: //NO_APP -; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; STRIDED-NEXT: ldr z23, [sp, #1, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z22, [sp, #2, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z21, [sp, #3, mul vl] // 16-byte Folded Reload @@ -1392,7 +1392,7 @@ define @ldnt1_x4_i32_z0_z4_z8_z12( %unused ; CONTIGUOUS: // %bb.0: ; CONTIGUOUS-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CONTIGUOUS-NEXT: addvl sp, sp, #-15 -; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CONTIGUOUS-NEXT: ptrue pn8.b ; CONTIGUOUS-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; CONTIGUOUS-NEXT: st1b { z10.b, z11.b }, pn8, [sp, #12, mul vl] // 32-byte Folded Spill @@ -1436,7 +1436,7 @@ define @ldnt1_x4_i32_z0_z4_z8_z12( %unused ; CONTIGUOUS-NEXT: ldr z14, [sp, #10, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z13, [sp, #11, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z9, [sp, #14, mul vl] // 16-byte Folded Reload -; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CONTIGUOUS-NEXT: addvl sp, sp, #15 ; CONTIGUOUS-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CONTIGUOUS-NEXT: ret @@ -1458,7 +1458,7 @@ define @ldnt1_x4_i32_z0_z4_z8_z12_scalar( ; STRIDED: // %bb.0: ; STRIDED-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; STRIDED-NEXT: addvl sp, sp, #-17 -; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; STRIDED-NEXT: mov p8.b, p0.b ; STRIDED-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; STRIDED-NEXT: str z22, [sp, #2, mul vl] // 16-byte Folded Spill @@ -1480,7 +1480,7 @@ define @ldnt1_x4_i32_z0_z4_z8_z12_scalar( ; STRIDED-NEXT: //APP ; STRIDED-NEXT: nop ; STRIDED-NEXT: //NO_APP -; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; STRIDED-NEXT: ldr z23, [sp, #1, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z22, [sp, #2, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z21, [sp, #3, mul vl] // 16-byte Folded Reload @@ -1508,7 +1508,7 @@ define @ldnt1_x4_i32_z0_z4_z8_z12_scalar( ; CONTIGUOUS: // %bb.0: ; CONTIGUOUS-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CONTIGUOUS-NEXT: addvl sp, sp, #-15 -; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CONTIGUOUS-NEXT: ptrue pn8.b ; CONTIGUOUS-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; CONTIGUOUS-NEXT: st1b { z10.b, z11.b }, pn8, [sp, #12, mul vl] // 32-byte Folded Spill @@ -1552,7 +1552,7 @@ define @ldnt1_x4_i32_z0_z4_z8_z12_scalar( ; CONTIGUOUS-NEXT: ldr z14, [sp, #10, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z13, [sp, #11, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z9, [sp, #14, mul vl] // 16-byte Folded Reload -; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CONTIGUOUS-NEXT: addvl sp, sp, #15 ; CONTIGUOUS-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CONTIGUOUS-NEXT: ret @@ -1575,7 +1575,7 @@ define @ldnt1_x4_i64_z0_z4_z8_z12( %unused, ; STRIDED: // %bb.0: ; STRIDED-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; STRIDED-NEXT: addvl sp, sp, #-17 -; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; STRIDED-NEXT: mov p8.b, p0.b ; STRIDED-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; STRIDED-NEXT: str z22, [sp, #2, mul vl] // 16-byte Folded Spill @@ -1597,7 +1597,7 @@ define @ldnt1_x4_i64_z0_z4_z8_z12( %unused, ; STRIDED-NEXT: //APP ; STRIDED-NEXT: nop ; STRIDED-NEXT: //NO_APP -; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; STRIDED-NEXT: ldr z23, [sp, #1, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z22, [sp, #2, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z21, [sp, #3, mul vl] // 16-byte Folded Reload @@ -1625,7 +1625,7 @@ define @ldnt1_x4_i64_z0_z4_z8_z12( %unused, ; CONTIGUOUS: // %bb.0: ; CONTIGUOUS-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CONTIGUOUS-NEXT: addvl sp, sp, #-15 -; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CONTIGUOUS-NEXT: ptrue pn8.b ; CONTIGUOUS-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; CONTIGUOUS-NEXT: st1b { z10.b, z11.b }, pn8, [sp, #12, mul vl] // 32-byte Folded Spill @@ -1669,7 +1669,7 @@ define @ldnt1_x4_i64_z0_z4_z8_z12( %unused, ; CONTIGUOUS-NEXT: ldr z14, [sp, #10, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z13, [sp, #11, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z9, [sp, #14, mul vl] // 16-byte Folded Reload -; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CONTIGUOUS-NEXT: addvl sp, sp, #15 ; CONTIGUOUS-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CONTIGUOUS-NEXT: ret @@ -1691,7 +1691,7 @@ define @ldnt1_x4_i64_z0_z4_z8_z12_scalar( % ; STRIDED: // %bb.0: ; STRIDED-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; STRIDED-NEXT: addvl sp, sp, #-17 -; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; STRIDED-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; STRIDED-NEXT: mov p8.b, p0.b ; STRIDED-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; STRIDED-NEXT: str z22, [sp, #2, mul vl] // 16-byte Folded Spill @@ -1713,7 +1713,7 @@ define @ldnt1_x4_i64_z0_z4_z8_z12_scalar( % ; STRIDED-NEXT: //APP ; STRIDED-NEXT: nop ; STRIDED-NEXT: //NO_APP -; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; STRIDED-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; STRIDED-NEXT: ldr z23, [sp, #1, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z22, [sp, #2, mul vl] // 16-byte Folded Reload ; STRIDED-NEXT: ldr z21, [sp, #3, mul vl] // 16-byte Folded Reload @@ -1741,7 +1741,7 @@ define @ldnt1_x4_i64_z0_z4_z8_z12_scalar( % ; CONTIGUOUS: // %bb.0: ; CONTIGUOUS-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CONTIGUOUS-NEXT: addvl sp, sp, #-15 -; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CONTIGUOUS-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CONTIGUOUS-NEXT: ptrue pn8.b ; CONTIGUOUS-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; CONTIGUOUS-NEXT: st1b { z10.b, z11.b }, pn8, [sp, #12, mul vl] // 32-byte Folded Spill @@ -1785,7 +1785,7 @@ define @ldnt1_x4_i64_z0_z4_z8_z12_scalar( % ; CONTIGUOUS-NEXT: ldr z14, [sp, #10, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z13, [sp, #11, mul vl] // 16-byte Folded Reload ; CONTIGUOUS-NEXT: ldr z9, [sp, #14, mul vl] // 16-byte Folded Reload -; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CONTIGUOUS-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CONTIGUOUS-NEXT: addvl sp, sp, #15 ; CONTIGUOUS-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CONTIGUOUS-NEXT: ret diff --git a/llvm/test/CodeGen/AArch64/sme2-intrinsics-qcvt.ll b/llvm/test/CodeGen/AArch64/sme2-intrinsics-qcvt.ll index 58d2e253eaafd..3ae62e30c4089 100644 --- a/llvm/test/CodeGen/AArch64/sme2-intrinsics-qcvt.ll +++ b/llvm/test/CodeGen/AArch64/sme2-intrinsics-qcvt.ll @@ -49,7 +49,7 @@ define { , , , , , , , } @multi_vector_sat_shift_narrow ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-3 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: str z11, [sp, #1, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z10, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x48, 0x1e, 0x22 // sp + 16 + 24 * VG @@ -36,7 +36,7 @@ define { , } @multi_vector_sat_shift_narrow ; CHECK-NEXT: sqrshr z1.h, { z10.s, z11.s }, #16 ; CHECK-NEXT: ldr z11, [sp, #1, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z10, [sp, #2, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #3 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -89,7 +89,7 @@ define { , , , , , , ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-3 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: ptrue pn8.b ; CHECK-NEXT: add x9, x0, x1 ; CHECK-NEXT: str z11, [sp, #1, mul vl] // 16-byte Folded Spill @@ -116,7 +116,7 @@ define void @svdot_form_2x_tuple_svecc(ptr %ptr, i64 %stride, ; CHECK-NEXT: svdot za.s[w8, 0, vgx2], { z10.h, z11.h }, z0.h[0] ; CHECK-NEXT: ldr z11, [sp, #1, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z10, [sp, #2, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: str z0, [x0] ; CHECK-NEXT: addvl sp, sp, #3 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload @@ -192,7 +192,7 @@ define void @svdot_form_4x_tuple_svecc(ptr %ptr, i64 %stride, ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-9 ; CHECK-NEXT: lsl x9, x1, #1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: ptrue pn8.b ; CHECK-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: mov w8, wzr @@ -220,7 +220,7 @@ define void @svdot_form_4x_tuple_svecc(ptr %ptr, i64 %stride, ; CHECK-NEXT: ldr z18, [sp, #6, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z17, [sp, #7, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z16, [sp, #8, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: str z0, [x0] ; CHECK-NEXT: addvl sp, sp, #9 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload @@ -331,7 +331,7 @@ define void @uvdot_form_2x_tuple_svecc(ptr %ptr, i64 %stride, ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-3 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: ptrue pn8.b ; CHECK-NEXT: add x9, x0, x1 ; CHECK-NEXT: str z11, [sp, #1, mul vl] // 16-byte Folded Spill @@ -343,7 +343,7 @@ define void @uvdot_form_2x_tuple_svecc(ptr %ptr, i64 %stride, ; CHECK-NEXT: uvdot za.s[w8, 0, vgx2], { z10.h, z11.h }, z0.h[0] ; CHECK-NEXT: ldr z11, [sp, #1, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z10, [sp, #2, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: str z0, [x0] ; CHECK-NEXT: addvl sp, sp, #3 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload @@ -419,7 +419,7 @@ define void @uvdot_form_4x_tuple_svecc(ptr %ptr, i64 %stride, ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-9 ; CHECK-NEXT: lsl x9, x1, #1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: ptrue pn8.b ; CHECK-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: mov w8, wzr @@ -447,7 +447,7 @@ define void @uvdot_form_4x_tuple_svecc(ptr %ptr, i64 %stride, ; CHECK-NEXT: ldr z18, [sp, #6, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z17, [sp, #7, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z16, [sp, #8, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: str z0, [x0] ; CHECK-NEXT: addvl sp, sp, #9 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload @@ -558,7 +558,7 @@ define void @suvdot_form_4x_tuple_svecc(ptr %ptr, i64 %stride, %pred, double %fp) { ; CHECK: // %bb.0: ; CHECK-NEXT: stp x29, x30, [sp, #-16]! // 16-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-2 -; CHECK-NEXT: str p15, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p14, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p13, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p15, [sp, #4, mul vl] // 2-byte Spill +; CHECK-NEXT: str p14, [sp, #5, mul vl] // 2-byte Spill +; CHECK-NEXT: str p13, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill +; CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill +; CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; CHECK-NEXT: sub sp, sp, #1024 ; CHECK-NEXT: addvl sp, sp, #-17 ; CHECK-NEXT: str z23, [sp] // 16-byte Folded Spill @@ -387,18 +387,18 @@ define void @all_stack_areas( %pred, double %fp) { ; CHECK-NEXT: ldr z8, [sp, #15, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: add sp, sp, #1024 ; CHECK-NEXT: addvl sp, sp, #17 -; CHECK-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #2 ; CHECK-NEXT: ldp x29, x30, [sp], #16 // 16-byte Folded Reload ; CHECK-NEXT: ret @@ -471,21 +471,21 @@ define void @all_stack_areas_fp( %pred, double %fp) "frame-poi ; CHECK-LABEL: all_stack_areas_fp: ; CHECK: // %bb.0: ; CHECK-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill -; CHECK-NEXT: str x28, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x28, [sp, #16] // 8-byte Spill ; CHECK-NEXT: mov x29, sp ; CHECK-NEXT: addvl sp, sp, #-2 -; CHECK-NEXT: str p15, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p14, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p13, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p15, [sp, #4, mul vl] // 2-byte Spill +; CHECK-NEXT: str p14, [sp, #5, mul vl] // 2-byte Spill +; CHECK-NEXT: str p13, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill +; CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill +; CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; CHECK-NEXT: sub sp, sp, #1024 ; CHECK-NEXT: addvl sp, sp, #-17 ; CHECK-NEXT: str z23, [sp] // 16-byte Folded Spill @@ -546,20 +546,20 @@ define void @all_stack_areas_fp( %pred, double %fp) "frame-poi ; CHECK-NEXT: ldr z8, [sp, #15, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: add sp, sp, #1024 ; CHECK-NEXT: addvl sp, sp, #17 -; CHECK-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #2 -; CHECK-NEXT: ldr x28, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x28, [sp, #16] // 8-byte Reload ; CHECK-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-NEXT: ret %ppr_local = alloca @@ -619,7 +619,7 @@ define i32 @svecc_call(<4 x i16> %P0, ptr %P1, i32 %P2, %P3, ; CHECK-NEXT: .cfi_def_cfa_offset 64 ; CHECK-NEXT: cntd x9 ; CHECK-NEXT: stp x28, x27, [sp, #32] // 16-byte Folded Spill -; CHECK-NEXT: str x9, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x9, [sp, #16] // 8-byte Spill ; CHECK-NEXT: stp x26, x19, [sp, #48] // 16-byte Folded Spill ; CHECK-NEXT: mov x29, sp ; CHECK-NEXT: .cfi_def_cfa w29, 64 @@ -631,18 +631,18 @@ define i32 @svecc_call(<4 x i16> %P0, ptr %P1, i32 %P2, %P3, ; CHECK-NEXT: .cfi_offset w30, -56 ; CHECK-NEXT: .cfi_offset w29, -64 ; CHECK-NEXT: addvl sp, sp, #-2 -; CHECK-NEXT: str p15, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p14, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p13, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p15, [sp, #4, mul vl] // 2-byte Spill +; CHECK-NEXT: str p14, [sp, #5, mul vl] // 2-byte Spill +; CHECK-NEXT: str p13, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill +; CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill +; CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; CHECK-NEXT: sub sp, sp, #1024 ; CHECK-NEXT: addvl sp, sp, #-16 ; CHECK-NEXT: str z23, [sp] // 16-byte Folded Spill @@ -716,18 +716,18 @@ define i32 @svecc_call(<4 x i16> %P0, ptr %P1, i32 %P2, %P3, ; CHECK-NEXT: .cfi_restore z13 ; CHECK-NEXT: .cfi_restore z14 ; CHECK-NEXT: .cfi_restore z15 -; CHECK-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #2 ; CHECK-NEXT: .cfi_def_cfa wsp, 64 ; CHECK-NEXT: ldp x26, x19, [sp, #48] // 16-byte Folded Reload @@ -763,10 +763,10 @@ define void @zpr_and_ppr_local_realignment( %pred, %pred, @@ -822,3 +822,5 @@ define void @zpr_and_ppr_local_stack_probing( %pred, %vs) "aarch64_psta ; CHECK64-LABEL: svecc_csr_d8: ; CHECK64: // %bb.0: // %entry ; CHECK64-NEXT: sub sp, sp, #80 -; CHECK64-NEXT: str x29, [sp, #64] // 8-byte Folded Spill +; CHECK64-NEXT: str x29, [sp, #64] // 8-byte Spill ; CHECK64-NEXT: addvl sp, sp, #-1 ; CHECK64-NEXT: str z8, [sp] // 16-byte Folded Spill ; CHECK64-NEXT: sub sp, sp, #64 @@ -989,14 +989,14 @@ define i32 @svecc_csr_d8(i32 noundef %num, %vs) "aarch64_psta ; CHECK64-NEXT: add sp, sp, #64 ; CHECK64-NEXT: ldr z8, [sp] // 16-byte Folded Reload ; CHECK64-NEXT: addvl sp, sp, #1 -; CHECK64-NEXT: ldr x29, [sp, #64] // 8-byte Folded Reload +; CHECK64-NEXT: ldr x29, [sp, #64] // 8-byte Reload ; CHECK64-NEXT: add sp, sp, #80 ; CHECK64-NEXT: ret ; ; CHECK1024-LABEL: svecc_csr_d8: ; CHECK1024: // %bb.0: // %entry ; CHECK1024-NEXT: sub sp, sp, #1040 -; CHECK1024-NEXT: str x29, [sp, #1024] // 8-byte Folded Spill +; CHECK1024-NEXT: str x29, [sp, #1024] // 8-byte Spill ; CHECK1024-NEXT: addvl sp, sp, #-1 ; CHECK1024-NEXT: str z8, [sp] // 16-byte Folded Spill ; CHECK1024-NEXT: sub sp, sp, #1024 @@ -1009,7 +1009,7 @@ define i32 @svecc_csr_d8(i32 noundef %num, %vs) "aarch64_psta ; CHECK1024-NEXT: add sp, sp, #1024 ; CHECK1024-NEXT: ldr z8, [sp] // 16-byte Folded Reload ; CHECK1024-NEXT: addvl sp, sp, #1 -; CHECK1024-NEXT: ldr x29, [sp, #1024] // 8-byte Folded Reload +; CHECK1024-NEXT: ldr x29, [sp, #1024] // 8-byte Reload ; CHECK1024-NEXT: add sp, sp, #1040 ; CHECK1024-NEXT: ret entry: @@ -1040,7 +1040,7 @@ define i32 @svecc_csr_d8d9(i32 noundef %num, %vs) "aarch64_ps ; CHECK64-LABEL: svecc_csr_d8d9: ; CHECK64: // %bb.0: // %entry ; CHECK64-NEXT: sub sp, sp, #80 -; CHECK64-NEXT: str x29, [sp, #64] // 8-byte Folded Spill +; CHECK64-NEXT: str x29, [sp, #64] // 8-byte Spill ; CHECK64-NEXT: addvl sp, sp, #-2 ; CHECK64-NEXT: str z9, [sp] // 16-byte Folded Spill ; CHECK64-NEXT: str z8, [sp, #1, mul vl] // 16-byte Folded Spill @@ -1056,14 +1056,14 @@ define i32 @svecc_csr_d8d9(i32 noundef %num, %vs) "aarch64_ps ; CHECK64-NEXT: ldr z9, [sp] // 16-byte Folded Reload ; CHECK64-NEXT: ldr z8, [sp, #1, mul vl] // 16-byte Folded Reload ; CHECK64-NEXT: addvl sp, sp, #2 -; CHECK64-NEXT: ldr x29, [sp, #64] // 8-byte Folded Reload +; CHECK64-NEXT: ldr x29, [sp, #64] // 8-byte Reload ; CHECK64-NEXT: add sp, sp, #80 ; CHECK64-NEXT: ret ; ; CHECK1024-LABEL: svecc_csr_d8d9: ; CHECK1024: // %bb.0: // %entry ; CHECK1024-NEXT: sub sp, sp, #1040 -; CHECK1024-NEXT: str x29, [sp, #1024] // 8-byte Folded Spill +; CHECK1024-NEXT: str x29, [sp, #1024] // 8-byte Spill ; CHECK1024-NEXT: addvl sp, sp, #-2 ; CHECK1024-NEXT: str z9, [sp] // 16-byte Folded Spill ; CHECK1024-NEXT: str z8, [sp, #1, mul vl] // 16-byte Folded Spill @@ -1079,7 +1079,7 @@ define i32 @svecc_csr_d8d9(i32 noundef %num, %vs) "aarch64_ps ; CHECK1024-NEXT: ldr z9, [sp] // 16-byte Folded Reload ; CHECK1024-NEXT: ldr z8, [sp, #1, mul vl] // 16-byte Folded Reload ; CHECK1024-NEXT: addvl sp, sp, #2 -; CHECK1024-NEXT: ldr x29, [sp, #1024] // 8-byte Folded Reload +; CHECK1024-NEXT: ldr x29, [sp, #1024] // 8-byte Reload ; CHECK1024-NEXT: add sp, sp, #1040 ; CHECK1024-NEXT: ret entry: @@ -1109,7 +1109,7 @@ define i32 @svecc_csr_d8_allocd(double %d, %vs) "aarch64_psta ; CHECK64-LABEL: svecc_csr_d8_allocd: ; CHECK64: // %bb.0: // %entry ; CHECK64-NEXT: sub sp, sp, #80 -; CHECK64-NEXT: str x29, [sp, #64] // 8-byte Folded Spill +; CHECK64-NEXT: str x29, [sp, #64] // 8-byte Spill ; CHECK64-NEXT: addvl sp, sp, #-1 ; CHECK64-NEXT: str z8, [sp] // 16-byte Folded Spill ; CHECK64-NEXT: sub sp, sp, #80 @@ -1123,14 +1123,14 @@ define i32 @svecc_csr_d8_allocd(double %d, %vs) "aarch64_psta ; CHECK64-NEXT: add sp, sp, #80 ; CHECK64-NEXT: ldr z8, [sp] // 16-byte Folded Reload ; CHECK64-NEXT: addvl sp, sp, #1 -; CHECK64-NEXT: ldr x29, [sp, #64] // 8-byte Folded Reload +; CHECK64-NEXT: ldr x29, [sp, #64] // 8-byte Reload ; CHECK64-NEXT: add sp, sp, #80 ; CHECK64-NEXT: ret ; ; CHECK1024-LABEL: svecc_csr_d8_allocd: ; CHECK1024: // %bb.0: // %entry ; CHECK1024-NEXT: sub sp, sp, #1040 -; CHECK1024-NEXT: str x29, [sp, #1024] // 8-byte Folded Spill +; CHECK1024-NEXT: str x29, [sp, #1024] // 8-byte Spill ; CHECK1024-NEXT: addvl sp, sp, #-1 ; CHECK1024-NEXT: str z8, [sp] // 16-byte Folded Spill ; CHECK1024-NEXT: sub sp, sp, #1040 @@ -1144,7 +1144,7 @@ define i32 @svecc_csr_d8_allocd(double %d, %vs) "aarch64_psta ; CHECK1024-NEXT: add sp, sp, #1040 ; CHECK1024-NEXT: ldr z8, [sp] // 16-byte Folded Reload ; CHECK1024-NEXT: addvl sp, sp, #1 -; CHECK1024-NEXT: ldr x29, [sp, #1024] // 8-byte Folded Reload +; CHECK1024-NEXT: ldr x29, [sp, #1024] // 8-byte Reload ; CHECK1024-NEXT: add sp, sp, #1040 ; CHECK1024-NEXT: ret entry: @@ -1177,7 +1177,7 @@ define i32 @svecc_csr_d8_alloci64(i64 %d, %vs) "aarch64_pstat ; CHECK64-LABEL: svecc_csr_d8_alloci64: ; CHECK64: // %bb.0: // %entry ; CHECK64-NEXT: sub sp, sp, #80 -; CHECK64-NEXT: str x29, [sp, #64] // 8-byte Folded Spill +; CHECK64-NEXT: str x29, [sp, #64] // 8-byte Spill ; CHECK64-NEXT: addvl sp, sp, #-1 ; CHECK64-NEXT: str z8, [sp] // 16-byte Folded Spill ; CHECK64-NEXT: sub sp, sp, #80 @@ -1192,14 +1192,14 @@ define i32 @svecc_csr_d8_alloci64(i64 %d, %vs) "aarch64_pstat ; CHECK64-NEXT: add sp, sp, #80 ; CHECK64-NEXT: ldr z8, [sp] // 16-byte Folded Reload ; CHECK64-NEXT: addvl sp, sp, #1 -; CHECK64-NEXT: ldr x29, [sp, #64] // 8-byte Folded Reload +; CHECK64-NEXT: ldr x29, [sp, #64] // 8-byte Reload ; CHECK64-NEXT: add sp, sp, #80 ; CHECK64-NEXT: ret ; ; CHECK1024-LABEL: svecc_csr_d8_alloci64: ; CHECK1024: // %bb.0: // %entry ; CHECK1024-NEXT: sub sp, sp, #1040 -; CHECK1024-NEXT: str x29, [sp, #1024] // 8-byte Folded Spill +; CHECK1024-NEXT: str x29, [sp, #1024] // 8-byte Spill ; CHECK1024-NEXT: addvl sp, sp, #-1 ; CHECK1024-NEXT: str z8, [sp] // 16-byte Folded Spill ; CHECK1024-NEXT: sub sp, sp, #1040 @@ -1214,7 +1214,7 @@ define i32 @svecc_csr_d8_alloci64(i64 %d, %vs) "aarch64_pstat ; CHECK1024-NEXT: add sp, sp, #1040 ; CHECK1024-NEXT: ldr z8, [sp] // 16-byte Folded Reload ; CHECK1024-NEXT: addvl sp, sp, #1 -; CHECK1024-NEXT: ldr x29, [sp, #1024] // 8-byte Folded Reload +; CHECK1024-NEXT: ldr x29, [sp, #1024] // 8-byte Reload ; CHECK1024-NEXT: add sp, sp, #1040 ; CHECK1024-NEXT: ret entry: @@ -1248,7 +1248,7 @@ define i32 @svecc_csr_d8_allocnxv4i32(i64 %d, %vs) "aarch64_p ; CHECK64-LABEL: svecc_csr_d8_allocnxv4i32: ; CHECK64: // %bb.0: // %entry ; CHECK64-NEXT: sub sp, sp, #80 -; CHECK64-NEXT: str x29, [sp, #64] // 8-byte Folded Spill +; CHECK64-NEXT: str x29, [sp, #64] // 8-byte Spill ; CHECK64-NEXT: addvl sp, sp, #-1 ; CHECK64-NEXT: str z8, [sp] // 16-byte Folded Spill ; CHECK64-NEXT: sub sp, sp, #64 @@ -1266,14 +1266,14 @@ define i32 @svecc_csr_d8_allocnxv4i32(i64 %d, %vs) "aarch64_p ; CHECK64-NEXT: addvl sp, sp, #1 ; CHECK64-NEXT: ldr z8, [sp] // 16-byte Folded Reload ; CHECK64-NEXT: addvl sp, sp, #1 -; CHECK64-NEXT: ldr x29, [sp, #64] // 8-byte Folded Reload +; CHECK64-NEXT: ldr x29, [sp, #64] // 8-byte Reload ; CHECK64-NEXT: add sp, sp, #80 ; CHECK64-NEXT: ret ; ; CHECK1024-LABEL: svecc_csr_d8_allocnxv4i32: ; CHECK1024: // %bb.0: // %entry ; CHECK1024-NEXT: sub sp, sp, #1040 -; CHECK1024-NEXT: str x29, [sp, #1024] // 8-byte Folded Spill +; CHECK1024-NEXT: str x29, [sp, #1024] // 8-byte Spill ; CHECK1024-NEXT: addvl sp, sp, #-1 ; CHECK1024-NEXT: str z8, [sp] // 16-byte Folded Spill ; CHECK1024-NEXT: sub sp, sp, #1024 @@ -1291,7 +1291,7 @@ define i32 @svecc_csr_d8_allocnxv4i32(i64 %d, %vs) "aarch64_p ; CHECK1024-NEXT: addvl sp, sp, #1 ; CHECK1024-NEXT: ldr z8, [sp] // 16-byte Folded Reload ; CHECK1024-NEXT: addvl sp, sp, #1 -; CHECK1024-NEXT: ldr x29, [sp, #1024] // 8-byte Folded Reload +; CHECK1024-NEXT: ldr x29, [sp, #1024] // 8-byte Reload ; CHECK1024-NEXT: add sp, sp, #1040 ; CHECK1024-NEXT: ret entry: @@ -1420,14 +1420,14 @@ define i32 @svecc_csr_x18_25_d8_15_allocdi64(i64 %d, double %e, ] @sve_signature_pred_2xv4i1_caller([2 x %P0, ptr %P1, i32 %P2, %P3, ; CHECK0-NEXT: .cfi_def_cfa_offset 64 ; CHECK0-NEXT: cntd x9 ; CHECK0-NEXT: stp x28, x27, [sp, #32] // 16-byte Folded Spill -; CHECK0-NEXT: str x9, [sp, #16] // 8-byte Folded Spill +; CHECK0-NEXT: str x9, [sp, #16] // 8-byte Spill ; CHECK0-NEXT: stp x26, x19, [sp, #48] // 16-byte Folded Spill ; CHECK0-NEXT: mov x29, sp ; CHECK0-NEXT: .cfi_def_cfa w29, 64 @@ -1832,18 +1832,18 @@ define i32 @svecc_call(<4 x i16> %P0, ptr %P1, i32 %P2, %P3, ; CHECK0-NEXT: .cfi_offset w30, -56 ; CHECK0-NEXT: .cfi_offset w29, -64 ; CHECK0-NEXT: addvl sp, sp, #-18 -; CHECK0-NEXT: str p15, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK0-NEXT: str p14, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK0-NEXT: str p13, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK0-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill -; CHECK0-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; CHECK0-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; CHECK0-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; CHECK0-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill -; CHECK0-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; CHECK0-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; CHECK0-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; CHECK0-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; CHECK0-NEXT: str p15, [sp, #4, mul vl] // 2-byte Spill +; CHECK0-NEXT: str p14, [sp, #5, mul vl] // 2-byte Spill +; CHECK0-NEXT: str p13, [sp, #6, mul vl] // 2-byte Spill +; CHECK0-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill +; CHECK0-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; CHECK0-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; CHECK0-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; CHECK0-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill +; CHECK0-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; CHECK0-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; CHECK0-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; CHECK0-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; CHECK0-NEXT: str z23, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK0-NEXT: str z22, [sp, #3, mul vl] // 16-byte Folded Spill ; CHECK0-NEXT: str z21, [sp, #4, mul vl] // 16-byte Folded Spill @@ -1903,18 +1903,18 @@ define i32 @svecc_call(<4 x i16> %P0, ptr %P1, i32 %P2, %P3, ; CHECK0-NEXT: ldr z10, [sp, #15, mul vl] // 16-byte Folded Reload ; CHECK0-NEXT: ldr z9, [sp, #16, mul vl] // 16-byte Folded Reload ; CHECK0-NEXT: ldr z8, [sp, #17, mul vl] // 16-byte Folded Reload -; CHECK0-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Folded Reload -; CHECK0-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Folded Reload -; CHECK0-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Folded Reload -; CHECK0-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; CHECK0-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; CHECK0-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; CHECK0-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; CHECK0-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; CHECK0-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; CHECK0-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; CHECK0-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; CHECK0-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; CHECK0-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Reload +; CHECK0-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Reload +; CHECK0-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Reload +; CHECK0-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; CHECK0-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; CHECK0-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; CHECK0-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; CHECK0-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; CHECK0-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; CHECK0-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; CHECK0-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; CHECK0-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; CHECK0-NEXT: addvl sp, sp, #18 ; CHECK0-NEXT: .cfi_restore z8 ; CHECK0-NEXT: .cfi_restore z9 @@ -1944,7 +1944,7 @@ define i32 @svecc_call(<4 x i16> %P0, ptr %P1, i32 %P2, %P3, ; CHECK64-NEXT: .cfi_def_cfa_offset 64 ; CHECK64-NEXT: cntd x9 ; CHECK64-NEXT: stp x28, x27, [sp, #32] // 16-byte Folded Spill -; CHECK64-NEXT: str x9, [sp, #16] // 8-byte Folded Spill +; CHECK64-NEXT: str x9, [sp, #16] // 8-byte Spill ; CHECK64-NEXT: stp x26, x19, [sp, #48] // 16-byte Folded Spill ; CHECK64-NEXT: mov x29, sp ; CHECK64-NEXT: .cfi_def_cfa w29, 64 @@ -1956,18 +1956,18 @@ define i32 @svecc_call(<4 x i16> %P0, ptr %P1, i32 %P2, %P3, ; CHECK64-NEXT: .cfi_offset w30, -56 ; CHECK64-NEXT: .cfi_offset w29, -64 ; CHECK64-NEXT: addvl sp, sp, #-2 -; CHECK64-NEXT: str p15, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK64-NEXT: str p14, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK64-NEXT: str p13, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK64-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill -; CHECK64-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; CHECK64-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; CHECK64-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; CHECK64-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill -; CHECK64-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; CHECK64-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; CHECK64-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; CHECK64-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; CHECK64-NEXT: str p15, [sp, #4, mul vl] // 2-byte Spill +; CHECK64-NEXT: str p14, [sp, #5, mul vl] // 2-byte Spill +; CHECK64-NEXT: str p13, [sp, #6, mul vl] // 2-byte Spill +; CHECK64-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill +; CHECK64-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; CHECK64-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; CHECK64-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; CHECK64-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill +; CHECK64-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; CHECK64-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; CHECK64-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; CHECK64-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; CHECK64-NEXT: sub sp, sp, #64 ; CHECK64-NEXT: addvl sp, sp, #-16 ; CHECK64-NEXT: str z23, [sp] // 16-byte Folded Spill @@ -2041,18 +2041,18 @@ define i32 @svecc_call(<4 x i16> %P0, ptr %P1, i32 %P2, %P3, ; CHECK64-NEXT: .cfi_restore z13 ; CHECK64-NEXT: .cfi_restore z14 ; CHECK64-NEXT: .cfi_restore z15 -; CHECK64-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Folded Reload -; CHECK64-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Folded Reload -; CHECK64-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Folded Reload -; CHECK64-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; CHECK64-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; CHECK64-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; CHECK64-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; CHECK64-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; CHECK64-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; CHECK64-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; CHECK64-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; CHECK64-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; CHECK64-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Reload +; CHECK64-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Reload +; CHECK64-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Reload +; CHECK64-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; CHECK64-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; CHECK64-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; CHECK64-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; CHECK64-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; CHECK64-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; CHECK64-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; CHECK64-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; CHECK64-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; CHECK64-NEXT: addvl sp, sp, #2 ; CHECK64-NEXT: .cfi_def_cfa wsp, 64 ; CHECK64-NEXT: ldp x26, x19, [sp, #48] // 16-byte Folded Reload @@ -2073,13 +2073,13 @@ define i32 @svecc_call(<4 x i16> %P0, ptr %P1, i32 %P2, %P3, ; CHECK1024-NOSPLITSVE-NEXT: sub sp, sp, #1088 ; CHECK1024-NOSPLITSVE-NEXT: .cfi_def_cfa_offset 1088 ; CHECK1024-NOSPLITSVE-NEXT: cntd x9 -; CHECK1024-NOSPLITSVE-NEXT: str x29, [sp, #1024] // 8-byte Folded Spill -; CHECK1024-NOSPLITSVE-NEXT: str x30, [sp, #1032] // 8-byte Folded Spill -; CHECK1024-NOSPLITSVE-NEXT: str x9, [sp, #1040] // 8-byte Folded Spill -; CHECK1024-NOSPLITSVE-NEXT: str x28, [sp, #1048] // 8-byte Folded Spill -; CHECK1024-NOSPLITSVE-NEXT: str x27, [sp, #1056] // 8-byte Folded Spill -; CHECK1024-NOSPLITSVE-NEXT: str x26, [sp, #1064] // 8-byte Folded Spill -; CHECK1024-NOSPLITSVE-NEXT: str x19, [sp, #1072] // 8-byte Folded Spill +; CHECK1024-NOSPLITSVE-NEXT: str x29, [sp, #1024] // 8-byte Spill +; CHECK1024-NOSPLITSVE-NEXT: str x30, [sp, #1032] // 8-byte Spill +; CHECK1024-NOSPLITSVE-NEXT: str x9, [sp, #1040] // 8-byte Spill +; CHECK1024-NOSPLITSVE-NEXT: str x28, [sp, #1048] // 8-byte Spill +; CHECK1024-NOSPLITSVE-NEXT: str x27, [sp, #1056] // 8-byte Spill +; CHECK1024-NOSPLITSVE-NEXT: str x26, [sp, #1064] // 8-byte Spill +; CHECK1024-NOSPLITSVE-NEXT: str x19, [sp, #1072] // 8-byte Spill ; CHECK1024-NOSPLITSVE-NEXT: add x29, sp, #1024 ; CHECK1024-NOSPLITSVE-NEXT: .cfi_def_cfa w29, 64 ; CHECK1024-NOSPLITSVE-NEXT: .cfi_offset w19, -16 @@ -2090,18 +2090,18 @@ define i32 @svecc_call(<4 x i16> %P0, ptr %P1, i32 %P2, %P3, ; CHECK1024-NOSPLITSVE-NEXT: .cfi_offset w30, -56 ; CHECK1024-NOSPLITSVE-NEXT: .cfi_offset w29, -64 ; CHECK1024-NOSPLITSVE-NEXT: addvl sp, sp, #-18 -; CHECK1024-NOSPLITSVE-NEXT: str p15, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK1024-NOSPLITSVE-NEXT: str p14, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK1024-NOSPLITSVE-NEXT: str p13, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK1024-NOSPLITSVE-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill -; CHECK1024-NOSPLITSVE-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; CHECK1024-NOSPLITSVE-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; CHECK1024-NOSPLITSVE-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; CHECK1024-NOSPLITSVE-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill -; CHECK1024-NOSPLITSVE-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; CHECK1024-NOSPLITSVE-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; CHECK1024-NOSPLITSVE-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; CHECK1024-NOSPLITSVE-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; CHECK1024-NOSPLITSVE-NEXT: str p15, [sp, #4, mul vl] // 2-byte Spill +; CHECK1024-NOSPLITSVE-NEXT: str p14, [sp, #5, mul vl] // 2-byte Spill +; CHECK1024-NOSPLITSVE-NEXT: str p13, [sp, #6, mul vl] // 2-byte Spill +; CHECK1024-NOSPLITSVE-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill +; CHECK1024-NOSPLITSVE-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; CHECK1024-NOSPLITSVE-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; CHECK1024-NOSPLITSVE-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; CHECK1024-NOSPLITSVE-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill +; CHECK1024-NOSPLITSVE-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; CHECK1024-NOSPLITSVE-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; CHECK1024-NOSPLITSVE-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; CHECK1024-NOSPLITSVE-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; CHECK1024-NOSPLITSVE-NEXT: str z23, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK1024-NOSPLITSVE-NEXT: str z22, [sp, #3, mul vl] // 16-byte Folded Spill ; CHECK1024-NOSPLITSVE-NEXT: str z21, [sp, #4, mul vl] // 16-byte Folded Spill @@ -2163,18 +2163,18 @@ define i32 @svecc_call(<4 x i16> %P0, ptr %P1, i32 %P2, %P3, ; CHECK1024-NOSPLITSVE-NEXT: ldr z10, [sp, #15, mul vl] // 16-byte Folded Reload ; CHECK1024-NOSPLITSVE-NEXT: ldr z9, [sp, #16, mul vl] // 16-byte Folded Reload ; CHECK1024-NOSPLITSVE-NEXT: ldr z8, [sp, #17, mul vl] // 16-byte Folded Reload -; CHECK1024-NOSPLITSVE-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Folded Reload -; CHECK1024-NOSPLITSVE-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Folded Reload -; CHECK1024-NOSPLITSVE-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Folded Reload -; CHECK1024-NOSPLITSVE-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; CHECK1024-NOSPLITSVE-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; CHECK1024-NOSPLITSVE-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; CHECK1024-NOSPLITSVE-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; CHECK1024-NOSPLITSVE-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; CHECK1024-NOSPLITSVE-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; CHECK1024-NOSPLITSVE-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; CHECK1024-NOSPLITSVE-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; CHECK1024-NOSPLITSVE-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; CHECK1024-NOSPLITSVE-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Reload +; CHECK1024-NOSPLITSVE-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Reload +; CHECK1024-NOSPLITSVE-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Reload +; CHECK1024-NOSPLITSVE-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; CHECK1024-NOSPLITSVE-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; CHECK1024-NOSPLITSVE-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; CHECK1024-NOSPLITSVE-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; CHECK1024-NOSPLITSVE-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; CHECK1024-NOSPLITSVE-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; CHECK1024-NOSPLITSVE-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; CHECK1024-NOSPLITSVE-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; CHECK1024-NOSPLITSVE-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; CHECK1024-NOSPLITSVE-NEXT: addvl sp, sp, #18 ; CHECK1024-NOSPLITSVE-NEXT: .cfi_restore z8 ; CHECK1024-NOSPLITSVE-NEXT: .cfi_restore z9 @@ -2185,12 +2185,12 @@ define i32 @svecc_call(<4 x i16> %P0, ptr %P1, i32 %P2, %P3, ; CHECK1024-NOSPLITSVE-NEXT: .cfi_restore z14 ; CHECK1024-NOSPLITSVE-NEXT: .cfi_restore z15 ; CHECK1024-NOSPLITSVE-NEXT: .cfi_def_cfa wsp, 1088 -; CHECK1024-NOSPLITSVE-NEXT: ldr x19, [sp, #1072] // 8-byte Folded Reload -; CHECK1024-NOSPLITSVE-NEXT: ldr x26, [sp, #1064] // 8-byte Folded Reload -; CHECK1024-NOSPLITSVE-NEXT: ldr x27, [sp, #1056] // 8-byte Folded Reload -; CHECK1024-NOSPLITSVE-NEXT: ldr x28, [sp, #1048] // 8-byte Folded Reload -; CHECK1024-NOSPLITSVE-NEXT: ldr x30, [sp, #1032] // 8-byte Folded Reload -; CHECK1024-NOSPLITSVE-NEXT: ldr x29, [sp, #1024] // 8-byte Folded Reload +; CHECK1024-NOSPLITSVE-NEXT: ldr x19, [sp, #1072] // 8-byte Reload +; CHECK1024-NOSPLITSVE-NEXT: ldr x26, [sp, #1064] // 8-byte Reload +; CHECK1024-NOSPLITSVE-NEXT: ldr x27, [sp, #1056] // 8-byte Reload +; CHECK1024-NOSPLITSVE-NEXT: ldr x28, [sp, #1048] // 8-byte Reload +; CHECK1024-NOSPLITSVE-NEXT: ldr x30, [sp, #1032] // 8-byte Reload +; CHECK1024-NOSPLITSVE-NEXT: ldr x29, [sp, #1024] // 8-byte Reload ; CHECK1024-NOSPLITSVE-NEXT: add sp, sp, #1088 ; CHECK1024-NOSPLITSVE-NEXT: .cfi_def_cfa_offset 0 ; CHECK1024-NOSPLITSVE-NEXT: .cfi_restore w19 @@ -2208,7 +2208,7 @@ define i32 @svecc_call(<4 x i16> %P0, ptr %P1, i32 %P2, %P3, ; CHECK1024-SPLITSVE-NEXT: .cfi_def_cfa_offset 64 ; CHECK1024-SPLITSVE-NEXT: cntd x9 ; CHECK1024-SPLITSVE-NEXT: stp x28, x27, [sp, #32] // 16-byte Folded Spill -; CHECK1024-SPLITSVE-NEXT: str x9, [sp, #16] // 8-byte Folded Spill +; CHECK1024-SPLITSVE-NEXT: str x9, [sp, #16] // 8-byte Spill ; CHECK1024-SPLITSVE-NEXT: stp x26, x19, [sp, #48] // 16-byte Folded Spill ; CHECK1024-SPLITSVE-NEXT: mov x29, sp ; CHECK1024-SPLITSVE-NEXT: .cfi_def_cfa w29, 64 @@ -2220,18 +2220,18 @@ define i32 @svecc_call(<4 x i16> %P0, ptr %P1, i32 %P2, %P3, ; CHECK1024-SPLITSVE-NEXT: .cfi_offset w30, -56 ; CHECK1024-SPLITSVE-NEXT: .cfi_offset w29, -64 ; CHECK1024-SPLITSVE-NEXT: addvl sp, sp, #-2 -; CHECK1024-SPLITSVE-NEXT: str p15, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK1024-SPLITSVE-NEXT: str p14, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK1024-SPLITSVE-NEXT: str p13, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK1024-SPLITSVE-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill -; CHECK1024-SPLITSVE-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; CHECK1024-SPLITSVE-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; CHECK1024-SPLITSVE-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; CHECK1024-SPLITSVE-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill -; CHECK1024-SPLITSVE-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; CHECK1024-SPLITSVE-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; CHECK1024-SPLITSVE-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; CHECK1024-SPLITSVE-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; CHECK1024-SPLITSVE-NEXT: str p15, [sp, #4, mul vl] // 2-byte Spill +; CHECK1024-SPLITSVE-NEXT: str p14, [sp, #5, mul vl] // 2-byte Spill +; CHECK1024-SPLITSVE-NEXT: str p13, [sp, #6, mul vl] // 2-byte Spill +; CHECK1024-SPLITSVE-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill +; CHECK1024-SPLITSVE-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; CHECK1024-SPLITSVE-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; CHECK1024-SPLITSVE-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; CHECK1024-SPLITSVE-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill +; CHECK1024-SPLITSVE-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; CHECK1024-SPLITSVE-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; CHECK1024-SPLITSVE-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; CHECK1024-SPLITSVE-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; CHECK1024-SPLITSVE-NEXT: sub sp, sp, #1024 ; CHECK1024-SPLITSVE-NEXT: addvl sp, sp, #-16 ; CHECK1024-SPLITSVE-NEXT: str z23, [sp] // 16-byte Folded Spill @@ -2305,18 +2305,18 @@ define i32 @svecc_call(<4 x i16> %P0, ptr %P1, i32 %P2, %P3, ; CHECK1024-SPLITSVE-NEXT: .cfi_restore z13 ; CHECK1024-SPLITSVE-NEXT: .cfi_restore z14 ; CHECK1024-SPLITSVE-NEXT: .cfi_restore z15 -; CHECK1024-SPLITSVE-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Folded Reload -; CHECK1024-SPLITSVE-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Folded Reload -; CHECK1024-SPLITSVE-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Folded Reload -; CHECK1024-SPLITSVE-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; CHECK1024-SPLITSVE-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; CHECK1024-SPLITSVE-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; CHECK1024-SPLITSVE-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; CHECK1024-SPLITSVE-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; CHECK1024-SPLITSVE-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; CHECK1024-SPLITSVE-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; CHECK1024-SPLITSVE-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; CHECK1024-SPLITSVE-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; CHECK1024-SPLITSVE-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Reload +; CHECK1024-SPLITSVE-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Reload +; CHECK1024-SPLITSVE-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Reload +; CHECK1024-SPLITSVE-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; CHECK1024-SPLITSVE-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; CHECK1024-SPLITSVE-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; CHECK1024-SPLITSVE-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; CHECK1024-SPLITSVE-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; CHECK1024-SPLITSVE-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; CHECK1024-SPLITSVE-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; CHECK1024-SPLITSVE-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; CHECK1024-SPLITSVE-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; CHECK1024-SPLITSVE-NEXT: addvl sp, sp, #2 ; CHECK1024-SPLITSVE-NEXT: .cfi_def_cfa wsp, 64 ; CHECK1024-SPLITSVE-NEXT: ldp x26, x19, [sp, #48] // 16-byte Folded Reload @@ -2344,7 +2344,7 @@ define i32 @svecc_alloca_call(<4 x i16> %P0, ptr %P1, i32 %P2, %P0, ptr %P1, i32 %P2, %P0, ptr %P1, i32 %P2, %P0, ptr %P1, i32 %P2, %P0, ptr %P1, i32 %P2, %P0, ptr %P1, i32 %P2, %P0, ptr %P1, i32 %P2, %P0, ptr %P1, i32 %P2, %P0, ptr %P1, i32 %P2, %P0, ptr %P1, i32 %P2, %P0, ptr %P1, i32 %P2, %P0, ptr %P1, i32 %P2, %P0, ptr %P1, i32 %P2, %v) "aarch64_pstate_sm_ ; CHECK1024-LABEL: ordering_test: ; CHECK1024: // %bb.0: // %entry ; CHECK1024-NEXT: sub sp, sp, #1040 -; CHECK1024-NEXT: str x29, [sp, #1024] // 8-byte Folded Spill +; CHECK1024-NEXT: str x29, [sp, #1024] // 8-byte Spill ; CHECK1024-NEXT: sub sp, sp, #1088 ; CHECK1024-NEXT: .cfi_def_cfa_offset 2128 ; CHECK1024-NEXT: .cfi_offset w29, -16 @@ -2965,7 +2965,7 @@ define void @ordering_test(double %d, half %h, <4 x i32> %v) "aarch64_pstate_sm_ ; CHECK1024-NEXT: str h1, [sp, #1078] ; CHECK1024-NEXT: str q2, [sp, #1056] ; CHECK1024-NEXT: add sp, sp, #1088 -; CHECK1024-NEXT: ldr x29, [sp, #1024] // 8-byte Folded Reload +; CHECK1024-NEXT: ldr x29, [sp, #1024] // 8-byte Reload ; CHECK1024-NEXT: add sp, sp, #1040 ; CHECK1024-NEXT: ret entry: @@ -2989,7 +2989,7 @@ define void @ordering_test_array(i64 %o, i64 %p, float %f, i32 %x) "aarch64_psta ; CHECK0-LABEL: ordering_test_array: ; CHECK0: // %bb.0: // %entry ; CHECK0-NEXT: sub sp, sp, #272 -; CHECK0-NEXT: str x29, [sp, #256] // 8-byte Folded Spill +; CHECK0-NEXT: str x29, [sp, #256] // 8-byte Spill ; CHECK0-NEXT: .cfi_def_cfa_offset 272 ; CHECK0-NEXT: .cfi_offset w29, -16 ; CHECK0-NEXT: add x8, sp, #128 @@ -3002,7 +3002,7 @@ define void @ordering_test_array(i64 %o, i64 %p, float %f, i32 %x) "aarch64_psta ; CHECK64-LABEL: ordering_test_array: ; CHECK64: // %bb.0: // %entry ; CHECK64-NEXT: sub sp, sp, #400 -; CHECK64-NEXT: str x29, [sp, #384] // 8-byte Folded Spill +; CHECK64-NEXT: str x29, [sp, #384] // 8-byte Spill ; CHECK64-NEXT: .cfi_def_cfa_offset 400 ; CHECK64-NEXT: .cfi_offset w29, -16 ; CHECK64-NEXT: mov x8, sp @@ -3015,7 +3015,7 @@ define void @ordering_test_array(i64 %o, i64 %p, float %f, i32 %x) "aarch64_psta ; CHECK1024-LABEL: ordering_test_array: ; CHECK1024: // %bb.0: // %entry ; CHECK1024-NEXT: sub sp, sp, #1040 -; CHECK1024-NEXT: str x29, [sp, #1024] // 8-byte Folded Spill +; CHECK1024-NEXT: str x29, [sp, #1024] // 8-byte Spill ; CHECK1024-NEXT: sub sp, sp, #1280 ; CHECK1024-NEXT: .cfi_def_cfa_offset 2320 ; CHECK1024-NEXT: .cfi_offset w29, -16 @@ -3024,7 +3024,7 @@ define void @ordering_test_array(i64 %o, i64 %p, float %f, i32 %x) "aarch64_psta ; CHECK1024-NEXT: add x8, sp, #1152 ; CHECK1024-NEXT: str s0, [x8, x1, lsl #2] ; CHECK1024-NEXT: add sp, sp, #1280 -; CHECK1024-NEXT: ldr x29, [sp, #1024] // 8-byte Folded Reload +; CHECK1024-NEXT: ldr x29, [sp, #1024] // 8-byte Reload ; CHECK1024-NEXT: add sp, sp, #1040 ; CHECK1024-NEXT: ret entry: @@ -3048,7 +3048,7 @@ define i32 @vastate(i32 %x) "aarch64_inout_za" "aarch64_pstate_sm_enabled" "targ ; CHECK0-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK0-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill ; CHECK0-NEXT: stp x29, x30, [sp, #64] // 16-byte Folded Spill -; CHECK0-NEXT: str x9, [sp, #80] // 8-byte Folded Spill +; CHECK0-NEXT: str x9, [sp, #80] // 8-byte Spill ; CHECK0-NEXT: stp x20, x19, [sp, #96] // 16-byte Folded Spill ; CHECK0-NEXT: add x29, sp, #64 ; CHECK0-NEXT: .cfi_def_cfa w29, 48 @@ -3120,7 +3120,7 @@ define i32 @vastate(i32 %x) "aarch64_inout_za" "aarch64_pstate_sm_enabled" "targ ; CHECK64-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill ; CHECK64-NEXT: stp x29, x30, [sp, #128] // 16-byte Folded Spill ; CHECK64-NEXT: stp x9, x20, [sp, #144] // 16-byte Folded Spill -; CHECK64-NEXT: str x19, [sp, #160] // 8-byte Folded Spill +; CHECK64-NEXT: str x19, [sp, #160] // 8-byte Spill ; CHECK64-NEXT: add x29, sp, #128 ; CHECK64-NEXT: .cfi_def_cfa w29, 48 ; CHECK64-NEXT: .cfi_offset w19, -16 @@ -3161,7 +3161,7 @@ define i32 @vastate(i32 %x) "aarch64_inout_za" "aarch64_pstate_sm_enabled" "targ ; CHECK64-NEXT: sub sp, x29, #128 ; CHECK64-NEXT: .cfi_def_cfa wsp, 176 ; CHECK64-NEXT: ldp x20, x19, [sp, #152] // 16-byte Folded Reload -; CHECK64-NEXT: ldr d14, [sp, #8] // 8-byte Folded Reload +; CHECK64-NEXT: ldr d14, [sp, #8] // 8-byte Reload ; CHECK64-NEXT: ldp x29, x30, [sp, #128] // 16-byte Folded Reload ; CHECK64-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload ; CHECK64-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload @@ -3192,12 +3192,12 @@ define i32 @vastate(i32 %x) "aarch64_inout_za" "aarch64_pstate_sm_enabled" "targ ; CHECK1024-NEXT: stp d13, d12, [sp, #16] // 16-byte Folded Spill ; CHECK1024-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK1024-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK1024-NEXT: str x29, [sp, #1088] // 8-byte Folded Spill -; CHECK1024-NEXT: str x30, [sp, #1096] // 8-byte Folded Spill -; CHECK1024-NEXT: str x9, [sp, #1104] // 8-byte Folded Spill -; CHECK1024-NEXT: str x28, [sp, #1112] // 8-byte Folded Spill -; CHECK1024-NEXT: str x20, [sp, #1120] // 8-byte Folded Spill -; CHECK1024-NEXT: str x19, [sp, #1128] // 8-byte Folded Spill +; CHECK1024-NEXT: str x29, [sp, #1088] // 8-byte Spill +; CHECK1024-NEXT: str x30, [sp, #1096] // 8-byte Spill +; CHECK1024-NEXT: str x9, [sp, #1104] // 8-byte Spill +; CHECK1024-NEXT: str x28, [sp, #1112] // 8-byte Spill +; CHECK1024-NEXT: str x20, [sp, #1120] // 8-byte Spill +; CHECK1024-NEXT: str x19, [sp, #1128] // 8-byte Spill ; CHECK1024-NEXT: add x29, sp, #1088 ; CHECK1024-NEXT: .cfi_def_cfa w29, 48 ; CHECK1024-NEXT: .cfi_offset w19, -8 @@ -3239,12 +3239,12 @@ define i32 @vastate(i32 %x) "aarch64_inout_za" "aarch64_pstate_sm_enabled" "targ ; CHECK1024-NEXT: sub sp, x29, #1088 ; CHECK1024-NEXT: .cfi_def_cfa wsp, 1136 ; CHECK1024-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload -; CHECK1024-NEXT: ldr x19, [sp, #1128] // 8-byte Folded Reload +; CHECK1024-NEXT: ldr x19, [sp, #1128] // 8-byte Reload ; CHECK1024-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload -; CHECK1024-NEXT: ldr x20, [sp, #1120] // 8-byte Folded Reload -; CHECK1024-NEXT: ldr x28, [sp, #1112] // 8-byte Folded Reload -; CHECK1024-NEXT: ldr x30, [sp, #1096] // 8-byte Folded Reload -; CHECK1024-NEXT: ldr x29, [sp, #1088] // 8-byte Folded Reload +; CHECK1024-NEXT: ldr x20, [sp, #1120] // 8-byte Reload +; CHECK1024-NEXT: ldr x28, [sp, #1112] // 8-byte Reload +; CHECK1024-NEXT: ldr x30, [sp, #1096] // 8-byte Reload +; CHECK1024-NEXT: ldr x29, [sp, #1088] // 8-byte Reload ; CHECK1024-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload ; CHECK1024-NEXT: ldp d15, d14, [sp] // 16-byte Folded Reload ; CHECK1024-NEXT: add sp, sp, #1136 @@ -3334,11 +3334,11 @@ define i32 @sve_stack_object_and_vla(double %d, i64 %sz) "aarch64_pstate_sm_comp ; CHECK1024-LABEL: sve_stack_object_and_vla: ; CHECK1024: // %bb.0: // %entry ; CHECK1024-NEXT: sub sp, sp, #1056 -; CHECK1024-NEXT: str x29, [sp, #1024] // 8-byte Folded Spill +; CHECK1024-NEXT: str x29, [sp, #1024] // 8-byte Spill ; CHECK1024-NEXT: add x29, sp, #1024 -; CHECK1024-NEXT: str x30, [sp, #1032] // 8-byte Folded Spill -; CHECK1024-NEXT: str x28, [sp, #1040] // 8-byte Folded Spill -; CHECK1024-NEXT: str x19, [sp, #1048] // 8-byte Folded Spill +; CHECK1024-NEXT: str x30, [sp, #1032] // 8-byte Spill +; CHECK1024-NEXT: str x28, [sp, #1040] // 8-byte Spill +; CHECK1024-NEXT: str x19, [sp, #1048] // 8-byte Spill ; CHECK1024-NEXT: sub sp, sp, #1024 ; CHECK1024-NEXT: addvl sp, sp, #-1 ; CHECK1024-NEXT: mov x19, sp @@ -3359,10 +3359,10 @@ define i32 @sve_stack_object_and_vla(double %d, i64 %sz) "aarch64_pstate_sm_comp ; CHECK1024-NEXT: bl bar ; CHECK1024-NEXT: mov w0, wzr ; CHECK1024-NEXT: sub sp, x29, #1024 -; CHECK1024-NEXT: ldr x19, [sp, #1048] // 8-byte Folded Reload -; CHECK1024-NEXT: ldr x28, [sp, #1040] // 8-byte Folded Reload -; CHECK1024-NEXT: ldr x30, [sp, #1032] // 8-byte Folded Reload -; CHECK1024-NEXT: ldr x29, [sp, #1024] // 8-byte Folded Reload +; CHECK1024-NEXT: ldr x19, [sp, #1048] // 8-byte Reload +; CHECK1024-NEXT: ldr x28, [sp, #1040] // 8-byte Reload +; CHECK1024-NEXT: ldr x30, [sp, #1032] // 8-byte Reload +; CHECK1024-NEXT: ldr x29, [sp, #1024] // 8-byte Reload ; CHECK1024-NEXT: add sp, sp, #1056 ; CHECK1024-NEXT: ret entry: @@ -3394,18 +3394,18 @@ define i32 @svecc_call_dynamic_alloca(<4 x i16> %P0, i32 %P1, i32 %P2, %P0, i32 %P1, i32 %P2, %P0, i32 %P1, i32 %P2, %P0, i32 %P1, i32 %P2, %P0, i32 %P1, i32 %P2, %P0, i32 %P1, i32 %P2, %P0, i32 %P1, i32 %P2, %P0, i32 %P1, i32 %P2, %P0, i32 %P1, i32 %P2, %P0, i32 %P1, i32 %P2, %P0, i32 %P1, i32 %P2, %P0, i32 %P1, i32 %P2, %P0, i32 %P1, i32 %P2, %P0, i32 %P1, i32 %P2, %P0, i32 %P1, i32 %P2, %P0, i32 %P1, i32 %P2, %P0, i32 %P1, i32 %P2, %P0, i32 %P1, i32 %P2, %P0, i32 %P1, i32 %P2, %P0, i32 %P1, i32 %P2, %P0, i32 %P1, i32 % ; CHECK0-LABEL: svecc_call_dynamic_and_scalable_alloca: ; CHECK0: // %bb.0: // %entry ; CHECK0-NEXT: stp x29, x30, [sp, #-64]! // 16-byte Folded Spill -; CHECK0-NEXT: str x28, [sp, #16] // 8-byte Folded Spill +; CHECK0-NEXT: str x28, [sp, #16] // 8-byte Spill ; CHECK0-NEXT: mov x29, sp ; CHECK0-NEXT: stp x27, x26, [sp, #32] // 16-byte Folded Spill ; CHECK0-NEXT: stp x20, x19, [sp, #48] // 16-byte Folded Spill ; CHECK0-NEXT: addvl sp, sp, #-18 -; CHECK0-NEXT: str p15, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK0-NEXT: str p14, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK0-NEXT: str p13, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK0-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill -; CHECK0-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; CHECK0-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; CHECK0-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; CHECK0-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill -; CHECK0-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; CHECK0-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; CHECK0-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; CHECK0-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; CHECK0-NEXT: str p15, [sp, #4, mul vl] // 2-byte Spill +; CHECK0-NEXT: str p14, [sp, #5, mul vl] // 2-byte Spill +; CHECK0-NEXT: str p13, [sp, #6, mul vl] // 2-byte Spill +; CHECK0-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill +; CHECK0-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; CHECK0-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; CHECK0-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; CHECK0-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill +; CHECK0-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; CHECK0-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; CHECK0-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; CHECK0-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; CHECK0-NEXT: str z23, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK0-NEXT: str z22, [sp, #3, mul vl] // 16-byte Folded Spill ; CHECK0-NEXT: str z21, [sp, #4, mul vl] // 16-byte Folded Spill @@ -4290,21 +4290,21 @@ define i32 @svecc_call_dynamic_and_scalable_alloca(<4 x i16> %P0, i32 %P1, i32 % ; CHECK0-NEXT: ldr z10, [sp, #15, mul vl] // 16-byte Folded Reload ; CHECK0-NEXT: ldr z9, [sp, #16, mul vl] // 16-byte Folded Reload ; CHECK0-NEXT: ldr z8, [sp, #17, mul vl] // 16-byte Folded Reload -; CHECK0-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Folded Reload -; CHECK0-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Folded Reload -; CHECK0-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Folded Reload -; CHECK0-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; CHECK0-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; CHECK0-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; CHECK0-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; CHECK0-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; CHECK0-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; CHECK0-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; CHECK0-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; CHECK0-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; CHECK0-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Reload +; CHECK0-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Reload +; CHECK0-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Reload +; CHECK0-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; CHECK0-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; CHECK0-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; CHECK0-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; CHECK0-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; CHECK0-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; CHECK0-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; CHECK0-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; CHECK0-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; CHECK0-NEXT: mov sp, x29 ; CHECK0-NEXT: ldp x20, x19, [sp, #48] // 16-byte Folded Reload -; CHECK0-NEXT: ldr x28, [sp, #16] // 8-byte Folded Reload +; CHECK0-NEXT: ldr x28, [sp, #16] // 8-byte Reload ; CHECK0-NEXT: ldp x27, x26, [sp, #32] // 16-byte Folded Reload ; CHECK0-NEXT: ldp x29, x30, [sp], #64 // 16-byte Folded Reload ; CHECK0-NEXT: ret @@ -4316,20 +4316,20 @@ define i32 @svecc_call_dynamic_and_scalable_alloca(<4 x i16> %P0, i32 %P1, i32 % ; CHECK64-NEXT: add x29, sp, #64 ; CHECK64-NEXT: stp x28, x27, [sp, #80] // 16-byte Folded Spill ; CHECK64-NEXT: stp x26, x20, [sp, #96] // 16-byte Folded Spill -; CHECK64-NEXT: str x19, [sp, #112] // 8-byte Folded Spill +; CHECK64-NEXT: str x19, [sp, #112] // 8-byte Spill ; CHECK64-NEXT: addvl sp, sp, #-18 -; CHECK64-NEXT: str p15, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK64-NEXT: str p14, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK64-NEXT: str p13, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK64-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill -; CHECK64-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; CHECK64-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; CHECK64-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; CHECK64-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill -; CHECK64-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; CHECK64-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; CHECK64-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; CHECK64-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; CHECK64-NEXT: str p15, [sp, #4, mul vl] // 2-byte Spill +; CHECK64-NEXT: str p14, [sp, #5, mul vl] // 2-byte Spill +; CHECK64-NEXT: str p13, [sp, #6, mul vl] // 2-byte Spill +; CHECK64-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill +; CHECK64-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; CHECK64-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; CHECK64-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; CHECK64-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill +; CHECK64-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; CHECK64-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; CHECK64-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; CHECK64-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; CHECK64-NEXT: str z23, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK64-NEXT: str z22, [sp, #3, mul vl] // 16-byte Folded Spill ; CHECK64-NEXT: str z21, [sp, #4, mul vl] // 16-byte Folded Spill @@ -4401,21 +4401,21 @@ define i32 @svecc_call_dynamic_and_scalable_alloca(<4 x i16> %P0, i32 %P1, i32 % ; CHECK64-NEXT: ldr z10, [sp, #15, mul vl] // 16-byte Folded Reload ; CHECK64-NEXT: ldr z9, [sp, #16, mul vl] // 16-byte Folded Reload ; CHECK64-NEXT: ldr z8, [sp, #17, mul vl] // 16-byte Folded Reload -; CHECK64-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Folded Reload -; CHECK64-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Folded Reload -; CHECK64-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Folded Reload -; CHECK64-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; CHECK64-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; CHECK64-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; CHECK64-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; CHECK64-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; CHECK64-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; CHECK64-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; CHECK64-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; CHECK64-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; CHECK64-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Reload +; CHECK64-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Reload +; CHECK64-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Reload +; CHECK64-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; CHECK64-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; CHECK64-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; CHECK64-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; CHECK64-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; CHECK64-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; CHECK64-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; CHECK64-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; CHECK64-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; CHECK64-NEXT: sub sp, x29, #64 ; CHECK64-NEXT: ldp x20, x19, [sp, #104] // 16-byte Folded Reload -; CHECK64-NEXT: ldr x29, [sp, #64] // 8-byte Folded Reload +; CHECK64-NEXT: ldr x29, [sp, #64] // 8-byte Reload ; CHECK64-NEXT: ldp x27, x26, [sp, #88] // 16-byte Folded Reload ; CHECK64-NEXT: ldp x30, x28, [sp, #72] // 16-byte Folded Reload ; CHECK64-NEXT: add sp, sp, #128 @@ -4424,27 +4424,27 @@ define i32 @svecc_call_dynamic_and_scalable_alloca(<4 x i16> %P0, i32 %P1, i32 % ; CHECK1024-LABEL: svecc_call_dynamic_and_scalable_alloca: ; CHECK1024: // %bb.0: // %entry ; CHECK1024-NEXT: sub sp, sp, #1088 -; CHECK1024-NEXT: str x29, [sp, #1024] // 8-byte Folded Spill +; CHECK1024-NEXT: str x29, [sp, #1024] // 8-byte Spill ; CHECK1024-NEXT: add x29, sp, #1024 -; CHECK1024-NEXT: str x30, [sp, #1032] // 8-byte Folded Spill -; CHECK1024-NEXT: str x28, [sp, #1040] // 8-byte Folded Spill -; CHECK1024-NEXT: str x27, [sp, #1048] // 8-byte Folded Spill -; CHECK1024-NEXT: str x26, [sp, #1056] // 8-byte Folded Spill -; CHECK1024-NEXT: str x20, [sp, #1064] // 8-byte Folded Spill -; CHECK1024-NEXT: str x19, [sp, #1072] // 8-byte Folded Spill +; CHECK1024-NEXT: str x30, [sp, #1032] // 8-byte Spill +; CHECK1024-NEXT: str x28, [sp, #1040] // 8-byte Spill +; CHECK1024-NEXT: str x27, [sp, #1048] // 8-byte Spill +; CHECK1024-NEXT: str x26, [sp, #1056] // 8-byte Spill +; CHECK1024-NEXT: str x20, [sp, #1064] // 8-byte Spill +; CHECK1024-NEXT: str x19, [sp, #1072] // 8-byte Spill ; CHECK1024-NEXT: addvl sp, sp, #-18 -; CHECK1024-NEXT: str p15, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK1024-NEXT: str p14, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK1024-NEXT: str p13, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK1024-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill -; CHECK1024-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; CHECK1024-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; CHECK1024-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; CHECK1024-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill -; CHECK1024-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; CHECK1024-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; CHECK1024-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; CHECK1024-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; CHECK1024-NEXT: str p15, [sp, #4, mul vl] // 2-byte Spill +; CHECK1024-NEXT: str p14, [sp, #5, mul vl] // 2-byte Spill +; CHECK1024-NEXT: str p13, [sp, #6, mul vl] // 2-byte Spill +; CHECK1024-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill +; CHECK1024-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; CHECK1024-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; CHECK1024-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; CHECK1024-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill +; CHECK1024-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; CHECK1024-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; CHECK1024-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; CHECK1024-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; CHECK1024-NEXT: str z23, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK1024-NEXT: str z22, [sp, #3, mul vl] // 16-byte Folded Spill ; CHECK1024-NEXT: str z21, [sp, #4, mul vl] // 16-byte Folded Spill @@ -4516,26 +4516,26 @@ define i32 @svecc_call_dynamic_and_scalable_alloca(<4 x i16> %P0, i32 %P1, i32 % ; CHECK1024-NEXT: ldr z10, [sp, #15, mul vl] // 16-byte Folded Reload ; CHECK1024-NEXT: ldr z9, [sp, #16, mul vl] // 16-byte Folded Reload ; CHECK1024-NEXT: ldr z8, [sp, #17, mul vl] // 16-byte Folded Reload -; CHECK1024-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Folded Reload -; CHECK1024-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Folded Reload -; CHECK1024-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Folded Reload -; CHECK1024-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; CHECK1024-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; CHECK1024-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; CHECK1024-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; CHECK1024-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; CHECK1024-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; CHECK1024-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; CHECK1024-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; CHECK1024-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; CHECK1024-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Reload +; CHECK1024-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Reload +; CHECK1024-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Reload +; CHECK1024-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; CHECK1024-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; CHECK1024-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; CHECK1024-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; CHECK1024-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; CHECK1024-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; CHECK1024-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; CHECK1024-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; CHECK1024-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; CHECK1024-NEXT: sub sp, x29, #1024 -; CHECK1024-NEXT: ldr x19, [sp, #1072] // 8-byte Folded Reload -; CHECK1024-NEXT: ldr x20, [sp, #1064] // 8-byte Folded Reload -; CHECK1024-NEXT: ldr x26, [sp, #1056] // 8-byte Folded Reload -; CHECK1024-NEXT: ldr x27, [sp, #1048] // 8-byte Folded Reload -; CHECK1024-NEXT: ldr x28, [sp, #1040] // 8-byte Folded Reload -; CHECK1024-NEXT: ldr x30, [sp, #1032] // 8-byte Folded Reload -; CHECK1024-NEXT: ldr x29, [sp, #1024] // 8-byte Folded Reload +; CHECK1024-NEXT: ldr x19, [sp, #1072] // 8-byte Reload +; CHECK1024-NEXT: ldr x20, [sp, #1064] // 8-byte Reload +; CHECK1024-NEXT: ldr x26, [sp, #1056] // 8-byte Reload +; CHECK1024-NEXT: ldr x27, [sp, #1048] // 8-byte Reload +; CHECK1024-NEXT: ldr x28, [sp, #1040] // 8-byte Reload +; CHECK1024-NEXT: ldr x30, [sp, #1032] // 8-byte Reload +; CHECK1024-NEXT: ldr x29, [sp, #1024] // 8-byte Reload ; CHECK1024-NEXT: add sp, sp, #1088 ; CHECK1024-NEXT: ret entry: diff --git a/llvm/test/CodeGen/AArch64/stack-probing-dynamic.ll b/llvm/test/CodeGen/AArch64/stack-probing-dynamic.ll index e7687f0d3994b..6bc8bccac7472 100644 --- a/llvm/test/CodeGen/AArch64/stack-probing-dynamic.ll +++ b/llvm/test/CodeGen/AArch64/stack-probing-dynamic.ll @@ -99,7 +99,7 @@ define void @dynamic_align_64(i64 %size, ptr %out) #0 { ; CHECK: // %bb.0: ; CHECK-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-NEXT: mov x29, sp ; CHECK-NEXT: .cfi_def_cfa w29, 32 ; CHECK-NEXT: .cfi_offset w19, -16 @@ -128,7 +128,7 @@ define void @dynamic_align_64(i64 %size, ptr %out) #0 { ; CHECK-NEXT: str x8, [x1] ; CHECK-NEXT: mov sp, x29 ; CHECK-NEXT: .cfi_def_cfa wsp, 32 -; CHECK-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-NEXT: .cfi_def_cfa_offset 0 ; CHECK-NEXT: .cfi_restore w19 @@ -149,7 +149,7 @@ define void @dynamic_align_8192(i64 %size, ptr %out) #0 { ; CHECK: // %bb.0: ; CHECK-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-NEXT: mov x29, sp ; CHECK-NEXT: .cfi_def_cfa w29, 32 ; CHECK-NEXT: .cfi_offset w19, -16 @@ -188,7 +188,7 @@ define void @dynamic_align_8192(i64 %size, ptr %out) #0 { ; CHECK-NEXT: str x8, [x1] ; CHECK-NEXT: mov sp, x29 ; CHECK-NEXT: .cfi_def_cfa wsp, 32 -; CHECK-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-NEXT: .cfi_def_cfa_offset 0 ; CHECK-NEXT: .cfi_restore w19 @@ -293,7 +293,7 @@ define void @reserved_call_frame(i64 %n) #0 { ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NEXT: str x28, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x28, [sp, #16] // 8-byte Spill ; CHECK-NEXT: mov x29, sp ; CHECK-NEXT: .cfi_def_cfa w29, 32 ; CHECK-NEXT: .cfi_offset w28, -16 @@ -305,7 +305,7 @@ define void @reserved_call_frame(i64 %n) #0 { ; CHECK-NEXT: bl callee_stack_args ; CHECK-NEXT: add sp, sp, #1504 ; CHECK-NEXT: .cfi_def_cfa wsp, 32 -; CHECK-NEXT: ldr x28, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x28, [sp, #16] // 8-byte Reload ; CHECK-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-NEXT: .cfi_def_cfa_offset 0 ; CHECK-NEXT: .cfi_restore w28 @@ -326,7 +326,7 @@ define void @dynamic_sve(i64 %size, ptr %out) #0 "target-features"="+sve" { ; CHECK: // %bb.0: ; CHECK-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 -; CHECK-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-NEXT: mov x29, sp ; CHECK-NEXT: .cfi_def_cfa w29, 32 ; CHECK-NEXT: .cfi_offset w19, -16 @@ -351,7 +351,7 @@ define void @dynamic_sve(i64 %size, ptr %out) #0 "target-features"="+sve" { ; CHECK-NEXT: str x8, [x1] ; CHECK-NEXT: mov sp, x29 ; CHECK-NEXT: .cfi_def_cfa wsp, 32 -; CHECK-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-NEXT: .cfi_def_cfa_offset 0 ; CHECK-NEXT: .cfi_restore w19 diff --git a/llvm/test/CodeGen/AArch64/stack-probing-sve.ll b/llvm/test/CodeGen/AArch64/stack-probing-sve.ll index 59b95be6fc568..79cf6d708c3e0 100644 --- a/llvm/test/CodeGen/AArch64/stack-probing-sve.ll +++ b/llvm/test/CodeGen/AArch64/stack-probing-sve.ll @@ -288,10 +288,10 @@ define void @sve_1p_csr( %a) #0 { ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: //APP ; CHECK-NEXT: //NO_APP -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: .cfi_def_cfa wsp, 16 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload @@ -311,16 +311,16 @@ define void @sve_4p_csr( %a) #0 { ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG -; CHECK-NEXT: str p11, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p10, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p9, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p11, [sp, #4, mul vl] // 2-byte Spill +; CHECK-NEXT: str p10, [sp, #5, mul vl] // 2-byte Spill +; CHECK-NEXT: str p9, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: //APP ; CHECK-NEXT: //NO_APP -; CHECK-NEXT: ldr p11, [sp, #4, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p10, [sp, #5, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p9, [sp, #6, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p11, [sp, #4, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p10, [sp, #5, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p9, [sp, #6, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: .cfi_def_cfa wsp, 16 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload @@ -353,7 +353,7 @@ define void @sve_16v_1p_csr( %a) #0 { ; CHECK-NEXT: mov sp, x9 ; CHECK-NEXT: ldr xzr, [sp] ; CHECK-NEXT: .cfi_def_cfa_register wsp -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: str z23, [sp, #1, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z22, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z21, [sp, #3, mul vl] // 16-byte Folded Spill @@ -396,7 +396,7 @@ define void @sve_16v_1p_csr( %a) #0 { ; CHECK-NEXT: ldr z10, [sp, #14, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z9, [sp, #15, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z8, [sp, #16, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #17 ; CHECK-NEXT: .cfi_def_cfa wsp, 16 ; CHECK-NEXT: .cfi_restore z8 @@ -684,7 +684,7 @@ define void @sve_unprobed_area( %a, i32 %n) #0 { ; CHECK-NEXT: addvl sp, sp, #-4 ; CHECK-NEXT: .cfi_escape 0x0f, 0x09, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x11, 0x20, 0x1e, 0x22 // sp + 16 + 32 * VG ; CHECK-NEXT: str xzr, [sp] -; CHECK-NEXT: str p9, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p9, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: str z10, [sp, #1, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z9, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z8, [sp, #3, mul vl] // 16-byte Folded Spill @@ -700,7 +700,7 @@ define void @sve_unprobed_area( %a, i32 %n) #0 { ; CHECK-NEXT: ldr z10, [sp, #1, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z9, [sp, #2, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z8, [sp, #3, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p9, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p9, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #4 ; CHECK-NEXT: .cfi_def_cfa wsp, 16 ; CHECK-NEXT: .cfi_restore z8 diff --git a/llvm/test/CodeGen/AArch64/stack-probing.ll b/llvm/test/CodeGen/AArch64/stack-probing.ll index 8fc90cfd71b18..3e0eaf1340aea 100644 --- a/llvm/test/CodeGen/AArch64/stack-probing.ll +++ b/llvm/test/CodeGen/AArch64/stack-probing.ll @@ -32,7 +32,7 @@ define void @static_256(ptr %out) #0 { ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: sub sp, sp, #272 ; CHECK-NEXT: .cfi_def_cfa_offset 272 -; CHECK-NEXT: str x29, [sp, #256] // 8-byte Folded Spill +; CHECK-NEXT: str x29, [sp, #256] // 8-byte Spill ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: mov x8, sp ; CHECK-NEXT: str x8, [x0] diff --git a/llvm/test/CodeGen/AArch64/statepoint-call-lowering.ll b/llvm/test/CodeGen/AArch64/statepoint-call-lowering.ll index 32c3eaeb9c876..167c6659cd2f6 100644 --- a/llvm/test/CodeGen/AArch64/statepoint-call-lowering.ll +++ b/llvm/test/CodeGen/AArch64/statepoint-call-lowering.ll @@ -202,7 +202,7 @@ define void @test_attributes(ptr byval(%struct2) %s) gc "statepoint-example" { ; CHECK-LABEL: test_attributes: ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 48 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: ldr x8, [sp, #64] @@ -214,7 +214,7 @@ define void @test_attributes(ptr byval(%struct2) %s) gc "statepoint-example" { ; CHECK-NEXT: str q0, [sp] ; CHECK-NEXT: bl consume_attributes ; CHECK-NEXT: .Ltmp9: -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #48 ; CHECK-NEXT: ret entry: diff --git a/llvm/test/CodeGen/AArch64/streaming-compatible-memory-ops.ll b/llvm/test/CodeGen/AArch64/streaming-compatible-memory-ops.ll index 6021f9fab2cdd..9c66b38c46973 100644 --- a/llvm/test/CodeGen/AArch64/streaming-compatible-memory-ops.ll +++ b/llvm/test/CodeGen/AArch64/streaming-compatible-memory-ops.ll @@ -28,14 +28,14 @@ define void @se_memcpy(i64 noundef %n) "aarch64_pstate_sm_enabled" nounwind { ; CHECK-NO-SME-ROUTINES-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NO-SME-ROUTINES-NEXT: adrp x1, :got:src ; CHECK-NO-SME-ROUTINES-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NO-SME-ROUTINES-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-NO-SME-ROUTINES-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-NO-SME-ROUTINES-NEXT: ldr x0, [x0, :got_lo12:dst] ; CHECK-NO-SME-ROUTINES-NEXT: ldr x1, [x1, :got_lo12:src] ; CHECK-NO-SME-ROUTINES-NEXT: smstop sm ; CHECK-NO-SME-ROUTINES-NEXT: bl memcpy ; CHECK-NO-SME-ROUTINES-NEXT: smstart sm ; CHECK-NO-SME-ROUTINES-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload -; CHECK-NO-SME-ROUTINES-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-NO-SME-ROUTINES-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-NO-SME-ROUTINES-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NO-SME-ROUTINES-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload ; CHECK-NO-SME-ROUTINES-NEXT: ldp d15, d14, [sp], #80 // 16-byte Folded Reload @@ -76,14 +76,14 @@ define void @se_memset(i64 noundef %n) "aarch64_pstate_sm_enabled" nounwind { ; CHECK-NO-SME-ROUTINES-NEXT: adrp x0, :got:dst ; CHECK-NO-SME-ROUTINES-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NO-SME-ROUTINES-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NO-SME-ROUTINES-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-NO-SME-ROUTINES-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-NO-SME-ROUTINES-NEXT: ldr x0, [x0, :got_lo12:dst] ; CHECK-NO-SME-ROUTINES-NEXT: smstop sm ; CHECK-NO-SME-ROUTINES-NEXT: mov w1, #2 // =0x2 ; CHECK-NO-SME-ROUTINES-NEXT: bl memset ; CHECK-NO-SME-ROUTINES-NEXT: smstart sm ; CHECK-NO-SME-ROUTINES-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload -; CHECK-NO-SME-ROUTINES-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-NO-SME-ROUTINES-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-NO-SME-ROUTINES-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NO-SME-ROUTINES-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload ; CHECK-NO-SME-ROUTINES-NEXT: ldp d15, d14, [sp], #80 // 16-byte Folded Reload @@ -125,14 +125,14 @@ define void @se_memmove(i64 noundef %n) "aarch64_pstate_sm_enabled" nounwind { ; CHECK-NO-SME-ROUTINES-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NO-SME-ROUTINES-NEXT: adrp x1, :got:src ; CHECK-NO-SME-ROUTINES-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NO-SME-ROUTINES-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-NO-SME-ROUTINES-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-NO-SME-ROUTINES-NEXT: ldr x0, [x0, :got_lo12:dst] ; CHECK-NO-SME-ROUTINES-NEXT: ldr x1, [x1, :got_lo12:src] ; CHECK-NO-SME-ROUTINES-NEXT: smstop sm ; CHECK-NO-SME-ROUTINES-NEXT: bl memmove ; CHECK-NO-SME-ROUTINES-NEXT: smstart sm ; CHECK-NO-SME-ROUTINES-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload -; CHECK-NO-SME-ROUTINES-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-NO-SME-ROUTINES-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-NO-SME-ROUTINES-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NO-SME-ROUTINES-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload ; CHECK-NO-SME-ROUTINES-NEXT: ldp d15, d14, [sp], #80 // 16-byte Folded Reload @@ -218,7 +218,7 @@ define void @sb_memcpy(i64 noundef %n) "aarch64_pstate_sm_body" nounwind { ; CHECK-NEXT: mov x2, x0 ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-NEXT: smstart sm ; CHECK-NEXT: adrp x0, :got:dst ; CHECK-NEXT: adrp x1, :got:src @@ -227,7 +227,7 @@ define void @sb_memcpy(i64 noundef %n) "aarch64_pstate_sm_body" nounwind { ; CHECK-NEXT: bl __arm_sc_memcpy ; CHECK-NEXT: smstop sm ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload ; CHECK-NEXT: ldp d15, d14, [sp], #80 // 16-byte Folded Reload @@ -240,7 +240,7 @@ define void @sb_memcpy(i64 noundef %n) "aarch64_pstate_sm_body" nounwind { ; CHECK-NO-SME-ROUTINES-NEXT: mov x2, x0 ; CHECK-NO-SME-ROUTINES-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NO-SME-ROUTINES-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill -; CHECK-NO-SME-ROUTINES-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-NO-SME-ROUTINES-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-NO-SME-ROUTINES-NEXT: smstart sm ; CHECK-NO-SME-ROUTINES-NEXT: adrp x0, :got:dst ; CHECK-NO-SME-ROUTINES-NEXT: adrp x1, :got:src @@ -249,7 +249,7 @@ define void @sb_memcpy(i64 noundef %n) "aarch64_pstate_sm_body" nounwind { ; CHECK-NO-SME-ROUTINES-NEXT: smstop sm ; CHECK-NO-SME-ROUTINES-NEXT: bl memcpy ; CHECK-NO-SME-ROUTINES-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload -; CHECK-NO-SME-ROUTINES-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-NO-SME-ROUTINES-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-NO-SME-ROUTINES-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload ; CHECK-NO-SME-ROUTINES-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload ; CHECK-NO-SME-ROUTINES-NEXT: ldp d15, d14, [sp], #80 // 16-byte Folded Reload diff --git a/llvm/test/CodeGen/AArch64/sve-alloca.ll b/llvm/test/CodeGen/AArch64/sve-alloca.ll index 8b7fa9e7b7f71..324c35b340ed6 100644 --- a/llvm/test/CodeGen/AArch64/sve-alloca.ll +++ b/llvm/test/CodeGen/AArch64/sve-alloca.ll @@ -12,18 +12,18 @@ define void @foo( %dst, i1 %cond) { ; CHECK-NEXT: stp x28, x19, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: mov x29, sp ; CHECK-NEXT: addvl sp, sp, #-18 -; CHECK-NEXT: str p15, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p14, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p13, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p15, [sp, #4, mul vl] // 2-byte Spill +; CHECK-NEXT: str p14, [sp, #5, mul vl] // 2-byte Spill +; CHECK-NEXT: str p13, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill +; CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill +; CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; CHECK-NEXT: str z23, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z22, [sp, #3, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z21, [sp, #4, mul vl] // 16-byte Folded Spill @@ -81,18 +81,18 @@ define void @foo( %dst, i1 %cond) { ; CHECK-NEXT: ldr z10, [sp, #15, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z9, [sp, #16, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z8, [sp, #17, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; CHECK-NEXT: mov sp, x29 ; CHECK-NEXT: ldp x28, x19, [sp, #16] // 16-byte Folded Reload ; CHECK-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload diff --git a/llvm/test/CodeGen/AArch64/sve-callee-save-restore-pairs.ll b/llvm/test/CodeGen/AArch64/sve-callee-save-restore-pairs.ll index 254b8e03636da..7f1a268ed4a56 100644 --- a/llvm/test/CodeGen/AArch64/sve-callee-save-restore-pairs.ll +++ b/llvm/test/CodeGen/AArch64/sve-callee-save-restore-pairs.ll @@ -15,18 +15,18 @@ define void @fbyte( %v){ ; NOPAIR: // %bb.0: ; NOPAIR-NEXT: stp x29, x30, [sp, #-16]! // 16-byte Folded Spill ; NOPAIR-NEXT: addvl sp, sp, #-18 -; NOPAIR-NEXT: str p15, [sp, #4, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p14, [sp, #5, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p13, [sp, #6, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; NOPAIR-NEXT: str p15, [sp, #4, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p14, [sp, #5, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p13, [sp, #6, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; NOPAIR-NEXT: str z23, [sp, #2, mul vl] // 16-byte Folded Spill ; NOPAIR-NEXT: str z22, [sp, #3, mul vl] // 16-byte Folded Spill ; NOPAIR-NEXT: str z21, [sp, #4, mul vl] // 16-byte Folded Spill @@ -71,18 +71,18 @@ define void @fbyte( %v){ ; NOPAIR-NEXT: ldr z10, [sp, #15, mul vl] // 16-byte Folded Reload ; NOPAIR-NEXT: ldr z9, [sp, #16, mul vl] // 16-byte Folded Reload ; NOPAIR-NEXT: ldr z8, [sp, #17, mul vl] // 16-byte Folded Reload -; NOPAIR-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; NOPAIR-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; NOPAIR-NEXT: addvl sp, sp, #18 ; NOPAIR-NEXT: ldp x29, x30, [sp], #16 // 16-byte Folded Reload ; NOPAIR-NEXT: ret @@ -91,26 +91,26 @@ define void @fbyte( %v){ ; PAIR: // %bb.0: ; PAIR-NEXT: stp x29, x30, [sp, #-16]! // 16-byte Folded Spill ; PAIR-NEXT: addvl sp, sp, #-18 -; PAIR-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill +; PAIR-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill ; PAIR-NEXT: ptrue pn8.b -; PAIR-NEXT: str p15, [sp, #4, mul vl] // 2-byte Folded Spill +; PAIR-NEXT: str p15, [sp, #4, mul vl] // 2-byte Spill ; PAIR-NEXT: st1b { z22.b, z23.b }, pn8, [sp, #2, mul vl] // 32-byte Folded Spill ; PAIR-NEXT: st1b { z20.b, z21.b }, pn8, [sp, #4, mul vl] // 32-byte Folded Spill -; PAIR-NEXT: str p14, [sp, #5, mul vl] // 2-byte Folded Spill +; PAIR-NEXT: str p14, [sp, #5, mul vl] // 2-byte Spill ; PAIR-NEXT: st1b { z18.b, z19.b }, pn8, [sp, #6, mul vl] // 32-byte Folded Spill ; PAIR-NEXT: st1b { z16.b, z17.b }, pn8, [sp, #8, mul vl] // 32-byte Folded Spill -; PAIR-NEXT: str p13, [sp, #6, mul vl] // 2-byte Folded Spill +; PAIR-NEXT: str p13, [sp, #6, mul vl] // 2-byte Spill ; PAIR-NEXT: st1b { z14.b, z15.b }, pn8, [sp, #10, mul vl] // 32-byte Folded Spill ; PAIR-NEXT: st1b { z12.b, z13.b }, pn8, [sp, #12, mul vl] // 32-byte Folded Spill -; PAIR-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill +; PAIR-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill ; PAIR-NEXT: st1b { z10.b, z11.b }, pn8, [sp, #14, mul vl] // 32-byte Folded Spill -; PAIR-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; PAIR-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; PAIR-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; PAIR-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; PAIR-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; PAIR-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; PAIR-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; PAIR-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; PAIR-NEXT: str z9, [sp, #16, mul vl] // 16-byte Folded Spill ; PAIR-NEXT: str z8, [sp, #17, mul vl] // 16-byte Folded Spill ; PAIR-NEXT: .cfi_escape 0x0f, 0x0a, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x11, 0x90, 0x01, 0x1e, 0x22 // sp + 16 + 144 * VG @@ -135,18 +135,18 @@ define void @fbyte( %v){ ; PAIR-NEXT: ld1b { z14.b, z15.b }, pn8/z, [sp, #10, mul vl] // 32-byte Folded Reload ; PAIR-NEXT: ld1b { z12.b, z13.b }, pn8/z, [sp, #12, mul vl] // 32-byte Folded Reload ; PAIR-NEXT: ld1b { z10.b, z11.b }, pn8/z, [sp, #14, mul vl] // 32-byte Folded Reload -; PAIR-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; PAIR-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; PAIR-NEXT: addvl sp, sp, #18 ; PAIR-NEXT: ldp x29, x30, [sp], #16 // 16-byte Folded Reload ; PAIR-NEXT: ret @@ -159,18 +159,18 @@ define void @fhalf( %v) { ; NOPAIR: // %bb.0: ; NOPAIR-NEXT: stp x29, x30, [sp, #-16]! // 16-byte Folded Spill ; NOPAIR-NEXT: addvl sp, sp, #-18 -; NOPAIR-NEXT: str p15, [sp, #4, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p14, [sp, #5, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p13, [sp, #6, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; NOPAIR-NEXT: str p15, [sp, #4, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p14, [sp, #5, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p13, [sp, #6, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; NOPAIR-NEXT: str z23, [sp, #2, mul vl] // 16-byte Folded Spill ; NOPAIR-NEXT: str z22, [sp, #3, mul vl] // 16-byte Folded Spill ; NOPAIR-NEXT: str z21, [sp, #4, mul vl] // 16-byte Folded Spill @@ -215,18 +215,18 @@ define void @fhalf( %v) { ; NOPAIR-NEXT: ldr z10, [sp, #15, mul vl] // 16-byte Folded Reload ; NOPAIR-NEXT: ldr z9, [sp, #16, mul vl] // 16-byte Folded Reload ; NOPAIR-NEXT: ldr z8, [sp, #17, mul vl] // 16-byte Folded Reload -; NOPAIR-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; NOPAIR-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; NOPAIR-NEXT: addvl sp, sp, #18 ; NOPAIR-NEXT: ldp x29, x30, [sp], #16 // 16-byte Folded Reload ; NOPAIR-NEXT: ret @@ -235,26 +235,26 @@ define void @fhalf( %v) { ; PAIR: // %bb.0: ; PAIR-NEXT: stp x29, x30, [sp, #-16]! // 16-byte Folded Spill ; PAIR-NEXT: addvl sp, sp, #-18 -; PAIR-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill +; PAIR-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill ; PAIR-NEXT: ptrue pn8.b -; PAIR-NEXT: str p15, [sp, #4, mul vl] // 2-byte Folded Spill +; PAIR-NEXT: str p15, [sp, #4, mul vl] // 2-byte Spill ; PAIR-NEXT: st1b { z22.b, z23.b }, pn8, [sp, #2, mul vl] // 32-byte Folded Spill ; PAIR-NEXT: st1b { z20.b, z21.b }, pn8, [sp, #4, mul vl] // 32-byte Folded Spill -; PAIR-NEXT: str p14, [sp, #5, mul vl] // 2-byte Folded Spill +; PAIR-NEXT: str p14, [sp, #5, mul vl] // 2-byte Spill ; PAIR-NEXT: st1b { z18.b, z19.b }, pn8, [sp, #6, mul vl] // 32-byte Folded Spill ; PAIR-NEXT: st1b { z16.b, z17.b }, pn8, [sp, #8, mul vl] // 32-byte Folded Spill -; PAIR-NEXT: str p13, [sp, #6, mul vl] // 2-byte Folded Spill +; PAIR-NEXT: str p13, [sp, #6, mul vl] // 2-byte Spill ; PAIR-NEXT: st1b { z14.b, z15.b }, pn8, [sp, #10, mul vl] // 32-byte Folded Spill ; PAIR-NEXT: st1b { z12.b, z13.b }, pn8, [sp, #12, mul vl] // 32-byte Folded Spill -; PAIR-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill +; PAIR-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill ; PAIR-NEXT: st1b { z10.b, z11.b }, pn8, [sp, #14, mul vl] // 32-byte Folded Spill -; PAIR-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; PAIR-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; PAIR-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; PAIR-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; PAIR-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; PAIR-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; PAIR-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; PAIR-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; PAIR-NEXT: str z9, [sp, #16, mul vl] // 16-byte Folded Spill ; PAIR-NEXT: str z8, [sp, #17, mul vl] // 16-byte Folded Spill ; PAIR-NEXT: .cfi_escape 0x0f, 0x0a, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x11, 0x90, 0x01, 0x1e, 0x22 // sp + 16 + 144 * VG @@ -279,18 +279,18 @@ define void @fhalf( %v) { ; PAIR-NEXT: ld1b { z14.b, z15.b }, pn8/z, [sp, #10, mul vl] // 32-byte Folded Reload ; PAIR-NEXT: ld1b { z12.b, z13.b }, pn8/z, [sp, #12, mul vl] // 32-byte Folded Reload ; PAIR-NEXT: ld1b { z10.b, z11.b }, pn8/z, [sp, #14, mul vl] // 32-byte Folded Reload -; PAIR-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; PAIR-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; PAIR-NEXT: addvl sp, sp, #18 ; PAIR-NEXT: ldp x29, x30, [sp], #16 // 16-byte Folded Reload ; PAIR-NEXT: ret @@ -305,8 +305,8 @@ define aarch64_sve_vector_pcs void @test_clobbers_z_p_regs() { ; NOPAIR: // %bb.0: ; NOPAIR-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; NOPAIR-NEXT: addvl sp, sp, #-4 -; NOPAIR-NEXT: str p5, [sp, #6, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p4, [sp, #7, mul vl] // 2-byte Folded Spill +; NOPAIR-NEXT: str p5, [sp, #6, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p4, [sp, #7, mul vl] // 2-byte Spill ; NOPAIR-NEXT: str z10, [sp, #1, mul vl] // 16-byte Folded Spill ; NOPAIR-NEXT: str z9, [sp, #2, mul vl] // 16-byte Folded Spill ; NOPAIR-NEXT: str z8, [sp, #3, mul vl] // 16-byte Folded Spill @@ -320,8 +320,8 @@ define aarch64_sve_vector_pcs void @test_clobbers_z_p_regs() { ; NOPAIR-NEXT: ldr z10, [sp, #1, mul vl] // 16-byte Folded Reload ; NOPAIR-NEXT: ldr z9, [sp, #2, mul vl] // 16-byte Folded Reload ; NOPAIR-NEXT: ldr z8, [sp, #3, mul vl] // 16-byte Folded Reload -; NOPAIR-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Folded Reload +; NOPAIR-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Reload ; NOPAIR-NEXT: addvl sp, sp, #4 ; NOPAIR-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; NOPAIR-NEXT: ret @@ -330,10 +330,10 @@ define aarch64_sve_vector_pcs void @test_clobbers_z_p_regs() { ; PAIR: // %bb.0: ; PAIR-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; PAIR-NEXT: addvl sp, sp, #-4 -; PAIR-NEXT: str p8, [sp, #5, mul vl] // 2-byte Folded Spill +; PAIR-NEXT: str p8, [sp, #5, mul vl] // 2-byte Spill ; PAIR-NEXT: ptrue pn8.b -; PAIR-NEXT: str p5, [sp, #6, mul vl] // 2-byte Folded Spill -; PAIR-NEXT: str p4, [sp, #7, mul vl] // 2-byte Folded Spill +; PAIR-NEXT: str p5, [sp, #6, mul vl] // 2-byte Spill +; PAIR-NEXT: str p4, [sp, #7, mul vl] // 2-byte Spill ; PAIR-NEXT: str z10, [sp, #1, mul vl] // 16-byte Folded Spill ; PAIR-NEXT: st1b { z8.b, z9.b }, pn8, [sp, #2, mul vl] // 32-byte Folded Spill ; PAIR-NEXT: .cfi_escape 0x0f, 0x09, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x11, 0x20, 0x1e, 0x22 // sp + 16 + 32 * VG @@ -346,9 +346,9 @@ define aarch64_sve_vector_pcs void @test_clobbers_z_p_regs() { ; PAIR-NEXT: ptrue pn8.b ; PAIR-NEXT: ldr z10, [sp, #1, mul vl] // 16-byte Folded Reload ; PAIR-NEXT: ld1b { z8.b, z9.b }, pn8/z, [sp, #2, mul vl] // 32-byte Folded Reload -; PAIR-NEXT: ldr p8, [sp, #5, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Folded Reload -; PAIR-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Folded Reload +; PAIR-NEXT: ldr p8, [sp, #5, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Reload +; PAIR-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Reload ; PAIR-NEXT: addvl sp, sp, #4 ; PAIR-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; PAIR-NEXT: ret @@ -363,8 +363,8 @@ define aarch64_sve_vector_pcs void @test_clobbers_z_p_regs2() { ; NOPAIR: // %bb.0: ; NOPAIR-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; NOPAIR-NEXT: addvl sp, sp, #-4 -; NOPAIR-NEXT: str p10, [sp, #6, mul vl] // 2-byte Folded Spill -; NOPAIR-NEXT: str p9, [sp, #7, mul vl] // 2-byte Folded Spill +; NOPAIR-NEXT: str p10, [sp, #6, mul vl] // 2-byte Spill +; NOPAIR-NEXT: str p9, [sp, #7, mul vl] // 2-byte Spill ; NOPAIR-NEXT: str z10, [sp, #1, mul vl] // 16-byte Folded Spill ; NOPAIR-NEXT: str z9, [sp, #2, mul vl] // 16-byte Folded Spill ; NOPAIR-NEXT: str z8, [sp, #3, mul vl] // 16-byte Folded Spill @@ -378,8 +378,8 @@ define aarch64_sve_vector_pcs void @test_clobbers_z_p_regs2() { ; NOPAIR-NEXT: ldr z10, [sp, #1, mul vl] // 16-byte Folded Reload ; NOPAIR-NEXT: ldr z9, [sp, #2, mul vl] // 16-byte Folded Reload ; NOPAIR-NEXT: ldr z8, [sp, #3, mul vl] // 16-byte Folded Reload -; NOPAIR-NEXT: ldr p10, [sp, #6, mul vl] // 2-byte Folded Reload -; NOPAIR-NEXT: ldr p9, [sp, #7, mul vl] // 2-byte Folded Reload +; NOPAIR-NEXT: ldr p10, [sp, #6, mul vl] // 2-byte Reload +; NOPAIR-NEXT: ldr p9, [sp, #7, mul vl] // 2-byte Reload ; NOPAIR-NEXT: addvl sp, sp, #4 ; NOPAIR-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; NOPAIR-NEXT: ret @@ -388,9 +388,9 @@ define aarch64_sve_vector_pcs void @test_clobbers_z_p_regs2() { ; PAIR: // %bb.0: ; PAIR-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; PAIR-NEXT: addvl sp, sp, #-4 -; PAIR-NEXT: str p9, [sp, #7, mul vl] // 2-byte Folded Spill +; PAIR-NEXT: str p9, [sp, #7, mul vl] // 2-byte Spill ; PAIR-NEXT: ptrue pn9.b -; PAIR-NEXT: str p10, [sp, #6, mul vl] // 2-byte Folded Spill +; PAIR-NEXT: str p10, [sp, #6, mul vl] // 2-byte Spill ; PAIR-NEXT: str z10, [sp, #1, mul vl] // 16-byte Folded Spill ; PAIR-NEXT: st1b { z8.b, z9.b }, pn9, [sp, #2, mul vl] // 32-byte Folded Spill ; PAIR-NEXT: .cfi_escape 0x0f, 0x09, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x11, 0x20, 0x1e, 0x22 // sp + 16 + 32 * VG @@ -402,9 +402,9 @@ define aarch64_sve_vector_pcs void @test_clobbers_z_p_regs2() { ; PAIR-NEXT: //NO_APP ; PAIR-NEXT: ptrue pn9.b ; PAIR-NEXT: ldr z10, [sp, #1, mul vl] // 16-byte Folded Reload -; PAIR-NEXT: ldr p10, [sp, #6, mul vl] // 2-byte Folded Reload +; PAIR-NEXT: ldr p10, [sp, #6, mul vl] // 2-byte Reload ; PAIR-NEXT: ld1b { z8.b, z9.b }, pn9/z, [sp, #2, mul vl] // 32-byte Folded Reload -; PAIR-NEXT: ldr p9, [sp, #7, mul vl] // 2-byte Folded Reload +; PAIR-NEXT: ldr p9, [sp, #7, mul vl] // 2-byte Reload ; PAIR-NEXT: addvl sp, sp, #4 ; PAIR-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; PAIR-NEXT: ret @@ -437,7 +437,7 @@ define aarch64_sve_vector_pcs void @test_clobbers_z_regs() { ; PAIR: // %bb.0: ; PAIR-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; PAIR-NEXT: addvl sp, sp, #-3 -; PAIR-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; PAIR-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; PAIR-NEXT: str z9, [sp, #1, mul vl] // 16-byte Folded Spill ; PAIR-NEXT: str z8, [sp, #2, mul vl] // 16-byte Folded Spill ; PAIR-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x48, 0x1e, 0x22 // sp + 16 + 24 * VG @@ -446,7 +446,7 @@ define aarch64_sve_vector_pcs void @test_clobbers_z_regs() { ; PAIR-NEXT: .cfi_escape 0x10, 0x49, 0x09, 0x92, 0x2e, 0x00, 0x11, 0x70, 0x1e, 0x22, 0x40, 0x1c // $d9 @ cfa - 16 * VG - 16 ; PAIR-NEXT: //APP ; PAIR-NEXT: //NO_APP -; PAIR-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; PAIR-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; PAIR-NEXT: ldr z9, [sp, #1, mul vl] // 16-byte Folded Reload ; PAIR-NEXT: ldr z8, [sp, #2, mul vl] // 16-byte Folded Reload ; PAIR-NEXT: addvl sp, sp, #3 @@ -535,12 +535,12 @@ define aarch64_sve_vector_pcs void @test_clobbers_p_reg_negative() { ; NOPAIR: // %bb.0: ; NOPAIR-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; NOPAIR-NEXT: addvl sp, sp, #-1 -; NOPAIR-NEXT: str p10, [sp, #7, mul vl] // 2-byte Folded Spill +; NOPAIR-NEXT: str p10, [sp, #7, mul vl] // 2-byte Spill ; NOPAIR-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG ; NOPAIR-NEXT: .cfi_offset w29, -16 ; NOPAIR-NEXT: //APP ; NOPAIR-NEXT: //NO_APP -; NOPAIR-NEXT: ldr p10, [sp, #7, mul vl] // 2-byte Folded Reload +; NOPAIR-NEXT: ldr p10, [sp, #7, mul vl] // 2-byte Reload ; NOPAIR-NEXT: addvl sp, sp, #1 ; NOPAIR-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; NOPAIR-NEXT: ret @@ -549,12 +549,12 @@ define aarch64_sve_vector_pcs void @test_clobbers_p_reg_negative() { ; PAIR: // %bb.0: ; PAIR-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; PAIR-NEXT: addvl sp, sp, #-1 -; PAIR-NEXT: str p10, [sp, #7, mul vl] // 2-byte Folded Spill +; PAIR-NEXT: str p10, [sp, #7, mul vl] // 2-byte Spill ; PAIR-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG ; PAIR-NEXT: .cfi_offset w29, -16 ; PAIR-NEXT: //APP ; PAIR-NEXT: //NO_APP -; PAIR-NEXT: ldr p10, [sp, #7, mul vl] // 2-byte Folded Reload +; PAIR-NEXT: ldr p10, [sp, #7, mul vl] // 2-byte Reload ; PAIR-NEXT: addvl sp, sp, #1 ; PAIR-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; PAIR-NEXT: ret diff --git a/llvm/test/CodeGen/AArch64/sve-calling-convention-mixed.ll b/llvm/test/CodeGen/AArch64/sve-calling-convention-mixed.ll index 90660515e4255..6118446a69ac7 100644 --- a/llvm/test/CodeGen/AArch64/sve-calling-convention-mixed.ll +++ b/llvm/test/CodeGen/AArch64/sve-calling-convention-mixed.ll @@ -494,18 +494,18 @@ define @sve_caller_non_sve_callee_high_range( @sve_caller_non_sve_callee_high_range( @sve_ret_caller_non_sve_callee_high_range() { ; CHECK: // %bb.0: ; CHECK-NEXT: stp x29, x30, [sp, #-16]! // 16-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-18 -; CHECK-NEXT: str p15, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p14, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p13, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p15, [sp, #4, mul vl] // 2-byte Spill +; CHECK-NEXT: str p14, [sp, #5, mul vl] // 2-byte Spill +; CHECK-NEXT: str p13, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill +; CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill +; CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; CHECK-NEXT: str z23, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z22, [sp, #3, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z21, [sp, #4, mul vl] // 16-byte Folded Spill @@ -660,18 +660,18 @@ define @sve_ret_caller_non_sve_callee_high_range() { ; CHECK-NEXT: ldr z10, [sp, #15, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z9, [sp, #16, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z8, [sp, #17, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #18 ; CHECK-NEXT: ldp x29, x30, [sp], #16 // 16-byte Folded Reload ; CHECK-NEXT: ret diff --git a/llvm/test/CodeGen/AArch64/sve-extract-scalable-vector.ll b/llvm/test/CodeGen/AArch64/sve-extract-scalable-vector.ll index 4aaa25e5e66c5..f6251ff66299e 100644 --- a/llvm/test/CodeGen/AArch64/sve-extract-scalable-vector.ll +++ b/llvm/test/CodeGen/AArch64/sve-extract-scalable-vector.ll @@ -65,9 +65,9 @@ define @extract_nxv14i1_nxv28i1_14( %in) uw ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG ; CHECK-NEXT: punpkhi p2.h, p1.b -; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: punpklo p1.h, p1.b -; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Spill ; CHECK-NEXT: punpklo p2.h, p2.b ; CHECK-NEXT: punpkhi p3.h, p1.b ; CHECK-NEXT: punpkhi p4.h, p2.b @@ -83,10 +83,10 @@ define @extract_nxv14i1_nxv28i1_14( %in) uw ; CHECK-NEXT: punpklo p1.h, p1.b ; CHECK-NEXT: punpkhi p0.h, p0.b ; CHECK-NEXT: uzp1 p3.s, p5.s, p3.s -; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Reload ; CHECK-NEXT: uzp1 p0.s, p0.s, p1.s ; CHECK-NEXT: uzp1 p1.h, p2.h, p4.h -; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: uzp1 p0.h, p0.h, p3.h ; CHECK-NEXT: uzp1 p0.b, p0.b, p1.b ; CHECK-NEXT: addvl sp, sp, #1 diff --git a/llvm/test/CodeGen/AArch64/sve-fixed-ld2-alloca.ll b/llvm/test/CodeGen/AArch64/sve-fixed-ld2-alloca.ll index ac4c387b70583..6d3612c909032 100644 --- a/llvm/test/CodeGen/AArch64/sve-fixed-ld2-alloca.ll +++ b/llvm/test/CodeGen/AArch64/sve-fixed-ld2-alloca.ll @@ -12,12 +12,12 @@ define void @st1d_fixed(ptr %ptr) #0 { ; CHECK-NEXT: stp x20, x19, [sp, #144] // 16-byte Folded Spill ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: mov x0, sp -; CHECK-NEXT: str x30, [sp, #128] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #128] // 8-byte Spill ; CHECK-NEXT: mov x20, sp ; CHECK-NEXT: bl def ; CHECK-NEXT: ptrue p0.d ; CHECK-NEXT: ld2d { z0.d, z1.d }, p0/z, [x20] -; CHECK-NEXT: ldr x30, [sp, #128] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #128] // 8-byte Reload ; CHECK-NEXT: str z0, [x19] ; CHECK-NEXT: ldp x20, x19, [sp, #144] // 16-byte Folded Reload ; CHECK-NEXT: add sp, sp, #160 diff --git a/llvm/test/CodeGen/AArch64/sve-fixed-length-fp128.ll b/llvm/test/CodeGen/AArch64/sve-fixed-length-fp128.ll index 61e04682fa0bf..61376c36b29b5 100644 --- a/llvm/test/CodeGen/AArch64/sve-fixed-length-fp128.ll +++ b/llvm/test/CodeGen/AArch64/sve-fixed-length-fp128.ll @@ -21,23 +21,23 @@ define void @fcvt_v4f64_v4f128(ptr %a, ptr %b) vscale_range(2,0) #0 { ; CHECK-NEXT: // kill: def $d0 killed $d0 killed $z0 ; CHECK-NEXT: bl __extenddftf2 ; CHECK-NEXT: add x8, sp, #48 -; CHECK-NEXT: str q0, [sp, #32] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #32] // 16-byte Spill ; CHECK-NEXT: ldr z1, [x8] // 16-byte Folded Reload ; CHECK-NEXT: mov d1, v1.d[1] ; CHECK-NEXT: fmov d0, d1 ; CHECK-NEXT: bl __extenddftf2 ; CHECK-NEXT: add x8, sp, #48 -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-NEXT: ldr z0, [x8, #1, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: // kill: def $d0 killed $d0 killed $z0 ; CHECK-NEXT: bl __extenddftf2 ; CHECK-NEXT: add x8, sp, #48 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: ldr z1, [x8, #1, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: mov d1, v1.d[1] ; CHECK-NEXT: fmov d0, d1 ; CHECK-NEXT: bl __extenddftf2 -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: stp q1, q0, [x19] ; CHECK-NEXT: ldp q1, q0, [sp, #16] // 32-byte Folded Reload ; CHECK-NEXT: stp q0, q1, [x19, #32] @@ -68,24 +68,24 @@ define void @fcvt_v4f128_v4f64(ptr %a, ptr %b) vscale_range(2,0) #0 { ; CHECK-NEXT: ldp q1, q0, [x0] ; CHECK-NEXT: stp q0, q1, [sp, #32] // 32-byte Folded Spill ; CHECK-NEXT: ldp q1, q0, [x0, #32] -; CHECK-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-NEXT: bl __trunctfdf2 ; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: bl __trunctfdf2 -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $d0 killed $d0 def $z0 ; CHECK-NEXT: add x8, sp, #128 ; CHECK-NEXT: mov v0.d[1], v1.d[0] ; CHECK-NEXT: str z0, [x8, #1, mul vl] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-NEXT: bl __trunctfdf2 ; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-NEXT: bl __trunctfdf2 -; CHECK-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-NEXT: // kill: def $d0 killed $d0 def $z0 ; CHECK-NEXT: add x8, sp, #128 ; CHECK-NEXT: ptrue p0.d, vl2 @@ -93,24 +93,24 @@ define void @fcvt_v4f128_v4f64(ptr %a, ptr %b) vscale_range(2,0) #0 { ; CHECK-NEXT: ldr z1, [x8, #1, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: splice z0.d, p0, z0.d, z1.d ; CHECK-NEXT: str z0, [x8, #1, mul vl] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #64] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #64] // 16-byte Reload ; CHECK-NEXT: bl __trunctfdf2 ; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-NEXT: str q0, [sp, #64] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #80] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #64] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #80] // 16-byte Reload ; CHECK-NEXT: bl __trunctfdf2 -; CHECK-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-NEXT: // kill: def $d0 killed $d0 def $z0 ; CHECK-NEXT: add x8, sp, #128 ; CHECK-NEXT: mov v0.d[1], v1.d[0] ; CHECK-NEXT: str z0, [x8] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #96] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #96] // 16-byte Reload ; CHECK-NEXT: bl __trunctfdf2 ; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-NEXT: str q0, [sp, #96] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #112] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #96] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #112] // 16-byte Reload ; CHECK-NEXT: bl __trunctfdf2 -; CHECK-NEXT: ldr q1, [sp, #96] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #96] // 16-byte Reload ; CHECK-NEXT: // kill: def $d0 killed $d0 def $z0 ; CHECK-NEXT: add x8, sp, #128 ; CHECK-NEXT: ptrue p0.d, vl2 diff --git a/llvm/test/CodeGen/AArch64/sve-fixed-length-frame-offests-crash.ll b/llvm/test/CodeGen/AArch64/sve-fixed-length-frame-offests-crash.ll index c3fca4c18ee70..e0c5041a0cd3a 100644 --- a/llvm/test/CodeGen/AArch64/sve-fixed-length-frame-offests-crash.ll +++ b/llvm/test/CodeGen/AArch64/sve-fixed-length-frame-offests-crash.ll @@ -13,7 +13,7 @@ define dso_local void @func1(ptr %v1, ptr %v2, ptr %v3, ptr %v4, ptr %v5, ptr %v ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #368 ; CHECK-NEXT: stp x29, x30, [sp, #336] // 16-byte Folded Spill -; CHECK-NEXT: str x28, [sp, #352] // 8-byte Folded Spill +; CHECK-NEXT: str x28, [sp, #352] // 8-byte Spill ; CHECK-NEXT: add x29, sp, #336 ; CHECK-NEXT: .cfi_def_cfa w29, 32 ; CHECK-NEXT: .cfi_offset w28, -16 @@ -53,7 +53,7 @@ define dso_local void @func1(ptr %v1, ptr %v2, ptr %v3, ptr %v4, ptr %v5, ptr %v ; CHECK-NEXT: str z0, [sp] ; CHECK-NEXT: bl func2 ; CHECK-NEXT: ldp x29, x30, [sp, #336] // 16-byte Folded Reload -; CHECK-NEXT: ldr x28, [sp, #352] // 8-byte Folded Reload +; CHECK-NEXT: ldr x28, [sp, #352] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #368 ; CHECK-NEXT: ret ptr %v9, ptr %v10, ptr %v11, ptr %v12, ptr %v13, ptr %v14, ptr %v15, ptr %v16, diff --git a/llvm/test/CodeGen/AArch64/sve-fixed-vector-llrint.ll b/llvm/test/CodeGen/AArch64/sve-fixed-vector-llrint.ll index f1d5813433489..a8b2c30bec562 100644 --- a/llvm/test/CodeGen/AArch64/sve-fixed-vector-llrint.ll +++ b/llvm/test/CodeGen/AArch64/sve-fixed-vector-llrint.ll @@ -870,17 +870,17 @@ define <2 x i64> @llrint_v2i64_v2fp128(<2 x fp128> %x) nounwind { ; CHECK-LABEL: llrint_v2i64_v2fp128: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: mov v0.16b, v1.16b -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #16] // 16-byte Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: mov v0.d[1], v1.d[0] ; CHECK-NEXT: add sp, sp, #48 ; CHECK-NEXT: ret @@ -895,27 +895,27 @@ define <4 x i64> @llrint_v4i64_v4fp128(<4 x fp128> %x) nounwind { ; CHECK-NEXT: stp x29, x30, [sp, #-16]! // 16-byte Folded Spill ; CHECK-NEXT: sub sp, sp, #64 ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-NEXT: mov v0.16b, v3.16b ; CHECK-NEXT: stp q2, q1, [sp, #16] // 32-byte Folded Spill ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: add x8, sp, #64 ; CHECK-NEXT: mov v0.d[1], v1.d[0] ; CHECK-NEXT: str z0, [x8] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-NEXT: add x8, sp, #64 ; CHECK-NEXT: ptrue p0.d, vl2 ; CHECK-NEXT: mov v0.d[1], v1.d[0] @@ -940,54 +940,54 @@ define <8 x i64> @llrint_v8i64_v8fp128(<8 x fp128> %x) nounwind { ; CHECK-NEXT: stp x29, x30, [sp, #-16]! // 16-byte Folded Spill ; CHECK-NEXT: sub sp, sp, #128 ; CHECK-NEXT: addvl sp, sp, #-2 -; CHECK-NEXT: str q0, [sp, #112] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #112] // 16-byte Spill ; CHECK-NEXT: mov v0.16b, v7.16b ; CHECK-NEXT: stp q6, q5, [sp, #16] // 32-byte Folded Spill ; CHECK-NEXT: stp q4, q3, [sp, #48] // 32-byte Folded Spill ; CHECK-NEXT: stp q2, q1, [sp, #80] // 32-byte Folded Spill ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: add x8, sp, #128 ; CHECK-NEXT: mov v0.d[1], v1.d[0] ; CHECK-NEXT: str z0, [x8, #1, mul vl] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-NEXT: add x8, sp, #128 ; CHECK-NEXT: ptrue p0.d, vl2 ; CHECK-NEXT: mov v0.d[1], v1.d[0] ; CHECK-NEXT: ldr z1, [x8, #1, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: splice z0.d, p0, z0.d, z1.d ; CHECK-NEXT: str z0, [x8, #1, mul vl] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #64] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #64] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: str q0, [sp, #64] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #80] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #64] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #80] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-NEXT: add x8, sp, #128 ; CHECK-NEXT: mov v0.d[1], v1.d[0] ; CHECK-NEXT: str z0, [x8] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #96] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #96] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: str q0, [sp, #96] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #112] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #96] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #112] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: ldr q1, [sp, #96] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #96] // 16-byte Reload ; CHECK-NEXT: add x8, sp, #128 ; CHECK-NEXT: ptrue p0.d, vl2 ; CHECK-NEXT: ldr z2, [x8, #1, mul vl] // 16-byte Folded Reload @@ -1018,127 +1018,127 @@ define <16 x i64> @llrint_v16fp128(<16 x fp128> %x) nounwind { ; CHECK-NEXT: sub sp, sp, #256 ; CHECK-NEXT: addvl sp, sp, #-4 ; CHECK-NEXT: addvl x8, sp, #4 -; CHECK-NEXT: str q1, [sp, #240] // 16-byte Folded Spill +; CHECK-NEXT: str q1, [sp, #240] // 16-byte Spill ; CHECK-NEXT: ldr q1, [x8, #272] ; CHECK-NEXT: addvl x8, sp, #4 -; CHECK-NEXT: str q0, [sp, #224] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #224] // 16-byte Spill ; CHECK-NEXT: stp q7, q6, [sp, #128] // 32-byte Folded Spill -; CHECK-NEXT: str q1, [sp, #112] // 16-byte Folded Spill +; CHECK-NEXT: str q1, [sp, #112] // 16-byte Spill ; CHECK-NEXT: ldr q1, [x8, #288] ; CHECK-NEXT: addvl x8, sp, #4 ; CHECK-NEXT: stp q5, q4, [sp, #160] // 32-byte Folded Spill -; CHECK-NEXT: str q1, [sp, #96] // 16-byte Folded Spill +; CHECK-NEXT: str q1, [sp, #96] // 16-byte Spill ; CHECK-NEXT: ldr q1, [x8, #304] ; CHECK-NEXT: addvl x8, sp, #4 ; CHECK-NEXT: stp q3, q2, [sp, #192] // 32-byte Folded Spill -; CHECK-NEXT: str q1, [sp, #80] // 16-byte Folded Spill +; CHECK-NEXT: str q1, [sp, #80] // 16-byte Spill ; CHECK-NEXT: ldr q1, [x8, #320] ; CHECK-NEXT: addvl x8, sp, #4 -; CHECK-NEXT: str q1, [sp, #64] // 16-byte Folded Spill +; CHECK-NEXT: str q1, [sp, #64] // 16-byte Spill ; CHECK-NEXT: ldr q1, [x8, #336] ; CHECK-NEXT: addvl x8, sp, #4 -; CHECK-NEXT: str q1, [sp, #48] // 16-byte Folded Spill +; CHECK-NEXT: str q1, [sp, #48] // 16-byte Spill ; CHECK-NEXT: ldr q1, [x8, #352] ; CHECK-NEXT: addvl x8, sp, #4 -; CHECK-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-NEXT: ldr q1, [x8, #368] ; CHECK-NEXT: addvl x8, sp, #4 -; CHECK-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-NEXT: ldr q1, [x8, #384] ; CHECK-NEXT: mov v0.16b, v1.16b ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: add x8, sp, #256 ; CHECK-NEXT: mov v0.d[1], v1.d[0] ; CHECK-NEXT: str z0, [x8, #3, mul vl] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-NEXT: add x8, sp, #256 ; CHECK-NEXT: ptrue p0.d, vl2 ; CHECK-NEXT: mov v0.d[1], v1.d[0] ; CHECK-NEXT: ldr z1, [x8, #3, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: splice z0.d, p0, z0.d, z1.d ; CHECK-NEXT: str z0, [x8, #3, mul vl] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #64] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #64] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: str q0, [sp, #64] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #80] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #64] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #80] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-NEXT: add x8, sp, #256 ; CHECK-NEXT: mov v0.d[1], v1.d[0] ; CHECK-NEXT: str z0, [x8, #2, mul vl] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #96] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #96] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: str q0, [sp, #96] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #112] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #96] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #112] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: ldr q1, [sp, #96] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #96] // 16-byte Reload ; CHECK-NEXT: add x8, sp, #256 ; CHECK-NEXT: ptrue p0.d, vl2 ; CHECK-NEXT: mov v0.d[1], v1.d[0] ; CHECK-NEXT: ldr z1, [x8, #2, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: splice z0.d, p0, z0.d, z1.d ; CHECK-NEXT: str z0, [x8, #2, mul vl] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #128] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #128] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: str q0, [sp, #128] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #144] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #128] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #144] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: ldr q1, [sp, #128] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #128] // 16-byte Reload ; CHECK-NEXT: add x8, sp, #256 ; CHECK-NEXT: mov v0.d[1], v1.d[0] ; CHECK-NEXT: str z0, [x8, #1, mul vl] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #160] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #160] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: str q0, [sp, #160] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #176] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #160] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #176] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: ldr q1, [sp, #160] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #160] // 16-byte Reload ; CHECK-NEXT: add x8, sp, #256 ; CHECK-NEXT: ptrue p0.d, vl2 ; CHECK-NEXT: mov v0.d[1], v1.d[0] ; CHECK-NEXT: ldr z1, [x8, #1, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: splice z0.d, p0, z0.d, z1.d ; CHECK-NEXT: str z0, [x8, #1, mul vl] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #192] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #192] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: str q0, [sp, #192] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #208] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #192] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #208] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: ldr q1, [sp, #192] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #192] // 16-byte Reload ; CHECK-NEXT: add x8, sp, #256 ; CHECK-NEXT: mov v0.d[1], v1.d[0] ; CHECK-NEXT: str z0, [x8] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #240] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #240] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: str q0, [sp, #240] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #224] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #240] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #224] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: ldr q1, [sp, #240] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #240] // 16-byte Reload ; CHECK-NEXT: add x8, sp, #256 ; CHECK-NEXT: ptrue p0.d, vl2 ; CHECK-NEXT: ldr z2, [x8, #1, mul vl] // 16-byte Folded Reload diff --git a/llvm/test/CodeGen/AArch64/sve-fixed-vector-lrint.ll b/llvm/test/CodeGen/AArch64/sve-fixed-vector-lrint.ll index 62a3fa7f29bb5..465ba38b17874 100644 --- a/llvm/test/CodeGen/AArch64/sve-fixed-vector-lrint.ll +++ b/llvm/test/CodeGen/AArch64/sve-fixed-vector-lrint.ll @@ -1609,15 +1609,15 @@ define <2 x iXLen> @lrint_v2fp128(<2 x fp128> %x) nounwind { ; CHECK-i32-LABEL: lrint_v2fp128: ; CHECK-i32: // %bb.0: ; CHECK-i32-NEXT: sub sp, sp, #48 -; CHECK-i32-NEXT: str x30, [sp, #32] // 8-byte Folded Spill -; CHECK-i32-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-i32-NEXT: str x30, [sp, #32] // 8-byte Spill +; CHECK-i32-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-i32-NEXT: bl lrintl ; CHECK-i32-NEXT: fmov s0, w0 -; CHECK-i32-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-i32-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-i32-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-i32-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-i32-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-i32-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-i32-NEXT: mov v0.s[1], w0 ; CHECK-i32-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-i32-NEXT: add sp, sp, #48 @@ -1626,17 +1626,17 @@ define <2 x iXLen> @lrint_v2fp128(<2 x fp128> %x) nounwind { ; CHECK-i64-LABEL: lrint_v2fp128: ; CHECK-i64: // %bb.0: ; CHECK-i64-NEXT: sub sp, sp, #48 -; CHECK-i64-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-i64-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-i64-NEXT: mov v0.16b, v1.16b -; CHECK-i64-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-i64-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload -; CHECK-i64-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-i64-NEXT: ldr q1, [sp, #16] // 16-byte Reload +; CHECK-i64-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-i64-NEXT: mov v0.d[1], v1.d[0] ; CHECK-i64-NEXT: add sp, sp, #48 ; CHECK-i64-NEXT: ret @@ -1649,26 +1649,26 @@ define <4 x iXLen> @lrint_v4fp128(<4 x fp128> %x) nounwind { ; CHECK-i32-LABEL: lrint_v4fp128: ; CHECK-i32: // %bb.0: ; CHECK-i32-NEXT: sub sp, sp, #80 -; CHECK-i32-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-i32-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-i32-NEXT: stp q2, q3, [sp, #16] // 32-byte Folded Spill -; CHECK-i32-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-i32-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-i32-NEXT: bl lrintl ; CHECK-i32-NEXT: fmov s0, w0 -; CHECK-i32-NEXT: str q0, [sp, #48] // 16-byte Folded Spill -; CHECK-i32-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-i32-NEXT: str q0, [sp, #48] // 16-byte Spill +; CHECK-i32-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-i32-NEXT: mov v0.s[1], w0 -; CHECK-i32-NEXT: str q0, [sp, #48] // 16-byte Folded Spill -; CHECK-i32-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-i32-NEXT: str q0, [sp, #48] // 16-byte Spill +; CHECK-i32-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-i32-NEXT: mov v0.s[2], w0 -; CHECK-i32-NEXT: str q0, [sp, #48] // 16-byte Folded Spill -; CHECK-i32-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-i32-NEXT: str q0, [sp, #48] // 16-byte Spill +; CHECK-i32-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload -; CHECK-i32-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #48] // 16-byte Reload +; CHECK-i32-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-i32-NEXT: mov v0.s[3], w0 ; CHECK-i32-NEXT: add sp, sp, #80 ; CHECK-i32-NEXT: ret @@ -1678,27 +1678,27 @@ define <4 x iXLen> @lrint_v4fp128(<4 x fp128> %x) nounwind { ; CHECK-i64-NEXT: stp x29, x30, [sp, #-16]! // 16-byte Folded Spill ; CHECK-i64-NEXT: sub sp, sp, #64 ; CHECK-i64-NEXT: addvl sp, sp, #-1 -; CHECK-i64-NEXT: str q0, [sp, #48] // 16-byte Folded Spill +; CHECK-i64-NEXT: str q0, [sp, #48] // 16-byte Spill ; CHECK-i64-NEXT: mov v0.16b, v3.16b ; CHECK-i64-NEXT: stp q2, q1, [sp, #16] // 32-byte Folded Spill ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-i64-NEXT: add x8, sp, #64 ; CHECK-i64-NEXT: mov v0.d[1], v1.d[0] ; CHECK-i64-NEXT: str z0, [x8] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-i64-NEXT: add x8, sp, #64 ; CHECK-i64-NEXT: ptrue p0.d, vl2 ; CHECK-i64-NEXT: mov v0.d[1], v1.d[0] @@ -1721,7 +1721,7 @@ define <8 x iXLen> @lrint_v8fp128(<8 x fp128> %x) nounwind { ; CHECK-i32-LABEL: lrint_v8fp128: ; CHECK-i32: // %bb.0: ; CHECK-i32-NEXT: sub sp, sp, #176 -; CHECK-i32-NEXT: str q0, [sp, #96] // 16-byte Folded Spill +; CHECK-i32-NEXT: str q0, [sp, #96] // 16-byte Spill ; CHECK-i32-NEXT: mov v0.16b, v7.16b ; CHECK-i32-NEXT: stp x30, x25, [sp, #112] // 16-byte Folded Spill ; CHECK-i32-NEXT: stp x24, x23, [sp, #128] // 16-byte Folded Spill @@ -1731,25 +1731,25 @@ define <8 x iXLen> @lrint_v8fp128(<8 x fp128> %x) nounwind { ; CHECK-i32-NEXT: stp q4, q3, [sp, #32] // 32-byte Folded Spill ; CHECK-i32-NEXT: stp q2, q1, [sp, #64] // 32-byte Folded Spill ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-i32-NEXT: mov w19, w0 ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-i32-NEXT: mov w20, w0 ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-i32-NEXT: mov w21, w0 ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-i32-NEXT: mov w22, w0 ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #64] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #64] // 16-byte Reload ; CHECK-i32-NEXT: mov w23, w0 ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #80] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #80] // 16-byte Reload ; CHECK-i32-NEXT: mov w24, w0 ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #96] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #96] // 16-byte Reload ; CHECK-i32-NEXT: mov w25, w0 ; CHECK-i32-NEXT: bl lrintl ; CHECK-i32-NEXT: fmov s1, w22 @@ -1772,54 +1772,54 @@ define <8 x iXLen> @lrint_v8fp128(<8 x fp128> %x) nounwind { ; CHECK-i64-NEXT: stp x29, x30, [sp, #-16]! // 16-byte Folded Spill ; CHECK-i64-NEXT: sub sp, sp, #128 ; CHECK-i64-NEXT: addvl sp, sp, #-2 -; CHECK-i64-NEXT: str q0, [sp, #112] // 16-byte Folded Spill +; CHECK-i64-NEXT: str q0, [sp, #112] // 16-byte Spill ; CHECK-i64-NEXT: mov v0.16b, v7.16b ; CHECK-i64-NEXT: stp q6, q5, [sp, #16] // 32-byte Folded Spill ; CHECK-i64-NEXT: stp q4, q3, [sp, #48] // 32-byte Folded Spill ; CHECK-i64-NEXT: stp q2, q1, [sp, #80] // 32-byte Folded Spill ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-i64-NEXT: add x8, sp, #128 ; CHECK-i64-NEXT: mov v0.d[1], v1.d[0] ; CHECK-i64-NEXT: str z0, [x8, #1, mul vl] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-i64-NEXT: add x8, sp, #128 ; CHECK-i64-NEXT: ptrue p0.d, vl2 ; CHECK-i64-NEXT: mov v0.d[1], v1.d[0] ; CHECK-i64-NEXT: ldr z1, [x8, #1, mul vl] // 16-byte Folded Reload ; CHECK-i64-NEXT: splice z0.d, p0, z0.d, z1.d ; CHECK-i64-NEXT: str z0, [x8, #1, mul vl] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #64] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q0, [sp, #64] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: str q0, [sp, #64] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #80] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #64] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp, #80] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-i64-NEXT: add x8, sp, #128 ; CHECK-i64-NEXT: mov v0.d[1], v1.d[0] ; CHECK-i64-NEXT: str z0, [x8] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #96] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q0, [sp, #96] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: str q0, [sp, #96] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #112] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #96] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp, #112] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: ldr q1, [sp, #96] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q1, [sp, #96] // 16-byte Reload ; CHECK-i64-NEXT: add x8, sp, #128 ; CHECK-i64-NEXT: ptrue p0.d, vl2 ; CHECK-i64-NEXT: ldr z2, [x8, #1, mul vl] // 16-byte Folded Reload @@ -1851,96 +1851,96 @@ define <16 x iXLen> @lrint_v16fp128(<16 x fp128> %x) nounwind { ; CHECK-i32-NEXT: stp q2, q1, [sp, #176] // 32-byte Folded Spill ; CHECK-i32-NEXT: ldr q1, [sp, #368] ; CHECK-i32-NEXT: stp x29, x30, [sp, #272] // 16-byte Folded Spill -; CHECK-i32-NEXT: str q1, [sp, #64] // 16-byte Folded Spill +; CHECK-i32-NEXT: str q1, [sp, #64] // 16-byte Spill ; CHECK-i32-NEXT: ldr q1, [sp, #384] ; CHECK-i32-NEXT: stp x28, x27, [sp, #288] // 16-byte Folded Spill -; CHECK-i32-NEXT: str q1, [sp, #48] // 16-byte Folded Spill +; CHECK-i32-NEXT: str q1, [sp, #48] // 16-byte Spill ; CHECK-i32-NEXT: ldr q1, [sp, #400] ; CHECK-i32-NEXT: stp x26, x25, [sp, #304] // 16-byte Folded Spill -; CHECK-i32-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-i32-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-i32-NEXT: ldr q1, [sp, #416] ; CHECK-i32-NEXT: stp x24, x23, [sp, #320] // 16-byte Folded Spill -; CHECK-i32-NEXT: str q1, [sp, #208] // 16-byte Folded Spill +; CHECK-i32-NEXT: str q1, [sp, #208] // 16-byte Spill ; CHECK-i32-NEXT: ldr q1, [sp, #432] ; CHECK-i32-NEXT: stp x22, x21, [sp, #336] // 16-byte Folded Spill -; CHECK-i32-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-i32-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-i32-NEXT: ldr q1, [sp, #448] ; CHECK-i32-NEXT: stp x20, x19, [sp, #352] // 16-byte Folded Spill -; CHECK-i32-NEXT: str q1, [sp, #224] // 16-byte Folded Spill +; CHECK-i32-NEXT: str q1, [sp, #224] // 16-byte Spill ; CHECK-i32-NEXT: ldr q1, [sp, #464] ; CHECK-i32-NEXT: stp q7, q6, [sp, #80] // 32-byte Folded Spill -; CHECK-i32-NEXT: str q1, [sp, #240] // 16-byte Folded Spill +; CHECK-i32-NEXT: str q1, [sp, #240] // 16-byte Spill ; CHECK-i32-NEXT: ldr q1, [sp, #480] ; CHECK-i32-NEXT: stp q5, q4, [sp, #112] // 32-byte Folded Spill ; CHECK-i32-NEXT: mov v0.16b, v1.16b ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #240] // 16-byte Folded Reload -; CHECK-i32-NEXT: str w0, [sp, #268] // 4-byte Folded Spill +; CHECK-i32-NEXT: ldr q0, [sp, #240] // 16-byte Reload +; CHECK-i32-NEXT: str w0, [sp, #268] // 4-byte Spill ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #224] // 16-byte Folded Reload -; CHECK-i32-NEXT: str w0, [sp, #240] // 4-byte Folded Spill +; CHECK-i32-NEXT: ldr q0, [sp, #224] // 16-byte Reload +; CHECK-i32-NEXT: str w0, [sp, #240] // 4-byte Spill ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload -; CHECK-i32-NEXT: str w0, [sp, #224] // 4-byte Folded Spill +; CHECK-i32-NEXT: ldr q0, [sp, #16] // 16-byte Reload +; CHECK-i32-NEXT: str w0, [sp, #224] // 4-byte Spill ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #208] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #208] // 16-byte Reload ; CHECK-i32-NEXT: mov w23, w0 ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload -; CHECK-i32-NEXT: str w0, [sp, #208] // 4-byte Folded Spill +; CHECK-i32-NEXT: ldr q0, [sp, #32] // 16-byte Reload +; CHECK-i32-NEXT: str w0, [sp, #208] // 4-byte Spill ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-i32-NEXT: mov w24, w0 ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #64] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #64] // 16-byte Reload ; CHECK-i32-NEXT: mov w25, w0 ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #80] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #80] // 16-byte Reload ; CHECK-i32-NEXT: mov w27, w0 ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #96] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #96] // 16-byte Reload ; CHECK-i32-NEXT: mov w26, w0 ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #112] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #112] // 16-byte Reload ; CHECK-i32-NEXT: mov w28, w0 ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #128] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #128] // 16-byte Reload ; CHECK-i32-NEXT: mov w29, w0 ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #144] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #144] // 16-byte Reload ; CHECK-i32-NEXT: mov w19, w0 ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #176] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #176] // 16-byte Reload ; CHECK-i32-NEXT: mov w20, w0 ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #192] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #192] // 16-byte Reload ; CHECK-i32-NEXT: mov w21, w0 ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #160] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #160] // 16-byte Reload ; CHECK-i32-NEXT: mov w22, w0 ; CHECK-i32-NEXT: bl lrintl ; CHECK-i32-NEXT: fmov s1, w19 ; CHECK-i32-NEXT: fmov s0, w0 -; CHECK-i32-NEXT: ldr w8, [sp, #224] // 4-byte Folded Reload +; CHECK-i32-NEXT: ldr w8, [sp, #224] // 4-byte Reload ; CHECK-i32-NEXT: fmov s2, w27 ; CHECK-i32-NEXT: fmov s3, w23 ; CHECK-i32-NEXT: mov v0.s[1], w22 ; CHECK-i32-NEXT: mov v1.s[1], w29 ; CHECK-i32-NEXT: mov v2.s[1], w25 ; CHECK-i32-NEXT: mov v3.s[1], w8 -; CHECK-i32-NEXT: ldr w8, [sp, #240] // 4-byte Folded Reload +; CHECK-i32-NEXT: ldr w8, [sp, #240] // 4-byte Reload ; CHECK-i32-NEXT: ldp x29, x30, [sp, #272] // 16-byte Folded Reload ; CHECK-i32-NEXT: mov v0.s[2], w21 ; CHECK-i32-NEXT: mov v1.s[2], w28 ; CHECK-i32-NEXT: mov v2.s[2], w24 ; CHECK-i32-NEXT: mov v3.s[2], w8 -; CHECK-i32-NEXT: ldr w8, [sp, #208] // 4-byte Folded Reload +; CHECK-i32-NEXT: ldr w8, [sp, #208] // 4-byte Reload ; CHECK-i32-NEXT: ldp x22, x21, [sp, #336] // 16-byte Folded Reload ; CHECK-i32-NEXT: ldp x24, x23, [sp, #320] // 16-byte Folded Reload ; CHECK-i32-NEXT: mov v0.s[3], w20 ; CHECK-i32-NEXT: mov v1.s[3], w26 ; CHECK-i32-NEXT: mov v2.s[3], w8 -; CHECK-i32-NEXT: ldr w8, [sp, #268] // 4-byte Folded Reload +; CHECK-i32-NEXT: ldr w8, [sp, #268] // 4-byte Reload ; CHECK-i32-NEXT: ldp x20, x19, [sp, #352] // 16-byte Folded Reload ; CHECK-i32-NEXT: ldp x26, x25, [sp, #304] // 16-byte Folded Reload ; CHECK-i32-NEXT: mov v3.s[3], w8 @@ -1954,127 +1954,127 @@ define <16 x iXLen> @lrint_v16fp128(<16 x fp128> %x) nounwind { ; CHECK-i64-NEXT: sub sp, sp, #256 ; CHECK-i64-NEXT: addvl sp, sp, #-4 ; CHECK-i64-NEXT: addvl x8, sp, #4 -; CHECK-i64-NEXT: str q1, [sp, #240] // 16-byte Folded Spill +; CHECK-i64-NEXT: str q1, [sp, #240] // 16-byte Spill ; CHECK-i64-NEXT: ldr q1, [x8, #272] ; CHECK-i64-NEXT: addvl x8, sp, #4 -; CHECK-i64-NEXT: str q0, [sp, #224] // 16-byte Folded Spill +; CHECK-i64-NEXT: str q0, [sp, #224] // 16-byte Spill ; CHECK-i64-NEXT: stp q7, q6, [sp, #128] // 32-byte Folded Spill -; CHECK-i64-NEXT: str q1, [sp, #112] // 16-byte Folded Spill +; CHECK-i64-NEXT: str q1, [sp, #112] // 16-byte Spill ; CHECK-i64-NEXT: ldr q1, [x8, #288] ; CHECK-i64-NEXT: addvl x8, sp, #4 ; CHECK-i64-NEXT: stp q5, q4, [sp, #160] // 32-byte Folded Spill -; CHECK-i64-NEXT: str q1, [sp, #96] // 16-byte Folded Spill +; CHECK-i64-NEXT: str q1, [sp, #96] // 16-byte Spill ; CHECK-i64-NEXT: ldr q1, [x8, #304] ; CHECK-i64-NEXT: addvl x8, sp, #4 ; CHECK-i64-NEXT: stp q3, q2, [sp, #192] // 32-byte Folded Spill -; CHECK-i64-NEXT: str q1, [sp, #80] // 16-byte Folded Spill +; CHECK-i64-NEXT: str q1, [sp, #80] // 16-byte Spill ; CHECK-i64-NEXT: ldr q1, [x8, #320] ; CHECK-i64-NEXT: addvl x8, sp, #4 -; CHECK-i64-NEXT: str q1, [sp, #64] // 16-byte Folded Spill +; CHECK-i64-NEXT: str q1, [sp, #64] // 16-byte Spill ; CHECK-i64-NEXT: ldr q1, [x8, #336] ; CHECK-i64-NEXT: addvl x8, sp, #4 -; CHECK-i64-NEXT: str q1, [sp, #48] // 16-byte Folded Spill +; CHECK-i64-NEXT: str q1, [sp, #48] // 16-byte Spill ; CHECK-i64-NEXT: ldr q1, [x8, #352] ; CHECK-i64-NEXT: addvl x8, sp, #4 -; CHECK-i64-NEXT: str q1, [sp, #32] // 16-byte Folded Spill +; CHECK-i64-NEXT: str q1, [sp, #32] // 16-byte Spill ; CHECK-i64-NEXT: ldr q1, [x8, #368] ; CHECK-i64-NEXT: addvl x8, sp, #4 -; CHECK-i64-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-i64-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-i64-NEXT: ldr q1, [x8, #384] ; CHECK-i64-NEXT: mov v0.16b, v1.16b ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-i64-NEXT: add x8, sp, #256 ; CHECK-i64-NEXT: mov v0.d[1], v1.d[0] ; CHECK-i64-NEXT: str z0, [x8, #3, mul vl] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-i64-NEXT: add x8, sp, #256 ; CHECK-i64-NEXT: ptrue p0.d, vl2 ; CHECK-i64-NEXT: mov v0.d[1], v1.d[0] ; CHECK-i64-NEXT: ldr z1, [x8, #3, mul vl] // 16-byte Folded Reload ; CHECK-i64-NEXT: splice z0.d, p0, z0.d, z1.d ; CHECK-i64-NEXT: str z0, [x8, #3, mul vl] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #64] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q0, [sp, #64] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: str q0, [sp, #64] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #80] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #64] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp, #80] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-i64-NEXT: add x8, sp, #256 ; CHECK-i64-NEXT: mov v0.d[1], v1.d[0] ; CHECK-i64-NEXT: str z0, [x8, #2, mul vl] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #96] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q0, [sp, #96] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: str q0, [sp, #96] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #112] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #96] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp, #112] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: ldr q1, [sp, #96] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q1, [sp, #96] // 16-byte Reload ; CHECK-i64-NEXT: add x8, sp, #256 ; CHECK-i64-NEXT: ptrue p0.d, vl2 ; CHECK-i64-NEXT: mov v0.d[1], v1.d[0] ; CHECK-i64-NEXT: ldr z1, [x8, #2, mul vl] // 16-byte Folded Reload ; CHECK-i64-NEXT: splice z0.d, p0, z0.d, z1.d ; CHECK-i64-NEXT: str z0, [x8, #2, mul vl] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #128] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q0, [sp, #128] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: str q0, [sp, #128] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #144] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #128] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp, #144] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: ldr q1, [sp, #128] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q1, [sp, #128] // 16-byte Reload ; CHECK-i64-NEXT: add x8, sp, #256 ; CHECK-i64-NEXT: mov v0.d[1], v1.d[0] ; CHECK-i64-NEXT: str z0, [x8, #1, mul vl] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #160] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q0, [sp, #160] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: str q0, [sp, #160] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #176] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #160] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp, #176] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: ldr q1, [sp, #160] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q1, [sp, #160] // 16-byte Reload ; CHECK-i64-NEXT: add x8, sp, #256 ; CHECK-i64-NEXT: ptrue p0.d, vl2 ; CHECK-i64-NEXT: mov v0.d[1], v1.d[0] ; CHECK-i64-NEXT: ldr z1, [x8, #1, mul vl] // 16-byte Folded Reload ; CHECK-i64-NEXT: splice z0.d, p0, z0.d, z1.d ; CHECK-i64-NEXT: str z0, [x8, #1, mul vl] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #192] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q0, [sp, #192] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: str q0, [sp, #192] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #208] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #192] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp, #208] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: ldr q1, [sp, #192] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q1, [sp, #192] // 16-byte Reload ; CHECK-i64-NEXT: add x8, sp, #256 ; CHECK-i64-NEXT: mov v0.d[1], v1.d[0] ; CHECK-i64-NEXT: str z0, [x8] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #240] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q0, [sp, #240] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: str q0, [sp, #240] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #224] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #240] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp, #224] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: ldr q1, [sp, #240] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q1, [sp, #240] // 16-byte Reload ; CHECK-i64-NEXT: add x8, sp, #256 ; CHECK-i64-NEXT: ptrue p0.d, vl2 ; CHECK-i64-NEXT: ldr z2, [x8, #1, mul vl] // 16-byte Folded Reload diff --git a/llvm/test/CodeGen/AArch64/sve-fptosi-sat.ll b/llvm/test/CodeGen/AArch64/sve-fptosi-sat.ll index 71108f00a0054..4ae7ac7b292e9 100644 --- a/llvm/test/CodeGen/AArch64/sve-fptosi-sat.ll +++ b/llvm/test/CodeGen/AArch64/sve-fptosi-sat.ll @@ -251,9 +251,9 @@ define @test_signed_v8f64_v8i32( %f) { ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: mov x8, #-4476578029606273024 // =0xc1e0000000000000 @@ -283,16 +283,16 @@ define @test_signed_v8f64_v8i32( %f) { ; CHECK-NEXT: fcvtzs z4.d, p2/m, z2.d ; CHECK-NEXT: fcmuo p2.d, p0/z, z0.d, z0.d ; CHECK-NEXT: sel z0.d, p4, z25.d, z6.d -; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z1.d, p3/m, #0 // =0x0 ; CHECK-NEXT: fcmuo p6.d, p0/z, z3.d, z3.d ; CHECK-NEXT: fcmuo p0.d, p0/z, z2.d, z2.d ; CHECK-NEXT: sel z2.d, p1, z25.d, z7.d ; CHECK-NEXT: sel z3.d, p5, z25.d, z4.d -; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z0.d, p2/m, #0 // =0x0 ; CHECK-NEXT: mov z2.d, p6/m, #0 // =0x0 -; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z3.d, p0/m, #0 // =0x0 ; CHECK-NEXT: uzp1 z0.s, z0.s, z1.s ; CHECK-NEXT: uzp1 z1.s, z3.s, z2.s @@ -338,9 +338,9 @@ define @test_signed_v8f64_v8i16( %f) { ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: mov x8, #-4548635623644200960 // =0xc0e0000000000000 @@ -373,14 +373,14 @@ define @test_signed_v8f64_v8i16( %f) { ; CHECK-NEXT: mov z4.d, p3/m, #0 // =0x0 ; CHECK-NEXT: fcmuo p0.d, p0/z, z0.d, z0.d ; CHECK-NEXT: sel z0.d, p4, z25.d, z7.d -; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: sel z1.d, p1, z25.d, z24.d ; CHECK-NEXT: sel z2.d, p5, z25.d, z3.d -; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z0.d, p2/m, #0 // =0x0 ; CHECK-NEXT: mov z1.d, p6/m, #0 // =0x0 ; CHECK-NEXT: mov z2.d, p0/m, #0 // =0x0 -; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Reload ; CHECK-NEXT: uzp1 z0.s, z0.s, z4.s ; CHECK-NEXT: uzp1 z1.s, z2.s, z1.s ; CHECK-NEXT: uzp1 z0.h, z1.h, z0.h diff --git a/llvm/test/CodeGen/AArch64/sve-fptoui-sat.ll b/llvm/test/CodeGen/AArch64/sve-fptoui-sat.ll index 123f6c55c20ab..fe398921cf1b5 100644 --- a/llvm/test/CodeGen/AArch64/sve-fptoui-sat.ll +++ b/llvm/test/CodeGen/AArch64/sve-fptoui-sat.ll @@ -207,7 +207,7 @@ define @test_signed_v8f64_v8i32( %f) { ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: ptrue p0.d @@ -227,7 +227,7 @@ define @test_signed_v8f64_v8i32( %f) { ; CHECK-NEXT: fcvtzu z6.d, p3/m, z3.d ; CHECK-NEXT: fcmgt p1.d, p0/z, z1.d, z7.d ; CHECK-NEXT: fcvtzu z24.d, p4/m, z2.d -; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: fcmgt p2.d, p0/z, z0.d, z7.d ; CHECK-NEXT: mov z0.d, #0xffffffff ; CHECK-NEXT: fcmgt p3.d, p0/z, z3.d, z7.d @@ -274,7 +274,7 @@ define @test_signed_v8f64_v8i16( %f) { ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: ptrue p0.d @@ -294,7 +294,7 @@ define @test_signed_v8f64_v8i16( %f) { ; CHECK-NEXT: fcvtzu z6.d, p3/m, z1.d ; CHECK-NEXT: fcmgt p1.d, p0/z, z3.d, z7.d ; CHECK-NEXT: fcvtzu z24.d, p4/m, z0.d -; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: fcmgt p2.d, p0/z, z2.d, z7.d ; CHECK-NEXT: mov z2.d, #65535 // =0xffff ; CHECK-NEXT: fcmgt p3.d, p0/z, z1.d, z7.d diff --git a/llvm/test/CodeGen/AArch64/sve-insert-vector.ll b/llvm/test/CodeGen/AArch64/sve-insert-vector.ll index 73c783d4735f8..00a08e505b943 100644 --- a/llvm/test/CodeGen/AArch64/sve-insert-vector.ll +++ b/llvm/test/CodeGen/AArch64/sve-insert-vector.ll @@ -895,7 +895,7 @@ define @insert_nxv1i1_nxv16i1_0( %vec, @insert_nxv1i1_nxv16i1_0( %vec, @insert_nxv1i1_nxv16i1_1( %vec, @insert_nxv1i1_nxv16i1_1( %vec, @insert_nxv1i1_nxv16i1_2( %vec, @insert_nxv1i1_nxv16i1_2( %vec, @insert_nxv1i1_nxv16i1_3( %vec, @insert_nxv1i1_nxv16i1_3( %vec, @insert_nxv1i1_nxv16i1_4( %vec, @insert_nxv1i1_nxv16i1_4( %vec, @insert_nxv1i1_nxv16i1_5( %vec, @insert_nxv1i1_nxv16i1_5( %vec, @insert_nxv1i1_nxv16i1_6( %vec, @insert_nxv1i1_nxv16i1_6( %vec, @insert_nxv1i1_nxv16i1_7( %vec, @insert_nxv1i1_nxv16i1_7( %vec, @insert_nxv1i1_nxv16i1_8( %vec, @insert_nxv1i1_nxv16i1_8( %vec, @insert_nxv1i1_nxv16i1_9( %vec, @insert_nxv1i1_nxv16i1_9( %vec, @insert_nxv1i1_nxv16i1_10( %vec, @insert_nxv1i1_nxv16i1_10( %vec, @insert_nxv1i1_nxv16i1_11( %vec, @insert_nxv1i1_nxv16i1_11( %vec, @insert_nxv1i1_nxv16i1_12( %vec, @insert_nxv1i1_nxv16i1_12( %vec, @insert_nxv1i1_nxv16i1_13( %vec, @insert_nxv1i1_nxv16i1_13( %vec, @insert_nxv1i1_nxv16i1_14( %vec, @insert_nxv1i1_nxv16i1_14( %vec, @insert_nxv1i1_nxv16i1_15( %vec, @insert_nxv1i1_nxv16i1_15( %vec, @llrint_v8i64_v8f16( %x) { ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: uunpklo z1.s, z0.h @@ -129,11 +129,11 @@ define @llrint_v8i64_v8f16( %x) { ; CHECK-NEXT: sel z1.d, p4, z25.d, z6.d ; CHECK-NEXT: sel z2.d, p5, z25.d, z7.d ; CHECK-NEXT: fcmuo p2.h, p0/z, z3.h, z3.h -; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Reload ; CHECK-NEXT: fcmuo p0.h, p0/z, z24.h, z24.h ; CHECK-NEXT: sel z3.d, p6, z25.d, z4.d -; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z0.d, p3/m, #0 // =0x0 ; CHECK-NEXT: mov z1.d, p1/m, #0 // =0x0 ; CHECK-NEXT: mov z2.d, p2/m, #0 // =0x0 @@ -151,13 +151,13 @@ define @llrint_v16i64_v16f16( %x) { ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p10, [sp, #1, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p9, [sp, #2, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p8, [sp, #3, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p7, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p10, [sp, #1, mul vl] // 2-byte Spill +; CHECK-NEXT: str p9, [sp, #2, mul vl] // 2-byte Spill +; CHECK-NEXT: str p8, [sp, #3, mul vl] // 2-byte Spill +; CHECK-NEXT: str p7, [sp, #4, mul vl] // 2-byte Spill +; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: uunpklo z2.s, z0.h @@ -228,9 +228,9 @@ define @llrint_v16i64_v16f16( %x) { ; CHECK-NEXT: mov z0.d, p1/m, #0 // =0x0 ; CHECK-NEXT: mov z1.d, p2/m, #0 // =0x0 ; CHECK-NEXT: mov z3.d, p10/m, #0 // =0x0 -; CHECK-NEXT: ldr p10, [sp, #1, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p10, [sp, #1, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z2.d, p7/m, #0 // =0x0 -; CHECK-NEXT: ldr p7, [sp, #4, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p7, [sp, #4, mul vl] // 2-byte Reload ; CHECK-NEXT: fcmgt p9.h, p0/z, z26.h, z29.h ; CHECK-NEXT: fcvtzs z25.d, p4/m, z30.h ; CHECK-NEXT: fcmgt p5.h, p0/z, z7.h, z29.h @@ -239,18 +239,18 @@ define @llrint_v16i64_v16f16( %x) { ; CHECK-NEXT: sel z4.d, p9, z24.d, z6.d ; CHECK-NEXT: fcmuo p8.h, p0/z, z7.h, z7.h ; CHECK-NEXT: sel z5.d, p5, z24.d, z31.d -; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Reload ; CHECK-NEXT: sel z6.d, p6, z24.d, z28.d -; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Reload ; CHECK-NEXT: fcmuo p9.h, p0/z, z27.h, z27.h ; CHECK-NEXT: sel z7.d, p4, z24.d, z25.d -; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: fcmuo p3.h, p0/z, z26.h, z26.h ; CHECK-NEXT: mov z5.d, p8/m, #0 // =0x0 -; CHECK-NEXT: ldr p8, [sp, #3, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #3, mul vl] // 2-byte Reload ; CHECK-NEXT: fcmuo p0.h, p0/z, z30.h, z30.h ; CHECK-NEXT: mov z6.d, p9/m, #0 // =0x0 -; CHECK-NEXT: ldr p9, [sp, #2, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p9, [sp, #2, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z4.d, p3/m, #0 // =0x0 ; CHECK-NEXT: mov z7.d, p0/m, #0 // =0x0 ; CHECK-NEXT: addvl sp, sp, #1 @@ -266,15 +266,15 @@ define @llrint_v32i64_v32f16( %x) { ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-18 -; CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill +; CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill +; CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; CHECK-NEXT: str z23, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z22, [sp, #3, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z21, [sp, #4, mul vl] // 16-byte Folded Spill @@ -501,15 +501,15 @@ define @llrint_v32i64_v32f16( %x) { ; CHECK-NEXT: ldr z10, [sp, #15, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z9, [sp, #16, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z8, [sp, #17, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #18 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -602,9 +602,9 @@ define @llrint_v8i64_v8f32( %x) { ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: uunpklo z2.d, z0.s @@ -643,14 +643,14 @@ define @llrint_v8i64_v8f32( %x) { ; CHECK-NEXT: fcmuo p6.s, p0/z, z3.s, z3.s ; CHECK-NEXT: fcmuo p2.s, p0/z, z2.s, z2.s ; CHECK-NEXT: sel z2.d, p5, z4.d, z24.d -; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Reload ; CHECK-NEXT: fcmuo p0.s, p0/z, z1.s, z1.s ; CHECK-NEXT: sel z1.d, p3, z4.d, z7.d ; CHECK-NEXT: sel z3.d, p1, z4.d, z26.d ; CHECK-NEXT: mov z2.d, p6/m, #0 // =0x0 -; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z1.d, p4/m, #0 // =0x0 -; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z0.d, p2/m, #0 // =0x0 ; CHECK-NEXT: mov z3.d, p0/m, #0 // =0x0 ; CHECK-NEXT: addvl sp, sp, #1 @@ -666,13 +666,13 @@ define @llrint_v16i64_v16f32( %x) { ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-3 -; CHECK-NEXT: str p10, [sp, #1, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p9, [sp, #2, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p8, [sp, #3, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p7, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p10, [sp, #1, mul vl] // 2-byte Spill +; CHECK-NEXT: str p9, [sp, #2, mul vl] // 2-byte Spill +; CHECK-NEXT: str p8, [sp, #3, mul vl] // 2-byte Spill +; CHECK-NEXT: str p7, [sp, #4, mul vl] // 2-byte Spill +; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: str z9, [sp, #1, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z8, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x48, 0x1e, 0x22 // sp + 16 + 24 * VG @@ -744,7 +744,7 @@ define @llrint_v16i64_v16f32( %x) { ; CHECK-NEXT: fcmgt p9.s, p0/z, z24.s, z29.s ; CHECK-NEXT: fcmgt p5.s, p0/z, z30.s, z29.s ; CHECK-NEXT: mov z3.d, p10/m, #0 // =0x0 -; CHECK-NEXT: ldr p10, [sp, #1, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p10, [sp, #1, mul vl] // 2-byte Reload ; CHECK-NEXT: fcmgt p6.s, p0/z, z25.s, z29.s ; CHECK-NEXT: fcvtzs z7.d, p4/m, z5.s ; CHECK-NEXT: fcmgt p4.s, p0/z, z5.s, z29.s @@ -752,22 +752,22 @@ define @llrint_v16i64_v16f32( %x) { ; CHECK-NEXT: fcmuo p7.s, p0/z, z6.s, z6.s ; CHECK-NEXT: sel z6.d, p6, z9.d, z8.d ; CHECK-NEXT: ldr z8, [sp, #2, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Reload ; CHECK-NEXT: fcmuo p8.s, p0/z, z30.s, z30.s ; CHECK-NEXT: fcmuo p9.s, p0/z, z25.s, z25.s ; CHECK-NEXT: mov z7.d, p4/m, z9.d -; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z2.d, p7/m, #0 // =0x0 -; CHECK-NEXT: ldr p7, [sp, #4, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p7, [sp, #4, mul vl] // 2-byte Reload ; CHECK-NEXT: fcmuo p3.s, p0/z, z24.s, z24.s ; CHECK-NEXT: fcmuo p0.s, p0/z, z5.s, z5.s ; CHECK-NEXT: sel z5.d, p5, z9.d, z31.d ; CHECK-NEXT: ldr z9, [sp, #1, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z6.d, p9/m, #0 // =0x0 -; CHECK-NEXT: ldr p9, [sp, #2, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p9, [sp, #2, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z5.d, p8/m, #0 // =0x0 -; CHECK-NEXT: ldr p8, [sp, #3, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #3, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z4.d, p3/m, #0 // =0x0 ; CHECK-NEXT: mov z7.d, p0/m, #0 // =0x0 ; CHECK-NEXT: addvl sp, sp, #3 @@ -783,15 +783,15 @@ define @llrint_v32i64_v32f32( %x) { ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-18 -; CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill +; CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill +; CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; CHECK-NEXT: str z23, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z22, [sp, #3, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z21, [sp, #4, mul vl] // 16-byte Folded Spill @@ -1016,15 +1016,15 @@ define @llrint_v32i64_v32f32( %x) { ; CHECK-NEXT: ldr z10, [sp, #15, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z9, [sp, #16, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z8, [sp, #17, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #18 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -1115,9 +1115,9 @@ define @llrint_v8i64_v8f64( %x) { ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: ptrue p0.d @@ -1153,13 +1153,13 @@ define @llrint_v8i64_v8f64( %x) { ; CHECK-NEXT: sel z1.d, p3, z25.d, z6.d ; CHECK-NEXT: fcmuo p6.d, p0/z, z2.d, z2.d ; CHECK-NEXT: sel z2.d, p4, z25.d, z7.d -; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: fcmuo p0.d, p0/z, z3.d, z3.d ; CHECK-NEXT: sel z3.d, p1, z25.d, z5.d ; CHECK-NEXT: mov z1.d, p5/m, #0 // =0x0 -; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z2.d, p6/m, #0 // =0x0 -; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z3.d, p0/m, #0 // =0x0 ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload @@ -1174,13 +1174,13 @@ define @llrint_v16f64( %x) { ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-3 -; CHECK-NEXT: str p10, [sp, #1, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p9, [sp, #2, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p8, [sp, #3, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p7, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p10, [sp, #1, mul vl] // 2-byte Spill +; CHECK-NEXT: str p9, [sp, #2, mul vl] // 2-byte Spill +; CHECK-NEXT: str p8, [sp, #3, mul vl] // 2-byte Spill +; CHECK-NEXT: str p7, [sp, #4, mul vl] // 2-byte Spill +; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: str z9, [sp, #1, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z8, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x48, 0x1e, 0x22 // sp + 16 + 24 * VG @@ -1249,23 +1249,23 @@ define @llrint_v16f64( %x) { ; CHECK-NEXT: sel z4.d, p9, z8.d, z29.d ; CHECK-NEXT: fcmuo p8.d, p0/z, z5.d, z5.d ; CHECK-NEXT: sel z5.d, p5, z8.d, z31.d -; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Reload ; CHECK-NEXT: fcmuo p9.d, p0/z, z6.d, z6.d ; CHECK-NEXT: sel z6.d, p6, z8.d, z24.d -; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z3.d, p10/m, #0 // =0x0 -; CHECK-NEXT: ldr p10, [sp, #1, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p10, [sp, #1, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z4.d, p4/m, #0 // =0x0 -; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z5.d, p8/m, #0 // =0x0 -; CHECK-NEXT: ldr p8, [sp, #3, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #3, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z6.d, p9/m, #0 // =0x0 -; CHECK-NEXT: ldr p9, [sp, #2, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p9, [sp, #2, mul vl] // 2-byte Reload ; CHECK-NEXT: fcmuo p0.d, p0/z, z7.d, z7.d ; CHECK-NEXT: sel z7.d, p7, z8.d, z9.d ; CHECK-NEXT: ldr z9, [sp, #1, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z8, [sp, #2, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p7, [sp, #4, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p7, [sp, #4, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z7.d, p0/m, #0 // =0x0 ; CHECK-NEXT: addvl sp, sp, #3 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload @@ -1280,15 +1280,15 @@ define @llrint_v32f64( %x) { ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-18 -; CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill +; CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill +; CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; CHECK-NEXT: str z23, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z22, [sp, #3, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z21, [sp, #4, mul vl] // 16-byte Folded Spill @@ -1509,15 +1509,15 @@ define @llrint_v32f64( %x) { ; CHECK-NEXT: ldr z10, [sp, #15, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z9, [sp, #16, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z8, [sp, #17, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #18 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret diff --git a/llvm/test/CodeGen/AArch64/sve-lrint.ll b/llvm/test/CodeGen/AArch64/sve-lrint.ll index c072005c793d7..f517e7fe8dc16 100644 --- a/llvm/test/CodeGen/AArch64/sve-lrint.ll +++ b/llvm/test/CodeGen/AArch64/sve-lrint.ll @@ -86,9 +86,9 @@ define @lrint_v8f16( %x) { ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: uunpklo z1.s, z0.h @@ -130,11 +130,11 @@ define @lrint_v8f16( %x) { ; CHECK-NEXT: sel z1.d, p4, z25.d, z6.d ; CHECK-NEXT: sel z2.d, p5, z25.d, z7.d ; CHECK-NEXT: fcmuo p2.h, p0/z, z3.h, z3.h -; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Reload ; CHECK-NEXT: fcmuo p0.h, p0/z, z24.h, z24.h ; CHECK-NEXT: sel z3.d, p6, z25.d, z4.d -; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z0.d, p3/m, #0 // =0x0 ; CHECK-NEXT: mov z1.d, p1/m, #0 // =0x0 ; CHECK-NEXT: mov z2.d, p2/m, #0 // =0x0 @@ -152,13 +152,13 @@ define @lrint_v16f16( %x) { ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p10, [sp, #1, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p9, [sp, #2, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p8, [sp, #3, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p7, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p10, [sp, #1, mul vl] // 2-byte Spill +; CHECK-NEXT: str p9, [sp, #2, mul vl] // 2-byte Spill +; CHECK-NEXT: str p8, [sp, #3, mul vl] // 2-byte Spill +; CHECK-NEXT: str p7, [sp, #4, mul vl] // 2-byte Spill +; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: uunpklo z2.s, z0.h @@ -229,9 +229,9 @@ define @lrint_v16f16( %x) { ; CHECK-NEXT: mov z0.d, p1/m, #0 // =0x0 ; CHECK-NEXT: mov z1.d, p2/m, #0 // =0x0 ; CHECK-NEXT: mov z3.d, p10/m, #0 // =0x0 -; CHECK-NEXT: ldr p10, [sp, #1, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p10, [sp, #1, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z2.d, p7/m, #0 // =0x0 -; CHECK-NEXT: ldr p7, [sp, #4, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p7, [sp, #4, mul vl] // 2-byte Reload ; CHECK-NEXT: fcmgt p9.h, p0/z, z26.h, z29.h ; CHECK-NEXT: fcvtzs z25.d, p4/m, z30.h ; CHECK-NEXT: fcmgt p5.h, p0/z, z7.h, z29.h @@ -240,18 +240,18 @@ define @lrint_v16f16( %x) { ; CHECK-NEXT: sel z4.d, p9, z24.d, z6.d ; CHECK-NEXT: fcmuo p8.h, p0/z, z7.h, z7.h ; CHECK-NEXT: sel z5.d, p5, z24.d, z31.d -; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Reload ; CHECK-NEXT: sel z6.d, p6, z24.d, z28.d -; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Reload ; CHECK-NEXT: fcmuo p9.h, p0/z, z27.h, z27.h ; CHECK-NEXT: sel z7.d, p4, z24.d, z25.d -; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: fcmuo p3.h, p0/z, z26.h, z26.h ; CHECK-NEXT: mov z5.d, p8/m, #0 // =0x0 -; CHECK-NEXT: ldr p8, [sp, #3, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #3, mul vl] // 2-byte Reload ; CHECK-NEXT: fcmuo p0.h, p0/z, z30.h, z30.h ; CHECK-NEXT: mov z6.d, p9/m, #0 // =0x0 -; CHECK-NEXT: ldr p9, [sp, #2, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p9, [sp, #2, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z4.d, p3/m, #0 // =0x0 ; CHECK-NEXT: mov z7.d, p0/m, #0 // =0x0 ; CHECK-NEXT: addvl sp, sp, #1 @@ -267,15 +267,15 @@ define @lrint_v32f16( %x) { ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-18 -; CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill +; CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill +; CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; CHECK-NEXT: str z23, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z22, [sp, #3, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z21, [sp, #4, mul vl] // 16-byte Folded Spill @@ -502,15 +502,15 @@ define @lrint_v32f16( %x) { ; CHECK-NEXT: ldr z10, [sp, #15, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z9, [sp, #16, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z8, [sp, #17, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #18 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -603,9 +603,9 @@ define @lrint_v8f32( %x) { ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: uunpklo z2.d, z0.s @@ -644,14 +644,14 @@ define @lrint_v8f32( %x) { ; CHECK-NEXT: fcmuo p6.s, p0/z, z3.s, z3.s ; CHECK-NEXT: fcmuo p2.s, p0/z, z2.s, z2.s ; CHECK-NEXT: sel z2.d, p5, z4.d, z24.d -; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Reload ; CHECK-NEXT: fcmuo p0.s, p0/z, z1.s, z1.s ; CHECK-NEXT: sel z1.d, p3, z4.d, z7.d ; CHECK-NEXT: sel z3.d, p1, z4.d, z26.d ; CHECK-NEXT: mov z2.d, p6/m, #0 // =0x0 -; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z1.d, p4/m, #0 // =0x0 -; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z0.d, p2/m, #0 // =0x0 ; CHECK-NEXT: mov z3.d, p0/m, #0 // =0x0 ; CHECK-NEXT: addvl sp, sp, #1 @@ -667,13 +667,13 @@ define @lrint_v16f32( %x) { ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-3 -; CHECK-NEXT: str p10, [sp, #1, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p9, [sp, #2, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p8, [sp, #3, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p7, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p10, [sp, #1, mul vl] // 2-byte Spill +; CHECK-NEXT: str p9, [sp, #2, mul vl] // 2-byte Spill +; CHECK-NEXT: str p8, [sp, #3, mul vl] // 2-byte Spill +; CHECK-NEXT: str p7, [sp, #4, mul vl] // 2-byte Spill +; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: str z9, [sp, #1, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z8, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x48, 0x1e, 0x22 // sp + 16 + 24 * VG @@ -745,7 +745,7 @@ define @lrint_v16f32( %x) { ; CHECK-NEXT: fcmgt p9.s, p0/z, z24.s, z29.s ; CHECK-NEXT: fcmgt p5.s, p0/z, z30.s, z29.s ; CHECK-NEXT: mov z3.d, p10/m, #0 // =0x0 -; CHECK-NEXT: ldr p10, [sp, #1, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p10, [sp, #1, mul vl] // 2-byte Reload ; CHECK-NEXT: fcmgt p6.s, p0/z, z25.s, z29.s ; CHECK-NEXT: fcvtzs z7.d, p4/m, z5.s ; CHECK-NEXT: fcmgt p4.s, p0/z, z5.s, z29.s @@ -753,22 +753,22 @@ define @lrint_v16f32( %x) { ; CHECK-NEXT: fcmuo p7.s, p0/z, z6.s, z6.s ; CHECK-NEXT: sel z6.d, p6, z9.d, z8.d ; CHECK-NEXT: ldr z8, [sp, #2, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Reload ; CHECK-NEXT: fcmuo p8.s, p0/z, z30.s, z30.s ; CHECK-NEXT: fcmuo p9.s, p0/z, z25.s, z25.s ; CHECK-NEXT: mov z7.d, p4/m, z9.d -; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z2.d, p7/m, #0 // =0x0 -; CHECK-NEXT: ldr p7, [sp, #4, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p7, [sp, #4, mul vl] // 2-byte Reload ; CHECK-NEXT: fcmuo p3.s, p0/z, z24.s, z24.s ; CHECK-NEXT: fcmuo p0.s, p0/z, z5.s, z5.s ; CHECK-NEXT: sel z5.d, p5, z9.d, z31.d ; CHECK-NEXT: ldr z9, [sp, #1, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z6.d, p9/m, #0 // =0x0 -; CHECK-NEXT: ldr p9, [sp, #2, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p9, [sp, #2, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z5.d, p8/m, #0 // =0x0 -; CHECK-NEXT: ldr p8, [sp, #3, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #3, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z4.d, p3/m, #0 // =0x0 ; CHECK-NEXT: mov z7.d, p0/m, #0 // =0x0 ; CHECK-NEXT: addvl sp, sp, #3 @@ -784,15 +784,15 @@ define @lrint_v32f32( %x) { ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-18 -; CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill +; CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill +; CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; CHECK-NEXT: str z23, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z22, [sp, #3, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z21, [sp, #4, mul vl] // 16-byte Folded Spill @@ -1017,15 +1017,15 @@ define @lrint_v32f32( %x) { ; CHECK-NEXT: ldr z10, [sp, #15, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z9, [sp, #16, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z8, [sp, #17, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #18 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -1116,9 +1116,9 @@ define @lrint_v8f64( %x) { ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: ptrue p0.d @@ -1154,13 +1154,13 @@ define @lrint_v8f64( %x) { ; CHECK-NEXT: sel z1.d, p3, z25.d, z6.d ; CHECK-NEXT: fcmuo p6.d, p0/z, z2.d, z2.d ; CHECK-NEXT: sel z2.d, p4, z25.d, z7.d -; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: fcmuo p0.d, p0/z, z3.d, z3.d ; CHECK-NEXT: sel z3.d, p1, z25.d, z5.d ; CHECK-NEXT: mov z1.d, p5/m, #0 // =0x0 -; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z2.d, p6/m, #0 // =0x0 -; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z3.d, p0/m, #0 // =0x0 ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload @@ -1175,13 +1175,13 @@ define @lrint_v16f64( %x) { ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-3 -; CHECK-NEXT: str p10, [sp, #1, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p9, [sp, #2, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p8, [sp, #3, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p7, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p10, [sp, #1, mul vl] // 2-byte Spill +; CHECK-NEXT: str p9, [sp, #2, mul vl] // 2-byte Spill +; CHECK-NEXT: str p8, [sp, #3, mul vl] // 2-byte Spill +; CHECK-NEXT: str p7, [sp, #4, mul vl] // 2-byte Spill +; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: str z9, [sp, #1, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z8, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x48, 0x1e, 0x22 // sp + 16 + 24 * VG @@ -1250,23 +1250,23 @@ define @lrint_v16f64( %x) { ; CHECK-NEXT: sel z4.d, p9, z8.d, z29.d ; CHECK-NEXT: fcmuo p8.d, p0/z, z5.d, z5.d ; CHECK-NEXT: sel z5.d, p5, z8.d, z31.d -; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Reload ; CHECK-NEXT: fcmuo p9.d, p0/z, z6.d, z6.d ; CHECK-NEXT: sel z6.d, p6, z8.d, z24.d -; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z3.d, p10/m, #0 // =0x0 -; CHECK-NEXT: ldr p10, [sp, #1, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p10, [sp, #1, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z4.d, p4/m, #0 // =0x0 -; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z5.d, p8/m, #0 // =0x0 -; CHECK-NEXT: ldr p8, [sp, #3, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #3, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z6.d, p9/m, #0 // =0x0 -; CHECK-NEXT: ldr p9, [sp, #2, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p9, [sp, #2, mul vl] // 2-byte Reload ; CHECK-NEXT: fcmuo p0.d, p0/z, z7.d, z7.d ; CHECK-NEXT: sel z7.d, p7, z8.d, z9.d ; CHECK-NEXT: ldr z9, [sp, #1, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z8, [sp, #2, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p7, [sp, #4, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p7, [sp, #4, mul vl] // 2-byte Reload ; CHECK-NEXT: mov z7.d, p0/m, #0 // =0x0 ; CHECK-NEXT: addvl sp, sp, #3 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload @@ -1281,15 +1281,15 @@ define @lrint_v32f64( %x) { ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-18 -; CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill +; CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill +; CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; CHECK-NEXT: str z23, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z22, [sp, #3, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z21, [sp, #4, mul vl] // 16-byte Folded Spill @@ -1510,15 +1510,15 @@ define @lrint_v32f64( %x) { ; CHECK-NEXT: ldr z10, [sp, #15, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z9, [sp, #16, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z8, [sp, #17, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #18 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret diff --git a/llvm/test/CodeGen/AArch64/sve-pred-arith.ll b/llvm/test/CodeGen/AArch64/sve-pred-arith.ll index 24df76b1ab25f..a10b37d734b7d 100644 --- a/llvm/test/CodeGen/AArch64/sve-pred-arith.ll +++ b/llvm/test/CodeGen/AArch64/sve-pred-arith.ll @@ -54,25 +54,25 @@ define aarch64_sve_vector_pcs @add_nxv64i1( ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG -; CHECK-NEXT: str p8, [sp, #3, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p7, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #3, mul vl] // 2-byte Spill +; CHECK-NEXT: str p7, [sp, #4, mul vl] // 2-byte Spill +; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Spill ; CHECK-NEXT: ptrue p6.b -; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: ldr p4, [x0] ; CHECK-NEXT: ldr p5, [x1] ; CHECK-NEXT: ldr p7, [x2] ; CHECK-NEXT: ldr p8, [x3] ; CHECK-NEXT: eor p0.b, p6/z, p0.b, p4.b ; CHECK-NEXT: eor p1.b, p6/z, p1.b, p5.b -; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Reload ; CHECK-NEXT: eor p2.b, p6/z, p2.b, p7.b -; CHECK-NEXT: ldr p7, [sp, #4, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p7, [sp, #4, mul vl] // 2-byte Reload ; CHECK-NEXT: eor p3.b, p6/z, p3.b, p8.b -; CHECK-NEXT: ldr p8, [sp, #3, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #3, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: .cfi_def_cfa wsp, 16 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload @@ -138,25 +138,25 @@ define aarch64_sve_vector_pcs @sub_nxv64i1( ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG -; CHECK-NEXT: str p8, [sp, #3, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p7, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #3, mul vl] // 2-byte Spill +; CHECK-NEXT: str p7, [sp, #4, mul vl] // 2-byte Spill +; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Spill ; CHECK-NEXT: ptrue p6.b -; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: ldr p4, [x0] ; CHECK-NEXT: ldr p5, [x1] ; CHECK-NEXT: ldr p7, [x2] ; CHECK-NEXT: ldr p8, [x3] ; CHECK-NEXT: eor p0.b, p6/z, p0.b, p4.b ; CHECK-NEXT: eor p1.b, p6/z, p1.b, p5.b -; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Reload ; CHECK-NEXT: eor p2.b, p6/z, p2.b, p7.b -; CHECK-NEXT: ldr p7, [sp, #4, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p7, [sp, #4, mul vl] // 2-byte Reload ; CHECK-NEXT: eor p3.b, p6/z, p3.b, p8.b -; CHECK-NEXT: ldr p8, [sp, #3, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #3, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: .cfi_def_cfa wsp, 16 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload diff --git a/llvm/test/CodeGen/AArch64/sve-stack-frame-layout.ll b/llvm/test/CodeGen/AArch64/sve-stack-frame-layout.ll index d8de12c5f66b9..8772c3dd7d721 100644 --- a/llvm/test/CodeGen/AArch64/sve-stack-frame-layout.ll +++ b/llvm/test/CodeGen/AArch64/sve-stack-frame-layout.ll @@ -14,7 +14,7 @@ define i32 @csr_d8_allocnxv4i32i32f64(double %d) "aarch64_pstate_sm_compatible" ; CHECK-COMMON-LABEL: csr_d8_allocnxv4i32i32f64: ; CHECK-COMMON: // %bb.0: // %entry ; CHECK-COMMON-NEXT: str d8, [sp, #-16]! // 8-byte Folded Spill -; CHECK-COMMON-NEXT: str x29, [sp, #8] // 8-byte Folded Spill +; CHECK-COMMON-NEXT: str x29, [sp, #8] // 8-byte Spill ; CHECK-COMMON-NEXT: sub sp, sp, #16 ; CHECK-COMMON-NEXT: addvl sp, sp, #-1 ; CHECK-COMMON-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x20, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 32 + 8 * VG @@ -30,7 +30,7 @@ define i32 @csr_d8_allocnxv4i32i32f64(double %d) "aarch64_pstate_sm_compatible" ; CHECK-COMMON-NEXT: str z1, [x8] ; CHECK-COMMON-NEXT: addvl sp, sp, #1 ; CHECK-COMMON-NEXT: add sp, sp, #16 -; CHECK-COMMON-NEXT: ldr x29, [sp, #8] // 8-byte Folded Reload +; CHECK-COMMON-NEXT: ldr x29, [sp, #8] // 8-byte Reload ; CHECK-COMMON-NEXT: ldr d8, [sp], #16 // 8-byte Folded Reload ; CHECK-COMMON-NEXT: ret ; CHECK-COMMON-NE @@ -158,7 +158,7 @@ define i32 @csr_d8_allocnxv4i32i32f64_vla(double %d, i32 %i) "aarch64_pstate_sm_ ; CHECK-COMMON-NEXT: str d8, [sp, #-32]! // 8-byte Folded Spill ; CHECK-COMMON-NEXT: stp x29, x30, [sp, #8] // 16-byte Folded Spill ; CHECK-COMMON-NEXT: add x29, sp, #8 -; CHECK-COMMON-NEXT: str x19, [sp, #24] // 8-byte Folded Spill +; CHECK-COMMON-NEXT: str x19, [sp, #24] // 8-byte Spill ; CHECK-COMMON-NEXT: sub sp, sp, #16 ; CHECK-COMMON-NEXT: addvl sp, sp, #-1 ; CHECK-COMMON-NEXT: mov x19, sp @@ -188,7 +188,7 @@ define i32 @csr_d8_allocnxv4i32i32f64_vla(double %d, i32 %i) "aarch64_pstate_sm_ ; CHECK-COMMON-NEXT: str z1, [x8, #-1, mul vl] ; CHECK-COMMON-NEXT: sub sp, x29, #8 ; CHECK-COMMON-NEXT: ldp x29, x30, [sp, #8] // 16-byte Folded Reload -; CHECK-COMMON-NEXT: ldr x19, [sp, #24] // 8-byte Folded Reload +; CHECK-COMMON-NEXT: ldr x19, [sp, #24] // 8-byte Reload ; CHECK-COMMON-NEXT: ldr d8, [sp], #32 // 8-byte Folded Reload ; CHECK-COMMON-NEXT: ret entry: @@ -218,7 +218,7 @@ define i32 @csr_d8_allocnxv4i32i32f64_stackargsi32f64(double %d0, double %d1, do ; CHECK-COMMON-LABEL: csr_d8_allocnxv4i32i32f64_stackargsi32f64: ; CHECK-COMMON: // %bb.0: // %entry ; CHECK-COMMON-NEXT: str d8, [sp, #-16]! // 8-byte Folded Spill -; CHECK-COMMON-NEXT: str x29, [sp, #8] // 8-byte Folded Spill +; CHECK-COMMON-NEXT: str x29, [sp, #8] // 8-byte Spill ; CHECK-COMMON-NEXT: sub sp, sp, #16 ; CHECK-COMMON-NEXT: addvl sp, sp, #-1 ; CHECK-COMMON-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x20, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 32 + 8 * VG @@ -234,7 +234,7 @@ define i32 @csr_d8_allocnxv4i32i32f64_stackargsi32f64(double %d0, double %d1, do ; CHECK-COMMON-NEXT: str z1, [x8] ; CHECK-COMMON-NEXT: addvl sp, sp, #1 ; CHECK-COMMON-NEXT: add sp, sp, #16 -; CHECK-COMMON-NEXT: ldr x29, [sp, #8] // 8-byte Folded Reload +; CHECK-COMMON-NEXT: ldr x29, [sp, #8] // 8-byte Reload ; CHECK-COMMON-NEXT: ldr d8, [sp], #16 // 8-byte Folded Reload ; CHECK-COMMON-NEXT: ret entry: @@ -379,7 +379,7 @@ define i32 @svecc_call(<4 x i16> %P0, ptr %P1, i32 %P2, %P3, ; CHECK-COMMON-NEXT: .cfi_def_cfa_offset 64 ; CHECK-COMMON-NEXT: cntd x9 ; CHECK-COMMON-NEXT: stp x28, x27, [sp, #32] // 16-byte Folded Spill -; CHECK-COMMON-NEXT: str x9, [sp, #16] // 8-byte Folded Spill +; CHECK-COMMON-NEXT: str x9, [sp, #16] // 8-byte Spill ; CHECK-COMMON-NEXT: stp x26, x19, [sp, #48] // 16-byte Folded Spill ; CHECK-COMMON-NEXT: mov x29, sp ; CHECK-COMMON-NEXT: .cfi_def_cfa w29, 64 @@ -391,18 +391,18 @@ define i32 @svecc_call(<4 x i16> %P0, ptr %P1, i32 %P2, %P3, ; CHECK-COMMON-NEXT: .cfi_offset w30, -56 ; CHECK-COMMON-NEXT: .cfi_offset w29, -64 ; CHECK-COMMON-NEXT: addvl sp, sp, #-18 -; CHECK-COMMON-NEXT: str p15, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK-COMMON-NEXT: str p14, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK-COMMON-NEXT: str p13, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-COMMON-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill -; CHECK-COMMON-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; CHECK-COMMON-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; CHECK-COMMON-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; CHECK-COMMON-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill -; CHECK-COMMON-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; CHECK-COMMON-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; CHECK-COMMON-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; CHECK-COMMON-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; CHECK-COMMON-NEXT: str p15, [sp, #4, mul vl] // 2-byte Spill +; CHECK-COMMON-NEXT: str p14, [sp, #5, mul vl] // 2-byte Spill +; CHECK-COMMON-NEXT: str p13, [sp, #6, mul vl] // 2-byte Spill +; CHECK-COMMON-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill +; CHECK-COMMON-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; CHECK-COMMON-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; CHECK-COMMON-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; CHECK-COMMON-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill +; CHECK-COMMON-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; CHECK-COMMON-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; CHECK-COMMON-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; CHECK-COMMON-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; CHECK-COMMON-NEXT: str z23, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-COMMON-NEXT: str z22, [sp, #3, mul vl] // 16-byte Folded Spill ; CHECK-COMMON-NEXT: str z21, [sp, #4, mul vl] // 16-byte Folded Spill @@ -462,18 +462,18 @@ define i32 @svecc_call(<4 x i16> %P0, ptr %P1, i32 %P2, %P3, ; CHECK-COMMON-NEXT: ldr z10, [sp, #15, mul vl] // 16-byte Folded Reload ; CHECK-COMMON-NEXT: ldr z9, [sp, #16, mul vl] // 16-byte Folded Reload ; CHECK-COMMON-NEXT: ldr z8, [sp, #17, mul vl] // 16-byte Folded Reload -; CHECK-COMMON-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Folded Reload -; CHECK-COMMON-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Folded Reload -; CHECK-COMMON-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Folded Reload -; CHECK-COMMON-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; CHECK-COMMON-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; CHECK-COMMON-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; CHECK-COMMON-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; CHECK-COMMON-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; CHECK-COMMON-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; CHECK-COMMON-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; CHECK-COMMON-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; CHECK-COMMON-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; CHECK-COMMON-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Reload +; CHECK-COMMON-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Reload +; CHECK-COMMON-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Reload +; CHECK-COMMON-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; CHECK-COMMON-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; CHECK-COMMON-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; CHECK-COMMON-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; CHECK-COMMON-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; CHECK-COMMON-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; CHECK-COMMON-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; CHECK-COMMON-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; CHECK-COMMON-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; CHECK-COMMON-NEXT: addvl sp, sp, #18 ; CHECK-COMMON-NEXT: .cfi_restore z8 ; CHECK-COMMON-NEXT: .cfi_restore z9 @@ -533,7 +533,7 @@ define i32 @vastate(i32 %x) "aarch64_inout_za" "aarch64_pstate_sm_enabled" "targ ; CHECK-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill ; CHECK-NEXT: stp x29, x30, [sp, #64] // 16-byte Folded Spill -; CHECK-NEXT: str x9, [sp, #80] // 8-byte Folded Spill +; CHECK-NEXT: str x9, [sp, #80] // 8-byte Spill ; CHECK-NEXT: stp x20, x19, [sp, #96] // 16-byte Folded Spill ; CHECK-NEXT: add x29, sp, #64 ; CHECK-NEXT: .cfi_def_cfa w29, 48 @@ -604,7 +604,7 @@ define i32 @vastate(i32 %x) "aarch64_inout_za" "aarch64_pstate_sm_enabled" "targ ; CHECK-NEWLOWERING-NEXT: stp d11, d10, [sp, #32] // 16-byte Folded Spill ; CHECK-NEWLOWERING-NEXT: stp d9, d8, [sp, #48] // 16-byte Folded Spill ; CHECK-NEWLOWERING-NEXT: stp x29, x30, [sp, #64] // 16-byte Folded Spill -; CHECK-NEWLOWERING-NEXT: str x9, [sp, #80] // 8-byte Folded Spill +; CHECK-NEWLOWERING-NEXT: str x9, [sp, #80] // 8-byte Spill ; CHECK-NEWLOWERING-NEXT: stp x20, x19, [sp, #96] // 16-byte Folded Spill ; CHECK-NEWLOWERING-NEXT: add x29, sp, #64 ; CHECK-NEWLOWERING-NEXT: .cfi_def_cfa w29, 48 diff --git a/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-fp-fma.ll b/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-fp-fma.ll index 680cb4fb0a791..c12ae1db5e2a9 100644 --- a/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-fp-fma.ll +++ b/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-fp-fma.ll @@ -248,7 +248,7 @@ define void @fma_v16f16(ptr %a, ptr %b, ptr %c) { ; NONEON-NOSVE-NEXT: fcvt s18, h18 ; NONEON-NOSVE-NEXT: ldr h13, [sp, #90] ; NONEON-NOSVE-NEXT: ldr h14, [sp, #74] -; NONEON-NOSVE-NEXT: str h0, [sp, #14] // 2-byte Folded Spill +; NONEON-NOSVE-NEXT: str h0, [sp, #14] // 2-byte Spill ; NONEON-NOSVE-NEXT: ldr h0, [sp, #76] ; NONEON-NOSVE-NEXT: ldr h11, [sp, #88] ; NONEON-NOSVE-NEXT: ldr h12, [sp, #72] @@ -302,7 +302,7 @@ define void @fma_v16f16(ptr %a, ptr %b, ptr %c) { ; NONEON-NOSVE-NEXT: fcvt s0, h0 ; NONEON-NOSVE-NEXT: fcvt h4, s4 ; NONEON-NOSVE-NEXT: fmul s2, s3, s2 -; NONEON-NOSVE-NEXT: ldr h3, [sp, #14] // 2-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr h3, [sp, #14] // 2-byte Reload ; NONEON-NOSVE-NEXT: fcvt s16, h16 ; NONEON-NOSVE-NEXT: fcvt s6, h6 ; NONEON-NOSVE-NEXT: fcvt s3, h3 diff --git a/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-fp-to-int.ll b/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-fp-to-int.ll index 66e157c779abf..25c98c4d364c2 100644 --- a/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-fp-to-int.ll +++ b/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-fp-to-int.ll @@ -1391,11 +1391,11 @@ define void @fcvtzu_v16f64_v16i16(ptr %a, ptr %b) { ; NONEON-NOSVE-LABEL: fcvtzu_v16f64_v16i16: ; NONEON-NOSVE: // %bb.0: ; NONEON-NOSVE-NEXT: sub sp, sp, #304 -; NONEON-NOSVE-NEXT: str x29, [sp, #288] // 8-byte Folded Spill +; NONEON-NOSVE-NEXT: str x29, [sp, #288] // 8-byte Spill ; NONEON-NOSVE-NEXT: .cfi_def_cfa_offset 304 ; NONEON-NOSVE-NEXT: .cfi_offset w29, -16 ; NONEON-NOSVE-NEXT: ldp q0, q1, [x0, #32] -; NONEON-NOSVE-NEXT: ldr x29, [sp, #288] // 8-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr x29, [sp, #288] // 8-byte Reload ; NONEON-NOSVE-NEXT: ldp q6, q7, [x0] ; NONEON-NOSVE-NEXT: ldp q2, q3, [x0, #64] ; NONEON-NOSVE-NEXT: ldp q4, q5, [x0, #96] @@ -3096,11 +3096,11 @@ define void @fcvtzs_v16f64_v16i16(ptr %a, ptr %b) { ; NONEON-NOSVE-LABEL: fcvtzs_v16f64_v16i16: ; NONEON-NOSVE: // %bb.0: ; NONEON-NOSVE-NEXT: sub sp, sp, #304 -; NONEON-NOSVE-NEXT: str x29, [sp, #288] // 8-byte Folded Spill +; NONEON-NOSVE-NEXT: str x29, [sp, #288] // 8-byte Spill ; NONEON-NOSVE-NEXT: .cfi_def_cfa_offset 304 ; NONEON-NOSVE-NEXT: .cfi_offset w29, -16 ; NONEON-NOSVE-NEXT: ldp q0, q1, [x0, #32] -; NONEON-NOSVE-NEXT: ldr x29, [sp, #288] // 8-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr x29, [sp, #288] // 8-byte Reload ; NONEON-NOSVE-NEXT: ldp q6, q7, [x0] ; NONEON-NOSVE-NEXT: ldp q2, q3, [x0, #64] ; NONEON-NOSVE-NEXT: ldp q4, q5, [x0, #96] diff --git a/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-extends.ll b/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-extends.ll index c3dcb0f6d7f1f..f290e3bfd6e93 100644 --- a/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-extends.ll +++ b/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-extends.ll @@ -332,10 +332,10 @@ define void @sext_v32i8_v32i16(ptr %in, ptr %out) { ; NONEON-NOSVE-NEXT: add w10, w10, w10 ; NONEON-NOSVE-NEXT: strh w9, [sp, #90] ; NONEON-NOSVE-NEXT: sxtb w9, w11 -; NONEON-NOSVE-NEXT: ldr w11, [sp, #8] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w11, [sp, #8] // 4-byte Reload ; NONEON-NOSVE-NEXT: strh w8, [sp, #88] ; NONEON-NOSVE-NEXT: sxtb w8, w10 -; NONEON-NOSVE-NEXT: ldr w10, [sp, #12] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w10, [sp, #12] // 4-byte Reload ; NONEON-NOSVE-NEXT: strh w9, [sp, #86] ; NONEON-NOSVE-NEXT: add w11, w11, w11 ; NONEON-NOSVE-NEXT: strh w8, [sp, #84] @@ -633,9 +633,9 @@ define void @sext_v32i8_v32i32(ptr %in, ptr %out) { ; NONEON-NOSVE-NEXT: add w10, w10, w10 ; NONEON-NOSVE-NEXT: stp w8, w9, [sp, #128] ; NONEON-NOSVE-NEXT: sxtb w9, w11 -; NONEON-NOSVE-NEXT: ldr w11, [sp, #8] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w11, [sp, #8] // 4-byte Reload ; NONEON-NOSVE-NEXT: sxtb w8, w10 -; NONEON-NOSVE-NEXT: ldr w10, [sp, #12] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w10, [sp, #12] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w11, w11, w11 ; NONEON-NOSVE-NEXT: ldp q1, q0, [sp, #80] ; NONEON-NOSVE-NEXT: add w10, w10, w10 @@ -1038,9 +1038,9 @@ define void @sext_v32i8_v32i64(ptr %in, ptr %out) { ; NONEON-NOSVE-NEXT: add w10, w10, w10 ; NONEON-NOSVE-NEXT: stp x8, x9, [sp, #208] ; NONEON-NOSVE-NEXT: sxtb x9, w11 -; NONEON-NOSVE-NEXT: ldr w11, [sp, #8] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w11, [sp, #8] // 4-byte Reload ; NONEON-NOSVE-NEXT: sxtb x8, w10 -; NONEON-NOSVE-NEXT: ldr w10, [sp, #12] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w10, [sp, #12] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w11, w11, w11 ; NONEON-NOSVE-NEXT: ldp q1, q0, [sp, #144] ; NONEON-NOSVE-NEXT: add w10, w10, w10 @@ -1724,11 +1724,11 @@ define void @zext_v32i8_v32i16(ptr %in, ptr %out) { ; NONEON-NOSVE-NEXT: add w10, w10, w10 ; NONEON-NOSVE-NEXT: strh w8, [sp, #88] ; NONEON-NOSVE-NEXT: and w8, w9, #0xff -; NONEON-NOSVE-NEXT: ldr w9, [sp, #8] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w9, [sp, #8] // 4-byte Reload ; NONEON-NOSVE-NEXT: ldrb w30, [sp, #20] ; NONEON-NOSVE-NEXT: strh w8, [sp, #86] ; NONEON-NOSVE-NEXT: and w8, w10, #0xff -; NONEON-NOSVE-NEXT: ldr w10, [sp, #12] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w10, [sp, #12] // 4-byte Reload ; NONEON-NOSVE-NEXT: strh w6, [sp, #78] ; NONEON-NOSVE-NEXT: add w9, w9, w9 ; NONEON-NOSVE-NEXT: add w6, w30, w30 @@ -2029,9 +2029,9 @@ define void @zext_v32i8_v32i32(ptr %in, ptr %out) { ; NONEON-NOSVE-NEXT: add w8, w10, w10 ; NONEON-NOSVE-NEXT: and w9, w11, #0xff ; NONEON-NOSVE-NEXT: and w8, w8, #0xff -; NONEON-NOSVE-NEXT: ldr w10, [sp, #8] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w10, [sp, #8] // 4-byte Reload ; NONEON-NOSVE-NEXT: stp w8, w9, [sp, #120] -; NONEON-NOSVE-NEXT: ldr w9, [sp, #12] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w9, [sp, #12] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w10, w10, w10 ; NONEON-NOSVE-NEXT: ldp q1, q0, [sp, #80] ; NONEON-NOSVE-NEXT: add w9, w9, w9 @@ -2459,9 +2459,9 @@ define void @zext_v32i8_v32i64(ptr %in, ptr %out) { ; NONEON-NOSVE-NEXT: and w8, w8, #0xff ; NONEON-NOSVE-NEXT: and w9, w9, #0xff ; NONEON-NOSVE-NEXT: stp wzr, w8, [sp, #196] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #8] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #8] // 4-byte Reload ; NONEON-NOSVE-NEXT: stp wzr, w9, [sp, #188] -; NONEON-NOSVE-NEXT: ldr w9, [sp, #12] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w9, [sp, #12] // 4-byte Reload ; NONEON-NOSVE-NEXT: and w22, w22, #0xff ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: stp wzr, w22, [sp, #164] diff --git a/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-mulh.ll b/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-mulh.ll index 0c97eedd4362d..e31a57b77c406 100644 --- a/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-mulh.ll +++ b/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-mulh.ll @@ -169,7 +169,7 @@ define <16 x i8> @smulh_v16i8(<16 x i8> %op1, <16 x i8> %op2) { ; NONEON-NOSVE-LABEL: smulh_v16i8: ; NONEON-NOSVE: // %bb.0: ; NONEON-NOSVE-NEXT: sub sp, sp, #160 -; NONEON-NOSVE-NEXT: str x27, [sp, #80] // 8-byte Folded Spill +; NONEON-NOSVE-NEXT: str x27, [sp, #80] // 8-byte Spill ; NONEON-NOSVE-NEXT: stp x26, x25, [sp, #96] // 16-byte Folded Spill ; NONEON-NOSVE-NEXT: stp x24, x23, [sp, #112] // 16-byte Folded Spill ; NONEON-NOSVE-NEXT: stp x22, x21, [sp, #128] // 16-byte Folded Spill @@ -260,7 +260,7 @@ define <16 x i8> @smulh_v16i8(<16 x i8> %op1, <16 x i8> %op2) { ; NONEON-NOSVE-NEXT: strb w3, [sp, #74] ; NONEON-NOSVE-NEXT: lsr w13, w13, #8 ; NONEON-NOSVE-NEXT: strb w2, [sp, #73] -; NONEON-NOSVE-NEXT: ldr x27, [sp, #80] // 8-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr x27, [sp, #80] // 8-byte Reload ; NONEON-NOSVE-NEXT: lsr w10, w10, #8 ; NONEON-NOSVE-NEXT: strb w0, [sp, #72] ; NONEON-NOSVE-NEXT: lsr w8, w8, #8 @@ -428,7 +428,7 @@ define void @smulh_v32i8(ptr %a, ptr %b) { ; NONEON-NOSVE-NEXT: ldrsb w9, [sp, #216] ; NONEON-NOSVE-NEXT: strb w14, [sp, #287] ; NONEON-NOSVE-NEXT: lsr w14, w25, #8 -; NONEON-NOSVE-NEXT: ldr w25, [sp, #24] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w25, [sp, #24] // 4-byte Reload ; NONEON-NOSVE-NEXT: stp w8, w9, [sp, #16] // 8-byte Folded Spill ; NONEON-NOSVE-NEXT: ldrsb w8, [sp, #241] ; NONEON-NOSVE-NEXT: ldrsb w9, [sp, #240] @@ -436,19 +436,19 @@ define void @smulh_v32i8(ptr %a, ptr %b) { ; NONEON-NOSVE-NEXT: lsr w14, w28, #8 ; NONEON-NOSVE-NEXT: ldrsb w11, [sp, #254] ; NONEON-NOSVE-NEXT: mul w8, w25, w8 -; NONEON-NOSVE-NEXT: ldr w25, [sp, #28] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w25, [sp, #28] // 4-byte Reload ; NONEON-NOSVE-NEXT: ldrsb w13, [sp, #252] ; NONEON-NOSVE-NEXT: strb w14, [sp, #283] -; NONEON-NOSVE-NEXT: ldr w14, [sp, #40] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w14, [sp, #40] // 4-byte Reload ; NONEON-NOSVE-NEXT: mul w9, w25, w9 -; NONEON-NOSVE-NEXT: ldr w25, [sp, #32] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w25, [sp, #32] // 4-byte Reload ; NONEON-NOSVE-NEXT: strb w17, [sp, #286] ; NONEON-NOSVE-NEXT: mul w12, w14, w12 ; NONEON-NOSVE-NEXT: lsr w8, w8, #8 ; NONEON-NOSVE-NEXT: lsr w17, w26, #8 ; NONEON-NOSVE-NEXT: mul w10, w25, w10 -; NONEON-NOSVE-NEXT: ldr w25, [sp, #36] // 4-byte Folded Reload -; NONEON-NOSVE-NEXT: ldr w14, [sp, #44] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w25, [sp, #36] // 4-byte Reload +; NONEON-NOSVE-NEXT: ldr w14, [sp, #44] // 4-byte Reload ; NONEON-NOSVE-NEXT: lsr w9, w9, #8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #281] ; NONEON-NOSVE-NEXT: mul w11, w25, w11 @@ -456,84 +456,84 @@ define void @smulh_v32i8(ptr %a, ptr %b) { ; NONEON-NOSVE-NEXT: lsr w17, w30, #8 ; NONEON-NOSVE-NEXT: mul w13, w14, w13 ; NONEON-NOSVE-NEXT: lsr w8, w10, #8 -; NONEON-NOSVE-NEXT: ldr w10, [sp, #48] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w10, [sp, #48] // 4-byte Reload ; NONEON-NOSVE-NEXT: strb w9, [sp, #280] ; NONEON-NOSVE-NEXT: ldp x26, x25, [sp, #320] // 16-byte Folded Reload ; NONEON-NOSVE-NEXT: lsr w9, w11, #8 ; NONEON-NOSVE-NEXT: mul w10, w10, w15 -; NONEON-NOSVE-NEXT: ldr w11, [sp, #52] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w11, [sp, #52] // 4-byte Reload ; NONEON-NOSVE-NEXT: strb w8, [sp, #279] ; NONEON-NOSVE-NEXT: lsr w8, w12, #8 -; NONEON-NOSVE-NEXT: ldr w12, [sp, #56] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w12, [sp, #56] // 4-byte Reload ; NONEON-NOSVE-NEXT: mul w11, w11, w16 ; NONEON-NOSVE-NEXT: strb w9, [sp, #278] ; NONEON-NOSVE-NEXT: lsr w9, w13, #8 ; NONEON-NOSVE-NEXT: mul w12, w12, w18 -; NONEON-NOSVE-NEXT: ldr w13, [sp, #60] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w13, [sp, #60] // 4-byte Reload ; NONEON-NOSVE-NEXT: strb w8, [sp, #277] ; NONEON-NOSVE-NEXT: lsr w8, w10, #8 -; NONEON-NOSVE-NEXT: ldr w10, [sp, #64] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w10, [sp, #64] // 4-byte Reload ; NONEON-NOSVE-NEXT: strb w9, [sp, #276] ; NONEON-NOSVE-NEXT: mul w13, w13, w0 ; NONEON-NOSVE-NEXT: lsr w9, w11, #8 -; NONEON-NOSVE-NEXT: ldr w11, [sp, #68] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w11, [sp, #68] // 4-byte Reload ; NONEON-NOSVE-NEXT: mul w10, w10, w1 ; NONEON-NOSVE-NEXT: strb w8, [sp, #275] ; NONEON-NOSVE-NEXT: lsr w8, w12, #8 ; NONEON-NOSVE-NEXT: mul w11, w11, w2 -; NONEON-NOSVE-NEXT: ldr w12, [sp, #72] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w12, [sp, #72] // 4-byte Reload ; NONEON-NOSVE-NEXT: strb w9, [sp, #274] ; NONEON-NOSVE-NEXT: lsr w9, w13, #8 -; NONEON-NOSVE-NEXT: ldr w13, [sp, #76] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w13, [sp, #76] // 4-byte Reload ; NONEON-NOSVE-NEXT: strb w8, [sp, #273] ; NONEON-NOSVE-NEXT: mul w12, w12, w3 ; NONEON-NOSVE-NEXT: lsr w8, w10, #8 -; NONEON-NOSVE-NEXT: ldr w10, [sp, #80] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w10, [sp, #80] // 4-byte Reload ; NONEON-NOSVE-NEXT: mul w13, w13, w4 ; NONEON-NOSVE-NEXT: strb w9, [sp, #272] ; NONEON-NOSVE-NEXT: lsr w9, w11, #8 ; NONEON-NOSVE-NEXT: mul w10, w10, w5 -; NONEON-NOSVE-NEXT: ldr w11, [sp, #84] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w11, [sp, #84] // 4-byte Reload ; NONEON-NOSVE-NEXT: strb w8, [sp, #271] ; NONEON-NOSVE-NEXT: lsr w8, w12, #8 -; NONEON-NOSVE-NEXT: ldr w12, [sp, #88] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w12, [sp, #88] // 4-byte Reload ; NONEON-NOSVE-NEXT: strb w9, [sp, #270] ; NONEON-NOSVE-NEXT: mul w11, w11, w6 ; NONEON-NOSVE-NEXT: lsr w9, w13, #8 -; NONEON-NOSVE-NEXT: ldr w13, [sp, #92] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w13, [sp, #92] // 4-byte Reload ; NONEON-NOSVE-NEXT: mul w12, w12, w7 ; NONEON-NOSVE-NEXT: strb w8, [sp, #269] ; NONEON-NOSVE-NEXT: lsr w8, w10, #8 ; NONEON-NOSVE-NEXT: mul w13, w13, w19 -; NONEON-NOSVE-NEXT: ldr w10, [sp, #96] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w10, [sp, #96] // 4-byte Reload ; NONEON-NOSVE-NEXT: strb w9, [sp, #268] ; NONEON-NOSVE-NEXT: lsr w9, w11, #8 -; NONEON-NOSVE-NEXT: ldr w11, [sp, #100] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w11, [sp, #100] // 4-byte Reload ; NONEON-NOSVE-NEXT: strb w8, [sp, #267] ; NONEON-NOSVE-NEXT: mul w10, w10, w20 ; NONEON-NOSVE-NEXT: lsr w8, w12, #8 -; NONEON-NOSVE-NEXT: ldr w12, [sp, #104] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w12, [sp, #104] // 4-byte Reload ; NONEON-NOSVE-NEXT: mul w11, w11, w21 ; NONEON-NOSVE-NEXT: strb w9, [sp, #266] ; NONEON-NOSVE-NEXT: lsr w9, w13, #8 -; NONEON-NOSVE-NEXT: ldr w13, [sp, #108] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w13, [sp, #108] // 4-byte Reload ; NONEON-NOSVE-NEXT: mul w12, w12, w22 ; NONEON-NOSVE-NEXT: strb w8, [sp, #265] ; NONEON-NOSVE-NEXT: lsr w8, w10, #8 -; NONEON-NOSVE-NEXT: ldr w10, [sp, #112] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w10, [sp, #112] // 4-byte Reload ; NONEON-NOSVE-NEXT: strb w9, [sp, #264] ; NONEON-NOSVE-NEXT: mul w13, w13, w23 ; NONEON-NOSVE-NEXT: lsr w9, w11, #8 -; NONEON-NOSVE-NEXT: ldr w11, [sp, #116] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w11, [sp, #116] // 4-byte Reload ; NONEON-NOSVE-NEXT: ldp w15, w14, [sp, #16] // 8-byte Folded Reload ; NONEON-NOSVE-NEXT: mul w10, w10, w24 ; NONEON-NOSVE-NEXT: strb w8, [sp, #263] ; NONEON-NOSVE-NEXT: lsr w8, w12, #8 ; NONEON-NOSVE-NEXT: mul w11, w11, w27 -; NONEON-NOSVE-NEXT: ldr w12, [sp, #120] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w12, [sp, #120] // 4-byte Reload ; NONEON-NOSVE-NEXT: strb w9, [sp, #262] ; NONEON-NOSVE-NEXT: lsr w9, w13, #8 -; NONEON-NOSVE-NEXT: ldr w13, [sp, #124] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w13, [sp, #124] // 4-byte Reload ; NONEON-NOSVE-NEXT: strb w8, [sp, #261] ; NONEON-NOSVE-NEXT: mul w12, w12, w15 ; NONEON-NOSVE-NEXT: lsr w8, w10, #8 @@ -1369,7 +1369,7 @@ define <16 x i8> @umulh_v16i8(<16 x i8> %op1, <16 x i8> %op2) { ; NONEON-NOSVE-LABEL: umulh_v16i8: ; NONEON-NOSVE: // %bb.0: ; NONEON-NOSVE-NEXT: sub sp, sp, #160 -; NONEON-NOSVE-NEXT: str x27, [sp, #80] // 8-byte Folded Spill +; NONEON-NOSVE-NEXT: str x27, [sp, #80] // 8-byte Spill ; NONEON-NOSVE-NEXT: stp x26, x25, [sp, #96] // 16-byte Folded Spill ; NONEON-NOSVE-NEXT: stp x24, x23, [sp, #112] // 16-byte Folded Spill ; NONEON-NOSVE-NEXT: stp x22, x21, [sp, #128] // 16-byte Folded Spill @@ -1460,7 +1460,7 @@ define <16 x i8> @umulh_v16i8(<16 x i8> %op1, <16 x i8> %op2) { ; NONEON-NOSVE-NEXT: strb w3, [sp, #74] ; NONEON-NOSVE-NEXT: lsr w13, w13, #8 ; NONEON-NOSVE-NEXT: strb w2, [sp, #73] -; NONEON-NOSVE-NEXT: ldr x27, [sp, #80] // 8-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr x27, [sp, #80] // 8-byte Reload ; NONEON-NOSVE-NEXT: lsr w10, w10, #8 ; NONEON-NOSVE-NEXT: strb w0, [sp, #72] ; NONEON-NOSVE-NEXT: lsr w8, w8, #8 @@ -1628,7 +1628,7 @@ define void @umulh_v32i8(ptr %a, ptr %b) { ; NONEON-NOSVE-NEXT: ldrb w9, [sp, #216] ; NONEON-NOSVE-NEXT: strb w14, [sp, #287] ; NONEON-NOSVE-NEXT: lsr w14, w25, #8 -; NONEON-NOSVE-NEXT: ldr w25, [sp, #24] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w25, [sp, #24] // 4-byte Reload ; NONEON-NOSVE-NEXT: stp w8, w9, [sp, #16] // 8-byte Folded Spill ; NONEON-NOSVE-NEXT: ldrb w8, [sp, #241] ; NONEON-NOSVE-NEXT: ldrb w9, [sp, #240] @@ -1636,19 +1636,19 @@ define void @umulh_v32i8(ptr %a, ptr %b) { ; NONEON-NOSVE-NEXT: lsr w14, w28, #8 ; NONEON-NOSVE-NEXT: ldrb w11, [sp, #254] ; NONEON-NOSVE-NEXT: mul w8, w25, w8 -; NONEON-NOSVE-NEXT: ldr w25, [sp, #28] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w25, [sp, #28] // 4-byte Reload ; NONEON-NOSVE-NEXT: ldrb w13, [sp, #252] ; NONEON-NOSVE-NEXT: strb w14, [sp, #283] -; NONEON-NOSVE-NEXT: ldr w14, [sp, #40] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w14, [sp, #40] // 4-byte Reload ; NONEON-NOSVE-NEXT: mul w9, w25, w9 -; NONEON-NOSVE-NEXT: ldr w25, [sp, #32] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w25, [sp, #32] // 4-byte Reload ; NONEON-NOSVE-NEXT: strb w17, [sp, #286] ; NONEON-NOSVE-NEXT: mul w12, w14, w12 ; NONEON-NOSVE-NEXT: lsr w8, w8, #8 ; NONEON-NOSVE-NEXT: lsr w17, w26, #8 ; NONEON-NOSVE-NEXT: mul w10, w25, w10 -; NONEON-NOSVE-NEXT: ldr w25, [sp, #36] // 4-byte Folded Reload -; NONEON-NOSVE-NEXT: ldr w14, [sp, #44] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w25, [sp, #36] // 4-byte Reload +; NONEON-NOSVE-NEXT: ldr w14, [sp, #44] // 4-byte Reload ; NONEON-NOSVE-NEXT: lsr w9, w9, #8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #281] ; NONEON-NOSVE-NEXT: mul w11, w25, w11 @@ -1656,84 +1656,84 @@ define void @umulh_v32i8(ptr %a, ptr %b) { ; NONEON-NOSVE-NEXT: lsr w17, w30, #8 ; NONEON-NOSVE-NEXT: mul w13, w14, w13 ; NONEON-NOSVE-NEXT: lsr w8, w10, #8 -; NONEON-NOSVE-NEXT: ldr w10, [sp, #48] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w10, [sp, #48] // 4-byte Reload ; NONEON-NOSVE-NEXT: strb w9, [sp, #280] ; NONEON-NOSVE-NEXT: ldp x26, x25, [sp, #320] // 16-byte Folded Reload ; NONEON-NOSVE-NEXT: lsr w9, w11, #8 ; NONEON-NOSVE-NEXT: mul w10, w10, w15 -; NONEON-NOSVE-NEXT: ldr w11, [sp, #52] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w11, [sp, #52] // 4-byte Reload ; NONEON-NOSVE-NEXT: strb w8, [sp, #279] ; NONEON-NOSVE-NEXT: lsr w8, w12, #8 -; NONEON-NOSVE-NEXT: ldr w12, [sp, #56] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w12, [sp, #56] // 4-byte Reload ; NONEON-NOSVE-NEXT: mul w11, w11, w16 ; NONEON-NOSVE-NEXT: strb w9, [sp, #278] ; NONEON-NOSVE-NEXT: lsr w9, w13, #8 ; NONEON-NOSVE-NEXT: mul w12, w12, w18 -; NONEON-NOSVE-NEXT: ldr w13, [sp, #60] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w13, [sp, #60] // 4-byte Reload ; NONEON-NOSVE-NEXT: strb w8, [sp, #277] ; NONEON-NOSVE-NEXT: lsr w8, w10, #8 -; NONEON-NOSVE-NEXT: ldr w10, [sp, #64] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w10, [sp, #64] // 4-byte Reload ; NONEON-NOSVE-NEXT: strb w9, [sp, #276] ; NONEON-NOSVE-NEXT: mul w13, w13, w0 ; NONEON-NOSVE-NEXT: lsr w9, w11, #8 -; NONEON-NOSVE-NEXT: ldr w11, [sp, #68] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w11, [sp, #68] // 4-byte Reload ; NONEON-NOSVE-NEXT: mul w10, w10, w1 ; NONEON-NOSVE-NEXT: strb w8, [sp, #275] ; NONEON-NOSVE-NEXT: lsr w8, w12, #8 ; NONEON-NOSVE-NEXT: mul w11, w11, w2 -; NONEON-NOSVE-NEXT: ldr w12, [sp, #72] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w12, [sp, #72] // 4-byte Reload ; NONEON-NOSVE-NEXT: strb w9, [sp, #274] ; NONEON-NOSVE-NEXT: lsr w9, w13, #8 -; NONEON-NOSVE-NEXT: ldr w13, [sp, #76] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w13, [sp, #76] // 4-byte Reload ; NONEON-NOSVE-NEXT: strb w8, [sp, #273] ; NONEON-NOSVE-NEXT: mul w12, w12, w3 ; NONEON-NOSVE-NEXT: lsr w8, w10, #8 -; NONEON-NOSVE-NEXT: ldr w10, [sp, #80] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w10, [sp, #80] // 4-byte Reload ; NONEON-NOSVE-NEXT: mul w13, w13, w4 ; NONEON-NOSVE-NEXT: strb w9, [sp, #272] ; NONEON-NOSVE-NEXT: lsr w9, w11, #8 ; NONEON-NOSVE-NEXT: mul w10, w10, w5 -; NONEON-NOSVE-NEXT: ldr w11, [sp, #84] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w11, [sp, #84] // 4-byte Reload ; NONEON-NOSVE-NEXT: strb w8, [sp, #271] ; NONEON-NOSVE-NEXT: lsr w8, w12, #8 -; NONEON-NOSVE-NEXT: ldr w12, [sp, #88] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w12, [sp, #88] // 4-byte Reload ; NONEON-NOSVE-NEXT: strb w9, [sp, #270] ; NONEON-NOSVE-NEXT: mul w11, w11, w6 ; NONEON-NOSVE-NEXT: lsr w9, w13, #8 -; NONEON-NOSVE-NEXT: ldr w13, [sp, #92] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w13, [sp, #92] // 4-byte Reload ; NONEON-NOSVE-NEXT: mul w12, w12, w7 ; NONEON-NOSVE-NEXT: strb w8, [sp, #269] ; NONEON-NOSVE-NEXT: lsr w8, w10, #8 ; NONEON-NOSVE-NEXT: mul w13, w13, w19 -; NONEON-NOSVE-NEXT: ldr w10, [sp, #96] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w10, [sp, #96] // 4-byte Reload ; NONEON-NOSVE-NEXT: strb w9, [sp, #268] ; NONEON-NOSVE-NEXT: lsr w9, w11, #8 -; NONEON-NOSVE-NEXT: ldr w11, [sp, #100] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w11, [sp, #100] // 4-byte Reload ; NONEON-NOSVE-NEXT: strb w8, [sp, #267] ; NONEON-NOSVE-NEXT: mul w10, w10, w20 ; NONEON-NOSVE-NEXT: lsr w8, w12, #8 -; NONEON-NOSVE-NEXT: ldr w12, [sp, #104] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w12, [sp, #104] // 4-byte Reload ; NONEON-NOSVE-NEXT: mul w11, w11, w21 ; NONEON-NOSVE-NEXT: strb w9, [sp, #266] ; NONEON-NOSVE-NEXT: lsr w9, w13, #8 -; NONEON-NOSVE-NEXT: ldr w13, [sp, #108] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w13, [sp, #108] // 4-byte Reload ; NONEON-NOSVE-NEXT: mul w12, w12, w22 ; NONEON-NOSVE-NEXT: strb w8, [sp, #265] ; NONEON-NOSVE-NEXT: lsr w8, w10, #8 -; NONEON-NOSVE-NEXT: ldr w10, [sp, #112] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w10, [sp, #112] // 4-byte Reload ; NONEON-NOSVE-NEXT: strb w9, [sp, #264] ; NONEON-NOSVE-NEXT: mul w13, w13, w23 ; NONEON-NOSVE-NEXT: lsr w9, w11, #8 -; NONEON-NOSVE-NEXT: ldr w11, [sp, #116] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w11, [sp, #116] // 4-byte Reload ; NONEON-NOSVE-NEXT: ldp w15, w14, [sp, #16] // 8-byte Folded Reload ; NONEON-NOSVE-NEXT: mul w10, w10, w24 ; NONEON-NOSVE-NEXT: strb w8, [sp, #263] ; NONEON-NOSVE-NEXT: lsr w8, w12, #8 ; NONEON-NOSVE-NEXT: mul w11, w11, w27 -; NONEON-NOSVE-NEXT: ldr w12, [sp, #120] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w12, [sp, #120] // 4-byte Reload ; NONEON-NOSVE-NEXT: strb w9, [sp, #262] ; NONEON-NOSVE-NEXT: lsr w9, w13, #8 -; NONEON-NOSVE-NEXT: ldr w13, [sp, #124] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w13, [sp, #124] // 4-byte Reload ; NONEON-NOSVE-NEXT: strb w8, [sp, #261] ; NONEON-NOSVE-NEXT: mul w12, w12, w15 ; NONEON-NOSVE-NEXT: lsr w8, w10, #8 diff --git a/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-to-fp.ll b/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-to-fp.ll index f7fadaa1217bc..200e462fe620c 100644 --- a/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-to-fp.ll +++ b/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-to-fp.ll @@ -2444,11 +2444,11 @@ define void @scvtf_v16i32_v16f64(ptr %a, ptr %b) { ; NONEON-NOSVE-LABEL: scvtf_v16i32_v16f64: ; NONEON-NOSVE: // %bb.0: ; NONEON-NOSVE-NEXT: sub sp, sp, #272 -; NONEON-NOSVE-NEXT: str x29, [sp, #256] // 8-byte Folded Spill +; NONEON-NOSVE-NEXT: str x29, [sp, #256] // 8-byte Spill ; NONEON-NOSVE-NEXT: .cfi_def_cfa_offset 272 ; NONEON-NOSVE-NEXT: .cfi_offset w29, -16 ; NONEON-NOSVE-NEXT: ldp q0, q1, [x0] -; NONEON-NOSVE-NEXT: ldr x29, [sp, #256] // 8-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr x29, [sp, #256] // 8-byte Reload ; NONEON-NOSVE-NEXT: ldp q3, q2, [x0, #32] ; NONEON-NOSVE-NEXT: str q1, [sp, #32] ; NONEON-NOSVE-NEXT: stp q0, q2, [sp] diff --git a/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-vselect.ll b/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-vselect.ll index 3787b23547afc..e4763f0bb9ba9 100644 --- a/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-vselect.ll +++ b/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-vselect.ll @@ -338,7 +338,7 @@ define void @select_v32i8(ptr %a, ptr %b) { ; NONEON-NOSVE-NEXT: csel w9, w11, w10, eq ; NONEON-NOSVE-NEXT: cmp w13, w12 ; NONEON-NOSVE-NEXT: ldrb w1, [sp, #21] -; NONEON-NOSVE-NEXT: str w8, [sp, #12] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #12] // 4-byte Spill ; NONEON-NOSVE-NEXT: csel w8, w13, w12, eq ; NONEON-NOSVE-NEXT: cmp w16, w14 ; NONEON-NOSVE-NEXT: ldrb w13, [sp, #38] @@ -372,7 +372,7 @@ define void @select_v32i8(ptr %a, ptr %b) { ; NONEON-NOSVE-NEXT: ldrb w6, [sp, #44] ; NONEON-NOSVE-NEXT: cmp w5, w2 ; NONEON-NOSVE-NEXT: ldrb w30, [sp, #29] -; NONEON-NOSVE-NEXT: str w8, [sp] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp] // 4-byte Spill ; NONEON-NOSVE-NEXT: csel w2, w5, w2, eq ; NONEON-NOSVE-NEXT: ldrb w9, [sp, #46] ; NONEON-NOSVE-NEXT: ldrb w8, [sp, #30] @@ -705,7 +705,7 @@ define void @select_v16i16(ptr %a, ptr %b) { ; NONEON-NOSVE-LABEL: select_v16i16: ; NONEON-NOSVE: // %bb.0: ; NONEON-NOSVE-NEXT: sub sp, sp, #112 -; NONEON-NOSVE-NEXT: str x19, [sp, #96] // 8-byte Folded Spill +; NONEON-NOSVE-NEXT: str x19, [sp, #96] // 8-byte Spill ; NONEON-NOSVE-NEXT: .cfi_def_cfa_offset 112 ; NONEON-NOSVE-NEXT: .cfi_offset w19, -16 ; NONEON-NOSVE-NEXT: ldp q0, q3, [x1] @@ -776,7 +776,7 @@ define void @select_v16i16(ptr %a, ptr %b) { ; NONEON-NOSVE-NEXT: cmp w19, w10 ; NONEON-NOSVE-NEXT: csel w10, w19, w10, eq ; NONEON-NOSVE-NEXT: strh w11, [sp, #92] -; NONEON-NOSVE-NEXT: ldr x19, [sp, #96] // 8-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr x19, [sp, #96] // 8-byte Reload ; NONEON-NOSVE-NEXT: cmp w5, w4 ; NONEON-NOSVE-NEXT: strh w10, [sp, #94] ; NONEON-NOSVE-NEXT: csel w8, w5, w4, eq diff --git a/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-ld2-alloca.ll b/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-ld2-alloca.ll index 094eaad0cfe80..302942178a764 100644 --- a/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-ld2-alloca.ll +++ b/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-ld2-alloca.ll @@ -174,14 +174,14 @@ define void @alloc_v8f64(ptr %st_ptr) nounwind { ; CHECK-NEXT: stp x20, x19, [sp, #80] // 16-byte Folded Spill ; CHECK-NEXT: mov x19, x0 ; CHECK-NEXT: mov x0, sp -; CHECK-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-NEXT: mov x20, sp ; CHECK-NEXT: bl def ; CHECK-NEXT: ptrue p0.d, vl2 ; CHECK-NEXT: mov x8, #4 // =0x4 ; CHECK-NEXT: ld2d { z0.d, z1.d }, p0/z, [x20] ; CHECK-NEXT: ld2d { z2.d, z3.d }, p0/z, [x20, x8, lsl #3] -; CHECK-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-NEXT: stp q0, q2, [x19] ; CHECK-NEXT: ldp x20, x19, [sp, #80] // 16-byte Folded Reload ; CHECK-NEXT: add sp, sp, #96 diff --git a/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-masked-load.ll b/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-masked-load.ll index 1fa4b5f62bdec..64762e48d0863 100644 --- a/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-masked-load.ll +++ b/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-masked-load.ll @@ -120,7 +120,7 @@ define <8 x i8> @masked_load_v8i8(ptr %src, <8 x i1> %mask) { ; NONEON-NOSVE-LABEL: masked_load_v8i8: ; NONEON-NOSVE: // %bb.0: ; NONEON-NOSVE-NEXT: sub sp, sp, #272 -; NONEON-NOSVE-NEXT: str x29, [sp, #256] // 8-byte Folded Spill +; NONEON-NOSVE-NEXT: str x29, [sp, #256] // 8-byte Spill ; NONEON-NOSVE-NEXT: .cfi_def_cfa_offset 272 ; NONEON-NOSVE-NEXT: .cfi_offset w29, -16 ; NONEON-NOSVE-NEXT: str d0, [sp, #240] @@ -212,7 +212,7 @@ define <8 x i8> @masked_load_v8i8(ptr %src, <8 x i1> %mask) { ; NONEON-NOSVE-NEXT: strb w8, [sp, #31] ; NONEON-NOSVE-NEXT: ldr d0, [sp, #24] ; NONEON-NOSVE-NEXT: .LBB1_11: // %else20 -; NONEON-NOSVE-NEXT: ldr x29, [sp, #256] // 8-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr x29, [sp, #256] // 8-byte Reload ; NONEON-NOSVE-NEXT: add sp, sp, #272 ; NONEON-NOSVE-NEXT: ret ; NONEON-NOSVE-NEXT: .LBB1_12: // %cond.load4 @@ -1630,7 +1630,7 @@ define <8 x half> @masked_load_v8f16(ptr %src, <8 x i1> %mask) { ; NONEON-NOSVE-LABEL: masked_load_v8f16: ; NONEON-NOSVE: // %bb.0: ; NONEON-NOSVE-NEXT: sub sp, sp, #496 -; NONEON-NOSVE-NEXT: str x29, [sp, #480] // 8-byte Folded Spill +; NONEON-NOSVE-NEXT: str x29, [sp, #480] // 8-byte Spill ; NONEON-NOSVE-NEXT: .cfi_def_cfa_offset 496 ; NONEON-NOSVE-NEXT: .cfi_offset w29, -16 ; NONEON-NOSVE-NEXT: str d0, [sp, #464] @@ -1723,7 +1723,7 @@ define <8 x half> @masked_load_v8f16(ptr %src, <8 x i1> %mask) { ; NONEON-NOSVE-NEXT: str h0, [sp, #46] ; NONEON-NOSVE-NEXT: ldr q0, [sp, #32] ; NONEON-NOSVE-NEXT: .LBB6_11: // %else20 -; NONEON-NOSVE-NEXT: ldr x29, [sp, #480] // 8-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr x29, [sp, #480] // 8-byte Reload ; NONEON-NOSVE-NEXT: add sp, sp, #496 ; NONEON-NOSVE-NEXT: ret ; NONEON-NOSVE-NEXT: .LBB6_12: // %cond.load4 @@ -2346,7 +2346,7 @@ define <8 x float> @masked_load_v8f32(ptr %src, <8 x i1> %mask) { ; NONEON-NOSVE-LABEL: masked_load_v8f32: ; NONEON-NOSVE: // %bb.0: ; NONEON-NOSVE-NEXT: sub sp, sp, #496 -; NONEON-NOSVE-NEXT: str x29, [sp, #480] // 8-byte Folded Spill +; NONEON-NOSVE-NEXT: str x29, [sp, #480] // 8-byte Spill ; NONEON-NOSVE-NEXT: .cfi_def_cfa_offset 496 ; NONEON-NOSVE-NEXT: .cfi_offset w29, -16 ; NONEON-NOSVE-NEXT: str d0, [sp, #464] @@ -2436,7 +2436,7 @@ define <8 x float> @masked_load_v8f32(ptr %src, <8 x i1> %mask) { ; NONEON-NOSVE-NEXT: stp s2, s1, [sp, #40] ; NONEON-NOSVE-NEXT: ldr q1, [sp, #32] ; NONEON-NOSVE-NEXT: .LBB10_11: // %else20 -; NONEON-NOSVE-NEXT: ldr x29, [sp, #480] // 8-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr x29, [sp, #480] // 8-byte Reload ; NONEON-NOSVE-NEXT: add sp, sp, #496 ; NONEON-NOSVE-NEXT: ret ; NONEON-NOSVE-NEXT: .LBB10_12: // %cond.load4 diff --git a/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-trunc.ll b/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-trunc.ll index 9d241f6f927e1..4a540813f0773 100644 --- a/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-trunc.ll +++ b/llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-trunc.ll @@ -184,9 +184,9 @@ define void @trunc_v32i16_v32i8(ptr %in, ptr %out) nounwind { ; NONEON-NOSVE-NEXT: strb w8, [sp, #100] ; NONEON-NOSVE-NEXT: add w8, w10, w10 ; NONEON-NOSVE-NEXT: strb w9, [sp, #99] -; NONEON-NOSVE-NEXT: ldr w9, [sp, #8] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w9, [sp, #8] // 4-byte Reload ; NONEON-NOSVE-NEXT: strb w8, [sp, #98] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #12] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #12] // 4-byte Reload ; NONEON-NOSVE-NEXT: strb w5, [sp, #95] ; NONEON-NOSVE-NEXT: add w5, w30, w30 ; NONEON-NOSVE-NEXT: add w9, w9, w9 @@ -247,7 +247,7 @@ define void @trunc_v64i16_v64i8(ptr %in, ptr %out) nounwind { ; NONEON-NOSVE-NEXT: ldp q3, q2, [x0, #32] ; NONEON-NOSVE-NEXT: stp x22, x21, [sp, #416] // 16-byte Folded Spill ; NONEON-NOSVE-NEXT: ldp q5, q4, [x0] -; NONEON-NOSVE-NEXT: str x1, [sp, #152] // 8-byte Folded Spill +; NONEON-NOSVE-NEXT: str x1, [sp, #152] // 8-byte Spill ; NONEON-NOSVE-NEXT: stp x20, x19, [sp, #432] // 16-byte Folded Spill ; NONEON-NOSVE-NEXT: ldp q1, q0, [x0, #64] ; NONEON-NOSVE-NEXT: stp x24, x23, [sp, #400] // 16-byte Folded Spill @@ -341,7 +341,7 @@ define void @trunc_v64i16_v64i8(ptr %in, ptr %out) nounwind { ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #160] ; NONEON-NOSVE-NEXT: ldrh w9, [sp, #236] ; NONEON-NOSVE-NEXT: add w9, w9, w9 -; NONEON-NOSVE-NEXT: str w8, [sp, #20] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #20] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #234] ; NONEON-NOSVE-NEXT: strb w9, [sp, #334] ; NONEON-NOSVE-NEXT: add w8, w8, w8 @@ -402,113 +402,113 @@ define void @trunc_v64i16_v64i8(ptr %in, ptr %out) nounwind { ; NONEON-NOSVE-NEXT: strb w8, [sp, #306] ; NONEON-NOSVE-NEXT: add w8, w30, w30 ; NONEON-NOSVE-NEXT: strb w8, [sp, #305] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #20] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #20] // 4-byte Reload ; NONEON-NOSVE-NEXT: ldp x20, x19, [sp, #432] // 16-byte Folded Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: ldp x22, x21, [sp, #416] // 16-byte Folded Reload ; NONEON-NOSVE-NEXT: strb w8, [sp, #304] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #24] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #24] // 4-byte Reload ; NONEON-NOSVE-NEXT: ldp x24, x23, [sp, #400] // 16-byte Folded Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: ldp x26, x25, [sp, #384] // 16-byte Folded Reload ; NONEON-NOSVE-NEXT: strb w8, [sp, #303] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #28] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #28] // 4-byte Reload ; NONEON-NOSVE-NEXT: ldp x28, x27, [sp, #368] // 16-byte Folded Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: ldp x29, x30, [sp, #352] // 16-byte Folded Reload ; NONEON-NOSVE-NEXT: strb w8, [sp, #302] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #32] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #32] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #301] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #36] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #36] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #300] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #40] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #40] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #299] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #44] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #44] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #298] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #48] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #48] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #297] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #52] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #52] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #296] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #56] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #56] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #295] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #60] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #60] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #294] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #64] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #64] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #293] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #68] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #68] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #292] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #72] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #72] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #291] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #76] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #76] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #290] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #80] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #80] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #289] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #84] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #84] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #288] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #88] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #88] // 4-byte Reload ; NONEON-NOSVE-NEXT: ldp q1, q3, [sp, #288] ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #351] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #92] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #92] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #350] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #96] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #96] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #349] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #100] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #100] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #348] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #104] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #104] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #347] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #108] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #108] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #346] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #112] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #112] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #345] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #116] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #116] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #344] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #120] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #120] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #343] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #124] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #124] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #342] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #128] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #128] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #341] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #132] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #132] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #340] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #136] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #136] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #339] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #140] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #140] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #338] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #144] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #144] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #337] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #148] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #148] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #336] -; NONEON-NOSVE-NEXT: ldr x8, [sp, #152] // 8-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr x8, [sp, #152] // 8-byte Reload ; NONEON-NOSVE-NEXT: ldp q2, q0, [sp, #320] ; NONEON-NOSVE-NEXT: stp q3, q2, [x8] ; NONEON-NOSVE-NEXT: stp q0, q1, [x8, #32] @@ -582,7 +582,7 @@ define void @trunc_v128i16_v128i8(ptr %in, ptr %out) nounwind { ; NONEON-NOSVE-NEXT: stp x20, x19, [sp, #80] // 16-byte Folded Spill ; NONEON-NOSVE-NEXT: sub sp, sp, #800 ; NONEON-NOSVE-NEXT: ldp q1, q0, [x0, #32] -; NONEON-NOSVE-NEXT: str x1, [sp, #408] // 8-byte Folded Spill +; NONEON-NOSVE-NEXT: str x1, [sp, #408] // 8-byte Spill ; NONEON-NOSVE-NEXT: ldp q3, q2, [x0] ; NONEON-NOSVE-NEXT: ldp q5, q4, [x0, #96] ; NONEON-NOSVE-NEXT: ldp q7, q6, [x0, #64] @@ -600,114 +600,114 @@ define void @trunc_v128i16_v128i8(ptr %in, ptr %out) nounwind { ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: stp q17, q23, [sp, #432] ; NONEON-NOSVE-NEXT: ldrh w13, [sp, #594] -; NONEON-NOSVE-NEXT: str w8, [sp, #64] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #64] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #432] ; NONEON-NOSVE-NEXT: ldrh w14, [sp, #592] ; NONEON-NOSVE-NEXT: stp q22, q16, [sp, #464] -; NONEON-NOSVE-NEXT: ldr w30, [sp, #64] // 4-byte Folded Reload -; NONEON-NOSVE-NEXT: str w8, [sp, #404] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: ldr w30, [sp, #64] // 4-byte Reload +; NONEON-NOSVE-NEXT: str w8, [sp, #404] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #434] ; NONEON-NOSVE-NEXT: stp q4, q6, [sp, #560] -; NONEON-NOSVE-NEXT: str w8, [sp, #400] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #400] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #436] ; NONEON-NOSVE-NEXT: str q5, [sp, #544] -; NONEON-NOSVE-NEXT: str w8, [sp, #396] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #396] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #438] ; NONEON-NOSVE-NEXT: stp q2, q1, [sp, #608] -; NONEON-NOSVE-NEXT: str w8, [sp, #392] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #392] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #440] ; NONEON-NOSVE-NEXT: ldrh w15, [sp, #638] ; NONEON-NOSVE-NEXT: stp q7, q21, [sp, #640] ; NONEON-NOSVE-NEXT: ldrh w16, [sp, #636] ; NONEON-NOSVE-NEXT: ldrh w17, [sp, #634] -; NONEON-NOSVE-NEXT: str w8, [sp, #388] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #388] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #442] ; NONEON-NOSVE-NEXT: ldrh w9, [sp, #666] ; NONEON-NOSVE-NEXT: str q3, [sp, #416] ; NONEON-NOSVE-NEXT: ldrh w18, [sp, #632] ; NONEON-NOSVE-NEXT: ldrh w0, [sp, #630] -; NONEON-NOSVE-NEXT: str w8, [sp, #384] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #384] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #444] ; NONEON-NOSVE-NEXT: ldrh w1, [sp, #628] ; NONEON-NOSVE-NEXT: ldrh w2, [sp, #626] ; NONEON-NOSVE-NEXT: ldrh w3, [sp, #624] ; NONEON-NOSVE-NEXT: ldrh w4, [sp, #622] -; NONEON-NOSVE-NEXT: str w8, [sp, #380] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #380] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #446] ; NONEON-NOSVE-NEXT: ldrh w5, [sp, #620] ; NONEON-NOSVE-NEXT: ldrh w6, [sp, #618] ; NONEON-NOSVE-NEXT: ldrh w7, [sp, #616] ; NONEON-NOSVE-NEXT: ldrh w19, [sp, #614] -; NONEON-NOSVE-NEXT: str w8, [sp, #376] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #376] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #480] ; NONEON-NOSVE-NEXT: ldrh w20, [sp, #612] ; NONEON-NOSVE-NEXT: ldrh w21, [sp, #610] ; NONEON-NOSVE-NEXT: ldrh w22, [sp, #608] ; NONEON-NOSVE-NEXT: ldrh w23, [sp, #430] -; NONEON-NOSVE-NEXT: str w8, [sp, #372] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #372] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #482] ; NONEON-NOSVE-NEXT: ldrh w24, [sp, #428] ; NONEON-NOSVE-NEXT: ldrh w25, [sp, #426] ; NONEON-NOSVE-NEXT: ldrh w26, [sp, #424] ; NONEON-NOSVE-NEXT: ldrh w27, [sp, #422] -; NONEON-NOSVE-NEXT: str w8, [sp, #368] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #368] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #484] ; NONEON-NOSVE-NEXT: ldrh w28, [sp, #420] ; NONEON-NOSVE-NEXT: ldrh w29, [sp, #418] ; NONEON-NOSVE-NEXT: strb w30, [sp, #767] -; NONEON-NOSVE-NEXT: str w8, [sp, #364] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #364] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #486] -; NONEON-NOSVE-NEXT: str w8, [sp, #360] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #360] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #488] -; NONEON-NOSVE-NEXT: str w8, [sp, #356] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #356] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #490] -; NONEON-NOSVE-NEXT: str w8, [sp, #352] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #352] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #492] -; NONEON-NOSVE-NEXT: str w8, [sp, #348] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #348] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #494] -; NONEON-NOSVE-NEXT: str w8, [sp, #344] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #344] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #448] -; NONEON-NOSVE-NEXT: str w8, [sp, #340] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #340] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #450] -; NONEON-NOSVE-NEXT: str w8, [sp, #336] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #336] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #452] -; NONEON-NOSVE-NEXT: str w8, [sp, #332] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #332] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #454] -; NONEON-NOSVE-NEXT: str w8, [sp, #328] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #328] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #456] -; NONEON-NOSVE-NEXT: str w8, [sp, #324] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #324] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #458] -; NONEON-NOSVE-NEXT: str w8, [sp, #320] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #320] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #460] -; NONEON-NOSVE-NEXT: str w8, [sp, #316] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #316] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #462] -; NONEON-NOSVE-NEXT: str w8, [sp, #312] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #312] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #464] -; NONEON-NOSVE-NEXT: str w8, [sp, #308] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #308] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #466] -; NONEON-NOSVE-NEXT: str w8, [sp, #304] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #304] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #468] -; NONEON-NOSVE-NEXT: str w8, [sp, #300] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #300] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #470] -; NONEON-NOSVE-NEXT: str w8, [sp, #296] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #296] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #472] -; NONEON-NOSVE-NEXT: str w8, [sp, #292] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #292] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #474] -; NONEON-NOSVE-NEXT: str w8, [sp, #288] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #288] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #476] -; NONEON-NOSVE-NEXT: str w8, [sp, #284] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #284] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #478] -; NONEON-NOSVE-NEXT: str w8, [sp, #280] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #280] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #656] -; NONEON-NOSVE-NEXT: str w8, [sp, #276] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #276] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #658] -; NONEON-NOSVE-NEXT: str w8, [sp, #272] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #272] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #660] -; NONEON-NOSVE-NEXT: str w8, [sp, #268] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #268] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #662] -; NONEON-NOSVE-NEXT: str w8, [sp, #264] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #264] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #664] -; NONEON-NOSVE-NEXT: str w8, [sp, #260] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #260] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldrh w8, [sp, #668] ; NONEON-NOSVE-NEXT: stp w8, w9, [sp, #252] // 8-byte Folded Spill ; NONEON-NOSVE-NEXT: ldrh w9, [sp, #670] @@ -858,302 +858,302 @@ define void @trunc_v128i16_v128i8(ptr %in, ptr %out) nounwind { ; NONEON-NOSVE-NEXT: strb w8, [sp, #738] ; NONEON-NOSVE-NEXT: add w8, w29, w29 ; NONEON-NOSVE-NEXT: strb w8, [sp, #737] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #16] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #16] // 4-byte Reload ; NONEON-NOSVE-NEXT: strb w9, [sp, #766] ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #736] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #20] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #20] // 4-byte Reload ; NONEON-NOSVE-NEXT: ldp q1, q0, [sp, #736] ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #735] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #24] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #24] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #734] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #28] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #28] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #733] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #32] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #32] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #732] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #36] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #36] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #731] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #40] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #40] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #730] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #44] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #44] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #729] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #48] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #48] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #728] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #52] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #52] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #727] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #56] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #56] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #726] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #60] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #60] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #725] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #68] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #68] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #724] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #72] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #72] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #723] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #76] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #76] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #722] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #80] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #80] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #721] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #84] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #84] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #720] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #88] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #88] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #783] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #92] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #92] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #782] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #96] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #96] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #781] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #100] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #100] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #780] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #104] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #104] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #779] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #108] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #108] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #778] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #112] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #112] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #777] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #116] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #116] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #776] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #120] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #120] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #775] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #124] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #124] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #774] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #128] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #128] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #773] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #132] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #132] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #772] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #136] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #136] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #771] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #140] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #140] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #770] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #144] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #144] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #769] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #148] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #148] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #768] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #152] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #152] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #719] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #156] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #156] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #718] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #160] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #160] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #717] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #164] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #164] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #716] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #168] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #168] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #715] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #172] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #172] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #714] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #176] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #176] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #713] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #180] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #180] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #712] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #184] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #184] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #711] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #188] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #188] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #710] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #192] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #192] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #709] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #196] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #196] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #708] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #200] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #200] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #707] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #204] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #204] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #706] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #208] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #208] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #705] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #212] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #212] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #704] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #216] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #216] // 4-byte Reload ; NONEON-NOSVE-NEXT: ldp q6, q3, [sp, #704] ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #799] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #220] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #220] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #798] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #224] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #224] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #797] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #228] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #228] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #796] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #232] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #232] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #795] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #236] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #236] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #794] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #240] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #240] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #793] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #244] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #244] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #792] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #248] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #248] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #791] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #252] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #252] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #790] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #256] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #256] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #789] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #260] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #260] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #788] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #264] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #264] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #787] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #268] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #268] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #786] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #272] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #272] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #785] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #276] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #276] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #784] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #280] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #280] // 4-byte Reload ; NONEON-NOSVE-NEXT: ldp q4, q7, [sp, #768] ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #687] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #284] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #284] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #686] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #288] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #288] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #685] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #292] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #292] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #684] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #296] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #296] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #683] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #300] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #300] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #682] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #304] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #304] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #681] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #308] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #308] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #680] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #312] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #312] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #679] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #316] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #316] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #678] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #320] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #320] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #677] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #324] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #324] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #676] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #328] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #328] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #675] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #332] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #332] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #674] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #336] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #336] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #673] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #340] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #340] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #672] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #344] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #344] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #703] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #348] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #348] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #702] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #352] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #352] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #701] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #356] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #356] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #700] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #360] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #360] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #699] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #364] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #364] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #698] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #368] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #368] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #697] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #372] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #372] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #696] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #376] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #376] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #695] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #380] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #380] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #694] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #384] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #384] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #693] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #388] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #388] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #692] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #392] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #392] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #691] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #396] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #396] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #690] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #400] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #400] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #689] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #404] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #404] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #688] -; NONEON-NOSVE-NEXT: ldr x8, [sp, #408] // 8-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr x8, [sp, #408] // 8-byte Reload ; NONEON-NOSVE-NEXT: ldp q5, q2, [sp, #672] ; NONEON-NOSVE-NEXT: stp q1, q0, [x8] ; NONEON-NOSVE-NEXT: stp q4, q3, [x8, #32] @@ -1393,9 +1393,9 @@ define void @trunc_v32i32_v32i8(ptr %in, ptr %out) nounwind { ; NONEON-NOSVE-NEXT: strb w9, [sp, #164] ; NONEON-NOSVE-NEXT: add w9, w10, w10 ; NONEON-NOSVE-NEXT: strb w8, [sp, #163] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #8] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #8] // 4-byte Reload ; NONEON-NOSVE-NEXT: strb w9, [sp, #162] -; NONEON-NOSVE-NEXT: ldr w9, [sp, #12] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w9, [sp, #12] // 4-byte Reload ; NONEON-NOSVE-NEXT: strb w5, [sp, #159] ; NONEON-NOSVE-NEXT: add w5, w30, w30 ; NONEON-NOSVE-NEXT: add w8, w8, w8 @@ -1491,7 +1491,7 @@ define void @trunc_v64i32_v64i8(ptr %in, ptr %out) nounwind { ; NONEON-NOSVE-NEXT: stp x20, x19, [sp, #80] // 16-byte Folded Spill ; NONEON-NOSVE-NEXT: sub sp, sp, #480 ; NONEON-NOSVE-NEXT: ldp q1, q0, [x0, #96] -; NONEON-NOSVE-NEXT: str x1, [sp, #152] // 8-byte Folded Spill +; NONEON-NOSVE-NEXT: str x1, [sp, #152] // 8-byte Spill ; NONEON-NOSVE-NEXT: ldp q3, q2, [x0, #64] ; NONEON-NOSVE-NEXT: ldp q17, q16, [x0, #128] ; NONEON-NOSVE-NEXT: ldp q5, q4, [x0, #32] @@ -1579,7 +1579,7 @@ define void @trunc_v64i32_v64i8(ptr %in, ptr %out) nounwind { ; NONEON-NOSVE-NEXT: stp w8, w9, [sp, #24] // 8-byte Folded Spill ; NONEON-NOSVE-NEXT: ldr w9, [sp, #300] ; NONEON-NOSVE-NEXT: ldp w8, w30, [sp, #160] -; NONEON-NOSVE-NEXT: str w8, [sp, #20] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #20] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldr w8, [sp, #308] ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #461] @@ -1639,107 +1639,107 @@ define void @trunc_v64i32_v64i8(ptr %in, ptr %out) nounwind { ; NONEON-NOSVE-NEXT: strb w8, [sp, #434] ; NONEON-NOSVE-NEXT: add w8, w30, w30 ; NONEON-NOSVE-NEXT: strb w8, [sp, #433] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #20] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #20] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #432] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #24] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #24] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #431] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #28] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #28] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #430] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #32] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #32] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #429] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #36] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #36] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #428] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #40] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #40] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #427] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #44] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #44] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #426] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #48] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #48] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #425] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #52] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #52] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #424] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #56] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #56] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #423] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #60] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #60] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #422] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #64] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #64] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #421] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #68] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #68] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #420] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #72] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #72] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #419] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #76] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #76] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #418] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #80] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #80] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #417] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #84] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #84] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #416] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #88] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #88] // 4-byte Reload ; NONEON-NOSVE-NEXT: ldp q1, q3, [sp, #416] ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #479] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #92] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #92] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #478] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #96] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #96] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #477] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #100] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #100] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #476] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #104] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #104] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #475] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #108] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #108] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #474] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #112] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #112] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #473] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #116] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #116] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #472] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #120] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #120] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #471] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #124] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #124] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #470] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #128] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #128] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #469] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #132] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #132] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #468] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #136] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #136] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #467] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #140] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #140] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #466] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #144] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #144] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #465] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #148] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #148] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strb w8, [sp, #464] -; NONEON-NOSVE-NEXT: ldr x8, [sp, #152] // 8-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr x8, [sp, #152] // 8-byte Reload ; NONEON-NOSVE-NEXT: ldp q2, q0, [sp, #448] ; NONEON-NOSVE-NEXT: stp q3, q2, [x8] ; NONEON-NOSVE-NEXT: stp q0, q1, [x8, #32] @@ -1989,9 +1989,9 @@ define void @trunc_v32i32_v32i16(ptr %in, ptr %out) nounwind { ; NONEON-NOSVE-NEXT: strh w9, [sp, #200] ; NONEON-NOSVE-NEXT: add w9, w10, w10 ; NONEON-NOSVE-NEXT: strh w8, [sp, #198] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #8] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #8] // 4-byte Reload ; NONEON-NOSVE-NEXT: strh w9, [sp, #196] -; NONEON-NOSVE-NEXT: ldr w9, [sp, #12] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w9, [sp, #12] // 4-byte Reload ; NONEON-NOSVE-NEXT: strh w5, [sp, #190] ; NONEON-NOSVE-NEXT: add w5, w30, w30 ; NONEON-NOSVE-NEXT: add w8, w8, w8 @@ -2227,109 +2227,109 @@ define void @trunc_v64i32_v64i16(ptr %in, ptr %out) nounwind { ; NONEON-NOSVE-NEXT: strh w8, [sp, #502] ; NONEON-NOSVE-NEXT: add w8, w30, w30 ; NONEON-NOSVE-NEXT: strh w8, [sp, #500] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #8] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #8] // 4-byte Reload ; NONEON-NOSVE-NEXT: ldp q1, q0, [sp, #464] ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strh w8, [sp, #498] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #12] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #12] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strh w8, [sp, #496] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #16] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #16] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strh w8, [sp, #446] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #20] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #20] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strh w8, [sp, #444] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #24] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #24] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strh w8, [sp, #442] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #28] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #28] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strh w8, [sp, #440] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #32] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #32] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strh w8, [sp, #438] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #36] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #36] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strh w8, [sp, #436] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #40] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #40] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strh w8, [sp, #434] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #44] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #44] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strh w8, [sp, #432] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #48] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #48] // 4-byte Reload ; NONEON-NOSVE-NEXT: ldp q6, q3, [sp, #432] ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strh w8, [sp, #526] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #52] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #52] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strh w8, [sp, #524] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #56] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #56] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strh w8, [sp, #522] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #60] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #60] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strh w8, [sp, #520] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #64] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #64] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strh w8, [sp, #518] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #68] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #68] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strh w8, [sp, #516] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #72] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #72] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strh w8, [sp, #514] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #76] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #76] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strh w8, [sp, #512] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #80] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #80] // 4-byte Reload ; NONEON-NOSVE-NEXT: ldp q4, q7, [sp, #496] ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strh w8, [sp, #414] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #84] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #84] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strh w8, [sp, #412] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #88] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #88] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strh w8, [sp, #410] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #92] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #92] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strh w8, [sp, #408] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #96] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #96] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strh w8, [sp, #406] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #100] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #100] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strh w8, [sp, #404] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #104] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #104] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strh w8, [sp, #402] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #108] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #108] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strh w8, [sp, #400] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #112] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #112] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strh w8, [sp, #430] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #116] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #116] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strh w8, [sp, #428] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #120] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #120] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strh w8, [sp, #426] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #124] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #124] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strh w8, [sp, #424] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #128] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #128] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strh w8, [sp, #422] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #132] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #132] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strh w8, [sp, #420] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #136] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #136] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strh w8, [sp, #418] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #140] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #140] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strh w8, [sp, #416] ; NONEON-NOSVE-NEXT: ldp q5, q2, [sp, #400] @@ -2596,7 +2596,7 @@ define void @trunc_v32i64_v32i8(ptr %in, ptr %out) nounwind { ; NONEON-NOSVE-NEXT: ldp q7, q6, [x0] ; NONEON-NOSVE-NEXT: stp x29, x30, [sp, #320] // 16-byte Folded Spill ; NONEON-NOSVE-NEXT: ldp q19, q18, [x0, #224] -; NONEON-NOSVE-NEXT: str x1, [sp, #24] // 8-byte Folded Spill +; NONEON-NOSVE-NEXT: str x1, [sp, #24] // 8-byte Spill ; NONEON-NOSVE-NEXT: ldp q21, q20, [x0, #192] ; NONEON-NOSVE-NEXT: ldp q23, q22, [x0, #160] ; NONEON-NOSVE-NEXT: stp q1, q0, [sp, #160] @@ -2628,7 +2628,7 @@ define void @trunc_v32i64_v32i8(ptr %in, ptr %out) nounwind { ; NONEON-NOSVE-NEXT: ldr w24, [sp, #248] ; NONEON-NOSVE-NEXT: ldr w22, [sp, #232] ; NONEON-NOSVE-NEXT: add w9, w27, w27 -; NONEON-NOSVE-NEXT: str w8, [sp, #20] // 4-byte Folded Spill +; NONEON-NOSVE-NEXT: str w8, [sp, #20] // 4-byte Spill ; NONEON-NOSVE-NEXT: ldr w8, [sp, #200] ; NONEON-NOSVE-NEXT: str q7, [sp, #32] ; NONEON-NOSVE-NEXT: ldr w0, [sp, #104] @@ -2692,7 +2692,7 @@ define void @trunc_v32i64_v32i8(ptr %in, ptr %out) nounwind { ; NONEON-NOSVE-NEXT: strb w8, [sp, #311] ; NONEON-NOSVE-NEXT: add w8, w13, w13 ; NONEON-NOSVE-NEXT: strb w9, [sp, #306] -; NONEON-NOSVE-NEXT: ldr w9, [sp, #20] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w9, [sp, #20] // 4-byte Reload ; NONEON-NOSVE-NEXT: strb w8, [sp, #309] ; NONEON-NOSVE-NEXT: add w8, w11, w11 ; NONEON-NOSVE-NEXT: add w9, w9, w9 @@ -2707,7 +2707,7 @@ define void @trunc_v32i64_v32i8(ptr %in, ptr %out) nounwind { ; NONEON-NOSVE-NEXT: strb w6, [sp, #300] ; NONEON-NOSVE-NEXT: ldp x22, x21, [sp, #384] // 16-byte Folded Reload ; NONEON-NOSVE-NEXT: strb w8, [sp, #305] -; NONEON-NOSVE-NEXT: ldr x8, [sp, #24] // 8-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr x8, [sp, #24] // 8-byte Reload ; NONEON-NOSVE-NEXT: strb w9, [sp, #304] ; NONEON-NOSVE-NEXT: ldp x24, x23, [sp, #368] // 16-byte Folded Reload ; NONEON-NOSVE-NEXT: ldp q1, q0, [sp, #288] @@ -3079,9 +3079,9 @@ define void @trunc_v32i64_v32i16(ptr %in, ptr %out) nounwind { ; NONEON-NOSVE-NEXT: strh w9, [sp, #328] ; NONEON-NOSVE-NEXT: add w9, w10, w10 ; NONEON-NOSVE-NEXT: strh w8, [sp, #326] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #8] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #8] // 4-byte Reload ; NONEON-NOSVE-NEXT: strh w9, [sp, #324] -; NONEON-NOSVE-NEXT: ldr w9, [sp, #12] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w9, [sp, #12] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: strh w5, [sp, #318] ; NONEON-NOSVE-NEXT: add w5, w30, w30 @@ -3455,9 +3455,9 @@ define void @trunc_v32i64_v32i32(ptr %in, ptr %out) nounwind { ; NONEON-NOSVE-NEXT: str w9, [sp, #272] ; NONEON-NOSVE-NEXT: add w9, w10, w10 ; NONEON-NOSVE-NEXT: str w8, [sp, #300] -; NONEON-NOSVE-NEXT: ldr w8, [sp, #8] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w8, [sp, #8] // 4-byte Reload ; NONEON-NOSVE-NEXT: str w9, [sp, #296] -; NONEON-NOSVE-NEXT: ldr w9, [sp, #12] // 4-byte Folded Reload +; NONEON-NOSVE-NEXT: ldr w9, [sp, #12] // 4-byte Reload ; NONEON-NOSVE-NEXT: add w8, w8, w8 ; NONEON-NOSVE-NEXT: str w5, [sp, #364] ; NONEON-NOSVE-NEXT: add w5, w30, w30 diff --git a/llvm/test/CodeGen/AArch64/sve-tailcall.ll b/llvm/test/CodeGen/AArch64/sve-tailcall.ll index 4ddf007768fd2..d07f4a1fd9f86 100644 --- a/llvm/test/CodeGen/AArch64/sve-tailcall.ll +++ b/llvm/test/CodeGen/AArch64/sve-tailcall.ll @@ -52,18 +52,18 @@ define i32 @sve_caller_non_sve_callee( %arg) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: stp x29, x30, [sp, #-16]! // 16-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-18 -; CHECK-NEXT: str p15, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p14, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p13, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p15, [sp, #4, mul vl] // 2-byte Spill +; CHECK-NEXT: str p14, [sp, #5, mul vl] // 2-byte Spill +; CHECK-NEXT: str p13, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill +; CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill +; CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; CHECK-NEXT: str z23, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z22, [sp, #3, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z21, [sp, #4, mul vl] // 16-byte Folded Spill @@ -99,18 +99,18 @@ define i32 @sve_caller_non_sve_callee( %arg) nounwind { ; CHECK-NEXT: ldr z10, [sp, #15, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z9, [sp, #16, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z8, [sp, #17, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #18 ; CHECK-NEXT: ldp x29, x30, [sp], #16 // 16-byte Folded Reload ; CHECK-NEXT: ret @@ -127,18 +127,18 @@ define i32 @sve_caller_non_sve_callee_fastcc( %arg) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: stp x29, x30, [sp, #-16]! // 16-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-18 -; CHECK-NEXT: str p15, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p14, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p13, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p15, [sp, #4, mul vl] // 2-byte Spill +; CHECK-NEXT: str p14, [sp, #5, mul vl] // 2-byte Spill +; CHECK-NEXT: str p13, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill +; CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill +; CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; CHECK-NEXT: str z23, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z22, [sp, #3, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z21, [sp, #4, mul vl] // 16-byte Folded Spill @@ -174,18 +174,18 @@ define i32 @sve_caller_non_sve_callee_fastcc( %arg) nounwind { ; CHECK-NEXT: ldr z10, [sp, #15, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z9, [sp, #16, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z8, [sp, #17, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #18 ; CHECK-NEXT: ldp x29, x30, [sp], #16 // 16-byte Folded Reload ; CHECK-NEXT: ret diff --git a/llvm/test/CodeGen/AArch64/sve-trunc.ll b/llvm/test/CodeGen/AArch64/sve-trunc.ll index 50580cb772937..be1f844c7f118 100644 --- a/llvm/test/CodeGen/AArch64/sve-trunc.ll +++ b/llvm/test/CodeGen/AArch64/sve-trunc.ll @@ -111,10 +111,10 @@ define @trunc_i64toi1_split3( %in) { ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p7, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p7, [sp, #4, mul vl] // 2-byte Spill +; CHECK-NEXT: str p6, [sp, #5, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: and z7.d, z7.d, #0x1 @@ -136,13 +136,13 @@ define @trunc_i64toi1_split3( %in) { ; CHECK-NEXT: cmpne p0.d, p0/z, z0.d, #0 ; CHECK-NEXT: uzp1 p1.s, p2.s, p1.s ; CHECK-NEXT: uzp1 p2.s, p4.s, p3.s -; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p4, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: uzp1 p3.s, p6.s, p5.s -; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p6, [sp, #5, mul vl] // 2-byte Reload ; CHECK-NEXT: uzp1 p0.s, p0.s, p7.s -; CHECK-NEXT: ldr p7, [sp, #4, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p7, [sp, #4, mul vl] // 2-byte Reload ; CHECK-NEXT: uzp1 p1.h, p2.h, p1.h -; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p5, [sp, #6, mul vl] // 2-byte Reload ; CHECK-NEXT: uzp1 p0.h, p0.h, p3.h ; CHECK-NEXT: uzp1 p0.b, p0.b, p1.b ; CHECK-NEXT: addvl sp, sp, #1 diff --git a/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-loads.ll b/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-loads.ll index 1dbd7ddf46328..def9d36cebb0c 100644 --- a/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-loads.ll +++ b/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-loads.ll @@ -10,10 +10,10 @@ define { , } @ld1_x2_i8(target("aarch64.svc ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ld1b { z0.b, z1.b }, pn8/z, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -26,10 +26,10 @@ define { , } @ld1_x2_i8_scalar(target("aarc ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ld1b { z0.b, z1.b }, pn8/z, [x0, x1] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -43,10 +43,10 @@ define { , } @ld1_x2_i16(target("aarch64.sv ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ld1h { z0.h, z1.h }, pn8/z, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -59,10 +59,10 @@ define { , } @ld1_x2_i16_scalar(target("aar ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ld1h { z0.h, z1.h }, pn8/z, [x0, x1, lsl #1] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -76,10 +76,10 @@ define { , } @ld1_x2_i32(target("aarch64.sv ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ld1w { z0.s, z1.s }, pn8/z, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -92,10 +92,10 @@ define { , } @ld1_x2_i32_scalar(target("aar ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ld1w { z0.s, z1.s }, pn8/z, [x0, x1, lsl #2] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -109,10 +109,10 @@ define { , } @ld1_x2_i64(target("aarch64.sv ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ld1d { z0.d, z1.d }, pn8/z, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -125,10 +125,10 @@ define { , } @ld1_x2_i64_scalar(target("aar ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ld1d { z0.d, z1.d }, pn8/z, [x0, x1, lsl #3] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -142,10 +142,10 @@ define { , } @ld1_x2_f16(target("aarch64. ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ld1h { z0.h, z1.h }, pn8/z, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -158,10 +158,10 @@ define { , } @ld1_x2_f16_scalar(target("a ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ld1h { z0.h, z1.h }, pn8/z, [x0, x1, lsl #1] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -175,10 +175,10 @@ define { , } @ld1_x2_bf16(target("aar ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ld1h { z0.h, z1.h }, pn8/z, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -191,10 +191,10 @@ define { , } @ld1_x2_bf16_scalar(targ ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ld1h { z0.h, z1.h }, pn8/z, [x0, x1, lsl #1] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -208,10 +208,10 @@ define { , } @ld1_x2_f32(target("aarch6 ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ld1w { z0.s, z1.s }, pn8/z, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -224,10 +224,10 @@ define { , } @ld1_x2_f32_scalar(target( ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ld1w { z0.s, z1.s }, pn8/z, [x0, x1, lsl #2] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -241,10 +241,10 @@ define { , } @ld1_x2_f64(target("aarc ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ld1d { z0.d, z1.d }, pn8/z, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -257,10 +257,10 @@ define { , } @ld1_x2_f64_scalar(targe ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ld1d { z0.d, z1.d }, pn8/z, [x0, x1, lsl #3] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -275,12 +275,12 @@ define @ld1_x2_i8_z0_taken(target("aarch64.svcount") %pn, ptr ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ld1b { z2.b, z3.b }, pn8/z, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: add z0.b, z0.b, z2.b ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload @@ -297,12 +297,12 @@ define @ld1_x2_i8_z0_taken_scalar(target("aarch64.svcount") % ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ld1b { z2.b, z3.b }, pn8/z, [x0, x1] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: add z0.b, z0.b, z2.b ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload @@ -319,10 +319,10 @@ define { , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , @ld1_x4_i16_z0_taken(target("aarch64.svcount") %pn, pt ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ld1h { z4.h - z7.h }, pn8/z, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: add z0.h, z0.h, z4.h ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload @@ -606,12 +606,12 @@ define @ld1_x4_i16_z0_taken_scalar(target("aarch64.svcount") ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ld1h { z4.h - z7.h }, pn8/z, [x0, x1, lsl #1] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: add z0.h, z0.h, z4.h ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload @@ -630,10 +630,10 @@ define { , } @ldnt1_x2_i8(target("aarch64.s ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ldnt1b { z0.b, z1.b }, pn8/z, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -646,10 +646,10 @@ define { , } @ldnt1_x2_i8_scalar(target("aa ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ldnt1b { z0.b, z1.b }, pn8/z, [x0, x1] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -663,10 +663,10 @@ define { , } @ldnt1_x2_i16(target("aarch64. ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ldnt1h { z0.h, z1.h }, pn8/z, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -679,10 +679,10 @@ define { , } @ldnt1_x2_i16_scalar(target("a ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ldnt1h { z0.h, z1.h }, pn8/z, [x0, x1, lsl #1] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -696,10 +696,10 @@ define { , } @ldnt1_x2_i32(target("aarch64. ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ldnt1w { z0.s, z1.s }, pn8/z, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -712,10 +712,10 @@ define { , } @ldnt1_x2_i32_scalar(target("a ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ldnt1w { z0.s, z1.s }, pn8/z, [x0, x1, lsl #2] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -729,10 +729,10 @@ define { , } @ldnt1_x2_i64(target("aarch64. ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ldnt1d { z0.d, z1.d }, pn8/z, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -745,10 +745,10 @@ define { , } @ldnt1_x2_i64_scalar(target("a ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ldnt1d { z0.d, z1.d }, pn8/z, [x0, x1, lsl #3] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -762,10 +762,10 @@ define { , } @ldnt1_x2_f16(target("aarch6 ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ldnt1h { z0.h, z1.h }, pn8/z, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -778,10 +778,10 @@ define { , } @ldnt1_x2_f16_scalar(target( ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ldnt1h { z0.h, z1.h }, pn8/z, [x0, x1, lsl #1] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -795,10 +795,10 @@ define { , } @ldnt1_x2_bf16(target("a ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ldnt1h { z0.h, z1.h }, pn8/z, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -811,10 +811,10 @@ define { , } @ldnt1_x2_bf16_scalar(ta ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ldnt1h { z0.h, z1.h }, pn8/z, [x0, x1, lsl #1] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -828,10 +828,10 @@ define { , } @ldnt1_x2_f32(target("aarc ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ldnt1w { z0.s, z1.s }, pn8/z, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -844,10 +844,10 @@ define { , } @ldnt1_x2_f32_scalar(targe ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ldnt1w { z0.s, z1.s }, pn8/z, [x0, x1, lsl #2] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -861,10 +861,10 @@ define { , } @ldnt1_x2_f64(target("aa ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ldnt1d { z0.d, z1.d }, pn8/z, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -877,10 +877,10 @@ define { , } @ldnt1_x2_f64_scalar(tar ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ldnt1d { z0.d, z1.d }, pn8/z, [x0, x1, lsl #3] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -895,12 +895,12 @@ define @ldnt1_x2_i32_z0_taken(target("aarch64.svcount") %pn, ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ldnt1w { z2.s, z3.s }, pn8/z, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: add z0.s, z0.s, z2.s ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload @@ -917,12 +917,12 @@ define @ldnt1_x2_i32_z0_taken_scalar(target("aarch64.svcount" ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ldnt1w { z2.s, z3.s }, pn8/z, [x0, x1, lsl #2] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: add z0.s, z0.s, z2.s ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload @@ -939,10 +939,10 @@ define { , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , @ldnt1_x4_i64_z0_taken(target("aarch64.svcount") %pn, ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ldnt1d { z4.d - z7.d }, pn8/z, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: add z0.d, z0.d, z4.d ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload @@ -1226,12 +1226,12 @@ define @ldnt1_x4_i64_z0_taken_scalar(target("aarch64.svcount" ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .cfi_escape 0x0f, 0x08, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x38, 0x1e, 0x22 // sp + 16 + 8 * VG ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: ldnt1d { z4.d - z7.d }, pn8/z, [x0, x1, lsl #3] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: add z0.d, z0.d, z4.d ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload diff --git a/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-predicate-as-counter.ll b/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-predicate-as-counter.ll index ffcc412b50e21..4bf0b09a0cc1d 100644 --- a/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-predicate-as-counter.ll +++ b/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-predicate-as-counter.ll @@ -8,10 +8,10 @@ define @pext_b(target("aarch64.svcount") %x) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: pext p0.b, pn8[2] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -24,10 +24,10 @@ define @pext_h(target("aarch64.svcount") %x) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: pext p0.h, pn8[2] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -40,10 +40,10 @@ define @pext_s(target("aarch64.svcount") %x) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: pext p0.s, pn8[2] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -56,10 +56,10 @@ define @pext_d(target("aarch64.svcount") %x) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: pext p0.d, pn8[2] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -77,10 +77,10 @@ define {,} @pext_x2_b(target("aarch64.svcou ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: pext { p0.b, p1.b }, pn8[1] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -93,10 +93,10 @@ define {,} @pext_x2_h(target("aarch64.svcount" ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: pext { p0.h, p1.h }, pn8[1] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -109,10 +109,10 @@ define {,} @pext_x2_s(target("aarch64.svcount" ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: pext { p0.s, p1.s }, pn8[1] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -125,10 +125,10 @@ define {,} @pext_x2_d(target("aarch64.svcount" ; CHECK: // %bb.0: ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: pext { p0.d, p1.d }, pn8[1] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret diff --git a/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-selx2.ll b/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-selx2.ll index f30b924fb9e3b..08e1e32021af8 100644 --- a/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-selx2.ll +++ b/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-selx2.ll @@ -10,12 +10,12 @@ define { , } @sel_x2_i8(target("aarch64.svc ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: mov z5.d, z4.d ; CHECK-NEXT: mov z7.d, z2.d -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov z4.d, z3.d ; CHECK-NEXT: mov z6.d, z1.d ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: sel { z0.b, z1.b }, pn8, { z6.b, z7.b }, { z4.b, z5.b } -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -30,12 +30,12 @@ define { , } @sel_x2_i16(target("aarch64.sv ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: mov z5.d, z4.d ; CHECK-NEXT: mov z7.d, z2.d -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov z4.d, z3.d ; CHECK-NEXT: mov z6.d, z1.d ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: sel { z0.h, z1.h }, pn8, { z6.h, z7.h }, { z4.h, z5.h } -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -50,12 +50,12 @@ define { , } @sel_x2_f16(target("aarch64. ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: mov z5.d, z4.d ; CHECK-NEXT: mov z7.d, z2.d -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov z4.d, z3.d ; CHECK-NEXT: mov z6.d, z1.d ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: sel { z0.h, z1.h }, pn8, { z6.h, z7.h }, { z4.h, z5.h } -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -70,12 +70,12 @@ define { , } @sel_x2_bf16(target("aar ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: mov z5.d, z4.d ; CHECK-NEXT: mov z7.d, z2.d -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov z4.d, z3.d ; CHECK-NEXT: mov z6.d, z1.d ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: sel { z0.h, z1.h }, pn8, { z6.h, z7.h }, { z4.h, z5.h } -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -90,12 +90,12 @@ define { , } @sel_x2_i32(target("aarch64.sv ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: mov z5.d, z4.d ; CHECK-NEXT: mov z7.d, z2.d -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov z4.d, z3.d ; CHECK-NEXT: mov z6.d, z1.d ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: sel { z0.s, z1.s }, pn8, { z6.s, z7.s }, { z4.s, z5.s } -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -110,12 +110,12 @@ define { , } @sel_x2_f32(target("aarch6 ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: mov z5.d, z4.d ; CHECK-NEXT: mov z7.d, z2.d -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov z4.d, z3.d ; CHECK-NEXT: mov z6.d, z1.d ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: sel { z0.s, z1.s }, pn8, { z6.s, z7.s }, { z4.s, z5.s } -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -130,12 +130,12 @@ define { , } @sel_x2_i64(target("aarch64.sv ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: mov z5.d, z4.d ; CHECK-NEXT: mov z7.d, z2.d -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov z4.d, z3.d ; CHECK-NEXT: mov z6.d, z1.d ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: sel { z0.d, z1.d }, pn8, { z6.d, z7.d }, { z4.d, z5.d } -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -150,12 +150,12 @@ define { , } @sel_x2_f64(target("aarc ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: mov z5.d, z4.d ; CHECK-NEXT: mov z7.d, z2.d -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov z4.d, z3.d ; CHECK-NEXT: mov z6.d, z1.d ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: sel { z0.d, z1.d }, pn8, { z6.d, z7.d }, { z4.d, z5.d } -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret diff --git a/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-selx4.ll b/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-selx4.ll index 58ba7603a702d..be03cfee1eec3 100644 --- a/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-selx4.ll +++ b/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-selx4.ll @@ -10,7 +10,7 @@ define { , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , %unused, %zn0, %unused, %zn0, %unused, %zn0, %unused, %zn0, %unused, %zn0, %unused, %zn0, ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: mov z3.d, z2.d -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: mov z2.d, z1.d ; CHECK-NEXT: st1h { z2.h, z3.h }, pn8, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -119,11 +119,11 @@ define void @st1_x2_f32( %unused, %zn0, < ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: mov z3.d, z2.d -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: mov z2.d, z1.d ; CHECK-NEXT: st1w { z2.s, z3.s }, pn8, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -137,11 +137,11 @@ define void @st1_x2_f64( %unused, %zn0, ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: mov z3.d, z2.d -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: mov z2.d, z1.d ; CHECK-NEXT: st1d { z2.d, z3.d }, pn8, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -155,13 +155,13 @@ define void @st1_x4_i8( %unused, %zn0, %unused, %zn0, %unused, %zn0, %unused, %zn0, %unused, %zn0, %unused, %zn0, ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: mov z7.d, z4.d -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: mov z6.d, z3.d ; CHECK-NEXT: mov z5.d, z2.d ; CHECK-NEXT: mov z4.d, z1.d ; CHECK-NEXT: st1h { z4.h - z7.h }, pn8, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -275,13 +275,13 @@ define void @st1_x4_f32( %unused, %zn0, < ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: mov z7.d, z4.d -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: mov z6.d, z3.d ; CHECK-NEXT: mov z5.d, z2.d ; CHECK-NEXT: mov z4.d, z1.d ; CHECK-NEXT: st1w { z4.s - z7.s }, pn8, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -295,13 +295,13 @@ define void @st1_x4_f64( %unused, %zn0, ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: mov z7.d, z4.d -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: mov z6.d, z3.d ; CHECK-NEXT: mov z5.d, z2.d ; CHECK-NEXT: mov z4.d, z1.d ; CHECK-NEXT: st1d { z4.d - z7.d }, pn8, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -317,11 +317,11 @@ define void @stnt1_x2_i8( %unused, %zn0, %unused, %zn0, < ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: mov z3.d, z2.d -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: mov z2.d, z1.d ; CHECK-NEXT: stnt1h { z2.h, z3.h }, pn8, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -353,11 +353,11 @@ define void @stnt1_x2_i32( %unused, %zn0, < ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: mov z3.d, z2.d -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: mov z2.d, z1.d ; CHECK-NEXT: stnt1w { z2.s, z3.s }, pn8, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -371,11 +371,11 @@ define void @stnt1_x2_i64( %unused, %zn0, < ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: mov z3.d, z2.d -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: mov z2.d, z1.d ; CHECK-NEXT: stnt1d { z2.d, z3.d }, pn8, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -389,11 +389,11 @@ define void @stnt1_x2_f16( %unused, %zn0, ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: mov z3.d, z2.d -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: mov z2.d, z1.d ; CHECK-NEXT: stnt1h { z2.h, z3.h }, pn8, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -407,11 +407,11 @@ define void @stnt1_x2_bf16( %unused, %zn ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: mov z3.d, z2.d -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: mov z2.d, z1.d ; CHECK-NEXT: stnt1h { z2.h, z3.h }, pn8, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -425,11 +425,11 @@ define void @stnt1_x2_f32( %unused, %zn0, ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: mov z3.d, z2.d -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: mov z2.d, z1.d ; CHECK-NEXT: stnt1w { z2.s, z3.s }, pn8, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -443,11 +443,11 @@ define void @stnt1_x2_f64( %unused, %zn0 ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: mov z3.d, z2.d -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: mov z2.d, z1.d ; CHECK-NEXT: stnt1d { z2.d, z3.d }, pn8, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -461,13 +461,13 @@ define void @stnt1_x4_i8( %unused, %zn0, %unused, %zn0, < ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: mov z7.d, z4.d -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: mov z6.d, z3.d ; CHECK-NEXT: mov z5.d, z2.d ; CHECK-NEXT: mov z4.d, z1.d ; CHECK-NEXT: stnt1h { z4.h - z7.h }, pn8, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -501,13 +501,13 @@ define void @stnt1_x4_i32( %unused, %zn0, < ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: mov z7.d, z4.d -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: mov z6.d, z3.d ; CHECK-NEXT: mov z5.d, z2.d ; CHECK-NEXT: mov z4.d, z1.d ; CHECK-NEXT: stnt1w { z4.s - z7.s }, pn8, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -521,13 +521,13 @@ define void @stnt1_x4_i64( %unused, %zn0, < ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: mov z7.d, z4.d -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: mov z6.d, z3.d ; CHECK-NEXT: mov z5.d, z2.d ; CHECK-NEXT: mov z4.d, z1.d ; CHECK-NEXT: stnt1d { z4.d - z7.d }, pn8, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -541,13 +541,13 @@ define void @stnt1_x4_f16( %unused, %zn0, ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: mov z7.d, z4.d -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: mov z6.d, z3.d ; CHECK-NEXT: mov z5.d, z2.d ; CHECK-NEXT: mov z4.d, z1.d ; CHECK-NEXT: stnt1h { z4.h - z7.h }, pn8, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -561,13 +561,13 @@ define void @stnt1_x4_bf16( %unused, %zn ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: mov z7.d, z4.d -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: mov z6.d, z3.d ; CHECK-NEXT: mov z5.d, z2.d ; CHECK-NEXT: mov z4.d, z1.d ; CHECK-NEXT: stnt1h { z4.h - z7.h }, pn8, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -581,13 +581,13 @@ define void @stnt1_x4_f32( %unused, %zn0, ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: mov z7.d, z4.d -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: mov z6.d, z3.d ; CHECK-NEXT: mov z5.d, z2.d ; CHECK-NEXT: mov z4.d, z1.d ; CHECK-NEXT: stnt1w { z4.s - z7.s }, pn8, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret @@ -601,13 +601,13 @@ define void @stnt1_x4_f64( %unused, %zn0 ; CHECK-NEXT: str x29, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: mov z7.d, z4.d -; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: mov p8.b, p0.b ; CHECK-NEXT: mov z6.d, z3.d ; CHECK-NEXT: mov z5.d, z2.d ; CHECK-NEXT: mov z4.d, z1.d ; CHECK-NEXT: stnt1d { z4.d - z7.d }, pn8, [x0] -; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: ldr x29, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: ret diff --git a/llvm/test/CodeGen/AArch64/swift-async-win.ll b/llvm/test/CodeGen/AArch64/swift-async-win.ll index 94308979b07f8..69c83072fbc85 100644 --- a/llvm/test/CodeGen/AArch64/swift-async-win.ll +++ b/llvm/test/CodeGen/AArch64/swift-async-win.ll @@ -21,7 +21,7 @@ define hidden swifttailcc void @"$ss23withCheckedContinuation8function_xSS_yScCy ; CHECK-NEXT: sub sp, sp, #48 ; CHECK-NEXT: stp x30, x29, [sp, #24] // 16-byte Folded Spill ; CHECK-NEXT: add x29, sp, #24 -; CHECK-NEXT: str x19, [sp, #40] // 8-byte Folded Spill +; CHECK-NEXT: str x19, [sp, #40] // 8-byte Spill ; CHECK-NEXT: adrp x19, __imp_swift_task_dealloc ; CHECK-NEXT: str xzr, [sp, #16] ; CHECK-NEXT: ldr x8, [x0] @@ -36,7 +36,7 @@ define hidden swifttailcc void @"$ss23withCheckedContinuation8function_xSS_yScCy ; CHECK-NEXT: ldp x30, x29, [sp, #24] // 16-byte Folded Reload ; CHECK-NEXT: mov x0, x20 ; CHECK-NEXT: ldr x1, [x20, #8] -; CHECK-NEXT: ldr x19, [sp, #40] // 8-byte Folded Reload +; CHECK-NEXT: ldr x19, [sp, #40] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #48 ; CHECK-NEXT: br x1 entryresume.0: diff --git a/llvm/test/CodeGen/AArch64/swifterror.ll b/llvm/test/CodeGen/AArch64/swifterror.ll index 07ee87e880aff..867e89748d86d 100644 --- a/llvm/test/CodeGen/AArch64/swifterror.ll +++ b/llvm/test/CodeGen/AArch64/swifterror.ll @@ -112,18 +112,18 @@ define float @caller(ptr %error_ref) { ; CHECK-O0-AARCH64-NEXT: .cfi_offset w21, -24 ; CHECK-O0-AARCH64-NEXT: .cfi_offset w22, -32 ; CHECK-O0-AARCH64-NEXT: ; implicit-def: $x1 -; CHECK-O0-AARCH64-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-O0-AARCH64-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-O0-AARCH64-NEXT: mov x21, xzr ; CHECK-O0-AARCH64-NEXT: bl _foo -; CHECK-O0-AARCH64-NEXT: str x21, [sp, #16] ; 8-byte Folded Spill +; CHECK-O0-AARCH64-NEXT: str x21, [sp, #16] ; 8-byte Spill ; CHECK-O0-AARCH64-NEXT: cbnz x21, LBB1_2 ; CHECK-O0-AARCH64-NEXT: ; %bb.1: ; %cont -; CHECK-O0-AARCH64-NEXT: ldr x9, [sp, #8] ; 8-byte Folded Reload -; CHECK-O0-AARCH64-NEXT: ldr x8, [sp, #16] ; 8-byte Folded Reload +; CHECK-O0-AARCH64-NEXT: ldr x9, [sp, #8] ; 8-byte Reload +; CHECK-O0-AARCH64-NEXT: ldr x8, [sp, #16] ; 8-byte Reload ; CHECK-O0-AARCH64-NEXT: ldrb w8, [x8, #8] ; CHECK-O0-AARCH64-NEXT: strb w8, [x9] ; CHECK-O0-AARCH64-NEXT: LBB1_2: ; %handler -; CHECK-O0-AARCH64-NEXT: ldr x0, [sp, #16] ; 8-byte Folded Reload +; CHECK-O0-AARCH64-NEXT: ldr x0, [sp, #16] ; 8-byte Reload ; CHECK-O0-AARCH64-NEXT: bl _free ; CHECK-O0-AARCH64-NEXT: fmov s0, #1.00000000 ; CHECK-O0-AARCH64-NEXT: ldp x29, x30, [sp, #48] ; 16-byte Folded Reload @@ -173,20 +173,20 @@ define float @caller(ptr %error_ref) { ; CHECK-O0-ARM64_32-NEXT: .cfi_offset w21, -24 ; CHECK-O0-ARM64_32-NEXT: .cfi_offset w22, -32 ; CHECK-O0-ARM64_32-NEXT: ; implicit-def: $x1 -; CHECK-O0-ARM64_32-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: mov x21, xzr ; CHECK-O0-ARM64_32-NEXT: bl _foo -; CHECK-O0-ARM64_32-NEXT: str x21, [sp, #16] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: str x21, [sp, #16] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: cmp x21, #0 ; CHECK-O0-ARM64_32-NEXT: b.ne LBB1_2 ; CHECK-O0-ARM64_32-NEXT: ; %bb.1: ; %cont -; CHECK-O0-ARM64_32-NEXT: ldr x9, [sp, #8] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: ldr x8, [sp, #16] ; 8-byte Folded Reload +; CHECK-O0-ARM64_32-NEXT: ldr x9, [sp, #8] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: ldr x8, [sp, #16] ; 8-byte Reload ; CHECK-O0-ARM64_32-NEXT: ldrb w8, [x8, #8] ; CHECK-O0-ARM64_32-NEXT: ; kill: def $w0 killed $w8 ; CHECK-O0-ARM64_32-NEXT: strb w8, [x9] ; CHECK-O0-ARM64_32-NEXT: LBB1_2: ; %handler -; CHECK-O0-ARM64_32-NEXT: ldr x0, [sp, #16] ; 8-byte Folded Reload +; CHECK-O0-ARM64_32-NEXT: ldr x0, [sp, #16] ; 8-byte Reload ; CHECK-O0-ARM64_32-NEXT: bl _free ; CHECK-O0-ARM64_32-NEXT: fmov s0, #1.00000000 ; CHECK-O0-ARM64_32-NEXT: ldp x29, x30, [sp, #48] ; 16-byte Folded Reload @@ -268,27 +268,27 @@ define float @caller2(ptr %error_ref) { ; CHECK-O0-AARCH64-NEXT: .cfi_offset w21, -24 ; CHECK-O0-AARCH64-NEXT: .cfi_offset w22, -32 ; CHECK-O0-AARCH64-NEXT: ; implicit-def: $x1 -; CHECK-O0-AARCH64-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill +; CHECK-O0-AARCH64-NEXT: str x0, [sp, #16] ; 8-byte Spill ; CHECK-O0-AARCH64-NEXT: LBB2_1: ; %bb_loop ; CHECK-O0-AARCH64-NEXT: ; =>This Inner Loop Header: Depth=1 ; CHECK-O0-AARCH64-NEXT: mov x21, xzr ; CHECK-O0-AARCH64-NEXT: bl _foo -; CHECK-O0-AARCH64-NEXT: str s0, [sp, #4] ; 4-byte Folded Spill -; CHECK-O0-AARCH64-NEXT: str x21, [sp, #8] ; 8-byte Folded Spill +; CHECK-O0-AARCH64-NEXT: str s0, [sp, #4] ; 4-byte Spill +; CHECK-O0-AARCH64-NEXT: str x21, [sp, #8] ; 8-byte Spill ; CHECK-O0-AARCH64-NEXT: cbnz x21, LBB2_4 ; CHECK-O0-AARCH64-NEXT: ; %bb.2: ; %cont ; CHECK-O0-AARCH64-NEXT: ; in Loop: Header=BB2_1 Depth=1 -; CHECK-O0-AARCH64-NEXT: ldr s0, [sp, #4] ; 4-byte Folded Reload +; CHECK-O0-AARCH64-NEXT: ldr s0, [sp, #4] ; 4-byte Reload ; CHECK-O0-AARCH64-NEXT: fmov s1, #1.00000000 ; CHECK-O0-AARCH64-NEXT: fcmp s0, s1 ; CHECK-O0-AARCH64-NEXT: b.le LBB2_1 ; CHECK-O0-AARCH64-NEXT: ; %bb.3: ; %bb_end -; CHECK-O0-AARCH64-NEXT: ldr x9, [sp, #16] ; 8-byte Folded Reload -; CHECK-O0-AARCH64-NEXT: ldr x8, [sp, #8] ; 8-byte Folded Reload +; CHECK-O0-AARCH64-NEXT: ldr x9, [sp, #16] ; 8-byte Reload +; CHECK-O0-AARCH64-NEXT: ldr x8, [sp, #8] ; 8-byte Reload ; CHECK-O0-AARCH64-NEXT: ldrb w8, [x8, #8] ; CHECK-O0-AARCH64-NEXT: strb w8, [x9] ; CHECK-O0-AARCH64-NEXT: LBB2_4: ; %handler -; CHECK-O0-AARCH64-NEXT: ldr x0, [sp, #8] ; 8-byte Folded Reload +; CHECK-O0-AARCH64-NEXT: ldr x0, [sp, #8] ; 8-byte Reload ; CHECK-O0-AARCH64-NEXT: bl _free ; CHECK-O0-AARCH64-NEXT: fmov s0, #1.00000000 ; CHECK-O0-AARCH64-NEXT: ldp x29, x30, [sp, #48] ; 16-byte Folded Reload @@ -349,29 +349,29 @@ define float @caller2(ptr %error_ref) { ; CHECK-O0-ARM64_32-NEXT: .cfi_offset w21, -24 ; CHECK-O0-ARM64_32-NEXT: .cfi_offset w22, -32 ; CHECK-O0-ARM64_32-NEXT: ; implicit-def: $x1 -; CHECK-O0-ARM64_32-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: str x0, [sp, #16] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: LBB2_1: ; %bb_loop ; CHECK-O0-ARM64_32-NEXT: ; =>This Inner Loop Header: Depth=1 ; CHECK-O0-ARM64_32-NEXT: mov x21, xzr ; CHECK-O0-ARM64_32-NEXT: bl _foo -; CHECK-O0-ARM64_32-NEXT: str s0, [sp, #4] ; 4-byte Folded Spill -; CHECK-O0-ARM64_32-NEXT: str x21, [sp, #8] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: str s0, [sp, #4] ; 4-byte Spill +; CHECK-O0-ARM64_32-NEXT: str x21, [sp, #8] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: cmp x21, #0 ; CHECK-O0-ARM64_32-NEXT: b.ne LBB2_4 ; CHECK-O0-ARM64_32-NEXT: ; %bb.2: ; %cont ; CHECK-O0-ARM64_32-NEXT: ; in Loop: Header=BB2_1 Depth=1 -; CHECK-O0-ARM64_32-NEXT: ldr s0, [sp, #4] ; 4-byte Folded Reload +; CHECK-O0-ARM64_32-NEXT: ldr s0, [sp, #4] ; 4-byte Reload ; CHECK-O0-ARM64_32-NEXT: fmov s1, #1.00000000 ; CHECK-O0-ARM64_32-NEXT: fcmp s0, s1 ; CHECK-O0-ARM64_32-NEXT: b.le LBB2_1 ; CHECK-O0-ARM64_32-NEXT: ; %bb.3: ; %bb_end -; CHECK-O0-ARM64_32-NEXT: ldr x9, [sp, #16] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: ldr x8, [sp, #8] ; 8-byte Folded Reload +; CHECK-O0-ARM64_32-NEXT: ldr x9, [sp, #16] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: ldr x8, [sp, #8] ; 8-byte Reload ; CHECK-O0-ARM64_32-NEXT: ldrb w8, [x8, #8] ; CHECK-O0-ARM64_32-NEXT: ; kill: def $w0 killed $w8 ; CHECK-O0-ARM64_32-NEXT: strb w8, [x9] ; CHECK-O0-ARM64_32-NEXT: LBB2_4: ; %handler -; CHECK-O0-ARM64_32-NEXT: ldr x0, [sp, #8] ; 8-byte Folded Reload +; CHECK-O0-ARM64_32-NEXT: ldr x0, [sp, #8] ; 8-byte Reload ; CHECK-O0-ARM64_32-NEXT: bl _free ; CHECK-O0-ARM64_32-NEXT: fmov s0, #1.00000000 ; CHECK-O0-ARM64_32-NEXT: ldp x29, x30, [sp, #48] ; 16-byte Folded Reload @@ -435,7 +435,7 @@ define float @foo_if(ptr swifterror %error_ptr_ref, i32 %cc) { ; CHECK-O0-AARCH64-NEXT: .cfi_def_cfa w29, 16 ; CHECK-O0-AARCH64-NEXT: .cfi_offset w30, -8 ; CHECK-O0-AARCH64-NEXT: .cfi_offset w29, -16 -; CHECK-O0-AARCH64-NEXT: str x21, [sp, #8] ; 8-byte Folded Spill +; CHECK-O0-AARCH64-NEXT: str x21, [sp, #8] ; 8-byte Spill ; CHECK-O0-AARCH64-NEXT: cbz w0, LBB3_2 ; CHECK-O0-AARCH64-NEXT: ; %bb.1: ; %gen_error ; CHECK-O0-AARCH64-NEXT: mov w8, #16 ; =0x10 @@ -449,7 +449,7 @@ define float @foo_if(ptr swifterror %error_ptr_ref, i32 %cc) { ; CHECK-O0-AARCH64-NEXT: add sp, sp, #32 ; CHECK-O0-AARCH64-NEXT: ret ; CHECK-O0-AARCH64-NEXT: LBB3_2: ; %normal -; CHECK-O0-AARCH64-NEXT: ldr x21, [sp, #8] ; 8-byte Folded Reload +; CHECK-O0-AARCH64-NEXT: ldr x21, [sp, #8] ; 8-byte Reload ; CHECK-O0-AARCH64-NEXT: movi d0, #0000000000000000 ; CHECK-O0-AARCH64-NEXT: ldp x29, x30, [sp, #16] ; 16-byte Folded Reload ; CHECK-O0-AARCH64-NEXT: add sp, sp, #32 @@ -458,10 +458,10 @@ define float @foo_if(ptr swifterror %error_ptr_ref, i32 %cc) { ; CHECK-O0-ARM64_32-LABEL: foo_if: ; CHECK-O0-ARM64_32: ; %bb.0: ; %entry ; CHECK-O0-ARM64_32-NEXT: sub sp, sp, #32 -; CHECK-O0-ARM64_32-NEXT: str x30, [sp, #16] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: str x30, [sp, #16] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: .cfi_def_cfa_offset 32 ; CHECK-O0-ARM64_32-NEXT: .cfi_offset w30, -16 -; CHECK-O0-ARM64_32-NEXT: str x21, [sp, #8] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: str x21, [sp, #8] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: cbz w0, LBB3_2 ; CHECK-O0-ARM64_32-NEXT: ; %bb.1: ; %gen_error ; CHECK-O0-ARM64_32-NEXT: mov w8, #16 ; =0x10 @@ -471,13 +471,13 @@ define float @foo_if(ptr swifterror %error_ptr_ref, i32 %cc) { ; CHECK-O0-ARM64_32-NEXT: mov w8, #1 ; =0x1 ; CHECK-O0-ARM64_32-NEXT: strb w8, [x0, #8] ; CHECK-O0-ARM64_32-NEXT: fmov s0, #1.00000000 -; CHECK-O0-ARM64_32-NEXT: ldr x30, [sp, #16] ; 8-byte Folded Reload +; CHECK-O0-ARM64_32-NEXT: ldr x30, [sp, #16] ; 8-byte Reload ; CHECK-O0-ARM64_32-NEXT: add sp, sp, #32 ; CHECK-O0-ARM64_32-NEXT: ret ; CHECK-O0-ARM64_32-NEXT: LBB3_2: ; %normal -; CHECK-O0-ARM64_32-NEXT: ldr x21, [sp, #8] ; 8-byte Folded Reload +; CHECK-O0-ARM64_32-NEXT: ldr x21, [sp, #8] ; 8-byte Reload ; CHECK-O0-ARM64_32-NEXT: movi d0, #0000000000000000 -; CHECK-O0-ARM64_32-NEXT: ldr x30, [sp, #16] ; 8-byte Folded Reload +; CHECK-O0-ARM64_32-NEXT: ldr x30, [sp, #16] ; 8-byte Reload ; CHECK-O0-ARM64_32-NEXT: add sp, sp, #32 ; CHECK-O0-ARM64_32-NEXT: ret @@ -549,7 +549,7 @@ define float @foo_loop(ptr swifterror %error_ptr_ref, i32 %cc, float %cc2) { ; CHECK-O0-AARCH64-NEXT: .cfi_def_cfa w29, 16 ; CHECK-O0-AARCH64-NEXT: .cfi_offset w30, -8 ; CHECK-O0-AARCH64-NEXT: .cfi_offset w29, -16 -; CHECK-O0-AARCH64-NEXT: str s0, [sp, #16] ; 4-byte Folded Spill +; CHECK-O0-AARCH64-NEXT: str s0, [sp, #16] ; 4-byte Spill ; CHECK-O0-AARCH64-NEXT: stur w0, [x29, #-12] ; 4-byte Folded Spill ; CHECK-O0-AARCH64-NEXT: stur x21, [x29, #-8] ; 8-byte Folded Spill ; CHECK-O0-AARCH64-NEXT: b LBB4_1 @@ -557,7 +557,7 @@ define float @foo_loop(ptr swifterror %error_ptr_ref, i32 %cc, float %cc2) { ; CHECK-O0-AARCH64-NEXT: ; =>This Inner Loop Header: Depth=1 ; CHECK-O0-AARCH64-NEXT: ldur w8, [x29, #-12] ; 4-byte Folded Reload ; CHECK-O0-AARCH64-NEXT: ldur x0, [x29, #-8] ; 8-byte Folded Reload -; CHECK-O0-AARCH64-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-O0-AARCH64-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-O0-AARCH64-NEXT: cbz w8, LBB4_3 ; CHECK-O0-AARCH64-NEXT: ; %bb.2: ; %gen_error ; CHECK-O0-AARCH64-NEXT: ; in Loop: Header=BB4_1 Depth=1 @@ -567,18 +567,18 @@ define float @foo_loop(ptr swifterror %error_ptr_ref, i32 %cc, float %cc2) { ; CHECK-O0-AARCH64-NEXT: mov x9, x0 ; CHECK-O0-AARCH64-NEXT: mov w8, #1 ; =0x1 ; CHECK-O0-AARCH64-NEXT: strb w8, [x9, #8] -; CHECK-O0-AARCH64-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-O0-AARCH64-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-O0-AARCH64-NEXT: LBB4_3: ; %bb_cont ; CHECK-O0-AARCH64-NEXT: ; in Loop: Header=BB4_1 Depth=1 -; CHECK-O0-AARCH64-NEXT: ldr s0, [sp, #16] ; 4-byte Folded Reload -; CHECK-O0-AARCH64-NEXT: ldr x0, [sp, #8] ; 8-byte Folded Reload -; CHECK-O0-AARCH64-NEXT: str x0, [sp] ; 8-byte Folded Spill +; CHECK-O0-AARCH64-NEXT: ldr s0, [sp, #16] ; 4-byte Reload +; CHECK-O0-AARCH64-NEXT: ldr x0, [sp, #8] ; 8-byte Reload +; CHECK-O0-AARCH64-NEXT: str x0, [sp] ; 8-byte Spill ; CHECK-O0-AARCH64-NEXT: fmov s1, #1.00000000 ; CHECK-O0-AARCH64-NEXT: fcmp s0, s1 ; CHECK-O0-AARCH64-NEXT: stur x0, [x29, #-8] ; 8-byte Folded Spill ; CHECK-O0-AARCH64-NEXT: b.le LBB4_1 ; CHECK-O0-AARCH64-NEXT: ; %bb.4: ; %bb_end -; CHECK-O0-AARCH64-NEXT: ldr x21, [sp] ; 8-byte Folded Reload +; CHECK-O0-AARCH64-NEXT: ldr x21, [sp] ; 8-byte Reload ; CHECK-O0-AARCH64-NEXT: movi d0, #0000000000000000 ; CHECK-O0-AARCH64-NEXT: ldp x29, x30, [sp, #32] ; 16-byte Folded Reload ; CHECK-O0-AARCH64-NEXT: add sp, sp, #48 @@ -587,18 +587,18 @@ define float @foo_loop(ptr swifterror %error_ptr_ref, i32 %cc, float %cc2) { ; CHECK-O0-ARM64_32-LABEL: foo_loop: ; CHECK-O0-ARM64_32: ; %bb.0: ; %entry ; CHECK-O0-ARM64_32-NEXT: sub sp, sp, #48 -; CHECK-O0-ARM64_32-NEXT: str x30, [sp, #32] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: str x30, [sp, #32] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: .cfi_def_cfa_offset 48 ; CHECK-O0-ARM64_32-NEXT: .cfi_offset w30, -16 -; CHECK-O0-ARM64_32-NEXT: str s0, [sp, #16] ; 4-byte Folded Spill -; CHECK-O0-ARM64_32-NEXT: str w0, [sp, #20] ; 4-byte Folded Spill -; CHECK-O0-ARM64_32-NEXT: str x21, [sp, #24] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: str s0, [sp, #16] ; 4-byte Spill +; CHECK-O0-ARM64_32-NEXT: str w0, [sp, #20] ; 4-byte Spill +; CHECK-O0-ARM64_32-NEXT: str x21, [sp, #24] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: b LBB4_1 ; CHECK-O0-ARM64_32-NEXT: LBB4_1: ; %bb_loop ; CHECK-O0-ARM64_32-NEXT: ; =>This Inner Loop Header: Depth=1 -; CHECK-O0-ARM64_32-NEXT: ldr w8, [sp, #20] ; 4-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: ldr x0, [sp, #24] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: ldr w8, [sp, #20] ; 4-byte Reload +; CHECK-O0-ARM64_32-NEXT: ldr x0, [sp, #24] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: cbz w8, LBB4_3 ; CHECK-O0-ARM64_32-NEXT: ; %bb.2: ; %gen_error ; CHECK-O0-ARM64_32-NEXT: ; in Loop: Header=BB4_1 Depth=1 @@ -610,20 +610,20 @@ define float @foo_loop(ptr swifterror %error_ptr_ref, i32 %cc, float %cc2) { ; CHECK-O0-ARM64_32-NEXT: mov x0, x9 ; CHECK-O0-ARM64_32-NEXT: mov w8, #1 ; =0x1 ; CHECK-O0-ARM64_32-NEXT: strb w8, [x9, #8] -; CHECK-O0-ARM64_32-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: LBB4_3: ; %bb_cont ; CHECK-O0-ARM64_32-NEXT: ; in Loop: Header=BB4_1 Depth=1 -; CHECK-O0-ARM64_32-NEXT: ldr s0, [sp, #16] ; 4-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: ldr x0, [sp, #8] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: str x0, [sp] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: ldr s0, [sp, #16] ; 4-byte Reload +; CHECK-O0-ARM64_32-NEXT: ldr x0, [sp, #8] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: str x0, [sp] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: fmov s1, #1.00000000 ; CHECK-O0-ARM64_32-NEXT: fcmp s0, s1 -; CHECK-O0-ARM64_32-NEXT: str x0, [sp, #24] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: str x0, [sp, #24] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: b.le LBB4_1 ; CHECK-O0-ARM64_32-NEXT: ; %bb.4: ; %bb_end -; CHECK-O0-ARM64_32-NEXT: ldr x21, [sp] ; 8-byte Folded Reload +; CHECK-O0-ARM64_32-NEXT: ldr x21, [sp] ; 8-byte Reload ; CHECK-O0-ARM64_32-NEXT: movi d0, #0000000000000000 -; CHECK-O0-ARM64_32-NEXT: ldr x30, [sp, #32] ; 8-byte Folded Reload +; CHECK-O0-ARM64_32-NEXT: ldr x30, [sp, #32] ; 8-byte Reload ; CHECK-O0-ARM64_32-NEXT: add sp, sp, #48 ; CHECK-O0-ARM64_32-NEXT: ret @@ -690,11 +690,11 @@ define void @foo_sret(ptr sret(%struct.S) %agg.result, i32 %val1, ptr swifterror ; CHECK-O0-AARCH64-NEXT: .cfi_offset w30, -8 ; CHECK-O0-AARCH64-NEXT: .cfi_offset w29, -16 ; CHECK-O0-AARCH64-NEXT: stur w0, [x29, #-4] ; 4-byte Folded Spill -; CHECK-O0-AARCH64-NEXT: str x8, [sp] ; 8-byte Folded Spill +; CHECK-O0-AARCH64-NEXT: str x8, [sp] ; 8-byte Spill ; CHECK-O0-AARCH64-NEXT: mov w8, #16 ; =0x10 ; CHECK-O0-AARCH64-NEXT: mov w0, w8 ; CHECK-O0-AARCH64-NEXT: bl _malloc -; CHECK-O0-AARCH64-NEXT: ldr x8, [sp] ; 8-byte Folded Reload +; CHECK-O0-AARCH64-NEXT: ldr x8, [sp] ; 8-byte Reload ; CHECK-O0-AARCH64-NEXT: mov x10, x0 ; CHECK-O0-AARCH64-NEXT: ldur w0, [x29, #-4] ; 4-byte Folded Reload ; CHECK-O0-AARCH64-NEXT: mov x21, x10 @@ -708,22 +708,22 @@ define void @foo_sret(ptr sret(%struct.S) %agg.result, i32 %val1, ptr swifterror ; CHECK-O0-ARM64_32-LABEL: foo_sret: ; CHECK-O0-ARM64_32: ; %bb.0: ; %entry ; CHECK-O0-ARM64_32-NEXT: sub sp, sp, #32 -; CHECK-O0-ARM64_32-NEXT: str x30, [sp, #16] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: str x30, [sp, #16] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: .cfi_def_cfa_offset 32 ; CHECK-O0-ARM64_32-NEXT: .cfi_offset w30, -16 -; CHECK-O0-ARM64_32-NEXT: str w0, [sp, #12] ; 4-byte Folded Spill -; CHECK-O0-ARM64_32-NEXT: str x8, [sp] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: str w0, [sp, #12] ; 4-byte Spill +; CHECK-O0-ARM64_32-NEXT: str x8, [sp] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: mov w8, #16 ; =0x10 ; CHECK-O0-ARM64_32-NEXT: mov w0, w8 ; CHECK-O0-ARM64_32-NEXT: bl _malloc -; CHECK-O0-ARM64_32-NEXT: ldr x8, [sp] ; 8-byte Folded Reload +; CHECK-O0-ARM64_32-NEXT: ldr x8, [sp] ; 8-byte Reload ; CHECK-O0-ARM64_32-NEXT: mov x10, x0 -; CHECK-O0-ARM64_32-NEXT: ldr w0, [sp, #12] ; 4-byte Folded Reload +; CHECK-O0-ARM64_32-NEXT: ldr w0, [sp, #12] ; 4-byte Reload ; CHECK-O0-ARM64_32-NEXT: mov x21, x10 ; CHECK-O0-ARM64_32-NEXT: mov w9, #1 ; =0x1 ; CHECK-O0-ARM64_32-NEXT: strb w9, [x10, #8] ; CHECK-O0-ARM64_32-NEXT: str w0, [x8, #4] -; CHECK-O0-ARM64_32-NEXT: ldr x30, [sp, #16] ; 8-byte Folded Reload +; CHECK-O0-ARM64_32-NEXT: ldr x30, [sp, #16] ; 8-byte Reload ; CHECK-O0-ARM64_32-NEXT: add sp, sp, #32 ; CHECK-O0-ARM64_32-NEXT: ret @@ -786,20 +786,20 @@ define float @caller3(ptr %error_ref) { ; CHECK-O0-AARCH64-NEXT: .cfi_offset w21, -24 ; CHECK-O0-AARCH64-NEXT: .cfi_offset w22, -32 ; CHECK-O0-AARCH64-NEXT: ; implicit-def: $x1 -; CHECK-O0-AARCH64-NEXT: str x0, [sp] ; 8-byte Folded Spill +; CHECK-O0-AARCH64-NEXT: str x0, [sp] ; 8-byte Spill ; CHECK-O0-AARCH64-NEXT: mov x21, xzr ; CHECK-O0-AARCH64-NEXT: add x8, sp, #24 ; CHECK-O0-AARCH64-NEXT: mov w0, #1 ; =0x1 ; CHECK-O0-AARCH64-NEXT: bl _foo_sret -; CHECK-O0-AARCH64-NEXT: str x21, [sp, #8] ; 8-byte Folded Spill +; CHECK-O0-AARCH64-NEXT: str x21, [sp, #8] ; 8-byte Spill ; CHECK-O0-AARCH64-NEXT: cbnz x21, LBB6_2 ; CHECK-O0-AARCH64-NEXT: ; %bb.1: ; %cont -; CHECK-O0-AARCH64-NEXT: ldr x9, [sp] ; 8-byte Folded Reload -; CHECK-O0-AARCH64-NEXT: ldr x8, [sp, #8] ; 8-byte Folded Reload +; CHECK-O0-AARCH64-NEXT: ldr x9, [sp] ; 8-byte Reload +; CHECK-O0-AARCH64-NEXT: ldr x8, [sp, #8] ; 8-byte Reload ; CHECK-O0-AARCH64-NEXT: ldrb w8, [x8, #8] ; CHECK-O0-AARCH64-NEXT: strb w8, [x9] ; CHECK-O0-AARCH64-NEXT: LBB6_2: ; %handler -; CHECK-O0-AARCH64-NEXT: ldr x0, [sp, #8] ; 8-byte Folded Reload +; CHECK-O0-AARCH64-NEXT: ldr x0, [sp, #8] ; 8-byte Reload ; CHECK-O0-AARCH64-NEXT: bl _free ; CHECK-O0-AARCH64-NEXT: fmov s0, #1.00000000 ; CHECK-O0-AARCH64-NEXT: ldp x29, x30, [sp, #64] ; 16-byte Folded Reload @@ -851,22 +851,22 @@ define float @caller3(ptr %error_ref) { ; CHECK-O0-ARM64_32-NEXT: .cfi_offset w21, -24 ; CHECK-O0-ARM64_32-NEXT: .cfi_offset w22, -32 ; CHECK-O0-ARM64_32-NEXT: ; implicit-def: $x1 -; CHECK-O0-ARM64_32-NEXT: str x0, [sp] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: str x0, [sp] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: mov x21, xzr ; CHECK-O0-ARM64_32-NEXT: add x8, sp, #24 ; CHECK-O0-ARM64_32-NEXT: mov w0, #1 ; =0x1 ; CHECK-O0-ARM64_32-NEXT: bl _foo_sret -; CHECK-O0-ARM64_32-NEXT: str x21, [sp, #8] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: str x21, [sp, #8] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: cmp x21, #0 ; CHECK-O0-ARM64_32-NEXT: b.ne LBB6_2 ; CHECK-O0-ARM64_32-NEXT: ; %bb.1: ; %cont -; CHECK-O0-ARM64_32-NEXT: ldr x9, [sp] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: ldr x8, [sp, #8] ; 8-byte Folded Reload +; CHECK-O0-ARM64_32-NEXT: ldr x9, [sp] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: ldr x8, [sp, #8] ; 8-byte Reload ; CHECK-O0-ARM64_32-NEXT: ldrb w8, [x8, #8] ; CHECK-O0-ARM64_32-NEXT: ; kill: def $w0 killed $w8 ; CHECK-O0-ARM64_32-NEXT: strb w8, [x9] ; CHECK-O0-ARM64_32-NEXT: LBB6_2: ; %handler -; CHECK-O0-ARM64_32-NEXT: ldr x0, [sp, #8] ; 8-byte Folded Reload +; CHECK-O0-ARM64_32-NEXT: ldr x0, [sp, #8] ; 8-byte Reload ; CHECK-O0-ARM64_32-NEXT: bl _free ; CHECK-O0-ARM64_32-NEXT: fmov s0, #1.00000000 ; CHECK-O0-ARM64_32-NEXT: ldp x29, x30, [sp, #64] ; 16-byte Folded Reload @@ -997,7 +997,7 @@ define float @foo_vararg(ptr swifterror %error_ptr_ref, ...) { ; CHECK-O0-ARM64_32-LABEL: foo_vararg: ; CHECK-O0-ARM64_32: ; %bb.0: ; %entry ; CHECK-O0-ARM64_32-NEXT: sub sp, sp, #48 -; CHECK-O0-ARM64_32-NEXT: str x30, [sp, #32] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: str x30, [sp, #32] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: .cfi_def_cfa_offset 48 ; CHECK-O0-ARM64_32-NEXT: .cfi_offset w30, -16 ; CHECK-O0-ARM64_32-NEXT: mov w8, #16 ; =0x10 @@ -1031,7 +1031,7 @@ define float @foo_vararg(ptr swifterror %error_ptr_ref, ...) { ; CHECK-O0-ARM64_32-NEXT: ldr w8, [x8] ; CHECK-O0-ARM64_32-NEXT: str w8, [sp, #12] ; CHECK-O0-ARM64_32-NEXT: fmov s0, #1.00000000 -; CHECK-O0-ARM64_32-NEXT: ldr x30, [sp, #32] ; 8-byte Folded Reload +; CHECK-O0-ARM64_32-NEXT: ldr x30, [sp, #32] ; 8-byte Reload ; CHECK-O0-ARM64_32-NEXT: add sp, sp, #48 ; CHECK-O0-ARM64_32-NEXT: ret @@ -1114,7 +1114,7 @@ define float @caller4(ptr %error_ref) { ; CHECK-O0-AARCH64-NEXT: .cfi_offset w21, -24 ; CHECK-O0-AARCH64-NEXT: .cfi_offset w22, -32 ; CHECK-O0-AARCH64-NEXT: ; implicit-def: $x1 -; CHECK-O0-AARCH64-NEXT: str x0, [sp, #24] ; 8-byte Folded Spill +; CHECK-O0-AARCH64-NEXT: str x0, [sp, #24] ; 8-byte Spill ; CHECK-O0-AARCH64-NEXT: mov x21, xzr ; CHECK-O0-AARCH64-NEXT: mov w8, #10 ; =0xa ; CHECK-O0-AARCH64-NEXT: stur w8, [x29, #-28] @@ -1133,15 +1133,15 @@ define float @caller4(ptr %error_ref) { ; CHECK-O0-AARCH64-NEXT: str x10, [x9, #8] ; CHECK-O0-AARCH64-NEXT: str x8, [x9] ; CHECK-O0-AARCH64-NEXT: bl _foo_vararg -; CHECK-O0-AARCH64-NEXT: str x21, [sp, #32] ; 8-byte Folded Spill +; CHECK-O0-AARCH64-NEXT: str x21, [sp, #32] ; 8-byte Spill ; CHECK-O0-AARCH64-NEXT: cbnz x21, LBB8_2 ; CHECK-O0-AARCH64-NEXT: ; %bb.1: ; %cont -; CHECK-O0-AARCH64-NEXT: ldr x9, [sp, #24] ; 8-byte Folded Reload -; CHECK-O0-AARCH64-NEXT: ldr x8, [sp, #32] ; 8-byte Folded Reload +; CHECK-O0-AARCH64-NEXT: ldr x9, [sp, #24] ; 8-byte Reload +; CHECK-O0-AARCH64-NEXT: ldr x8, [sp, #32] ; 8-byte Reload ; CHECK-O0-AARCH64-NEXT: ldrb w8, [x8, #8] ; CHECK-O0-AARCH64-NEXT: strb w8, [x9] ; CHECK-O0-AARCH64-NEXT: LBB8_2: ; %handler -; CHECK-O0-AARCH64-NEXT: ldr x0, [sp, #32] ; 8-byte Folded Reload +; CHECK-O0-AARCH64-NEXT: ldr x0, [sp, #32] ; 8-byte Reload ; CHECK-O0-AARCH64-NEXT: bl _free ; CHECK-O0-AARCH64-NEXT: fmov s0, #1.00000000 ; CHECK-O0-AARCH64-NEXT: ldp x29, x30, [sp, #80] ; 16-byte Folded Reload @@ -1200,7 +1200,7 @@ define float @caller4(ptr %error_ref) { ; CHECK-O0-ARM64_32-NEXT: .cfi_offset w21, -24 ; CHECK-O0-ARM64_32-NEXT: .cfi_offset w22, -32 ; CHECK-O0-ARM64_32-NEXT: ; implicit-def: $x1 -; CHECK-O0-ARM64_32-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: str x0, [sp, #16] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: mov x21, xzr ; CHECK-O0-ARM64_32-NEXT: mov w8, #10 ; =0xa ; CHECK-O0-ARM64_32-NEXT: str w8, [sp, #40] @@ -1216,17 +1216,17 @@ define float @caller4(ptr %error_ref) { ; CHECK-O0-ARM64_32-NEXT: str w10, [x9, #4] ; CHECK-O0-ARM64_32-NEXT: str w8, [x9] ; CHECK-O0-ARM64_32-NEXT: bl _foo_vararg -; CHECK-O0-ARM64_32-NEXT: str x21, [sp, #24] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: str x21, [sp, #24] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: cmp x21, #0 ; CHECK-O0-ARM64_32-NEXT: b.ne LBB8_2 ; CHECK-O0-ARM64_32-NEXT: ; %bb.1: ; %cont -; CHECK-O0-ARM64_32-NEXT: ldr x9, [sp, #16] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: ldr x8, [sp, #24] ; 8-byte Folded Reload +; CHECK-O0-ARM64_32-NEXT: ldr x9, [sp, #16] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: ldr x8, [sp, #24] ; 8-byte Reload ; CHECK-O0-ARM64_32-NEXT: ldrb w8, [x8, #8] ; CHECK-O0-ARM64_32-NEXT: ; kill: def $w0 killed $w8 ; CHECK-O0-ARM64_32-NEXT: strb w8, [x9] ; CHECK-O0-ARM64_32-NEXT: LBB8_2: ; %handler -; CHECK-O0-ARM64_32-NEXT: ldr x0, [sp, #24] ; 8-byte Folded Reload +; CHECK-O0-ARM64_32-NEXT: ldr x0, [sp, #24] ; 8-byte Reload ; CHECK-O0-ARM64_32-NEXT: bl _free ; CHECK-O0-ARM64_32-NEXT: fmov s0, #1.00000000 ; CHECK-O0-ARM64_32-NEXT: ldp x29, x30, [sp, #64] ; 16-byte Folded Reload @@ -1361,11 +1361,11 @@ define swiftcc void @swifterror_clobber(ptr nocapture swifterror %err) { ; CHECK-O0-AARCH64-NEXT: .cfi_def_cfa w29, 16 ; CHECK-O0-AARCH64-NEXT: .cfi_offset w30, -8 ; CHECK-O0-AARCH64-NEXT: .cfi_offset w29, -16 -; CHECK-O0-AARCH64-NEXT: str x21, [sp, #8] ; 8-byte Folded Spill +; CHECK-O0-AARCH64-NEXT: str x21, [sp, #8] ; 8-byte Spill ; CHECK-O0-AARCH64-NEXT: ; InlineAsm Start ; CHECK-O0-AARCH64-NEXT: nop ; CHECK-O0-AARCH64-NEXT: ; InlineAsm End -; CHECK-O0-AARCH64-NEXT: ldr x21, [sp, #8] ; 8-byte Folded Reload +; CHECK-O0-AARCH64-NEXT: ldr x21, [sp, #8] ; 8-byte Reload ; CHECK-O0-AARCH64-NEXT: ldp x29, x30, [sp, #16] ; 16-byte Folded Reload ; CHECK-O0-AARCH64-NEXT: add sp, sp, #32 ; CHECK-O0-AARCH64-NEXT: ret @@ -1374,11 +1374,11 @@ define swiftcc void @swifterror_clobber(ptr nocapture swifterror %err) { ; CHECK-O0-ARM64_32: ; %bb.0: ; CHECK-O0-ARM64_32-NEXT: sub sp, sp, #16 ; CHECK-O0-ARM64_32-NEXT: .cfi_def_cfa_offset 16 -; CHECK-O0-ARM64_32-NEXT: str x21, [sp, #8] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: str x21, [sp, #8] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: ; InlineAsm Start ; CHECK-O0-ARM64_32-NEXT: nop ; CHECK-O0-ARM64_32-NEXT: ; InlineAsm End -; CHECK-O0-ARM64_32-NEXT: ldr x21, [sp, #8] ; 8-byte Folded Reload +; CHECK-O0-ARM64_32-NEXT: ldr x21, [sp, #8] ; 8-byte Reload ; CHECK-O0-ARM64_32-NEXT: add sp, sp, #16 ; CHECK-O0-ARM64_32-NEXT: ret call void asm sideeffect "nop", "~{x21}"() @@ -1458,7 +1458,7 @@ define swiftcc void @params_in_reg(i64, i64, i64, i64, i64, i64, i64, i64, ptr s ; CHECK-APPLE-NEXT: .cfi_offset w26, -72 ; CHECK-APPLE-NEXT: .cfi_offset w27, -80 ; CHECK-APPLE-NEXT: .cfi_offset w28, -96 -; CHECK-APPLE-NEXT: str x20, [sp] ; 8-byte Folded Spill +; CHECK-APPLE-NEXT: str x20, [sp] ; 8-byte Spill ; CHECK-APPLE-NEXT: mov x23, x7 ; CHECK-APPLE-NEXT: mov x24, x6 ; CHECK-APPLE-NEXT: mov x25, x5 @@ -1493,14 +1493,14 @@ define swiftcc void @params_in_reg(i64, i64, i64, i64, i64, i64, i64, i64, ptr s ; CHECK-APPLE-NEXT: ldp x23, x22, [sp, #64] ; 16-byte Folded Reload ; CHECK-APPLE-NEXT: ldp x25, x24, [sp, #48] ; 16-byte Folded Reload ; CHECK-APPLE-NEXT: ldp x27, x26, [sp, #32] ; 16-byte Folded Reload -; CHECK-APPLE-NEXT: ldr x28, [sp, #16] ; 8-byte Folded Reload +; CHECK-APPLE-NEXT: ldr x28, [sp, #16] ; 8-byte Reload ; CHECK-APPLE-NEXT: add sp, sp, #112 ; CHECK-APPLE-NEXT: ret ; ; CHECK-O0-AARCH64-LABEL: params_in_reg: ; CHECK-O0-AARCH64: ; %bb.0: ; CHECK-O0-AARCH64-NEXT: sub sp, sp, #128 -; CHECK-O0-AARCH64-NEXT: str x20, [sp, #96] ; 8-byte Folded Spill +; CHECK-O0-AARCH64-NEXT: str x20, [sp, #96] ; 8-byte Spill ; CHECK-O0-AARCH64-NEXT: stp x29, x30, [sp, #112] ; 16-byte Folded Spill ; CHECK-O0-AARCH64-NEXT: add x29, sp, #112 ; CHECK-O0-AARCH64-NEXT: .cfi_def_cfa w29, 16 @@ -1508,15 +1508,15 @@ define swiftcc void @params_in_reg(i64, i64, i64, i64, i64, i64, i64, i64, ptr s ; CHECK-O0-AARCH64-NEXT: .cfi_offset w29, -16 ; CHECK-O0-AARCH64-NEXT: .cfi_offset w20, -32 ; CHECK-O0-AARCH64-NEXT: stur x21, [x29, #-32] ; 8-byte Folded Spill -; CHECK-O0-AARCH64-NEXT: str x20, [sp, #8] ; 8-byte Folded Spill +; CHECK-O0-AARCH64-NEXT: str x20, [sp, #8] ; 8-byte Spill ; CHECK-O0-AARCH64-NEXT: stur x7, [x29, #-40] ; 8-byte Folded Spill ; CHECK-O0-AARCH64-NEXT: stur x6, [x29, #-48] ; 8-byte Folded Spill -; CHECK-O0-AARCH64-NEXT: str x5, [sp, #56] ; 8-byte Folded Spill -; CHECK-O0-AARCH64-NEXT: str x4, [sp, #48] ; 8-byte Folded Spill -; CHECK-O0-AARCH64-NEXT: str x3, [sp, #40] ; 8-byte Folded Spill -; CHECK-O0-AARCH64-NEXT: str x2, [sp, #32] ; 8-byte Folded Spill -; CHECK-O0-AARCH64-NEXT: str x1, [sp, #24] ; 8-byte Folded Spill -; CHECK-O0-AARCH64-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill +; CHECK-O0-AARCH64-NEXT: str x5, [sp, #56] ; 8-byte Spill +; CHECK-O0-AARCH64-NEXT: str x4, [sp, #48] ; 8-byte Spill +; CHECK-O0-AARCH64-NEXT: str x3, [sp, #40] ; 8-byte Spill +; CHECK-O0-AARCH64-NEXT: str x2, [sp, #32] ; 8-byte Spill +; CHECK-O0-AARCH64-NEXT: str x1, [sp, #24] ; 8-byte Spill +; CHECK-O0-AARCH64-NEXT: str x0, [sp, #16] ; 8-byte Spill ; CHECK-O0-AARCH64-NEXT: ; implicit-def: $x0 ; CHECK-O0-AARCH64-NEXT: mov x20, xzr ; CHECK-O0-AARCH64-NEXT: mov x21, x20 @@ -1537,20 +1537,20 @@ define swiftcc void @params_in_reg(i64, i64, i64, i64, i64, i64, i64, i64, ptr s ; CHECK-O0-AARCH64-NEXT: mov w8, #8 ; =0x8 ; CHECK-O0-AARCH64-NEXT: mov w7, w8 ; CHECK-O0-AARCH64-NEXT: bl _params_in_reg2 -; CHECK-O0-AARCH64-NEXT: ldr x20, [sp, #8] ; 8-byte Folded Reload -; CHECK-O0-AARCH64-NEXT: ldr x0, [sp, #16] ; 8-byte Folded Reload -; CHECK-O0-AARCH64-NEXT: ldr x1, [sp, #24] ; 8-byte Folded Reload -; CHECK-O0-AARCH64-NEXT: ldr x2, [sp, #32] ; 8-byte Folded Reload -; CHECK-O0-AARCH64-NEXT: ldr x3, [sp, #40] ; 8-byte Folded Reload -; CHECK-O0-AARCH64-NEXT: ldr x4, [sp, #48] ; 8-byte Folded Reload -; CHECK-O0-AARCH64-NEXT: ldr x5, [sp, #56] ; 8-byte Folded Reload +; CHECK-O0-AARCH64-NEXT: ldr x20, [sp, #8] ; 8-byte Reload +; CHECK-O0-AARCH64-NEXT: ldr x0, [sp, #16] ; 8-byte Reload +; CHECK-O0-AARCH64-NEXT: ldr x1, [sp, #24] ; 8-byte Reload +; CHECK-O0-AARCH64-NEXT: ldr x2, [sp, #32] ; 8-byte Reload +; CHECK-O0-AARCH64-NEXT: ldr x3, [sp, #40] ; 8-byte Reload +; CHECK-O0-AARCH64-NEXT: ldr x4, [sp, #48] ; 8-byte Reload +; CHECK-O0-AARCH64-NEXT: ldr x5, [sp, #56] ; 8-byte Reload ; CHECK-O0-AARCH64-NEXT: ldur x6, [x29, #-48] ; 8-byte Folded Reload ; CHECK-O0-AARCH64-NEXT: ldur x7, [x29, #-40] ; 8-byte Folded Reload ; CHECK-O0-AARCH64-NEXT: mov x8, x21 ; CHECK-O0-AARCH64-NEXT: ldur x21, [x29, #-32] ; 8-byte Folded Reload ; CHECK-O0-AARCH64-NEXT: bl _params_in_reg2 ; CHECK-O0-AARCH64-NEXT: ldp x29, x30, [sp, #112] ; 16-byte Folded Reload -; CHECK-O0-AARCH64-NEXT: ldr x20, [sp, #96] ; 8-byte Folded Reload +; CHECK-O0-AARCH64-NEXT: ldr x20, [sp, #96] ; 8-byte Reload ; CHECK-O0-AARCH64-NEXT: add sp, sp, #128 ; CHECK-O0-AARCH64-NEXT: ret ; @@ -1561,16 +1561,16 @@ define swiftcc void @params_in_reg(i64, i64, i64, i64, i64, i64, i64, i64, ptr s ; CHECK-O0-ARM64_32-NEXT: .cfi_def_cfa_offset 112 ; CHECK-O0-ARM64_32-NEXT: .cfi_offset w30, -8 ; CHECK-O0-ARM64_32-NEXT: .cfi_offset w20, -16 -; CHECK-O0-ARM64_32-NEXT: str x21, [sp, #80] ; 8-byte Folded Spill -; CHECK-O0-ARM64_32-NEXT: str x20, [sp, #8] ; 8-byte Folded Spill -; CHECK-O0-ARM64_32-NEXT: str x7, [sp, #72] ; 8-byte Folded Spill -; CHECK-O0-ARM64_32-NEXT: str x6, [sp, #64] ; 8-byte Folded Spill -; CHECK-O0-ARM64_32-NEXT: str x5, [sp, #56] ; 8-byte Folded Spill -; CHECK-O0-ARM64_32-NEXT: str x4, [sp, #48] ; 8-byte Folded Spill -; CHECK-O0-ARM64_32-NEXT: str x3, [sp, #40] ; 8-byte Folded Spill -; CHECK-O0-ARM64_32-NEXT: str x2, [sp, #32] ; 8-byte Folded Spill -; CHECK-O0-ARM64_32-NEXT: str x1, [sp, #24] ; 8-byte Folded Spill -; CHECK-O0-ARM64_32-NEXT: str x0, [sp, #16] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: str x21, [sp, #80] ; 8-byte Spill +; CHECK-O0-ARM64_32-NEXT: str x20, [sp, #8] ; 8-byte Spill +; CHECK-O0-ARM64_32-NEXT: str x7, [sp, #72] ; 8-byte Spill +; CHECK-O0-ARM64_32-NEXT: str x6, [sp, #64] ; 8-byte Spill +; CHECK-O0-ARM64_32-NEXT: str x5, [sp, #56] ; 8-byte Spill +; CHECK-O0-ARM64_32-NEXT: str x4, [sp, #48] ; 8-byte Spill +; CHECK-O0-ARM64_32-NEXT: str x3, [sp, #40] ; 8-byte Spill +; CHECK-O0-ARM64_32-NEXT: str x2, [sp, #32] ; 8-byte Spill +; CHECK-O0-ARM64_32-NEXT: str x1, [sp, #24] ; 8-byte Spill +; CHECK-O0-ARM64_32-NEXT: str x0, [sp, #16] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: ; implicit-def: $x0 ; CHECK-O0-ARM64_32-NEXT: mov x20, xzr ; CHECK-O0-ARM64_32-NEXT: mov x21, x20 @@ -1591,17 +1591,17 @@ define swiftcc void @params_in_reg(i64, i64, i64, i64, i64, i64, i64, i64, ptr s ; CHECK-O0-ARM64_32-NEXT: mov w8, #8 ; =0x8 ; CHECK-O0-ARM64_32-NEXT: mov w7, w8 ; CHECK-O0-ARM64_32-NEXT: bl _params_in_reg2 -; CHECK-O0-ARM64_32-NEXT: ldr x20, [sp, #8] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: ldr x0, [sp, #16] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: ldr x1, [sp, #24] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: ldr x2, [sp, #32] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: ldr x3, [sp, #40] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: ldr x4, [sp, #48] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: ldr x5, [sp, #56] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: ldr x6, [sp, #64] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: ldr x7, [sp, #72] ; 8-byte Folded Reload +; CHECK-O0-ARM64_32-NEXT: ldr x20, [sp, #8] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: ldr x0, [sp, #16] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: ldr x1, [sp, #24] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: ldr x2, [sp, #32] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: ldr x3, [sp, #40] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: ldr x4, [sp, #48] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: ldr x5, [sp, #56] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: ldr x6, [sp, #64] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: ldr x7, [sp, #72] ; 8-byte Reload ; CHECK-O0-ARM64_32-NEXT: mov x8, x21 -; CHECK-O0-ARM64_32-NEXT: ldr x21, [sp, #80] ; 8-byte Folded Reload +; CHECK-O0-ARM64_32-NEXT: ldr x21, [sp, #80] ; 8-byte Reload ; CHECK-O0-ARM64_32-NEXT: bl _params_in_reg2 ; CHECK-O0-ARM64_32-NEXT: ldp x20, x30, [sp, #96] ; 16-byte Folded Reload ; CHECK-O0-ARM64_32-NEXT: add sp, sp, #112 @@ -1638,7 +1638,7 @@ define swiftcc { i64, i64, i64, i64, i64, i64, i64, i64 } @params_and_return_in_ ; CHECK-APPLE-NEXT: .cfi_offset w27, -80 ; CHECK-APPLE-NEXT: .cfi_offset w28, -96 ; CHECK-APPLE-NEXT: mov x23, x21 -; CHECK-APPLE-NEXT: str x7, [sp, #16] ; 8-byte Folded Spill +; CHECK-APPLE-NEXT: str x7, [sp, #16] ; 8-byte Spill ; CHECK-APPLE-NEXT: mov x24, x6 ; CHECK-APPLE-NEXT: mov x25, x5 ; CHECK-APPLE-NEXT: mov x26, x4 @@ -1657,7 +1657,7 @@ define swiftcc { i64, i64, i64, i64, i64, i64, i64, i64 } @params_and_return_in_ ; CHECK-APPLE-NEXT: mov x20, xzr ; CHECK-APPLE-NEXT: mov x21, xzr ; CHECK-APPLE-NEXT: bl _params_in_reg2 -; CHECK-APPLE-NEXT: str x21, [sp, #8] ; 8-byte Folded Spill +; CHECK-APPLE-NEXT: str x21, [sp, #8] ; 8-byte Spill ; CHECK-APPLE-NEXT: mov x0, x22 ; CHECK-APPLE-NEXT: mov x1, x19 ; CHECK-APPLE-NEXT: mov x2, x28 @@ -1676,7 +1676,7 @@ define swiftcc { i64, i64, i64, i64, i64, i64, i64, i64 } @params_and_return_in_ ; CHECK-APPLE-NEXT: mov x27, x5 ; CHECK-APPLE-NEXT: mov x28, x6 ; CHECK-APPLE-NEXT: mov x23, x7 -; CHECK-APPLE-NEXT: str x21, [sp, #24] ; 8-byte Folded Spill +; CHECK-APPLE-NEXT: str x21, [sp, #24] ; 8-byte Spill ; CHECK-APPLE-NEXT: mov w0, #1 ; =0x1 ; CHECK-APPLE-NEXT: mov w1, #2 ; =0x2 ; CHECK-APPLE-NEXT: mov w2, #3 ; =0x3 @@ -1686,7 +1686,7 @@ define swiftcc { i64, i64, i64, i64, i64, i64, i64, i64 } @params_and_return_in_ ; CHECK-APPLE-NEXT: mov w6, #7 ; =0x7 ; CHECK-APPLE-NEXT: mov w7, #8 ; =0x8 ; CHECK-APPLE-NEXT: mov x20, xzr -; CHECK-APPLE-NEXT: ldr x21, [sp, #8] ; 8-byte Folded Reload +; CHECK-APPLE-NEXT: ldr x21, [sp, #8] ; 8-byte Reload ; CHECK-APPLE-NEXT: bl _params_in_reg2 ; CHECK-APPLE-NEXT: mov x0, x19 ; CHECK-APPLE-NEXT: mov x1, x22 @@ -1716,38 +1716,38 @@ define swiftcc { i64, i64, i64, i64, i64, i64, i64, i64 } @params_and_return_in_ ; CHECK-O0-AARCH64-NEXT: .cfi_offset w29, -16 ; CHECK-O0-AARCH64-NEXT: .cfi_offset w20, -24 ; CHECK-O0-AARCH64-NEXT: .cfi_offset w28, -32 -; CHECK-O0-AARCH64-NEXT: str x21, [sp, #72] ; 8-byte Folded Spill -; CHECK-O0-AARCH64-NEXT: str x20, [sp] ; 8-byte Folded Spill -; CHECK-O0-AARCH64-NEXT: str x7, [sp, #64] ; 8-byte Folded Spill -; CHECK-O0-AARCH64-NEXT: str x6, [sp, #56] ; 8-byte Folded Spill -; CHECK-O0-AARCH64-NEXT: str x5, [sp, #48] ; 8-byte Folded Spill -; CHECK-O0-AARCH64-NEXT: str x4, [sp, #40] ; 8-byte Folded Spill -; CHECK-O0-AARCH64-NEXT: str x3, [sp, #32] ; 8-byte Folded Spill -; CHECK-O0-AARCH64-NEXT: str x2, [sp, #24] ; 8-byte Folded Spill -; CHECK-O0-AARCH64-NEXT: str x1, [sp, #16] ; 8-byte Folded Spill -; CHECK-O0-AARCH64-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-O0-AARCH64-NEXT: str x21, [sp, #72] ; 8-byte Spill +; CHECK-O0-AARCH64-NEXT: str x20, [sp] ; 8-byte Spill +; CHECK-O0-AARCH64-NEXT: str x7, [sp, #64] ; 8-byte Spill +; CHECK-O0-AARCH64-NEXT: str x6, [sp, #56] ; 8-byte Spill +; CHECK-O0-AARCH64-NEXT: str x5, [sp, #48] ; 8-byte Spill +; CHECK-O0-AARCH64-NEXT: str x4, [sp, #40] ; 8-byte Spill +; CHECK-O0-AARCH64-NEXT: str x3, [sp, #32] ; 8-byte Spill +; CHECK-O0-AARCH64-NEXT: str x2, [sp, #24] ; 8-byte Spill +; CHECK-O0-AARCH64-NEXT: str x1, [sp, #16] ; 8-byte Spill +; CHECK-O0-AARCH64-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-O0-AARCH64-NEXT: ; implicit-def: $x0 ; CHECK-O0-AARCH64-NEXT: mov x20, xzr -; CHECK-O0-AARCH64-NEXT: str x20, [sp, #80] ; 8-byte Folded Spill +; CHECK-O0-AARCH64-NEXT: str x20, [sp, #80] ; 8-byte Spill ; CHECK-O0-AARCH64-NEXT: mov x21, x20 ; CHECK-O0-AARCH64-NEXT: mov w8, #1 ; =0x1 ; CHECK-O0-AARCH64-NEXT: mov w0, w8 -; CHECK-O0-AARCH64-NEXT: str x0, [sp, #88] ; 8-byte Folded Spill +; CHECK-O0-AARCH64-NEXT: str x0, [sp, #88] ; 8-byte Spill ; CHECK-O0-AARCH64-NEXT: mov w8, #2 ; =0x2 ; CHECK-O0-AARCH64-NEXT: mov w1, w8 -; CHECK-O0-AARCH64-NEXT: str x1, [sp, #96] ; 8-byte Folded Spill +; CHECK-O0-AARCH64-NEXT: str x1, [sp, #96] ; 8-byte Spill ; CHECK-O0-AARCH64-NEXT: mov w8, #3 ; =0x3 ; CHECK-O0-AARCH64-NEXT: mov w2, w8 -; CHECK-O0-AARCH64-NEXT: str x2, [sp, #104] ; 8-byte Folded Spill +; CHECK-O0-AARCH64-NEXT: str x2, [sp, #104] ; 8-byte Spill ; CHECK-O0-AARCH64-NEXT: mov w8, #4 ; =0x4 ; CHECK-O0-AARCH64-NEXT: mov w3, w8 -; CHECK-O0-AARCH64-NEXT: str x3, [sp, #112] ; 8-byte Folded Spill +; CHECK-O0-AARCH64-NEXT: str x3, [sp, #112] ; 8-byte Spill ; CHECK-O0-AARCH64-NEXT: mov w8, #5 ; =0x5 ; CHECK-O0-AARCH64-NEXT: mov w4, w8 -; CHECK-O0-AARCH64-NEXT: str x4, [sp, #120] ; 8-byte Folded Spill +; CHECK-O0-AARCH64-NEXT: str x4, [sp, #120] ; 8-byte Spill ; CHECK-O0-AARCH64-NEXT: mov w8, #6 ; =0x6 ; CHECK-O0-AARCH64-NEXT: mov w5, w8 -; CHECK-O0-AARCH64-NEXT: str x5, [sp, #128] ; 8-byte Folded Spill +; CHECK-O0-AARCH64-NEXT: str x5, [sp, #128] ; 8-byte Spill ; CHECK-O0-AARCH64-NEXT: mov w8, #7 ; =0x7 ; CHECK-O0-AARCH64-NEXT: mov w6, w8 ; CHECK-O0-AARCH64-NEXT: stur x6, [x29, #-120] ; 8-byte Folded Spill @@ -1755,37 +1755,37 @@ define swiftcc { i64, i64, i64, i64, i64, i64, i64, i64 } @params_and_return_in_ ; CHECK-O0-AARCH64-NEXT: mov w7, w8 ; CHECK-O0-AARCH64-NEXT: stur x7, [x29, #-112] ; 8-byte Folded Spill ; CHECK-O0-AARCH64-NEXT: bl _params_in_reg2 -; CHECK-O0-AARCH64-NEXT: ldr x20, [sp] ; 8-byte Folded Reload -; CHECK-O0-AARCH64-NEXT: ldr x0, [sp, #8] ; 8-byte Folded Reload -; CHECK-O0-AARCH64-NEXT: ldr x1, [sp, #16] ; 8-byte Folded Reload -; CHECK-O0-AARCH64-NEXT: ldr x2, [sp, #24] ; 8-byte Folded Reload -; CHECK-O0-AARCH64-NEXT: ldr x3, [sp, #32] ; 8-byte Folded Reload -; CHECK-O0-AARCH64-NEXT: ldr x4, [sp, #40] ; 8-byte Folded Reload -; CHECK-O0-AARCH64-NEXT: ldr x5, [sp, #48] ; 8-byte Folded Reload -; CHECK-O0-AARCH64-NEXT: ldr x6, [sp, #56] ; 8-byte Folded Reload -; CHECK-O0-AARCH64-NEXT: ldr x7, [sp, #64] ; 8-byte Folded Reload +; CHECK-O0-AARCH64-NEXT: ldr x20, [sp] ; 8-byte Reload +; CHECK-O0-AARCH64-NEXT: ldr x0, [sp, #8] ; 8-byte Reload +; CHECK-O0-AARCH64-NEXT: ldr x1, [sp, #16] ; 8-byte Reload +; CHECK-O0-AARCH64-NEXT: ldr x2, [sp, #24] ; 8-byte Reload +; CHECK-O0-AARCH64-NEXT: ldr x3, [sp, #32] ; 8-byte Reload +; CHECK-O0-AARCH64-NEXT: ldr x4, [sp, #40] ; 8-byte Reload +; CHECK-O0-AARCH64-NEXT: ldr x5, [sp, #48] ; 8-byte Reload +; CHECK-O0-AARCH64-NEXT: ldr x6, [sp, #56] ; 8-byte Reload +; CHECK-O0-AARCH64-NEXT: ldr x7, [sp, #64] ; 8-byte Reload ; CHECK-O0-AARCH64-NEXT: mov x8, x21 -; CHECK-O0-AARCH64-NEXT: ldr x21, [sp, #72] ; 8-byte Folded Reload +; CHECK-O0-AARCH64-NEXT: ldr x21, [sp, #72] ; 8-byte Reload ; CHECK-O0-AARCH64-NEXT: stur x8, [x29, #-104] ; 8-byte Folded Spill ; CHECK-O0-AARCH64-NEXT: bl _params_and_return_in_reg2 -; CHECK-O0-AARCH64-NEXT: ldr x20, [sp, #80] ; 8-byte Folded Reload +; CHECK-O0-AARCH64-NEXT: ldr x20, [sp, #80] ; 8-byte Reload ; CHECK-O0-AARCH64-NEXT: mov x8, x0 -; CHECK-O0-AARCH64-NEXT: ldr x0, [sp, #88] ; 8-byte Folded Reload +; CHECK-O0-AARCH64-NEXT: ldr x0, [sp, #88] ; 8-byte Reload ; CHECK-O0-AARCH64-NEXT: stur x8, [x29, #-96] ; 8-byte Folded Spill ; CHECK-O0-AARCH64-NEXT: mov x8, x1 -; CHECK-O0-AARCH64-NEXT: ldr x1, [sp, #96] ; 8-byte Folded Reload +; CHECK-O0-AARCH64-NEXT: ldr x1, [sp, #96] ; 8-byte Reload ; CHECK-O0-AARCH64-NEXT: stur x8, [x29, #-88] ; 8-byte Folded Spill ; CHECK-O0-AARCH64-NEXT: mov x8, x2 -; CHECK-O0-AARCH64-NEXT: ldr x2, [sp, #104] ; 8-byte Folded Reload +; CHECK-O0-AARCH64-NEXT: ldr x2, [sp, #104] ; 8-byte Reload ; CHECK-O0-AARCH64-NEXT: stur x8, [x29, #-80] ; 8-byte Folded Spill ; CHECK-O0-AARCH64-NEXT: mov x8, x3 -; CHECK-O0-AARCH64-NEXT: ldr x3, [sp, #112] ; 8-byte Folded Reload +; CHECK-O0-AARCH64-NEXT: ldr x3, [sp, #112] ; 8-byte Reload ; CHECK-O0-AARCH64-NEXT: stur x8, [x29, #-72] ; 8-byte Folded Spill ; CHECK-O0-AARCH64-NEXT: mov x8, x4 -; CHECK-O0-AARCH64-NEXT: ldr x4, [sp, #120] ; 8-byte Folded Reload +; CHECK-O0-AARCH64-NEXT: ldr x4, [sp, #120] ; 8-byte Reload ; CHECK-O0-AARCH64-NEXT: stur x8, [x29, #-64] ; 8-byte Folded Spill ; CHECK-O0-AARCH64-NEXT: mov x8, x5 -; CHECK-O0-AARCH64-NEXT: ldr x5, [sp, #128] ; 8-byte Folded Reload +; CHECK-O0-AARCH64-NEXT: ldr x5, [sp, #128] ; 8-byte Reload ; CHECK-O0-AARCH64-NEXT: stur x8, [x29, #-56] ; 8-byte Folded Spill ; CHECK-O0-AARCH64-NEXT: mov x8, x6 ; CHECK-O0-AARCH64-NEXT: ldur x6, [x29, #-120] ; 8-byte Folded Reload @@ -1815,105 +1815,105 @@ define swiftcc { i64, i64, i64, i64, i64, i64, i64, i64 } @params_and_return_in_ ; CHECK-O0-ARM64_32-LABEL: params_and_return_in_reg: ; CHECK-O0-ARM64_32: ; %bb.0: ; CHECK-O0-ARM64_32-NEXT: sub sp, sp, #272 -; CHECK-O0-ARM64_32-NEXT: str x28, [sp, #240] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: str x28, [sp, #240] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: stp x20, x30, [sp, #256] ; 16-byte Folded Spill ; CHECK-O0-ARM64_32-NEXT: .cfi_def_cfa_offset 272 ; CHECK-O0-ARM64_32-NEXT: .cfi_offset w30, -8 ; CHECK-O0-ARM64_32-NEXT: .cfi_offset w20, -16 ; CHECK-O0-ARM64_32-NEXT: .cfi_offset w28, -32 -; CHECK-O0-ARM64_32-NEXT: str x21, [sp, #72] ; 8-byte Folded Spill -; CHECK-O0-ARM64_32-NEXT: str x20, [sp] ; 8-byte Folded Spill -; CHECK-O0-ARM64_32-NEXT: str x7, [sp, #64] ; 8-byte Folded Spill -; CHECK-O0-ARM64_32-NEXT: str x6, [sp, #56] ; 8-byte Folded Spill -; CHECK-O0-ARM64_32-NEXT: str x5, [sp, #48] ; 8-byte Folded Spill -; CHECK-O0-ARM64_32-NEXT: str x4, [sp, #40] ; 8-byte Folded Spill -; CHECK-O0-ARM64_32-NEXT: str x3, [sp, #32] ; 8-byte Folded Spill -; CHECK-O0-ARM64_32-NEXT: str x2, [sp, #24] ; 8-byte Folded Spill -; CHECK-O0-ARM64_32-NEXT: str x1, [sp, #16] ; 8-byte Folded Spill -; CHECK-O0-ARM64_32-NEXT: str x0, [sp, #8] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: str x21, [sp, #72] ; 8-byte Spill +; CHECK-O0-ARM64_32-NEXT: str x20, [sp] ; 8-byte Spill +; CHECK-O0-ARM64_32-NEXT: str x7, [sp, #64] ; 8-byte Spill +; CHECK-O0-ARM64_32-NEXT: str x6, [sp, #56] ; 8-byte Spill +; CHECK-O0-ARM64_32-NEXT: str x5, [sp, #48] ; 8-byte Spill +; CHECK-O0-ARM64_32-NEXT: str x4, [sp, #40] ; 8-byte Spill +; CHECK-O0-ARM64_32-NEXT: str x3, [sp, #32] ; 8-byte Spill +; CHECK-O0-ARM64_32-NEXT: str x2, [sp, #24] ; 8-byte Spill +; CHECK-O0-ARM64_32-NEXT: str x1, [sp, #16] ; 8-byte Spill +; CHECK-O0-ARM64_32-NEXT: str x0, [sp, #8] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: ; implicit-def: $x0 ; CHECK-O0-ARM64_32-NEXT: mov x20, xzr -; CHECK-O0-ARM64_32-NEXT: str x20, [sp, #80] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: str x20, [sp, #80] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: mov x21, x20 ; CHECK-O0-ARM64_32-NEXT: mov w8, #1 ; =0x1 ; CHECK-O0-ARM64_32-NEXT: mov w0, w8 -; CHECK-O0-ARM64_32-NEXT: str x0, [sp, #88] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: str x0, [sp, #88] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: mov w8, #2 ; =0x2 ; CHECK-O0-ARM64_32-NEXT: mov w1, w8 -; CHECK-O0-ARM64_32-NEXT: str x1, [sp, #96] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: str x1, [sp, #96] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: mov w8, #3 ; =0x3 ; CHECK-O0-ARM64_32-NEXT: mov w2, w8 -; CHECK-O0-ARM64_32-NEXT: str x2, [sp, #104] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: str x2, [sp, #104] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: mov w8, #4 ; =0x4 ; CHECK-O0-ARM64_32-NEXT: mov w3, w8 -; CHECK-O0-ARM64_32-NEXT: str x3, [sp, #112] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: str x3, [sp, #112] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: mov w8, #5 ; =0x5 ; CHECK-O0-ARM64_32-NEXT: mov w4, w8 -; CHECK-O0-ARM64_32-NEXT: str x4, [sp, #120] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: str x4, [sp, #120] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: mov w8, #6 ; =0x6 ; CHECK-O0-ARM64_32-NEXT: mov w5, w8 -; CHECK-O0-ARM64_32-NEXT: str x5, [sp, #128] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: str x5, [sp, #128] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: mov w8, #7 ; =0x7 ; CHECK-O0-ARM64_32-NEXT: mov w6, w8 -; CHECK-O0-ARM64_32-NEXT: str x6, [sp, #136] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: str x6, [sp, #136] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: mov w8, #8 ; =0x8 ; CHECK-O0-ARM64_32-NEXT: mov w7, w8 -; CHECK-O0-ARM64_32-NEXT: str x7, [sp, #144] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: str x7, [sp, #144] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: bl _params_in_reg2 -; CHECK-O0-ARM64_32-NEXT: ldr x20, [sp] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: ldr x0, [sp, #8] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: ldr x1, [sp, #16] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: ldr x2, [sp, #24] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: ldr x3, [sp, #32] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: ldr x4, [sp, #40] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: ldr x5, [sp, #48] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: ldr x6, [sp, #56] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: ldr x7, [sp, #64] ; 8-byte Folded Reload +; CHECK-O0-ARM64_32-NEXT: ldr x20, [sp] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: ldr x0, [sp, #8] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: ldr x1, [sp, #16] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: ldr x2, [sp, #24] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: ldr x3, [sp, #32] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: ldr x4, [sp, #40] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: ldr x5, [sp, #48] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: ldr x6, [sp, #56] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: ldr x7, [sp, #64] ; 8-byte Reload ; CHECK-O0-ARM64_32-NEXT: mov x8, x21 -; CHECK-O0-ARM64_32-NEXT: ldr x21, [sp, #72] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: str x8, [sp, #152] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: ldr x21, [sp, #72] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: str x8, [sp, #152] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: bl _params_and_return_in_reg2 -; CHECK-O0-ARM64_32-NEXT: ldr x20, [sp, #80] ; 8-byte Folded Reload +; CHECK-O0-ARM64_32-NEXT: ldr x20, [sp, #80] ; 8-byte Reload ; CHECK-O0-ARM64_32-NEXT: mov x8, x0 -; CHECK-O0-ARM64_32-NEXT: ldr x0, [sp, #88] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: str x8, [sp, #160] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: ldr x0, [sp, #88] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: str x8, [sp, #160] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: mov x8, x1 -; CHECK-O0-ARM64_32-NEXT: ldr x1, [sp, #96] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: str x8, [sp, #168] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: ldr x1, [sp, #96] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: str x8, [sp, #168] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: mov x8, x2 -; CHECK-O0-ARM64_32-NEXT: ldr x2, [sp, #104] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: str x8, [sp, #176] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: ldr x2, [sp, #104] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: str x8, [sp, #176] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: mov x8, x3 -; CHECK-O0-ARM64_32-NEXT: ldr x3, [sp, #112] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: str x8, [sp, #184] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: ldr x3, [sp, #112] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: str x8, [sp, #184] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: mov x8, x4 -; CHECK-O0-ARM64_32-NEXT: ldr x4, [sp, #120] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: str x8, [sp, #192] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: ldr x4, [sp, #120] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: str x8, [sp, #192] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: mov x8, x5 -; CHECK-O0-ARM64_32-NEXT: ldr x5, [sp, #128] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: str x8, [sp, #200] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: ldr x5, [sp, #128] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: str x8, [sp, #200] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: mov x8, x6 -; CHECK-O0-ARM64_32-NEXT: ldr x6, [sp, #136] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: str x8, [sp, #208] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: ldr x6, [sp, #136] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: str x8, [sp, #208] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: mov x8, x7 -; CHECK-O0-ARM64_32-NEXT: ldr x7, [sp, #144] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: str x8, [sp, #216] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: ldr x7, [sp, #144] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: str x8, [sp, #216] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: mov x8, x21 -; CHECK-O0-ARM64_32-NEXT: ldr x21, [sp, #152] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: str x8, [sp, #224] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: ldr x21, [sp, #152] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: str x8, [sp, #224] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: bl _params_in_reg2 -; CHECK-O0-ARM64_32-NEXT: ldr x0, [sp, #160] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: ldr x1, [sp, #168] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: ldr x2, [sp, #176] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: ldr x3, [sp, #184] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: ldr x4, [sp, #192] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: ldr x5, [sp, #200] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: ldr x6, [sp, #208] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: ldr x7, [sp, #216] ; 8-byte Folded Reload +; CHECK-O0-ARM64_32-NEXT: ldr x0, [sp, #160] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: ldr x1, [sp, #168] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: ldr x2, [sp, #176] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: ldr x3, [sp, #184] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: ldr x4, [sp, #192] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: ldr x5, [sp, #200] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: ldr x6, [sp, #208] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: ldr x7, [sp, #216] ; 8-byte Reload ; CHECK-O0-ARM64_32-NEXT: mov x8, x21 -; CHECK-O0-ARM64_32-NEXT: ldr x21, [sp, #224] ; 8-byte Folded Reload +; CHECK-O0-ARM64_32-NEXT: ldr x21, [sp, #224] ; 8-byte Reload ; CHECK-O0-ARM64_32-NEXT: ldp x20, x30, [sp, #256] ; 16-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: ldr x28, [sp, #240] ; 8-byte Folded Reload +; CHECK-O0-ARM64_32-NEXT: ldr x28, [sp, #240] ; 8-byte Reload ; CHECK-O0-ARM64_32-NEXT: add sp, sp, #272 ; CHECK-O0-ARM64_32-NEXT: ret %error_ptr_ref = alloca swifterror ptr, align 8 @@ -1956,10 +1956,10 @@ define swiftcc void @tailcall_from_swifterror(ptr swifterror %error_ptr_ref) { ; CHECK-O0-AARCH64-NEXT: .cfi_def_cfa w29, 16 ; CHECK-O0-AARCH64-NEXT: .cfi_offset w30, -8 ; CHECK-O0-AARCH64-NEXT: .cfi_offset w29, -16 -; CHECK-O0-AARCH64-NEXT: str x21, [sp, #8] ; 8-byte Folded Spill +; CHECK-O0-AARCH64-NEXT: str x21, [sp, #8] ; 8-byte Spill ; CHECK-O0-AARCH64-NEXT: mov x0, xzr ; CHECK-O0-AARCH64-NEXT: bl _acallee -; CHECK-O0-AARCH64-NEXT: ldr x21, [sp, #8] ; 8-byte Folded Reload +; CHECK-O0-AARCH64-NEXT: ldr x21, [sp, #8] ; 8-byte Reload ; CHECK-O0-AARCH64-NEXT: ldp x29, x30, [sp, #16] ; 16-byte Folded Reload ; CHECK-O0-AARCH64-NEXT: add sp, sp, #32 ; CHECK-O0-AARCH64-NEXT: ret @@ -1967,14 +1967,14 @@ define swiftcc void @tailcall_from_swifterror(ptr swifterror %error_ptr_ref) { ; CHECK-O0-ARM64_32-LABEL: tailcall_from_swifterror: ; CHECK-O0-ARM64_32: ; %bb.0: ; %entry ; CHECK-O0-ARM64_32-NEXT: sub sp, sp, #32 -; CHECK-O0-ARM64_32-NEXT: str x30, [sp, #16] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: str x30, [sp, #16] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: .cfi_def_cfa_offset 32 ; CHECK-O0-ARM64_32-NEXT: .cfi_offset w30, -16 -; CHECK-O0-ARM64_32-NEXT: str x21, [sp, #8] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: str x21, [sp, #8] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: mov x0, xzr ; CHECK-O0-ARM64_32-NEXT: bl _acallee -; CHECK-O0-ARM64_32-NEXT: ldr x21, [sp, #8] ; 8-byte Folded Reload -; CHECK-O0-ARM64_32-NEXT: ldr x30, [sp, #16] ; 8-byte Folded Reload +; CHECK-O0-ARM64_32-NEXT: ldr x21, [sp, #8] ; 8-byte Reload +; CHECK-O0-ARM64_32-NEXT: ldr x30, [sp, #16] ; 8-byte Reload ; CHECK-O0-ARM64_32-NEXT: add sp, sp, #32 ; CHECK-O0-ARM64_32-NEXT: ret entry: @@ -2019,9 +2019,9 @@ define swiftcc ptr @testAssign(ptr %error_ref) { ; CHECK-O0-AARCH64-NEXT: ; implicit-def: $x1 ; CHECK-O0-AARCH64-NEXT: mov x21, xzr ; CHECK-O0-AARCH64-NEXT: bl _foo2 -; CHECK-O0-AARCH64-NEXT: str x21, [sp] ; 8-byte Folded Spill +; CHECK-O0-AARCH64-NEXT: str x21, [sp] ; 8-byte Spill ; CHECK-O0-AARCH64-NEXT: ; %bb.1: ; %a -; CHECK-O0-AARCH64-NEXT: ldr x0, [sp] ; 8-byte Folded Reload +; CHECK-O0-AARCH64-NEXT: ldr x0, [sp] ; 8-byte Reload ; CHECK-O0-AARCH64-NEXT: ldp x29, x30, [sp, #32] ; 16-byte Folded Reload ; CHECK-O0-AARCH64-NEXT: ldp x22, x21, [sp, #16] ; 16-byte Folded Reload ; CHECK-O0-AARCH64-NEXT: add sp, sp, #48 @@ -2040,9 +2040,9 @@ define swiftcc ptr @testAssign(ptr %error_ref) { ; CHECK-O0-ARM64_32-NEXT: ; implicit-def: $x1 ; CHECK-O0-ARM64_32-NEXT: mov x21, xzr ; CHECK-O0-ARM64_32-NEXT: bl _foo2 -; CHECK-O0-ARM64_32-NEXT: str x21, [sp] ; 8-byte Folded Spill +; CHECK-O0-ARM64_32-NEXT: str x21, [sp] ; 8-byte Spill ; CHECK-O0-ARM64_32-NEXT: ; %bb.1: ; %a -; CHECK-O0-ARM64_32-NEXT: ldr x8, [sp] ; 8-byte Folded Reload +; CHECK-O0-ARM64_32-NEXT: ldr x8, [sp] ; 8-byte Reload ; CHECK-O0-ARM64_32-NEXT: and x0, x8, #0xffffffff ; CHECK-O0-ARM64_32-NEXT: ldp x29, x30, [sp, #32] ; 16-byte Folded Reload ; CHECK-O0-ARM64_32-NEXT: ldp x22, x21, [sp, #16] ; 16-byte Folded Reload diff --git a/llvm/test/CodeGen/AArch64/trampoline.ll b/llvm/test/CodeGen/AArch64/trampoline.ll index 3e933fadc4fa2..12e3738b13c5b 100644 --- a/llvm/test/CodeGen/AArch64/trampoline.ll +++ b/llvm/test/CodeGen/AArch64/trampoline.ll @@ -72,7 +72,7 @@ define i64 @func1() { ; CHECK-LINUX-LABEL: func1: ; CHECK-LINUX: // %bb.0: ; CHECK-LINUX-NEXT: sub sp, sp, #64 -; CHECK-LINUX-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-LINUX-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-LINUX-NEXT: .cfi_def_cfa_offset 64 ; CHECK-LINUX-NEXT: .cfi_offset w30, -16 ; CHECK-LINUX-NEXT: adrp x8, :got:f @@ -91,7 +91,7 @@ define i64 @func1() { ; CHECK-LINUX-NEXT: add x8, sp, #8 ; CHECK-LINUX-NEXT: add x1, x8, #12 ; CHECK-LINUX-NEXT: bl __clear_cache -; CHECK-LINUX-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-LINUX-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-LINUX-NEXT: mov x0, xzr ; CHECK-LINUX-NEXT: add sp, sp, #64 ; CHECK-LINUX-NEXT: ret @@ -101,7 +101,7 @@ define i64 @func1() { ; CHECK-PC-NEXT: // %bb.0: ; CHECK-PC-NEXT: sub sp, sp, #64 ; CHECK-PC-NEXT: .seh_stackalloc 64 -; CHECK-PC-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-PC-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-PC-NEXT: .seh_save_reg x30, 48 ; CHECK-PC-NEXT: .seh_endprologue ; CHECK-PC-NEXT: adrp x8, f @@ -122,7 +122,7 @@ define i64 @func1() { ; CHECK-PC-NEXT: bl __clear_cache ; CHECK-PC-NEXT: mov x0, xzr ; CHECK-PC-NEXT: .seh_startepilogue -; CHECK-PC-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-PC-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-PC-NEXT: .seh_save_reg x30, 48 ; CHECK-PC-NEXT: add sp, sp, #64 ; CHECK-PC-NEXT: .seh_stackalloc 64 diff --git a/llvm/test/CodeGen/AArch64/unwind-preserved.ll b/llvm/test/CodeGen/AArch64/unwind-preserved.ll index 7e1f63d822273..c1062561733c3 100644 --- a/llvm/test/CodeGen/AArch64/unwind-preserved.ll +++ b/llvm/test/CodeGen/AArch64/unwind-preserved.ll @@ -14,18 +14,18 @@ define @invoke_callee_may_throw_sve( %v) uw ; CHECK-NEXT: .cfi_offset w29, -16 ; CHECK-NEXT: addvl sp, sp, #-18 ; CHECK-NEXT: .cfi_escape 0x0f, 0x0a, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x11, 0x90, 0x01, 0x1e, 0x22 // sp + 16 + 144 * VG -; CHECK-NEXT: str p15, [sp, #4, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p14, [sp, #5, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p13, [sp, #6, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p15, [sp, #4, mul vl] // 2-byte Spill +; CHECK-NEXT: str p14, [sp, #5, mul vl] // 2-byte Spill +; CHECK-NEXT: str p13, [sp, #6, mul vl] // 2-byte Spill +; CHECK-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill +; CHECK-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; CHECK-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; CHECK-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; CHECK-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill +; CHECK-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; CHECK-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; CHECK-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; CHECK-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; CHECK-NEXT: str z23, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z22, [sp, #3, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: str z21, [sp, #4, mul vl] // 16-byte Folded Spill @@ -79,18 +79,18 @@ define @invoke_callee_may_throw_sve( %v) uw ; CHECK-NEXT: ldr z10, [sp, #15, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z9, [sp, #16, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z8, [sp, #17, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #18 ; CHECK-NEXT: .cfi_def_cfa wsp, 16 ; CHECK-NEXT: .cfi_restore z8 @@ -128,18 +128,18 @@ define @invoke_callee_may_throw_sve( %v) uw ; CHECK-NEXT: ldr z10, [sp, #15, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z9, [sp, #16, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: ldr z8, [sp, #17, mul vl] // 16-byte Folded Reload -; CHECK-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; CHECK-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; CHECK-NEXT: addvl sp, sp, #18 ; CHECK-NEXT: .cfi_def_cfa wsp, 16 ; CHECK-NEXT: .cfi_restore z8 @@ -166,18 +166,18 @@ define @invoke_callee_may_throw_sve( %v) uw ; GISEL-NEXT: .cfi_offset w29, -16 ; GISEL-NEXT: addvl sp, sp, #-18 ; GISEL-NEXT: .cfi_escape 0x0f, 0x0a, 0x8f, 0x10, 0x92, 0x2e, 0x00, 0x11, 0x90, 0x01, 0x1e, 0x22 // sp + 16 + 144 * VG -; GISEL-NEXT: str p15, [sp, #4, mul vl] // 2-byte Folded Spill -; GISEL-NEXT: str p14, [sp, #5, mul vl] // 2-byte Folded Spill -; GISEL-NEXT: str p13, [sp, #6, mul vl] // 2-byte Folded Spill -; GISEL-NEXT: str p12, [sp, #7, mul vl] // 2-byte Folded Spill -; GISEL-NEXT: str p11, [sp, #8, mul vl] // 2-byte Folded Spill -; GISEL-NEXT: str p10, [sp, #9, mul vl] // 2-byte Folded Spill -; GISEL-NEXT: str p9, [sp, #10, mul vl] // 2-byte Folded Spill -; GISEL-NEXT: str p8, [sp, #11, mul vl] // 2-byte Folded Spill -; GISEL-NEXT: str p7, [sp, #12, mul vl] // 2-byte Folded Spill -; GISEL-NEXT: str p6, [sp, #13, mul vl] // 2-byte Folded Spill -; GISEL-NEXT: str p5, [sp, #14, mul vl] // 2-byte Folded Spill -; GISEL-NEXT: str p4, [sp, #15, mul vl] // 2-byte Folded Spill +; GISEL-NEXT: str p15, [sp, #4, mul vl] // 2-byte Spill +; GISEL-NEXT: str p14, [sp, #5, mul vl] // 2-byte Spill +; GISEL-NEXT: str p13, [sp, #6, mul vl] // 2-byte Spill +; GISEL-NEXT: str p12, [sp, #7, mul vl] // 2-byte Spill +; GISEL-NEXT: str p11, [sp, #8, mul vl] // 2-byte Spill +; GISEL-NEXT: str p10, [sp, #9, mul vl] // 2-byte Spill +; GISEL-NEXT: str p9, [sp, #10, mul vl] // 2-byte Spill +; GISEL-NEXT: str p8, [sp, #11, mul vl] // 2-byte Spill +; GISEL-NEXT: str p7, [sp, #12, mul vl] // 2-byte Spill +; GISEL-NEXT: str p6, [sp, #13, mul vl] // 2-byte Spill +; GISEL-NEXT: str p5, [sp, #14, mul vl] // 2-byte Spill +; GISEL-NEXT: str p4, [sp, #15, mul vl] // 2-byte Spill ; GISEL-NEXT: str z23, [sp, #2, mul vl] // 16-byte Folded Spill ; GISEL-NEXT: str z22, [sp, #3, mul vl] // 16-byte Folded Spill ; GISEL-NEXT: str z21, [sp, #4, mul vl] // 16-byte Folded Spill @@ -231,18 +231,18 @@ define @invoke_callee_may_throw_sve( %v) uw ; GISEL-NEXT: ldr z10, [sp, #15, mul vl] // 16-byte Folded Reload ; GISEL-NEXT: ldr z9, [sp, #16, mul vl] // 16-byte Folded Reload ; GISEL-NEXT: ldr z8, [sp, #17, mul vl] // 16-byte Folded Reload -; GISEL-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Folded Reload -; GISEL-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Folded Reload -; GISEL-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Folded Reload -; GISEL-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; GISEL-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; GISEL-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; GISEL-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; GISEL-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; GISEL-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; GISEL-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; GISEL-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; GISEL-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; GISEL-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Reload +; GISEL-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Reload +; GISEL-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Reload +; GISEL-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; GISEL-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; GISEL-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; GISEL-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; GISEL-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; GISEL-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; GISEL-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; GISEL-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; GISEL-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; GISEL-NEXT: addvl sp, sp, #18 ; GISEL-NEXT: .cfi_def_cfa wsp, 16 ; GISEL-NEXT: .cfi_restore z8 @@ -280,18 +280,18 @@ define @invoke_callee_may_throw_sve( %v) uw ; GISEL-NEXT: ldr z10, [sp, #15, mul vl] // 16-byte Folded Reload ; GISEL-NEXT: ldr z9, [sp, #16, mul vl] // 16-byte Folded Reload ; GISEL-NEXT: ldr z8, [sp, #17, mul vl] // 16-byte Folded Reload -; GISEL-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Folded Reload -; GISEL-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Folded Reload -; GISEL-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Folded Reload -; GISEL-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Folded Reload -; GISEL-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Folded Reload -; GISEL-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Folded Reload -; GISEL-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Folded Reload -; GISEL-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Folded Reload -; GISEL-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Folded Reload -; GISEL-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Folded Reload -; GISEL-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Folded Reload -; GISEL-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Folded Reload +; GISEL-NEXT: ldr p15, [sp, #4, mul vl] // 2-byte Reload +; GISEL-NEXT: ldr p14, [sp, #5, mul vl] // 2-byte Reload +; GISEL-NEXT: ldr p13, [sp, #6, mul vl] // 2-byte Reload +; GISEL-NEXT: ldr p12, [sp, #7, mul vl] // 2-byte Reload +; GISEL-NEXT: ldr p11, [sp, #8, mul vl] // 2-byte Reload +; GISEL-NEXT: ldr p10, [sp, #9, mul vl] // 2-byte Reload +; GISEL-NEXT: ldr p9, [sp, #10, mul vl] // 2-byte Reload +; GISEL-NEXT: ldr p8, [sp, #11, mul vl] // 2-byte Reload +; GISEL-NEXT: ldr p7, [sp, #12, mul vl] // 2-byte Reload +; GISEL-NEXT: ldr p6, [sp, #13, mul vl] // 2-byte Reload +; GISEL-NEXT: ldr p5, [sp, #14, mul vl] // 2-byte Reload +; GISEL-NEXT: ldr p4, [sp, #15, mul vl] // 2-byte Reload ; GISEL-NEXT: addvl sp, sp, #18 ; GISEL-NEXT: .cfi_def_cfa wsp, 16 ; GISEL-NEXT: .cfi_restore z8 @@ -354,14 +354,14 @@ define aarch64_vector_pcs <4 x i32> @invoke_callee_may_throw_neon(<4 x i32> %v) ; CHECK-NEXT: .cfi_offset b22, -256 ; CHECK-NEXT: .cfi_offset b23, -272 ; CHECK-NEXT: .cfi_remember_state -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: .Ltmp3: // EH_LABEL ; CHECK-NEXT: bl may_throw_neon ; CHECK-NEXT: .Ltmp4: // EH_LABEL -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-NEXT: b .LBB1_1 ; CHECK-NEXT: .LBB1_1: // %.Lcontinue -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: ldp x29, x30, [sp, #288] // 16-byte Folded Reload ; CHECK-NEXT: ldp q9, q8, [sp, #256] // 32-byte Folded Reload ; CHECK-NEXT: ldp q11, q10, [sp, #224] // 32-byte Folded Reload @@ -395,7 +395,7 @@ define aarch64_vector_pcs <4 x i32> @invoke_callee_may_throw_neon(<4 x i32> %v) ; CHECK-NEXT: .LBB1_2: // %.Lunwind ; CHECK-NEXT: .cfi_restore_state ; CHECK-NEXT: .Ltmp5: // EH_LABEL -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: ldp x29, x30, [sp, #288] // 16-byte Folded Reload ; CHECK-NEXT: ldp q9, q8, [sp, #256] // 32-byte Folded Reload ; CHECK-NEXT: ldp q11, q10, [sp, #224] // 32-byte Folded Reload @@ -461,14 +461,14 @@ define aarch64_vector_pcs <4 x i32> @invoke_callee_may_throw_neon(<4 x i32> %v) ; GISEL-NEXT: .cfi_offset b22, -256 ; GISEL-NEXT: .cfi_offset b23, -272 ; GISEL-NEXT: .cfi_remember_state -; GISEL-NEXT: str q0, [sp] // 16-byte Folded Spill +; GISEL-NEXT: str q0, [sp] // 16-byte Spill ; GISEL-NEXT: .Ltmp3: // EH_LABEL ; GISEL-NEXT: bl may_throw_neon -; GISEL-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; GISEL-NEXT: str q0, [sp, #16] // 16-byte Spill ; GISEL-NEXT: .Ltmp4: // EH_LABEL ; GISEL-NEXT: b .LBB1_1 ; GISEL-NEXT: .LBB1_1: // %.Lcontinue -; GISEL-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; GISEL-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; GISEL-NEXT: ldp x29, x30, [sp, #288] // 16-byte Folded Reload ; GISEL-NEXT: ldp q9, q8, [sp, #256] // 32-byte Folded Reload ; GISEL-NEXT: ldp q11, q10, [sp, #224] // 32-byte Folded Reload @@ -502,7 +502,7 @@ define aarch64_vector_pcs <4 x i32> @invoke_callee_may_throw_neon(<4 x i32> %v) ; GISEL-NEXT: .LBB1_2: // %.Lunwind ; GISEL-NEXT: .cfi_restore_state ; GISEL-NEXT: .Ltmp5: // EH_LABEL -; GISEL-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; GISEL-NEXT: ldr q0, [sp] // 16-byte Reload ; GISEL-NEXT: ldp x29, x30, [sp, #288] // 16-byte Folded Reload ; GISEL-NEXT: ldp q9, q8, [sp, #256] // 32-byte Folded Reload ; GISEL-NEXT: ldp q11, q10, [sp, #224] // 32-byte Folded Reload diff --git a/llvm/test/CodeGen/AArch64/vec-libcalls.ll b/llvm/test/CodeGen/AArch64/vec-libcalls.ll index 854a2d75d4b86..0b7690e9f74c7 100644 --- a/llvm/test/CodeGen/AArch64/vec-libcalls.ll +++ b/llvm/test/CodeGen/AArch64/vec-libcalls.ll @@ -60,18 +60,18 @@ define <2 x float> @sin_v2f32(<2 x float> %x) nounwind { ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #48 ; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: mov s0, v0.s[1] -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: bl sinf ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-NEXT: bl sinf -; CHECK-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: mov v0.s[1], v1.s[0] ; CHECK-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-NEXT: add sp, sp, #48 @@ -84,25 +84,25 @@ define <3 x float> @sin_v3f32(<3 x float> %x) nounwind { ; CHECK-LABEL: sin_v3f32: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-NEXT: mov s0, v0.s[1] -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: bl sinf ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-NEXT: bl sinf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-NEXT: mov v0.s[1], v1.s[0] -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: mov s0, v0.s[2] ; CHECK-NEXT: bl sinf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: mov v1.s[2], v0.s[0] ; CHECK-NEXT: mov v0.16b, v1.16b ; CHECK-NEXT: add sp, sp, #48 @@ -115,32 +115,32 @@ define <4 x float> @sin_v4f32(<4 x float> %x) nounwind { ; CHECK-LABEL: sin_v4f32: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-NEXT: mov s0, v0.s[1] -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: bl sinf ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-NEXT: bl sinf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-NEXT: mov v0.s[1], v1.s[0] -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: mov s0, v0.s[2] ; CHECK-NEXT: bl sinf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-NEXT: mov v1.s[2], v0.s[0] -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: mov s0, v0.s[3] -; CHECK-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-NEXT: bl sinf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: mov v1.s[3], v0.s[0] ; CHECK-NEXT: mov v0.16b, v1.16b ; CHECK-NEXT: add sp, sp, #48 @@ -159,7 +159,7 @@ define <5 x float> @sin_v5f32(<5 x float> %x) nounwind { ; CHECK-NEXT: stp d9, d8, [sp, #24] // 16-byte Folded Spill ; CHECK-NEXT: fmov s8, s4 ; CHECK-NEXT: fmov s9, s3 -; CHECK-NEXT: str x30, [sp, #40] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #40] // 8-byte Spill ; CHECK-NEXT: bl sinf ; CHECK-NEXT: fmov s12, s0 ; CHECK-NEXT: fmov s0, s11 @@ -175,7 +175,7 @@ define <5 x float> @sin_v5f32(<5 x float> %x) nounwind { ; CHECK-NEXT: bl sinf ; CHECK-NEXT: fmov s1, s11 ; CHECK-NEXT: fmov s2, s10 -; CHECK-NEXT: ldr x30, [sp, #40] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #40] // 8-byte Reload ; CHECK-NEXT: fmov s3, s9 ; CHECK-NEXT: ldp d9, d8, [sp, #24] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #8] // 16-byte Folded Reload @@ -197,7 +197,7 @@ define <6 x float> @sin_v6f32(<6 x float> %x) nounwind { ; CHECK-NEXT: stp d9, d8, [sp, #32] // 16-byte Folded Spill ; CHECK-NEXT: fmov s8, s5 ; CHECK-NEXT: fmov s9, s4 -; CHECK-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-NEXT: fmov s12, s1 ; CHECK-NEXT: bl sinf ; CHECK-NEXT: fmov s13, s0 @@ -217,7 +217,7 @@ define <6 x float> @sin_v6f32(<6 x float> %x) nounwind { ; CHECK-NEXT: bl sinf ; CHECK-NEXT: fmov s2, s11 ; CHECK-NEXT: fmov s3, s10 -; CHECK-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-NEXT: fmov s4, s9 ; CHECK-NEXT: ldp d9, d8, [sp, #32] // 16-byte Folded Reload ; CHECK-NEXT: ldp d11, d10, [sp, #16] // 16-byte Folded Reload @@ -237,7 +237,7 @@ define <3 x double> @sin_v3f64(<3 x double> %x) nounwind { ; CHECK-NEXT: stp d9, d8, [sp, #8] // 16-byte Folded Spill ; CHECK-NEXT: fmov d8, d2 ; CHECK-NEXT: fmov d9, d1 -; CHECK-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-NEXT: bl sin ; CHECK-NEXT: fmov d10, d0 ; CHECK-NEXT: fmov d0, d9 @@ -247,7 +247,7 @@ define <3 x double> @sin_v3f64(<3 x double> %x) nounwind { ; CHECK-NEXT: bl sin ; CHECK-NEXT: fmov d1, d9 ; CHECK-NEXT: ldp d9, d8, [sp, #8] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #24] // 8-byte Reload ; CHECK-NEXT: fmov d2, d0 ; CHECK-NEXT: fmov d0, d10 ; CHECK-NEXT: ldr d10, [sp], #32 // 8-byte Folded Reload @@ -278,25 +278,25 @@ define <3 x float> @cos_v3f32(<3 x float> %x) nounwind { ; CHECK-LABEL: cos_v3f32: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-NEXT: mov s0, v0.s[1] -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: bl cosf ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-NEXT: bl cosf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-NEXT: mov v0.s[1], v1.s[0] -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: mov s0, v0.s[2] ; CHECK-NEXT: bl cosf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: mov v1.s[2], v0.s[0] ; CHECK-NEXT: mov v0.16b, v1.16b ; CHECK-NEXT: add sp, sp, #48 @@ -309,25 +309,25 @@ define <3 x float> @tan_v3f32(<3 x float> %x) nounwind { ; CHECK-LABEL: tan_v3f32: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-NEXT: mov s0, v0.s[1] -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: bl tanf ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-NEXT: bl tanf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-NEXT: mov v0.s[1], v1.s[0] -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: mov s0, v0.s[2] ; CHECK-NEXT: bl tanf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: mov v1.s[2], v0.s[0] ; CHECK-NEXT: mov v0.16b, v1.16b ; CHECK-NEXT: add sp, sp, #48 @@ -340,25 +340,25 @@ define <3 x float> @asin_v3f32(<3 x float> %x) nounwind { ; CHECK-LABEL: asin_v3f32: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-NEXT: mov s0, v0.s[1] -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: bl asinf ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-NEXT: bl asinf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-NEXT: mov v0.s[1], v1.s[0] -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: mov s0, v0.s[2] ; CHECK-NEXT: bl asinf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: mov v1.s[2], v0.s[0] ; CHECK-NEXT: mov v0.16b, v1.16b ; CHECK-NEXT: add sp, sp, #48 @@ -371,25 +371,25 @@ define <3 x float> @acos_v3f32(<3 x float> %x) nounwind { ; CHECK-LABEL: acos_v3f32: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-NEXT: mov s0, v0.s[1] -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: bl acosf ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-NEXT: bl acosf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-NEXT: mov v0.s[1], v1.s[0] -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: mov s0, v0.s[2] ; CHECK-NEXT: bl acosf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: mov v1.s[2], v0.s[0] ; CHECK-NEXT: mov v0.16b, v1.16b ; CHECK-NEXT: add sp, sp, #48 @@ -402,25 +402,25 @@ define <3 x float> @atan_v3f32(<3 x float> %x) nounwind { ; CHECK-LABEL: atan_v3f32: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-NEXT: mov s0, v0.s[1] -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: bl atanf ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-NEXT: bl atanf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-NEXT: mov v0.s[1], v1.s[0] -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: mov s0, v0.s[2] ; CHECK-NEXT: bl atanf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: mov v1.s[2], v0.s[0] ; CHECK-NEXT: mov v0.16b, v1.16b ; CHECK-NEXT: add sp, sp, #48 @@ -436,25 +436,25 @@ define <3 x float> @atan2_v3f32(<3 x float> %x, <3 x float> %y) nounwind { ; CHECK-NEXT: stp q0, q1, [sp, #16] // 32-byte Folded Spill ; CHECK-NEXT: mov s0, v0.s[1] ; CHECK-NEXT: mov s1, v1.s[1] -; CHECK-NEXT: str x30, [sp, #48] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #48] // 8-byte Spill ; CHECK-NEXT: bl atan2f ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-NEXT: // kill: def $s1 killed $s1 killed $q1 ; CHECK-NEXT: bl atan2f -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-NEXT: mov v0.s[1], v1.s[0] -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: ldp q0, q1, [sp, #16] // 32-byte Folded Reload ; CHECK-NEXT: mov s0, v0.s[2] ; CHECK-NEXT: mov s1, v1.s[2] ; CHECK-NEXT: bl atan2f -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #48] // 8-byte Reload ; CHECK-NEXT: mov v1.s[2], v0.s[0] ; CHECK-NEXT: mov v0.16b, v1.16b ; CHECK-NEXT: add sp, sp, #64 @@ -467,25 +467,25 @@ define <3 x float> @sinh_v3f32(<3 x float> %x) nounwind { ; CHECK-LABEL: sinh_v3f32: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-NEXT: mov s0, v0.s[1] -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: bl sinhf ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-NEXT: bl sinhf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-NEXT: mov v0.s[1], v1.s[0] -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: mov s0, v0.s[2] ; CHECK-NEXT: bl sinhf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: mov v1.s[2], v0.s[0] ; CHECK-NEXT: mov v0.16b, v1.16b ; CHECK-NEXT: add sp, sp, #48 @@ -497,25 +497,25 @@ define <3 x float> @cosh_v3f32(<3 x float> %x) nounwind { ; CHECK-LABEL: cosh_v3f32: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-NEXT: mov s0, v0.s[1] -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: bl coshf ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-NEXT: bl coshf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-NEXT: mov v0.s[1], v1.s[0] -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: mov s0, v0.s[2] ; CHECK-NEXT: bl coshf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: mov v1.s[2], v0.s[0] ; CHECK-NEXT: mov v0.16b, v1.16b ; CHECK-NEXT: add sp, sp, #48 @@ -528,25 +528,25 @@ define <3 x float> @tanh_v3f32(<3 x float> %x) nounwind { ; CHECK-LABEL: tanh_v3f32: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-NEXT: mov s0, v0.s[1] -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: bl tanhf ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-NEXT: bl tanhf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-NEXT: mov v0.s[1], v1.s[0] -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: mov s0, v0.s[2] ; CHECK-NEXT: bl tanhf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: mov v1.s[2], v0.s[0] ; CHECK-NEXT: mov v0.16b, v1.16b ; CHECK-NEXT: add sp, sp, #48 @@ -559,25 +559,25 @@ define <3 x float> @exp_v3f32(<3 x float> %x) nounwind { ; CHECK-LABEL: exp_v3f32: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-NEXT: mov s0, v0.s[1] -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: bl expf ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-NEXT: bl expf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-NEXT: mov v0.s[1], v1.s[0] -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: mov s0, v0.s[2] ; CHECK-NEXT: bl expf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: mov v1.s[2], v0.s[0] ; CHECK-NEXT: mov v0.16b, v1.16b ; CHECK-NEXT: add sp, sp, #48 @@ -590,25 +590,25 @@ define <3 x float> @exp2_v3f32(<3 x float> %x) nounwind { ; CHECK-LABEL: exp2_v3f32: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-NEXT: mov s0, v0.s[1] -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: bl exp2f ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-NEXT: bl exp2f -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-NEXT: mov v0.s[1], v1.s[0] -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: mov s0, v0.s[2] ; CHECK-NEXT: bl exp2f -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: mov v1.s[2], v0.s[0] ; CHECK-NEXT: mov v0.16b, v1.16b ; CHECK-NEXT: add sp, sp, #48 @@ -630,25 +630,25 @@ define <3 x float> @log_v3f32(<3 x float> %x) nounwind { ; CHECK-LABEL: log_v3f32: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-NEXT: mov s0, v0.s[1] -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: bl logf ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-NEXT: bl logf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-NEXT: mov v0.s[1], v1.s[0] -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: mov s0, v0.s[2] ; CHECK-NEXT: bl logf -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: mov v1.s[2], v0.s[0] ; CHECK-NEXT: mov v0.16b, v1.16b ; CHECK-NEXT: add sp, sp, #48 @@ -661,25 +661,25 @@ define <3 x float> @log10_v3f32(<3 x float> %x) nounwind { ; CHECK-LABEL: log10_v3f32: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-NEXT: mov s0, v0.s[1] -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: bl log10f ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-NEXT: bl log10f -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-NEXT: mov v0.s[1], v1.s[0] -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: mov s0, v0.s[2] ; CHECK-NEXT: bl log10f -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: mov v1.s[2], v0.s[0] ; CHECK-NEXT: mov v0.16b, v1.16b ; CHECK-NEXT: add sp, sp, #48 @@ -692,25 +692,25 @@ define <3 x float> @log2_v3f32(<3 x float> %x) nounwind { ; CHECK-LABEL: log2_v3f32: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill ; CHECK-NEXT: mov s0, v0.s[1] -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: bl log2f ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-NEXT: bl log2f -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-NEXT: mov v0.s[1], v1.s[0] -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: mov s0, v0.s[2] ; CHECK-NEXT: bl log2f -; CHECK-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: mov v1.s[2], v0.s[0] ; CHECK-NEXT: mov v0.16b, v1.16b ; CHECK-NEXT: add sp, sp, #48 diff --git a/llvm/test/CodeGen/AArch64/veclib-llvm.modf.ll b/llvm/test/CodeGen/AArch64/veclib-llvm.modf.ll index 78dbc09a57afd..86442ec4b3039 100644 --- a/llvm/test/CodeGen/AArch64/veclib-llvm.modf.ll +++ b/llvm/test/CodeGen/AArch64/veclib-llvm.modf.ll @@ -108,14 +108,14 @@ define <4 x float> @modf_store_merging_load_before_store(<4 x float> %x, ptr %ou ; SLEEF-LABEL: modf_store_merging_load_before_store: ; SLEEF: // %bb.0: ; SLEEF-NEXT: sub sp, sp, #32 -; SLEEF-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; SLEEF-NEXT: str x30, [sp, #16] // 8-byte Spill ; SLEEF-NEXT: .cfi_def_cfa_offset 32 ; SLEEF-NEXT: .cfi_offset w30, -16 ; SLEEF-NEXT: ldr q1, [x0] -; SLEEF-NEXT: str q1, [sp] // 16-byte Folded Spill +; SLEEF-NEXT: str q1, [sp] // 16-byte Spill ; SLEEF-NEXT: bl _ZGVnN4vl4_modff -; SLEEF-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; SLEEF-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; SLEEF-NEXT: ldr q1, [sp] // 16-byte Reload +; SLEEF-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; SLEEF-NEXT: fadd v0.4s, v1.4s, v0.4s ; SLEEF-NEXT: add sp, sp, #32 ; SLEEF-NEXT: ret @@ -123,14 +123,14 @@ define <4 x float> @modf_store_merging_load_before_store(<4 x float> %x, ptr %ou ; ARMPL-LABEL: modf_store_merging_load_before_store: ; ARMPL: // %bb.0: ; ARMPL-NEXT: sub sp, sp, #32 -; ARMPL-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; ARMPL-NEXT: str x30, [sp, #16] // 8-byte Spill ; ARMPL-NEXT: .cfi_def_cfa_offset 32 ; ARMPL-NEXT: .cfi_offset w30, -16 ; ARMPL-NEXT: ldr q1, [x0] -; ARMPL-NEXT: str q1, [sp] // 16-byte Folded Spill +; ARMPL-NEXT: str q1, [sp] // 16-byte Spill ; ARMPL-NEXT: bl armpl_vmodfq_f32 -; ARMPL-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; ARMPL-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; ARMPL-NEXT: ldr q1, [sp] // 16-byte Reload +; ARMPL-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; ARMPL-NEXT: fadd v0.4s, v1.4s, v0.4s ; ARMPL-NEXT: add sp, sp, #32 ; ARMPL-NEXT: ret diff --git a/llvm/test/CodeGen/AArch64/vecreduce-fadd-legalization-strict.ll b/llvm/test/CodeGen/AArch64/vecreduce-fadd-legalization-strict.ll index 3fc8d6f78296c..c0418798e51df 100644 --- a/llvm/test/CodeGen/AArch64/vecreduce-fadd-legalization-strict.ll +++ b/llvm/test/CodeGen/AArch64/vecreduce-fadd-legalization-strict.ll @@ -170,13 +170,13 @@ define fp128 @test_v2f128(<2 x fp128> %a, fp128 %s) nounwind { ; CHECK-SD-LABEL: test_v2f128: ; CHECK-SD: // %bb.0: ; CHECK-SD-NEXT: sub sp, sp, #32 -; CHECK-SD-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-SD-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-SD-NEXT: mov v1.16b, v0.16b ; CHECK-SD-NEXT: mov v0.16b, v2.16b -; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-SD-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-SD-NEXT: bl __addtf3 -; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Folded Reload -; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-SD-NEXT: ldr q1, [sp] // 16-byte Reload +; CHECK-SD-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-SD-NEXT: add sp, sp, #32 ; CHECK-SD-NEXT: b __addtf3 ; @@ -184,14 +184,14 @@ define fp128 @test_v2f128(<2 x fp128> %a, fp128 %s) nounwind { ; CHECK-GI: // %bb.0: ; CHECK-GI-NEXT: sub sp, sp, #32 ; CHECK-GI-NEXT: mov v3.16b, v0.16b -; CHECK-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-GI-NEXT: mov v0.16b, v2.16b -; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-GI-NEXT: mov v1.16b, v3.16b ; CHECK-GI-NEXT: bl __addtf3 -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-GI-NEXT: bl __addtf3 -; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: add sp, sp, #32 ; CHECK-GI-NEXT: ret %b = call fp128 @llvm.vector.reduce.fadd.f128.v2f128(fp128 %s, <2 x fp128> %a) @@ -208,14 +208,14 @@ define fp128 @test_v2f128_neutral(<2 x fp128> %a) nounwind { ; CHECK-GI-NEXT: sub sp, sp, #32 ; CHECK-GI-NEXT: mov v2.16b, v0.16b ; CHECK-GI-NEXT: adrp x8, .LCPI13_0 -; CHECK-GI-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-GI-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-GI-NEXT: ldr q0, [x8, :lo12:.LCPI13_0] -; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-GI-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-GI-NEXT: mov v1.16b, v2.16b ; CHECK-GI-NEXT: bl __addtf3 -; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Folded Reload +; CHECK-GI-NEXT: ldr q1, [sp] // 16-byte Reload ; CHECK-GI-NEXT: bl __addtf3 -; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-GI-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-GI-NEXT: add sp, sp, #32 ; CHECK-GI-NEXT: ret %b = call fp128 @llvm.vector.reduce.fadd.f128.v2f128(fp128 0xL00000000000000008000000000000000, <2 x fp128> %a) diff --git a/llvm/test/CodeGen/AArch64/vecreduce-fmax-legalization.ll b/llvm/test/CodeGen/AArch64/vecreduce-fmax-legalization.ll index a2f4ccd369fb4..d81952087086e 100644 --- a/llvm/test/CodeGen/AArch64/vecreduce-fmax-legalization.ll +++ b/llvm/test/CodeGen/AArch64/vecreduce-fmax-legalization.ll @@ -626,32 +626,32 @@ define fp128 @test_v2f128(<2 x fp128> %a) nounwind { ; CHECK-NOFP-SD-LABEL: test_v2f128: ; CHECK-NOFP-SD: // %bb.0: ; CHECK-NOFP-SD-NEXT: sub sp, sp, #48 -; CHECK-NOFP-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NOFP-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NOFP-SD-NEXT: stp q0, q1, [sp] // 32-byte Folded Spill ; CHECK-NOFP-SD-NEXT: bl __gttf2 -; CHECK-NOFP-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NOFP-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NOFP-SD-NEXT: cmp w0, #0 ; CHECK-NOFP-SD-NEXT: b.le .LBB18_2 ; CHECK-NOFP-SD-NEXT: // %bb.1: -; CHECK-NOFP-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NOFP-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NOFP-SD-NEXT: .LBB18_2: -; CHECK-NOFP-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NOFP-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NOFP-SD-NEXT: add sp, sp, #48 ; CHECK-NOFP-SD-NEXT: ret ; ; CHECK-FP-SD-LABEL: test_v2f128: ; CHECK-FP-SD: // %bb.0: ; CHECK-FP-SD-NEXT: sub sp, sp, #48 -; CHECK-FP-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-FP-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-FP-SD-NEXT: stp q0, q1, [sp] // 32-byte Folded Spill ; CHECK-FP-SD-NEXT: bl __gttf2 -; CHECK-FP-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-FP-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-FP-SD-NEXT: cmp w0, #0 ; CHECK-FP-SD-NEXT: b.le .LBB18_2 ; CHECK-FP-SD-NEXT: // %bb.1: -; CHECK-FP-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-FP-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-FP-SD-NEXT: .LBB18_2: -; CHECK-FP-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-FP-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-FP-SD-NEXT: add sp, sp, #48 ; CHECK-FP-SD-NEXT: ret ; diff --git a/llvm/test/CodeGen/AArch64/vecreduce-fmin-legalization.ll b/llvm/test/CodeGen/AArch64/vecreduce-fmin-legalization.ll index c5109c8e63497..039628c37049c 100644 --- a/llvm/test/CodeGen/AArch64/vecreduce-fmin-legalization.ll +++ b/llvm/test/CodeGen/AArch64/vecreduce-fmin-legalization.ll @@ -626,32 +626,32 @@ define fp128 @test_v2f128(<2 x fp128> %a) nounwind { ; CHECK-NOFP-SD-LABEL: test_v2f128: ; CHECK-NOFP-SD: // %bb.0: ; CHECK-NOFP-SD-NEXT: sub sp, sp, #48 -; CHECK-NOFP-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NOFP-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NOFP-SD-NEXT: stp q0, q1, [sp] // 32-byte Folded Spill ; CHECK-NOFP-SD-NEXT: bl __lttf2 -; CHECK-NOFP-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NOFP-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NOFP-SD-NEXT: cmp w0, #0 ; CHECK-NOFP-SD-NEXT: b.pl .LBB18_2 ; CHECK-NOFP-SD-NEXT: // %bb.1: -; CHECK-NOFP-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NOFP-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NOFP-SD-NEXT: .LBB18_2: -; CHECK-NOFP-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NOFP-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NOFP-SD-NEXT: add sp, sp, #48 ; CHECK-NOFP-SD-NEXT: ret ; ; CHECK-FP-SD-LABEL: test_v2f128: ; CHECK-FP-SD: // %bb.0: ; CHECK-FP-SD-NEXT: sub sp, sp, #48 -; CHECK-FP-SD-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-FP-SD-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-FP-SD-NEXT: stp q0, q1, [sp] // 32-byte Folded Spill ; CHECK-FP-SD-NEXT: bl __lttf2 -; CHECK-FP-SD-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-FP-SD-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-FP-SD-NEXT: cmp w0, #0 ; CHECK-FP-SD-NEXT: b.pl .LBB18_2 ; CHECK-FP-SD-NEXT: // %bb.1: -; CHECK-FP-SD-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-FP-SD-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-FP-SD-NEXT: .LBB18_2: -; CHECK-FP-SD-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-FP-SD-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-FP-SD-NEXT: add sp, sp, #48 ; CHECK-FP-SD-NEXT: ret ; diff --git a/llvm/test/CodeGen/AArch64/vector-llrint.ll b/llvm/test/CodeGen/AArch64/vector-llrint.ll index 3547c6f092b41..45c9e4c9c7194 100644 --- a/llvm/test/CodeGen/AArch64/vector-llrint.ll +++ b/llvm/test/CodeGen/AArch64/vector-llrint.ll @@ -692,17 +692,17 @@ define <2 x i64> @llrint_v2i64_v2f128(<2 x fp128> %x) nounwind { ; CHECK-LABEL: llrint_v2i64_v2f128: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #48 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: mov v0.16b, v1.16b -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #16] // 16-byte Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: mov v0.d[1], v1.d[0] ; CHECK-NEXT: add sp, sp, #48 ; CHECK-NEXT: ret @@ -715,28 +715,28 @@ define <4 x i64> @llrint_v4i64_v4f128(<4 x fp128> %x) nounwind { ; CHECK-LABEL: llrint_v4i64_v4f128: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #80 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: mov v0.16b, v1.16b -; CHECK-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-NEXT: stp q3, q2, [sp, #32] // 32-byte Folded Spill ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-NEXT: mov v0.d[1], v1.d[0] -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d1, x0 ; CHECK-NEXT: ldp q0, q4, [sp, #16] // 32-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-NEXT: mov v1.d[1], v4.d[0] ; CHECK-NEXT: add sp, sp, #80 ; CHECK-NEXT: ret @@ -749,53 +749,53 @@ define <8 x i64> @llrint_v8i64_v8f128(<8 x fp128> %x) nounwind { ; CHECK-LABEL: llrint_v8i64_v8f128: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #144 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: mov v0.16b, v1.16b -; CHECK-NEXT: str x30, [sp, #128] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #128] // 8-byte Spill ; CHECK-NEXT: stp q3, q2, [sp, #16] // 32-byte Folded Spill ; CHECK-NEXT: stp q5, q4, [sp, #48] // 32-byte Folded Spill ; CHECK-NEXT: stp q7, q6, [sp, #96] // 32-byte Folded Spill ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: str q0, [sp, #80] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #80] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: ldr q1, [sp, #80] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #80] // 16-byte Reload ; CHECK-NEXT: mov v0.d[1], v1.d[0] -; CHECK-NEXT: str q0, [sp, #80] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #80] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-NEXT: mov v0.d[1], v1.d[0] -; CHECK-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: str q0, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #64] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #48] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #64] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: ldr q1, [sp, #48] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #48] // 16-byte Reload ; CHECK-NEXT: mov v0.d[1], v1.d[0] -; CHECK-NEXT: str q0, [sp, #64] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #96] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #64] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #96] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: str q0, [sp, #96] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #112] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #96] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #112] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d3, x0 ; CHECK-NEXT: ldp q0, q1, [sp, #80] // 32-byte Folded Reload -; CHECK-NEXT: ldr q2, [sp, #64] // 16-byte Folded Reload -; CHECK-NEXT: ldr x30, [sp, #128] // 8-byte Folded Reload +; CHECK-NEXT: ldr q2, [sp, #64] // 16-byte Reload +; CHECK-NEXT: ldr x30, [sp, #128] // 8-byte Reload ; CHECK-NEXT: mov v3.d[1], v1.d[0] -; CHECK-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-NEXT: add sp, sp, #144 ; CHECK-NEXT: ret %a = call <8 x i64> @llvm.llrint.v8i64.v8f128(<8 x fp128> %x) @@ -807,108 +807,108 @@ define <16 x i64> @llrint_v16f128(<16 x fp128> %x) nounwind { ; CHECK-LABEL: llrint_v16f128: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #272 -; CHECK-NEXT: str q2, [sp, #160] // 16-byte Folded Spill +; CHECK-NEXT: str q2, [sp, #160] // 16-byte Spill ; CHECK-NEXT: ldr q2, [sp, #368] ; CHECK-NEXT: stp q0, q3, [sp] // 32-byte Folded Spill ; CHECK-NEXT: mov v0.16b, v1.16b -; CHECK-NEXT: str q2, [sp, #240] // 16-byte Folded Spill +; CHECK-NEXT: str q2, [sp, #240] // 16-byte Spill ; CHECK-NEXT: ldr q2, [sp, #384] ; CHECK-NEXT: stp x29, x30, [sp, #256] // 16-byte Folded Spill -; CHECK-NEXT: str q2, [sp, #224] // 16-byte Folded Spill +; CHECK-NEXT: str q2, [sp, #224] // 16-byte Spill ; CHECK-NEXT: ldr q2, [sp, #336] ; CHECK-NEXT: stp q5, q7, [sp, #32] // 32-byte Folded Spill -; CHECK-NEXT: str q2, [sp, #192] // 16-byte Folded Spill +; CHECK-NEXT: str q2, [sp, #192] // 16-byte Spill ; CHECK-NEXT: ldr q2, [sp, #352] -; CHECK-NEXT: str q2, [sp, #176] // 16-byte Folded Spill +; CHECK-NEXT: str q2, [sp, #176] // 16-byte Spill ; CHECK-NEXT: ldr q2, [sp, #304] -; CHECK-NEXT: str q2, [sp, #144] // 16-byte Folded Spill +; CHECK-NEXT: str q2, [sp, #144] // 16-byte Spill ; CHECK-NEXT: ldr q2, [sp, #320] ; CHECK-NEXT: stp q4, q2, [sp, #112] // 32-byte Folded Spill ; CHECK-NEXT: ldr q2, [sp, #272] ; CHECK-NEXT: stp q6, q2, [sp, #80] // 32-byte Folded Spill ; CHECK-NEXT: ldr q2, [sp, #288] -; CHECK-NEXT: str q2, [sp, #64] // 16-byte Folded Spill +; CHECK-NEXT: str q2, [sp, #64] // 16-byte Spill ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: str q0, [sp, #208] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #208] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: ldr q1, [sp, #208] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #208] // 16-byte Reload ; CHECK-NEXT: mov v0.d[1], v1.d[0] -; CHECK-NEXT: str q0, [sp, #208] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #208] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #160] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #160] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-NEXT: mov v0.d[1], v1.d[0] -; CHECK-NEXT: str q0, [sp, #160] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #160] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #112] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #112] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-NEXT: mov v0.d[1], v1.d[0] -; CHECK-NEXT: str q0, [sp, #112] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #112] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: str q0, [sp, #48] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #80] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #48] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #80] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: ldr q1, [sp, #48] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #48] // 16-byte Reload ; CHECK-NEXT: mov v0.d[1], v1.d[0] -; CHECK-NEXT: str q0, [sp, #80] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #64] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #80] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #64] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: str q0, [sp, #64] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #96] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #64] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #96] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-NEXT: mov v0.d[1], v1.d[0] -; CHECK-NEXT: str q0, [sp, #96] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #128] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #96] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #128] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: str q0, [sp, #128] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #144] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #128] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #144] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: ldr q1, [sp, #128] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #128] // 16-byte Reload ; CHECK-NEXT: mov v0.d[1], v1.d[0] -; CHECK-NEXT: str q0, [sp, #144] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #176] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #144] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #176] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: str q0, [sp, #176] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #192] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #176] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #192] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: ldr q1, [sp, #176] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #176] // 16-byte Reload ; CHECK-NEXT: mov v0.d[1], v1.d[0] -; CHECK-NEXT: str q0, [sp, #192] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #224] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #192] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #224] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d0, x0 -; CHECK-NEXT: str q0, [sp, #224] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp, #240] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #224] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp, #240] // 16-byte Reload ; CHECK-NEXT: bl llrintl ; CHECK-NEXT: fmov d7, x0 ; CHECK-NEXT: ldp q0, q1, [sp, #208] // 32-byte Folded Reload ; CHECK-NEXT: ldp q4, q2, [sp, #96] // 32-byte Folded Reload -; CHECK-NEXT: ldr q3, [sp, #80] // 16-byte Folded Reload +; CHECK-NEXT: ldr q3, [sp, #80] // 16-byte Reload ; CHECK-NEXT: ldp x29, x30, [sp, #256] // 16-byte Folded Reload -; CHECK-NEXT: ldr q6, [sp, #192] // 16-byte Folded Reload +; CHECK-NEXT: ldr q6, [sp, #192] // 16-byte Reload ; CHECK-NEXT: mov v7.d[1], v1.d[0] ; CHECK-NEXT: ldp q5, q1, [sp, #144] // 32-byte Folded Reload ; CHECK-NEXT: add sp, sp, #272 diff --git a/llvm/test/CodeGen/AArch64/vector-lrint.ll b/llvm/test/CodeGen/AArch64/vector-lrint.ll index 65839b21b5356..c226ec3c3e25c 100644 --- a/llvm/test/CodeGen/AArch64/vector-lrint.ll +++ b/llvm/test/CodeGen/AArch64/vector-lrint.ll @@ -1371,15 +1371,15 @@ define <2 x iXLen> @lrint_v2fp128(<2 x fp128> %x) nounwind { ; CHECK-i32-LABEL: lrint_v2fp128: ; CHECK-i32: // %bb.0: ; CHECK-i32-NEXT: sub sp, sp, #48 -; CHECK-i32-NEXT: str x30, [sp, #32] // 8-byte Folded Spill -; CHECK-i32-NEXT: str q1, [sp, #16] // 16-byte Folded Spill +; CHECK-i32-NEXT: str x30, [sp, #32] // 8-byte Spill +; CHECK-i32-NEXT: str q1, [sp, #16] // 16-byte Spill ; CHECK-i32-NEXT: bl lrintl ; CHECK-i32-NEXT: fmov s0, w0 -; CHECK-i32-NEXT: str q0, [sp] // 16-byte Folded Spill -; CHECK-i32-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-i32-NEXT: str q0, [sp] // 16-byte Spill +; CHECK-i32-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp] // 16-byte Folded Reload -; CHECK-i32-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp] // 16-byte Reload +; CHECK-i32-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-i32-NEXT: mov v0.s[1], w0 ; CHECK-i32-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-i32-NEXT: add sp, sp, #48 @@ -1388,17 +1388,17 @@ define <2 x iXLen> @lrint_v2fp128(<2 x fp128> %x) nounwind { ; CHECK-i64-LABEL: lrint_v2fp128: ; CHECK-i64: // %bb.0: ; CHECK-i64-NEXT: sub sp, sp, #48 -; CHECK-i64-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-i64-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-i64-NEXT: mov v0.16b, v1.16b -; CHECK-i64-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-i64-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload -; CHECK-i64-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-i64-NEXT: ldr q1, [sp, #16] // 16-byte Reload +; CHECK-i64-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-i64-NEXT: mov v0.d[1], v1.d[0] ; CHECK-i64-NEXT: add sp, sp, #48 ; CHECK-i64-NEXT: ret @@ -1411,26 +1411,26 @@ define <4 x iXLen> @lrint_v4fp128(<4 x fp128> %x) nounwind { ; CHECK-i32-LABEL: lrint_v4fp128: ; CHECK-i32: // %bb.0: ; CHECK-i32-NEXT: sub sp, sp, #80 -; CHECK-i32-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-i32-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-i32-NEXT: stp q2, q3, [sp, #16] // 32-byte Folded Spill -; CHECK-i32-NEXT: str q1, [sp] // 16-byte Folded Spill +; CHECK-i32-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-i32-NEXT: bl lrintl ; CHECK-i32-NEXT: fmov s0, w0 -; CHECK-i32-NEXT: str q0, [sp, #48] // 16-byte Folded Spill -; CHECK-i32-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-i32-NEXT: str q0, [sp, #48] // 16-byte Spill +; CHECK-i32-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-i32-NEXT: mov v0.s[1], w0 -; CHECK-i32-NEXT: str q0, [sp, #48] // 16-byte Folded Spill -; CHECK-i32-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-i32-NEXT: str q0, [sp, #48] // 16-byte Spill +; CHECK-i32-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-i32-NEXT: mov v0.s[2], w0 -; CHECK-i32-NEXT: str q0, [sp, #48] // 16-byte Folded Spill -; CHECK-i32-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-i32-NEXT: str q0, [sp, #48] // 16-byte Spill +; CHECK-i32-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload -; CHECK-i32-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #48] // 16-byte Reload +; CHECK-i32-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-i32-NEXT: mov v0.s[3], w0 ; CHECK-i32-NEXT: add sp, sp, #80 ; CHECK-i32-NEXT: ret @@ -1438,28 +1438,28 @@ define <4 x iXLen> @lrint_v4fp128(<4 x fp128> %x) nounwind { ; CHECK-i64-LABEL: lrint_v4fp128: ; CHECK-i64: // %bb.0: ; CHECK-i64-NEXT: sub sp, sp, #80 -; CHECK-i64-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-i64-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-i64-NEXT: mov v0.16b, v1.16b -; CHECK-i64-NEXT: str x30, [sp, #64] // 8-byte Folded Spill +; CHECK-i64-NEXT: str x30, [sp, #64] // 8-byte Spill ; CHECK-i64-NEXT: stp q3, q2, [sp, #32] // 32-byte Folded Spill ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-i64-NEXT: mov v0.d[1], v1.d[0] -; CHECK-i64-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d1, x0 ; CHECK-i64-NEXT: ldp q0, q4, [sp, #16] // 32-byte Folded Reload -; CHECK-i64-NEXT: ldr x30, [sp, #64] // 8-byte Folded Reload +; CHECK-i64-NEXT: ldr x30, [sp, #64] // 8-byte Reload ; CHECK-i64-NEXT: mov v1.d[1], v4.d[0] ; CHECK-i64-NEXT: add sp, sp, #80 ; CHECK-i64-NEXT: ret @@ -1472,47 +1472,47 @@ define <8 x iXLen> @lrint_v8fp128(<8 x fp128> %x) nounwind { ; CHECK-i32-LABEL: lrint_v8fp128: ; CHECK-i32: // %bb.0: ; CHECK-i32-NEXT: sub sp, sp, #144 -; CHECK-i32-NEXT: str x30, [sp, #128] // 8-byte Folded Spill -; CHECK-i32-NEXT: str q4, [sp, #96] // 16-byte Folded Spill +; CHECK-i32-NEXT: str x30, [sp, #128] // 8-byte Spill +; CHECK-i32-NEXT: str q4, [sp, #96] // 16-byte Spill ; CHECK-i32-NEXT: stp q1, q2, [sp] // 32-byte Folded Spill ; CHECK-i32-NEXT: stp q3, q5, [sp, #32] // 32-byte Folded Spill ; CHECK-i32-NEXT: stp q6, q7, [sp, #64] // 32-byte Folded Spill ; CHECK-i32-NEXT: bl lrintl ; CHECK-i32-NEXT: fmov s0, w0 -; CHECK-i32-NEXT: str q0, [sp, #112] // 16-byte Folded Spill -; CHECK-i32-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-i32-NEXT: str q0, [sp, #112] // 16-byte Spill +; CHECK-i32-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #112] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #112] // 16-byte Reload ; CHECK-i32-NEXT: mov v0.s[1], w0 -; CHECK-i32-NEXT: str q0, [sp, #112] // 16-byte Folded Spill -; CHECK-i32-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-i32-NEXT: str q0, [sp, #112] // 16-byte Spill +; CHECK-i32-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #112] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #112] // 16-byte Reload ; CHECK-i32-NEXT: mov v0.s[2], w0 -; CHECK-i32-NEXT: str q0, [sp, #112] // 16-byte Folded Spill -; CHECK-i32-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-i32-NEXT: str q0, [sp, #112] // 16-byte Spill +; CHECK-i32-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #112] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #112] // 16-byte Reload ; CHECK-i32-NEXT: mov v0.s[3], w0 -; CHECK-i32-NEXT: str q0, [sp, #112] // 16-byte Folded Spill -; CHECK-i32-NEXT: ldr q0, [sp, #96] // 16-byte Folded Reload +; CHECK-i32-NEXT: str q0, [sp, #112] // 16-byte Spill +; CHECK-i32-NEXT: ldr q0, [sp, #96] // 16-byte Reload ; CHECK-i32-NEXT: bl lrintl ; CHECK-i32-NEXT: fmov s0, w0 -; CHECK-i32-NEXT: str q0, [sp, #96] // 16-byte Folded Spill -; CHECK-i32-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-i32-NEXT: str q0, [sp, #96] // 16-byte Spill +; CHECK-i32-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #96] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #96] // 16-byte Reload ; CHECK-i32-NEXT: mov v0.s[1], w0 -; CHECK-i32-NEXT: str q0, [sp, #96] // 16-byte Folded Spill -; CHECK-i32-NEXT: ldr q0, [sp, #64] // 16-byte Folded Reload +; CHECK-i32-NEXT: str q0, [sp, #96] // 16-byte Spill +; CHECK-i32-NEXT: ldr q0, [sp, #64] // 16-byte Reload ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #96] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #96] // 16-byte Reload ; CHECK-i32-NEXT: mov v0.s[2], w0 -; CHECK-i32-NEXT: str q0, [sp, #96] // 16-byte Folded Spill -; CHECK-i32-NEXT: ldr q0, [sp, #80] // 16-byte Folded Reload +; CHECK-i32-NEXT: str q0, [sp, #96] // 16-byte Spill +; CHECK-i32-NEXT: ldr q0, [sp, #80] // 16-byte Reload ; CHECK-i32-NEXT: bl lrintl ; CHECK-i32-NEXT: ldp q1, q0, [sp, #96] // 32-byte Folded Reload -; CHECK-i32-NEXT: ldr x30, [sp, #128] // 8-byte Folded Reload +; CHECK-i32-NEXT: ldr x30, [sp, #128] // 8-byte Reload ; CHECK-i32-NEXT: mov v1.s[3], w0 ; CHECK-i32-NEXT: add sp, sp, #144 ; CHECK-i32-NEXT: ret @@ -1520,53 +1520,53 @@ define <8 x iXLen> @lrint_v8fp128(<8 x fp128> %x) nounwind { ; CHECK-i64-LABEL: lrint_v8fp128: ; CHECK-i64: // %bb.0: ; CHECK-i64-NEXT: sub sp, sp, #144 -; CHECK-i64-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-i64-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-i64-NEXT: mov v0.16b, v1.16b -; CHECK-i64-NEXT: str x30, [sp, #128] // 8-byte Folded Spill +; CHECK-i64-NEXT: str x30, [sp, #128] // 8-byte Spill ; CHECK-i64-NEXT: stp q3, q2, [sp, #16] // 32-byte Folded Spill ; CHECK-i64-NEXT: stp q5, q4, [sp, #48] // 32-byte Folded Spill ; CHECK-i64-NEXT: stp q7, q6, [sp, #96] // 32-byte Folded Spill ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: str q0, [sp, #80] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #80] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: ldr q1, [sp, #80] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q1, [sp, #80] // 16-byte Reload ; CHECK-i64-NEXT: mov v0.d[1], v1.d[0] -; CHECK-i64-NEXT: str q0, [sp, #80] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #80] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-i64-NEXT: mov v0.d[1], v1.d[0] -; CHECK-i64-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: str q0, [sp, #48] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #64] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #48] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp, #64] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: ldr q1, [sp, #48] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q1, [sp, #48] // 16-byte Reload ; CHECK-i64-NEXT: mov v0.d[1], v1.d[0] -; CHECK-i64-NEXT: str q0, [sp, #64] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #96] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #64] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp, #96] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: str q0, [sp, #96] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #112] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #96] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp, #112] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d3, x0 ; CHECK-i64-NEXT: ldp q0, q1, [sp, #80] // 32-byte Folded Reload -; CHECK-i64-NEXT: ldr q2, [sp, #64] // 16-byte Folded Reload -; CHECK-i64-NEXT: ldr x30, [sp, #128] // 8-byte Folded Reload +; CHECK-i64-NEXT: ldr q2, [sp, #64] // 16-byte Reload +; CHECK-i64-NEXT: ldr x30, [sp, #128] // 8-byte Reload ; CHECK-i64-NEXT: mov v3.d[1], v1.d[0] -; CHECK-i64-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-i64-NEXT: add sp, sp, #144 ; CHECK-i64-NEXT: ret %a = call <8 x iXLen> @llvm.lrint.v8iXLen.v8fp128(<8 x fp128> %x) @@ -1581,94 +1581,94 @@ define <16 x iXLen> @lrint_v16fp128(<16 x fp128> %x) nounwind { ; CHECK-i32-NEXT: stp q1, q2, [sp] // 32-byte Folded Spill ; CHECK-i32-NEXT: ldr q1, [sp, #384] ; CHECK-i32-NEXT: stp x29, x30, [sp, #256] // 16-byte Folded Spill -; CHECK-i32-NEXT: str q1, [sp, #176] // 16-byte Folded Spill +; CHECK-i32-NEXT: str q1, [sp, #176] // 16-byte Spill ; CHECK-i32-NEXT: ldr q1, [sp, #368] ; CHECK-i32-NEXT: stp q3, q5, [sp, #32] // 32-byte Folded Spill -; CHECK-i32-NEXT: str q1, [sp, #160] // 16-byte Folded Spill +; CHECK-i32-NEXT: str q1, [sp, #160] // 16-byte Spill ; CHECK-i32-NEXT: ldr q1, [sp, #352] ; CHECK-i32-NEXT: stp q7, q4, [sp, #208] // 32-byte Folded Spill -; CHECK-i32-NEXT: str q1, [sp, #144] // 16-byte Folded Spill +; CHECK-i32-NEXT: str q1, [sp, #144] // 16-byte Spill ; CHECK-i32-NEXT: ldr q1, [sp, #336] -; CHECK-i32-NEXT: str q1, [sp, #192] // 16-byte Folded Spill +; CHECK-i32-NEXT: str q1, [sp, #192] // 16-byte Spill ; CHECK-i32-NEXT: ldr q1, [sp, #320] -; CHECK-i32-NEXT: str q1, [sp, #128] // 16-byte Folded Spill +; CHECK-i32-NEXT: str q1, [sp, #128] // 16-byte Spill ; CHECK-i32-NEXT: ldr q1, [sp, #304] -; CHECK-i32-NEXT: str q1, [sp, #112] // 16-byte Folded Spill +; CHECK-i32-NEXT: str q1, [sp, #112] // 16-byte Spill ; CHECK-i32-NEXT: ldr q1, [sp, #288] ; CHECK-i32-NEXT: stp q6, q1, [sp, #80] // 32-byte Folded Spill ; CHECK-i32-NEXT: ldr q1, [sp, #272] -; CHECK-i32-NEXT: str q1, [sp, #64] // 16-byte Folded Spill +; CHECK-i32-NEXT: str q1, [sp, #64] // 16-byte Spill ; CHECK-i32-NEXT: bl lrintl ; CHECK-i32-NEXT: fmov s0, w0 -; CHECK-i32-NEXT: str q0, [sp, #240] // 16-byte Folded Spill -; CHECK-i32-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-i32-NEXT: str q0, [sp, #240] // 16-byte Spill +; CHECK-i32-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #240] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #240] // 16-byte Reload ; CHECK-i32-NEXT: mov v0.s[1], w0 -; CHECK-i32-NEXT: str q0, [sp, #240] // 16-byte Folded Spill -; CHECK-i32-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-i32-NEXT: str q0, [sp, #240] // 16-byte Spill +; CHECK-i32-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #240] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #240] // 16-byte Reload ; CHECK-i32-NEXT: mov v0.s[2], w0 -; CHECK-i32-NEXT: str q0, [sp, #240] // 16-byte Folded Spill -; CHECK-i32-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-i32-NEXT: str q0, [sp, #240] // 16-byte Spill +; CHECK-i32-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #240] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #240] // 16-byte Reload ; CHECK-i32-NEXT: mov v0.s[3], w0 -; CHECK-i32-NEXT: str q0, [sp, #240] // 16-byte Folded Spill -; CHECK-i32-NEXT: ldr q0, [sp, #224] // 16-byte Folded Reload +; CHECK-i32-NEXT: str q0, [sp, #240] // 16-byte Spill +; CHECK-i32-NEXT: ldr q0, [sp, #224] // 16-byte Reload ; CHECK-i32-NEXT: bl lrintl ; CHECK-i32-NEXT: fmov s0, w0 -; CHECK-i32-NEXT: str q0, [sp, #224] // 16-byte Folded Spill -; CHECK-i32-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-i32-NEXT: str q0, [sp, #224] // 16-byte Spill +; CHECK-i32-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #224] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #224] // 16-byte Reload ; CHECK-i32-NEXT: mov v0.s[1], w0 -; CHECK-i32-NEXT: str q0, [sp, #224] // 16-byte Folded Spill -; CHECK-i32-NEXT: ldr q0, [sp, #80] // 16-byte Folded Reload +; CHECK-i32-NEXT: str q0, [sp, #224] // 16-byte Spill +; CHECK-i32-NEXT: ldr q0, [sp, #80] // 16-byte Reload ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #224] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #224] // 16-byte Reload ; CHECK-i32-NEXT: mov v0.s[2], w0 -; CHECK-i32-NEXT: str q0, [sp, #224] // 16-byte Folded Spill -; CHECK-i32-NEXT: ldr q0, [sp, #208] // 16-byte Folded Reload +; CHECK-i32-NEXT: str q0, [sp, #224] // 16-byte Spill +; CHECK-i32-NEXT: ldr q0, [sp, #208] // 16-byte Reload ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #224] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #224] // 16-byte Reload ; CHECK-i32-NEXT: mov v0.s[3], w0 -; CHECK-i32-NEXT: str q0, [sp, #224] // 16-byte Folded Spill -; CHECK-i32-NEXT: ldr q0, [sp, #64] // 16-byte Folded Reload +; CHECK-i32-NEXT: str q0, [sp, #224] // 16-byte Spill +; CHECK-i32-NEXT: ldr q0, [sp, #64] // 16-byte Reload ; CHECK-i32-NEXT: bl lrintl ; CHECK-i32-NEXT: fmov s0, w0 -; CHECK-i32-NEXT: str q0, [sp, #208] // 16-byte Folded Spill -; CHECK-i32-NEXT: ldr q0, [sp, #96] // 16-byte Folded Reload +; CHECK-i32-NEXT: str q0, [sp, #208] // 16-byte Spill +; CHECK-i32-NEXT: ldr q0, [sp, #96] // 16-byte Reload ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #208] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #208] // 16-byte Reload ; CHECK-i32-NEXT: mov v0.s[1], w0 -; CHECK-i32-NEXT: str q0, [sp, #208] // 16-byte Folded Spill -; CHECK-i32-NEXT: ldr q0, [sp, #112] // 16-byte Folded Reload +; CHECK-i32-NEXT: str q0, [sp, #208] // 16-byte Spill +; CHECK-i32-NEXT: ldr q0, [sp, #112] // 16-byte Reload ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #208] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #208] // 16-byte Reload ; CHECK-i32-NEXT: mov v0.s[2], w0 -; CHECK-i32-NEXT: str q0, [sp, #208] // 16-byte Folded Spill -; CHECK-i32-NEXT: ldr q0, [sp, #128] // 16-byte Folded Reload +; CHECK-i32-NEXT: str q0, [sp, #208] // 16-byte Spill +; CHECK-i32-NEXT: ldr q0, [sp, #128] // 16-byte Reload ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #208] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #208] // 16-byte Reload ; CHECK-i32-NEXT: mov v0.s[3], w0 -; CHECK-i32-NEXT: str q0, [sp, #208] // 16-byte Folded Spill -; CHECK-i32-NEXT: ldr q0, [sp, #192] // 16-byte Folded Reload +; CHECK-i32-NEXT: str q0, [sp, #208] // 16-byte Spill +; CHECK-i32-NEXT: ldr q0, [sp, #192] // 16-byte Reload ; CHECK-i32-NEXT: bl lrintl ; CHECK-i32-NEXT: fmov s0, w0 -; CHECK-i32-NEXT: str q0, [sp, #192] // 16-byte Folded Spill -; CHECK-i32-NEXT: ldr q0, [sp, #144] // 16-byte Folded Reload +; CHECK-i32-NEXT: str q0, [sp, #192] // 16-byte Spill +; CHECK-i32-NEXT: ldr q0, [sp, #144] // 16-byte Reload ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #192] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #192] // 16-byte Reload ; CHECK-i32-NEXT: mov v0.s[1], w0 -; CHECK-i32-NEXT: str q0, [sp, #192] // 16-byte Folded Spill -; CHECK-i32-NEXT: ldr q0, [sp, #160] // 16-byte Folded Reload +; CHECK-i32-NEXT: str q0, [sp, #192] // 16-byte Spill +; CHECK-i32-NEXT: ldr q0, [sp, #160] // 16-byte Reload ; CHECK-i32-NEXT: bl lrintl -; CHECK-i32-NEXT: ldr q0, [sp, #192] // 16-byte Folded Reload +; CHECK-i32-NEXT: ldr q0, [sp, #192] // 16-byte Reload ; CHECK-i32-NEXT: mov v0.s[2], w0 -; CHECK-i32-NEXT: str q0, [sp, #192] // 16-byte Folded Spill -; CHECK-i32-NEXT: ldr q0, [sp, #176] // 16-byte Folded Reload +; CHECK-i32-NEXT: str q0, [sp, #192] // 16-byte Spill +; CHECK-i32-NEXT: ldr q0, [sp, #176] // 16-byte Reload ; CHECK-i32-NEXT: bl lrintl ; CHECK-i32-NEXT: ldp q3, q2, [sp, #192] // 32-byte Folded Reload ; CHECK-i32-NEXT: ldp q1, q0, [sp, #224] // 32-byte Folded Reload @@ -1680,108 +1680,108 @@ define <16 x iXLen> @lrint_v16fp128(<16 x fp128> %x) nounwind { ; CHECK-i64-LABEL: lrint_v16fp128: ; CHECK-i64: // %bb.0: ; CHECK-i64-NEXT: sub sp, sp, #272 -; CHECK-i64-NEXT: str q2, [sp, #160] // 16-byte Folded Spill +; CHECK-i64-NEXT: str q2, [sp, #160] // 16-byte Spill ; CHECK-i64-NEXT: ldr q2, [sp, #368] ; CHECK-i64-NEXT: stp q0, q3, [sp] // 32-byte Folded Spill ; CHECK-i64-NEXT: mov v0.16b, v1.16b -; CHECK-i64-NEXT: str q2, [sp, #240] // 16-byte Folded Spill +; CHECK-i64-NEXT: str q2, [sp, #240] // 16-byte Spill ; CHECK-i64-NEXT: ldr q2, [sp, #384] ; CHECK-i64-NEXT: stp x29, x30, [sp, #256] // 16-byte Folded Spill -; CHECK-i64-NEXT: str q2, [sp, #224] // 16-byte Folded Spill +; CHECK-i64-NEXT: str q2, [sp, #224] // 16-byte Spill ; CHECK-i64-NEXT: ldr q2, [sp, #336] ; CHECK-i64-NEXT: stp q5, q7, [sp, #32] // 32-byte Folded Spill -; CHECK-i64-NEXT: str q2, [sp, #192] // 16-byte Folded Spill +; CHECK-i64-NEXT: str q2, [sp, #192] // 16-byte Spill ; CHECK-i64-NEXT: ldr q2, [sp, #352] -; CHECK-i64-NEXT: str q2, [sp, #176] // 16-byte Folded Spill +; CHECK-i64-NEXT: str q2, [sp, #176] // 16-byte Spill ; CHECK-i64-NEXT: ldr q2, [sp, #304] -; CHECK-i64-NEXT: str q2, [sp, #144] // 16-byte Folded Spill +; CHECK-i64-NEXT: str q2, [sp, #144] // 16-byte Spill ; CHECK-i64-NEXT: ldr q2, [sp, #320] ; CHECK-i64-NEXT: stp q4, q2, [sp, #112] // 32-byte Folded Spill ; CHECK-i64-NEXT: ldr q2, [sp, #272] ; CHECK-i64-NEXT: stp q6, q2, [sp, #80] // 32-byte Folded Spill ; CHECK-i64-NEXT: ldr q2, [sp, #288] -; CHECK-i64-NEXT: str q2, [sp, #64] // 16-byte Folded Spill +; CHECK-i64-NEXT: str q2, [sp, #64] // 16-byte Spill ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: str q0, [sp, #208] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #208] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: ldr q1, [sp, #208] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q1, [sp, #208] // 16-byte Reload ; CHECK-i64-NEXT: mov v0.d[1], v1.d[0] -; CHECK-i64-NEXT: str q0, [sp, #208] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #16] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #208] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp, #16] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #160] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp, #160] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-i64-NEXT: mov v0.d[1], v1.d[0] -; CHECK-i64-NEXT: str q0, [sp, #160] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #32] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #160] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp, #32] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: str q0, [sp, #32] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #112] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #32] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp, #112] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: ldr q1, [sp, #32] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q1, [sp, #32] // 16-byte Reload ; CHECK-i64-NEXT: mov v0.d[1], v1.d[0] -; CHECK-i64-NEXT: str q0, [sp, #112] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #48] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #112] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp, #48] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: str q0, [sp, #48] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #80] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #48] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp, #80] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: ldr q1, [sp, #48] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q1, [sp, #48] // 16-byte Reload ; CHECK-i64-NEXT: mov v0.d[1], v1.d[0] -; CHECK-i64-NEXT: str q0, [sp, #80] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #64] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #80] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp, #64] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: str q0, [sp, #64] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #96] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #64] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp, #96] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: ldr q1, [sp, #64] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q1, [sp, #64] // 16-byte Reload ; CHECK-i64-NEXT: mov v0.d[1], v1.d[0] -; CHECK-i64-NEXT: str q0, [sp, #96] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #128] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #96] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp, #128] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: str q0, [sp, #128] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #144] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #128] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp, #144] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: ldr q1, [sp, #128] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q1, [sp, #128] // 16-byte Reload ; CHECK-i64-NEXT: mov v0.d[1], v1.d[0] -; CHECK-i64-NEXT: str q0, [sp, #144] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #176] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #144] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp, #176] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: str q0, [sp, #176] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #192] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #176] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp, #192] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: ldr q1, [sp, #176] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q1, [sp, #176] // 16-byte Reload ; CHECK-i64-NEXT: mov v0.d[1], v1.d[0] -; CHECK-i64-NEXT: str q0, [sp, #192] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #224] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #192] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp, #224] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d0, x0 -; CHECK-i64-NEXT: str q0, [sp, #224] // 16-byte Folded Spill -; CHECK-i64-NEXT: ldr q0, [sp, #240] // 16-byte Folded Reload +; CHECK-i64-NEXT: str q0, [sp, #224] // 16-byte Spill +; CHECK-i64-NEXT: ldr q0, [sp, #240] // 16-byte Reload ; CHECK-i64-NEXT: bl lrintl ; CHECK-i64-NEXT: fmov d7, x0 ; CHECK-i64-NEXT: ldp q0, q1, [sp, #208] // 32-byte Folded Reload ; CHECK-i64-NEXT: ldp q4, q2, [sp, #96] // 32-byte Folded Reload -; CHECK-i64-NEXT: ldr q3, [sp, #80] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q3, [sp, #80] // 16-byte Reload ; CHECK-i64-NEXT: ldp x29, x30, [sp, #256] // 16-byte Folded Reload -; CHECK-i64-NEXT: ldr q6, [sp, #192] // 16-byte Folded Reload +; CHECK-i64-NEXT: ldr q6, [sp, #192] // 16-byte Reload ; CHECK-i64-NEXT: mov v7.d[1], v1.d[0] ; CHECK-i64-NEXT: ldp q5, q1, [sp, #144] // 32-byte Folded Reload ; CHECK-i64-NEXT: add sp, sp, #272 diff --git a/llvm/test/CodeGen/AArch64/win-sve.ll b/llvm/test/CodeGen/AArch64/win-sve.ll index 53ac9344175a3..a64deab3468e7 100644 --- a/llvm/test/CodeGen/AArch64/win-sve.ll +++ b/llvm/test/CodeGen/AArch64/win-sve.ll @@ -9,29 +9,29 @@ define i32 @f( %x) { ; CHECK-NEXT: // %bb.0: ; CHECK-NEXT: addvl sp, sp, #-18 ; CHECK-NEXT: .seh_allocz 18 -; CHECK-NEXT: str p4, [sp] // 2-byte Folded Spill +; CHECK-NEXT: str p4, [sp] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p4, 0 -; CHECK-NEXT: str p5, [sp, #1, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p5, [sp, #1, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p5, 1 -; CHECK-NEXT: str p6, [sp, #2, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p6, [sp, #2, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p6, 2 -; CHECK-NEXT: str p7, [sp, #3, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p7, [sp, #3, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p7, 3 -; CHECK-NEXT: str p8, [sp, #4, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #4, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p8, 4 -; CHECK-NEXT: str p9, [sp, #5, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p9, [sp, #5, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p9, 5 -; CHECK-NEXT: str p10, [sp, #6, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p10, [sp, #6, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p10, 6 -; CHECK-NEXT: str p11, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p11, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p11, 7 -; CHECK-NEXT: str p12, [sp, #8, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p12, [sp, #8, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p12, 8 -; CHECK-NEXT: str p13, [sp, #9, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p13, [sp, #9, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p13, 9 -; CHECK-NEXT: str p14, [sp, #10, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p14, [sp, #10, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p14, 10 -; CHECK-NEXT: str p15, [sp, #11, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p15, [sp, #11, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p15, 11 ; CHECK-NEXT: str z8, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: .seh_save_zreg z8, 2 @@ -67,15 +67,15 @@ define i32 @f( %x) { ; CHECK-NEXT: .seh_save_zreg z23, 17 ; CHECK-NEXT: str x28, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: .seh_save_reg_x x28, 16 -; CHECK-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-NEXT: .seh_save_reg x30, 8 ; CHECK-NEXT: .seh_endprologue ; CHECK-NEXT: bl g ; CHECK-NEXT: mov w0, #3 // =0x3 ; CHECK-NEXT: .seh_startepilogue -; CHECK-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x30, 8 -; CHECK-NEXT: ldr x28, [sp] // 8-byte Folded Reload +; CHECK-NEXT: ldr x28, [sp] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x28, 0 ; CHECK-NEXT: add sp, sp, #16 ; CHECK-NEXT: .seh_stackalloc 16 @@ -111,29 +111,29 @@ define i32 @f( %x) { ; CHECK-NEXT: .seh_save_zreg z22, 16 ; CHECK-NEXT: ldr z23, [sp, #17, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: .seh_save_zreg z23, 17 -; CHECK-NEXT: ldr p4, [sp] // 2-byte Folded Reload +; CHECK-NEXT: ldr p4, [sp] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p4, 0 -; CHECK-NEXT: ldr p5, [sp, #1, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p5, [sp, #1, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p5, 1 -; CHECK-NEXT: ldr p6, [sp, #2, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p6, [sp, #2, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p6, 2 -; CHECK-NEXT: ldr p7, [sp, #3, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p7, [sp, #3, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p7, 3 -; CHECK-NEXT: ldr p8, [sp, #4, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #4, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p8, 4 -; CHECK-NEXT: ldr p9, [sp, #5, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p9, [sp, #5, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p9, 5 -; CHECK-NEXT: ldr p10, [sp, #6, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p10, [sp, #6, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p10, 6 -; CHECK-NEXT: ldr p11, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p11, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p11, 7 -; CHECK-NEXT: ldr p12, [sp, #8, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p12, [sp, #8, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p12, 8 -; CHECK-NEXT: ldr p13, [sp, #9, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p13, [sp, #9, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p13, 9 -; CHECK-NEXT: ldr p14, [sp, #10, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p14, [sp, #10, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p14, 10 -; CHECK-NEXT: ldr p15, [sp, #11, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p15, [sp, #11, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p15, 11 ; CHECK-NEXT: addvl sp, sp, #18 ; CHECK-NEXT: .seh_allocz 18 @@ -152,29 +152,29 @@ define void @f2(i64 %n, %x) { ; CHECK-NEXT: // %bb.0: ; CHECK-NEXT: addvl sp, sp, #-18 ; CHECK-NEXT: .seh_allocz 18 -; CHECK-NEXT: str p4, [sp] // 2-byte Folded Spill +; CHECK-NEXT: str p4, [sp] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p4, 0 -; CHECK-NEXT: str p5, [sp, #1, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p5, [sp, #1, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p5, 1 -; CHECK-NEXT: str p6, [sp, #2, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p6, [sp, #2, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p6, 2 -; CHECK-NEXT: str p7, [sp, #3, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p7, [sp, #3, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p7, 3 -; CHECK-NEXT: str p8, [sp, #4, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #4, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p8, 4 -; CHECK-NEXT: str p9, [sp, #5, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p9, [sp, #5, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p9, 5 -; CHECK-NEXT: str p10, [sp, #6, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p10, [sp, #6, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p10, 6 -; CHECK-NEXT: str p11, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p11, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p11, 7 -; CHECK-NEXT: str p12, [sp, #8, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p12, [sp, #8, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p12, 8 -; CHECK-NEXT: str p13, [sp, #9, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p13, [sp, #9, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p13, 9 -; CHECK-NEXT: str p14, [sp, #10, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p14, [sp, #10, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p14, 10 -; CHECK-NEXT: str p15, [sp, #11, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p15, [sp, #11, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p15, 11 ; CHECK-NEXT: str z8, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: .seh_save_zreg z8, 2 @@ -210,7 +210,7 @@ define void @f2(i64 %n, %x) { ; CHECK-NEXT: .seh_save_zreg z23, 17 ; CHECK-NEXT: str x19, [sp, #-32]! // 8-byte Folded Spill ; CHECK-NEXT: .seh_save_reg_x x19, 32 -; CHECK-NEXT: str x28, [sp, #8] // 8-byte Folded Spill +; CHECK-NEXT: str x28, [sp, #8] // 8-byte Spill ; CHECK-NEXT: .seh_save_reg x28, 8 ; CHECK-NEXT: stp x29, x30, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: .seh_save_fplr 16 @@ -232,9 +232,9 @@ define void @f2(i64 %n, %x) { ; CHECK-NEXT: .seh_add_fp 16 ; CHECK-NEXT: ldp x29, x30, [sp, #16] // 16-byte Folded Reload ; CHECK-NEXT: .seh_save_fplr 16 -; CHECK-NEXT: ldr x28, [sp, #8] // 8-byte Folded Reload +; CHECK-NEXT: ldr x28, [sp, #8] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x28, 8 -; CHECK-NEXT: ldr x19, [sp] // 8-byte Folded Reload +; CHECK-NEXT: ldr x19, [sp] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x19, 0 ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: .seh_stackalloc 32 @@ -270,29 +270,29 @@ define void @f2(i64 %n, %x) { ; CHECK-NEXT: .seh_save_zreg z22, 16 ; CHECK-NEXT: ldr z23, [sp, #17, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: .seh_save_zreg z23, 17 -; CHECK-NEXT: ldr p4, [sp] // 2-byte Folded Reload +; CHECK-NEXT: ldr p4, [sp] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p4, 0 -; CHECK-NEXT: ldr p5, [sp, #1, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p5, [sp, #1, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p5, 1 -; CHECK-NEXT: ldr p6, [sp, #2, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p6, [sp, #2, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p6, 2 -; CHECK-NEXT: ldr p7, [sp, #3, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p7, [sp, #3, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p7, 3 -; CHECK-NEXT: ldr p8, [sp, #4, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #4, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p8, 4 -; CHECK-NEXT: ldr p9, [sp, #5, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p9, [sp, #5, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p9, 5 -; CHECK-NEXT: ldr p10, [sp, #6, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p10, [sp, #6, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p10, 6 -; CHECK-NEXT: ldr p11, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p11, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p11, 7 -; CHECK-NEXT: ldr p12, [sp, #8, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p12, [sp, #8, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p12, 8 -; CHECK-NEXT: ldr p13, [sp, #9, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p13, [sp, #9, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p13, 9 -; CHECK-NEXT: ldr p14, [sp, #10, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p14, [sp, #10, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p14, 10 -; CHECK-NEXT: ldr p15, [sp, #11, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p15, [sp, #11, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p15, 11 ; CHECK-NEXT: addvl sp, sp, #18 ; CHECK-NEXT: .seh_allocz 18 @@ -313,29 +313,29 @@ define void @f3(i64 %n, %x) { ; CHECK-NEXT: // %bb.0: ; CHECK-NEXT: addvl sp, sp, #-18 ; CHECK-NEXT: .seh_allocz 18 -; CHECK-NEXT: str p4, [sp] // 2-byte Folded Spill +; CHECK-NEXT: str p4, [sp] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p4, 0 -; CHECK-NEXT: str p5, [sp, #1, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p5, [sp, #1, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p5, 1 -; CHECK-NEXT: str p6, [sp, #2, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p6, [sp, #2, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p6, 2 -; CHECK-NEXT: str p7, [sp, #3, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p7, [sp, #3, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p7, 3 -; CHECK-NEXT: str p8, [sp, #4, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #4, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p8, 4 -; CHECK-NEXT: str p9, [sp, #5, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p9, [sp, #5, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p9, 5 -; CHECK-NEXT: str p10, [sp, #6, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p10, [sp, #6, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p10, 6 -; CHECK-NEXT: str p11, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p11, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p11, 7 -; CHECK-NEXT: str p12, [sp, #8, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p12, [sp, #8, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p12, 8 -; CHECK-NEXT: str p13, [sp, #9, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p13, [sp, #9, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p13, 9 -; CHECK-NEXT: str p14, [sp, #10, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p14, [sp, #10, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p14, 10 -; CHECK-NEXT: str p15, [sp, #11, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p15, [sp, #11, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p15, 11 ; CHECK-NEXT: str z8, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: .seh_save_zreg z8, 2 @@ -371,7 +371,7 @@ define void @f3(i64 %n, %x) { ; CHECK-NEXT: .seh_save_zreg z23, 17 ; CHECK-NEXT: str x28, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: .seh_save_reg_x x28, 16 -; CHECK-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-NEXT: .seh_save_reg x30, 8 ; CHECK-NEXT: sub sp, sp, #16 ; CHECK-NEXT: .seh_stackalloc 16 @@ -382,9 +382,9 @@ define void @f3(i64 %n, %x) { ; CHECK-NEXT: .seh_startepilogue ; CHECK-NEXT: add sp, sp, #16 ; CHECK-NEXT: .seh_stackalloc 16 -; CHECK-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x30, 8 -; CHECK-NEXT: ldr x28, [sp] // 8-byte Folded Reload +; CHECK-NEXT: ldr x28, [sp] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x28, 0 ; CHECK-NEXT: add sp, sp, #16 ; CHECK-NEXT: .seh_stackalloc 16 @@ -420,29 +420,29 @@ define void @f3(i64 %n, %x) { ; CHECK-NEXT: .seh_save_zreg z22, 16 ; CHECK-NEXT: ldr z23, [sp, #17, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: .seh_save_zreg z23, 17 -; CHECK-NEXT: ldr p4, [sp] // 2-byte Folded Reload +; CHECK-NEXT: ldr p4, [sp] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p4, 0 -; CHECK-NEXT: ldr p5, [sp, #1, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p5, [sp, #1, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p5, 1 -; CHECK-NEXT: ldr p6, [sp, #2, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p6, [sp, #2, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p6, 2 -; CHECK-NEXT: ldr p7, [sp, #3, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p7, [sp, #3, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p7, 3 -; CHECK-NEXT: ldr p8, [sp, #4, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #4, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p8, 4 -; CHECK-NEXT: ldr p9, [sp, #5, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p9, [sp, #5, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p9, 5 -; CHECK-NEXT: ldr p10, [sp, #6, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p10, [sp, #6, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p10, 6 -; CHECK-NEXT: ldr p11, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p11, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p11, 7 -; CHECK-NEXT: ldr p12, [sp, #8, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p12, [sp, #8, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p12, 8 -; CHECK-NEXT: ldr p13, [sp, #9, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p13, [sp, #9, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p13, 9 -; CHECK-NEXT: ldr p14, [sp, #10, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p14, [sp, #10, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p14, 10 -; CHECK-NEXT: ldr p15, [sp, #11, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p15, [sp, #11, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p15, 11 ; CHECK-NEXT: addvl sp, sp, #18 ; CHECK-NEXT: .seh_allocz 18 @@ -463,29 +463,29 @@ define void @f4(i64 %n, %x) { ; CHECK-NEXT: // %bb.0: ; CHECK-NEXT: addvl sp, sp, #-18 ; CHECK-NEXT: .seh_allocz 18 -; CHECK-NEXT: str p4, [sp] // 2-byte Folded Spill +; CHECK-NEXT: str p4, [sp] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p4, 0 -; CHECK-NEXT: str p5, [sp, #1, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p5, [sp, #1, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p5, 1 -; CHECK-NEXT: str p6, [sp, #2, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p6, [sp, #2, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p6, 2 -; CHECK-NEXT: str p7, [sp, #3, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p7, [sp, #3, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p7, 3 -; CHECK-NEXT: str p8, [sp, #4, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #4, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p8, 4 -; CHECK-NEXT: str p9, [sp, #5, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p9, [sp, #5, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p9, 5 -; CHECK-NEXT: str p10, [sp, #6, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p10, [sp, #6, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p10, 6 -; CHECK-NEXT: str p11, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p11, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p11, 7 -; CHECK-NEXT: str p12, [sp, #8, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p12, [sp, #8, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p12, 8 -; CHECK-NEXT: str p13, [sp, #9, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p13, [sp, #9, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p13, 9 -; CHECK-NEXT: str p14, [sp, #10, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p14, [sp, #10, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p14, 10 -; CHECK-NEXT: str p15, [sp, #11, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p15, [sp, #11, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p15, 11 ; CHECK-NEXT: str z8, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: .seh_save_zreg z8, 2 @@ -521,7 +521,7 @@ define void @f4(i64 %n, %x) { ; CHECK-NEXT: .seh_save_zreg z23, 17 ; CHECK-NEXT: str x28, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: .seh_save_reg_x x28, 16 -; CHECK-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-NEXT: .seh_save_reg x30, 8 ; CHECK-NEXT: sub sp, sp, #16 ; CHECK-NEXT: .seh_stackalloc 16 @@ -536,9 +536,9 @@ define void @f4(i64 %n, %x) { ; CHECK-NEXT: .seh_allocz 1 ; CHECK-NEXT: add sp, sp, #16 ; CHECK-NEXT: .seh_stackalloc 16 -; CHECK-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x30, 8 -; CHECK-NEXT: ldr x28, [sp] // 8-byte Folded Reload +; CHECK-NEXT: ldr x28, [sp] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x28, 0 ; CHECK-NEXT: add sp, sp, #16 ; CHECK-NEXT: .seh_stackalloc 16 @@ -574,29 +574,29 @@ define void @f4(i64 %n, %x) { ; CHECK-NEXT: .seh_save_zreg z22, 16 ; CHECK-NEXT: ldr z23, [sp, #17, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: .seh_save_zreg z23, 17 -; CHECK-NEXT: ldr p4, [sp] // 2-byte Folded Reload +; CHECK-NEXT: ldr p4, [sp] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p4, 0 -; CHECK-NEXT: ldr p5, [sp, #1, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p5, [sp, #1, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p5, 1 -; CHECK-NEXT: ldr p6, [sp, #2, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p6, [sp, #2, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p6, 2 -; CHECK-NEXT: ldr p7, [sp, #3, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p7, [sp, #3, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p7, 3 -; CHECK-NEXT: ldr p8, [sp, #4, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #4, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p8, 4 -; CHECK-NEXT: ldr p9, [sp, #5, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p9, [sp, #5, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p9, 5 -; CHECK-NEXT: ldr p10, [sp, #6, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p10, [sp, #6, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p10, 6 -; CHECK-NEXT: ldr p11, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p11, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p11, 7 -; CHECK-NEXT: ldr p12, [sp, #8, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p12, [sp, #8, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p12, 8 -; CHECK-NEXT: ldr p13, [sp, #9, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p13, [sp, #9, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p13, 9 -; CHECK-NEXT: ldr p14, [sp, #10, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p14, [sp, #10, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p14, 10 -; CHECK-NEXT: ldr p15, [sp, #11, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p15, [sp, #11, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p15, 11 ; CHECK-NEXT: addvl sp, sp, #18 ; CHECK-NEXT: .seh_allocz 18 @@ -617,29 +617,29 @@ define void @f5(i64 %n, %x) { ; CHECK-NEXT: // %bb.0: ; CHECK-NEXT: addvl sp, sp, #-18 ; CHECK-NEXT: .seh_allocz 18 -; CHECK-NEXT: str p4, [sp] // 2-byte Folded Spill +; CHECK-NEXT: str p4, [sp] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p4, 0 -; CHECK-NEXT: str p5, [sp, #1, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p5, [sp, #1, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p5, 1 -; CHECK-NEXT: str p6, [sp, #2, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p6, [sp, #2, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p6, 2 -; CHECK-NEXT: str p7, [sp, #3, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p7, [sp, #3, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p7, 3 -; CHECK-NEXT: str p8, [sp, #4, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #4, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p8, 4 -; CHECK-NEXT: str p9, [sp, #5, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p9, [sp, #5, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p9, 5 -; CHECK-NEXT: str p10, [sp, #6, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p10, [sp, #6, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p10, 6 -; CHECK-NEXT: str p11, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p11, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p11, 7 -; CHECK-NEXT: str p12, [sp, #8, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p12, [sp, #8, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p12, 8 -; CHECK-NEXT: str p13, [sp, #9, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p13, [sp, #9, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p13, 9 -; CHECK-NEXT: str p14, [sp, #10, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p14, [sp, #10, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p14, 10 -; CHECK-NEXT: str p15, [sp, #11, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p15, [sp, #11, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p15, 11 ; CHECK-NEXT: str z8, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: .seh_save_zreg z8, 2 @@ -675,7 +675,7 @@ define void @f5(i64 %n, %x) { ; CHECK-NEXT: .seh_save_zreg z23, 17 ; CHECK-NEXT: str x19, [sp, #-32]! // 8-byte Folded Spill ; CHECK-NEXT: .seh_save_reg_x x19, 32 -; CHECK-NEXT: str x28, [sp, #8] // 8-byte Folded Spill +; CHECK-NEXT: str x28, [sp, #8] // 8-byte Spill ; CHECK-NEXT: .seh_save_reg x28, 8 ; CHECK-NEXT: stp x29, x30, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: .seh_save_fplr 16 @@ -700,9 +700,9 @@ define void @f5(i64 %n, %x) { ; CHECK-NEXT: .seh_add_fp 16 ; CHECK-NEXT: ldp x29, x30, [sp, #16] // 16-byte Folded Reload ; CHECK-NEXT: .seh_save_fplr 16 -; CHECK-NEXT: ldr x28, [sp, #8] // 8-byte Folded Reload +; CHECK-NEXT: ldr x28, [sp, #8] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x28, 8 -; CHECK-NEXT: ldr x19, [sp] // 8-byte Folded Reload +; CHECK-NEXT: ldr x19, [sp] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x19, 0 ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: .seh_stackalloc 32 @@ -738,29 +738,29 @@ define void @f5(i64 %n, %x) { ; CHECK-NEXT: .seh_save_zreg z22, 16 ; CHECK-NEXT: ldr z23, [sp, #17, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: .seh_save_zreg z23, 17 -; CHECK-NEXT: ldr p4, [sp] // 2-byte Folded Reload +; CHECK-NEXT: ldr p4, [sp] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p4, 0 -; CHECK-NEXT: ldr p5, [sp, #1, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p5, [sp, #1, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p5, 1 -; CHECK-NEXT: ldr p6, [sp, #2, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p6, [sp, #2, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p6, 2 -; CHECK-NEXT: ldr p7, [sp, #3, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p7, [sp, #3, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p7, 3 -; CHECK-NEXT: ldr p8, [sp, #4, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #4, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p8, 4 -; CHECK-NEXT: ldr p9, [sp, #5, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p9, [sp, #5, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p9, 5 -; CHECK-NEXT: ldr p10, [sp, #6, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p10, [sp, #6, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p10, 6 -; CHECK-NEXT: ldr p11, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p11, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p11, 7 -; CHECK-NEXT: ldr p12, [sp, #8, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p12, [sp, #8, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p12, 8 -; CHECK-NEXT: ldr p13, [sp, #9, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p13, [sp, #9, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p13, 9 -; CHECK-NEXT: ldr p14, [sp, #10, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p14, [sp, #10, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p14, 10 -; CHECK-NEXT: ldr p15, [sp, #11, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p15, [sp, #11, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p15, 11 ; CHECK-NEXT: addvl sp, sp, #18 ; CHECK-NEXT: .seh_allocz 18 @@ -788,29 +788,29 @@ define void @f6( %x, [8 x i64] %pad, i64 %n9) personality ptr ; CHECK-NEXT: .seh_stackalloc 16 ; CHECK-NEXT: addvl sp, sp, #-18 ; CHECK-NEXT: .seh_allocz 18 -; CHECK-NEXT: str p4, [sp] // 2-byte Folded Spill +; CHECK-NEXT: str p4, [sp] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p4, 0 -; CHECK-NEXT: str p5, [sp, #1, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p5, [sp, #1, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p5, 1 -; CHECK-NEXT: str p6, [sp, #2, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p6, [sp, #2, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p6, 2 -; CHECK-NEXT: str p7, [sp, #3, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p7, [sp, #3, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p7, 3 -; CHECK-NEXT: str p8, [sp, #4, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #4, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p8, 4 -; CHECK-NEXT: str p9, [sp, #5, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p9, [sp, #5, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p9, 5 -; CHECK-NEXT: str p10, [sp, #6, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p10, [sp, #6, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p10, 6 -; CHECK-NEXT: str p11, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p11, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p11, 7 -; CHECK-NEXT: str p12, [sp, #8, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p12, [sp, #8, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p12, 8 -; CHECK-NEXT: str p13, [sp, #9, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p13, [sp, #9, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p13, 9 -; CHECK-NEXT: str p14, [sp, #10, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p14, [sp, #10, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p14, 10 -; CHECK-NEXT: str p15, [sp, #11, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p15, [sp, #11, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p15, 11 ; CHECK-NEXT: str z8, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: .seh_save_zreg z8, 2 @@ -846,7 +846,7 @@ define void @f6( %x, [8 x i64] %pad, i64 %n9) personality ptr ; CHECK-NEXT: .seh_save_zreg z23, 17 ; CHECK-NEXT: str x19, [sp, #-32]! // 8-byte Folded Spill ; CHECK-NEXT: .seh_save_reg_x x19, 32 -; CHECK-NEXT: str x28, [sp, #8] // 8-byte Folded Spill +; CHECK-NEXT: str x28, [sp, #8] // 8-byte Spill ; CHECK-NEXT: .seh_save_reg x28, 8 ; CHECK-NEXT: stp x29, x30, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: .seh_save_fplr 16 @@ -860,19 +860,19 @@ define void @f6( %x, [8 x i64] %pad, i64 %n9) personality ptr ; CHECK-NEXT: stur x0, [x8, #16] ; CHECK-NEXT: addvl x8, x29, #18 ; CHECK-NEXT: ldr x1, [x8, #32] -; CHECK-NEXT: .Ltmp0: +; CHECK-NEXT: .Ltmp0: // EH_LABEL ; CHECK-NEXT: add x0, x19, #0 ; CHECK-NEXT: bl g6 -; CHECK-NEXT: .Ltmp1: +; CHECK-NEXT: .Ltmp1: // EH_LABEL ; CHECK-NEXT: // %bb.1: // %invoke.cont ; CHECK-NEXT: .seh_startepilogue ; CHECK-NEXT: add sp, sp, #64 ; CHECK-NEXT: .seh_stackalloc 64 ; CHECK-NEXT: ldp x29, x30, [sp, #16] // 16-byte Folded Reload ; CHECK-NEXT: .seh_save_fplr 16 -; CHECK-NEXT: ldr x28, [sp, #8] // 8-byte Folded Reload +; CHECK-NEXT: ldr x28, [sp, #8] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x28, 8 -; CHECK-NEXT: ldr x19, [sp] // 8-byte Folded Reload +; CHECK-NEXT: ldr x19, [sp] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x19, 0 ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: .seh_stackalloc 32 @@ -908,29 +908,29 @@ define void @f6( %x, [8 x i64] %pad, i64 %n9) personality ptr ; CHECK-NEXT: .seh_save_zreg z22, 16 ; CHECK-NEXT: ldr z23, [sp, #17, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: .seh_save_zreg z23, 17 -; CHECK-NEXT: ldr p4, [sp] // 2-byte Folded Reload +; CHECK-NEXT: ldr p4, [sp] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p4, 0 -; CHECK-NEXT: ldr p5, [sp, #1, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p5, [sp, #1, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p5, 1 -; CHECK-NEXT: ldr p6, [sp, #2, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p6, [sp, #2, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p6, 2 -; CHECK-NEXT: ldr p7, [sp, #3, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p7, [sp, #3, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p7, 3 -; CHECK-NEXT: ldr p8, [sp, #4, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #4, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p8, 4 -; CHECK-NEXT: ldr p9, [sp, #5, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p9, [sp, #5, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p9, 5 -; CHECK-NEXT: ldr p10, [sp, #6, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p10, [sp, #6, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p10, 6 -; CHECK-NEXT: ldr p11, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p11, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p11, 7 -; CHECK-NEXT: ldr p12, [sp, #8, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p12, [sp, #8, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p12, 8 -; CHECK-NEXT: ldr p13, [sp, #9, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p13, [sp, #9, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p13, 9 -; CHECK-NEXT: ldr p14, [sp, #10, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p14, [sp, #10, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p14, 10 -; CHECK-NEXT: ldr p15, [sp, #11, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p15, [sp, #11, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p15, 11 ; CHECK-NEXT: add sp, sp, #16 ; CHECK-NEXT: .seh_stackalloc 16 @@ -955,29 +955,29 @@ define void @f6( %x, [8 x i64] %pad, i64 %n9) personality ptr ; CHECK-NEXT: .LBB5_2: // %ehcleanup ; CHECK-NEXT: addvl sp, sp, #-18 ; CHECK-NEXT: .seh_allocz 18 -; CHECK-NEXT: str p4, [sp] // 2-byte Folded Spill +; CHECK-NEXT: str p4, [sp] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p4, 0 -; CHECK-NEXT: str p5, [sp, #1, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p5, [sp, #1, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p5, 1 -; CHECK-NEXT: str p6, [sp, #2, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p6, [sp, #2, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p6, 2 -; CHECK-NEXT: str p7, [sp, #3, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p7, [sp, #3, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p7, 3 -; CHECK-NEXT: str p8, [sp, #4, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #4, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p8, 4 -; CHECK-NEXT: str p9, [sp, #5, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p9, [sp, #5, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p9, 5 -; CHECK-NEXT: str p10, [sp, #6, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p10, [sp, #6, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p10, 6 -; CHECK-NEXT: str p11, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p11, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p11, 7 -; CHECK-NEXT: str p12, [sp, #8, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p12, [sp, #8, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p12, 8 -; CHECK-NEXT: str p13, [sp, #9, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p13, [sp, #9, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p13, 9 -; CHECK-NEXT: str p14, [sp, #10, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p14, [sp, #10, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p14, 10 -; CHECK-NEXT: str p15, [sp, #11, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p15, [sp, #11, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p15, 11 ; CHECK-NEXT: str z8, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: .seh_save_zreg z8, 2 @@ -1013,7 +1013,7 @@ define void @f6( %x, [8 x i64] %pad, i64 %n9) personality ptr ; CHECK-NEXT: .seh_save_zreg z23, 17 ; CHECK-NEXT: str x19, [sp, #-32]! // 8-byte Folded Spill ; CHECK-NEXT: .seh_save_reg_x x19, 32 -; CHECK-NEXT: str x28, [sp, #8] // 8-byte Folded Spill +; CHECK-NEXT: str x28, [sp, #8] // 8-byte Spill ; CHECK-NEXT: .seh_save_reg x28, 8 ; CHECK-NEXT: stp x29, x30, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: .seh_save_fplr 16 @@ -1022,9 +1022,9 @@ define void @f6( %x, [8 x i64] %pad, i64 %n9) personality ptr ; CHECK-NEXT: .seh_startepilogue ; CHECK-NEXT: ldp x29, x30, [sp, #16] // 16-byte Folded Reload ; CHECK-NEXT: .seh_save_fplr 16 -; CHECK-NEXT: ldr x28, [sp, #8] // 8-byte Folded Reload +; CHECK-NEXT: ldr x28, [sp, #8] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x28, 8 -; CHECK-NEXT: ldr x19, [sp] // 8-byte Folded Reload +; CHECK-NEXT: ldr x19, [sp] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x19, 0 ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: .seh_stackalloc 32 @@ -1060,29 +1060,29 @@ define void @f6( %x, [8 x i64] %pad, i64 %n9) personality ptr ; CHECK-NEXT: .seh_save_zreg z22, 16 ; CHECK-NEXT: ldr z23, [sp, #17, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: .seh_save_zreg z23, 17 -; CHECK-NEXT: ldr p4, [sp] // 2-byte Folded Reload +; CHECK-NEXT: ldr p4, [sp] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p4, 0 -; CHECK-NEXT: ldr p5, [sp, #1, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p5, [sp, #1, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p5, 1 -; CHECK-NEXT: ldr p6, [sp, #2, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p6, [sp, #2, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p6, 2 -; CHECK-NEXT: ldr p7, [sp, #3, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p7, [sp, #3, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p7, 3 -; CHECK-NEXT: ldr p8, [sp, #4, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #4, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p8, 4 -; CHECK-NEXT: ldr p9, [sp, #5, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p9, [sp, #5, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p9, 5 -; CHECK-NEXT: ldr p10, [sp, #6, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p10, [sp, #6, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p10, 6 -; CHECK-NEXT: ldr p11, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p11, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p11, 7 -; CHECK-NEXT: ldr p12, [sp, #8, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p12, [sp, #8, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p12, 8 -; CHECK-NEXT: ldr p13, [sp, #9, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p13, [sp, #9, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p13, 9 -; CHECK-NEXT: ldr p14, [sp, #10, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p14, [sp, #10, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p14, 10 -; CHECK-NEXT: ldr p15, [sp, #11, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p15, [sp, #11, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p15, 11 ; CHECK-NEXT: addvl sp, sp, #18 ; CHECK-NEXT: .seh_allocz 18 @@ -1107,7 +1107,7 @@ define void @f7(i64 %n) { ; CHECK-NEXT: // %bb.0: ; CHECK-NEXT: str x28, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: .seh_save_reg_x x28, 16 -; CHECK-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-NEXT: .seh_save_reg x30, 8 ; CHECK-NEXT: addvl sp, sp, #-1 ; CHECK-NEXT: .seh_allocz 1 @@ -1117,7 +1117,7 @@ define void @f7(i64 %n) { ; CHECK-NEXT: .seh_startepilogue ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: .seh_allocz 1 -; CHECK-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x30, 8 ; CHECK-NEXT: ldr x28, [sp], #16 // 8-byte Folded Reload ; CHECK-NEXT: .seh_save_reg_x x28, 16 @@ -1144,7 +1144,7 @@ define void @f8( %v) { ; CHECK-NEXT: //APP ; CHECK-NEXT: //NO_APP ; CHECK-NEXT: .seh_startepilogue -; CHECK-NEXT: ldr x30, [sp] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x30, 0 ; CHECK-NEXT: add sp, sp, #16 ; CHECK-NEXT: .seh_stackalloc 16 @@ -1196,7 +1196,7 @@ define void @f9( %v, ...) { ; CHECK-NEXT: //APP ; CHECK-NEXT: //NO_APP ; CHECK-NEXT: .seh_startepilogue -; CHECK-NEXT: ldr x30, [sp] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x30, 0 ; CHECK-NEXT: add sp, sp, #16 ; CHECK-NEXT: .seh_stackalloc 16 @@ -1225,29 +1225,29 @@ define void @f10(i64 %n, %x) "frame-pointer"="all" { ; CHECK-NEXT: // %bb.0: ; CHECK-NEXT: addvl sp, sp, #-18 ; CHECK-NEXT: .seh_allocz 18 -; CHECK-NEXT: str p4, [sp] // 2-byte Folded Spill +; CHECK-NEXT: str p4, [sp] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p4, 0 -; CHECK-NEXT: str p5, [sp, #1, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p5, [sp, #1, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p5, 1 -; CHECK-NEXT: str p6, [sp, #2, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p6, [sp, #2, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p6, 2 -; CHECK-NEXT: str p7, [sp, #3, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p7, [sp, #3, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p7, 3 -; CHECK-NEXT: str p8, [sp, #4, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p8, [sp, #4, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p8, 4 -; CHECK-NEXT: str p9, [sp, #5, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p9, [sp, #5, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p9, 5 -; CHECK-NEXT: str p10, [sp, #6, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p10, [sp, #6, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p10, 6 -; CHECK-NEXT: str p11, [sp, #7, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p11, [sp, #7, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p11, 7 -; CHECK-NEXT: str p12, [sp, #8, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p12, [sp, #8, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p12, 8 -; CHECK-NEXT: str p13, [sp, #9, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p13, [sp, #9, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p13, 9 -; CHECK-NEXT: str p14, [sp, #10, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p14, [sp, #10, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p14, 10 -; CHECK-NEXT: str p15, [sp, #11, mul vl] // 2-byte Folded Spill +; CHECK-NEXT: str p15, [sp, #11, mul vl] // 2-byte Spill ; CHECK-NEXT: .seh_save_preg p15, 11 ; CHECK-NEXT: str z8, [sp, #2, mul vl] // 16-byte Folded Spill ; CHECK-NEXT: .seh_save_zreg z8, 2 @@ -1301,7 +1301,7 @@ define void @f10(i64 %n, %x) "frame-pointer"="all" { ; CHECK-NEXT: .seh_stackalloc 16 ; CHECK-NEXT: ldp x29, x30, [sp, #8] // 16-byte Folded Reload ; CHECK-NEXT: .seh_save_fplr 8 -; CHECK-NEXT: ldr x28, [sp] // 8-byte Folded Reload +; CHECK-NEXT: ldr x28, [sp] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x28, 0 ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: .seh_stackalloc 32 @@ -1337,29 +1337,29 @@ define void @f10(i64 %n, %x) "frame-pointer"="all" { ; CHECK-NEXT: .seh_save_zreg z22, 16 ; CHECK-NEXT: ldr z23, [sp, #17, mul vl] // 16-byte Folded Reload ; CHECK-NEXT: .seh_save_zreg z23, 17 -; CHECK-NEXT: ldr p4, [sp] // 2-byte Folded Reload +; CHECK-NEXT: ldr p4, [sp] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p4, 0 -; CHECK-NEXT: ldr p5, [sp, #1, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p5, [sp, #1, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p5, 1 -; CHECK-NEXT: ldr p6, [sp, #2, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p6, [sp, #2, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p6, 2 -; CHECK-NEXT: ldr p7, [sp, #3, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p7, [sp, #3, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p7, 3 -; CHECK-NEXT: ldr p8, [sp, #4, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p8, [sp, #4, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p8, 4 -; CHECK-NEXT: ldr p9, [sp, #5, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p9, [sp, #5, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p9, 5 -; CHECK-NEXT: ldr p10, [sp, #6, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p10, [sp, #6, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p10, 6 -; CHECK-NEXT: ldr p11, [sp, #7, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p11, [sp, #7, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p11, 7 -; CHECK-NEXT: ldr p12, [sp, #8, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p12, [sp, #8, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p12, 8 -; CHECK-NEXT: ldr p13, [sp, #9, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p13, [sp, #9, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p13, 9 -; CHECK-NEXT: ldr p14, [sp, #10, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p14, [sp, #10, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p14, 10 -; CHECK-NEXT: ldr p15, [sp, #11, mul vl] // 2-byte Folded Reload +; CHECK-NEXT: ldr p15, [sp, #11, mul vl] // 2-byte Reload ; CHECK-NEXT: .seh_save_preg p15, 11 ; CHECK-NEXT: addvl sp, sp, #18 ; CHECK-NEXT: .seh_allocz 18 @@ -1390,7 +1390,7 @@ define i32 @f11(double %d, %vs) "aarch64_pstate_sm_compatible ; CHECK-NEXT: //NO_APP ; CHECK-NEXT: str d0, [sp, #8] ; CHECK-NEXT: .seh_startepilogue -; CHECK-NEXT: ldr x30, [sp] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x30, 0 ; CHECK-NEXT: add sp, sp, #16 ; CHECK-NEXT: .seh_stackalloc 16 @@ -1431,7 +1431,7 @@ define i32 @f12(double %d, %vs) "aarch64_pstate_sm_compatible ; CHECK-NEXT: .seh_startepilogue ; CHECK-NEXT: addvl sp, sp, #1 ; CHECK-NEXT: .seh_allocz 1 -; CHECK-NEXT: ldr x30, [sp] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x30, 0 ; CHECK-NEXT: add sp, sp, #16 ; CHECK-NEXT: .seh_stackalloc 16 @@ -1475,7 +1475,7 @@ define i32 @f13(double %d, %vs) "frame-pointer"="all" { ; CHECK-NEXT: .seh_startepilogue ; CHECK-NEXT: ldp x29, x30, [sp, #8] // 16-byte Folded Reload ; CHECK-NEXT: .seh_save_fplr 8 -; CHECK-NEXT: ldr x28, [sp] // 8-byte Folded Reload +; CHECK-NEXT: ldr x28, [sp] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x28, 0 ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: .seh_stackalloc 32 @@ -1521,7 +1521,7 @@ define i32 @f14(double %d, %vs) "frame-pointer"="all" { ; CHECK-NEXT: .seh_allocz 1 ; CHECK-NEXT: ldp x29, x30, [sp, #8] // 16-byte Folded Reload ; CHECK-NEXT: .seh_save_fplr 8 -; CHECK-NEXT: ldr x28, [sp] // 8-byte Folded Reload +; CHECK-NEXT: ldr x28, [sp] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x28, 0 ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: .seh_stackalloc 32 @@ -1552,7 +1552,7 @@ define tailcc void @f15(double %d, %vs, [9 x i64], i32 %i) { ; CHECK-NEXT: .seh_save_zreg z8, 0 ; CHECK-NEXT: str x28, [sp, #-16]! // 8-byte Folded Spill ; CHECK-NEXT: .seh_save_reg_x x28, 16 -; CHECK-NEXT: str x30, [sp, #8] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #8] // 8-byte Spill ; CHECK-NEXT: .seh_save_reg x30, 8 ; CHECK-NEXT: sub sp, sp, #16 ; CHECK-NEXT: .seh_stackalloc 16 @@ -1570,9 +1570,9 @@ define tailcc void @f15(double %d, %vs, [9 x i64], i32 %i) { ; CHECK-NEXT: .seh_allocz 1 ; CHECK-NEXT: add sp, sp, #16 ; CHECK-NEXT: .seh_stackalloc 16 -; CHECK-NEXT: ldr x30, [sp, #8] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #8] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x30, 8 -; CHECK-NEXT: ldr x28, [sp] // 8-byte Folded Reload +; CHECK-NEXT: ldr x28, [sp] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x28, 0 ; CHECK-NEXT: add sp, sp, #16 ; CHECK-NEXT: .seh_stackalloc 16 diff --git a/llvm/test/CodeGen/AArch64/win64-fpowi.ll b/llvm/test/CodeGen/AArch64/win64-fpowi.ll index 3eb74f8394ec4..5819e0cce3969 100644 --- a/llvm/test/CodeGen/AArch64/win64-fpowi.ll +++ b/llvm/test/CodeGen/AArch64/win64-fpowi.ll @@ -51,29 +51,29 @@ define <2 x double> @powi_v2f64(<2 x double> %a, i32 %b) { ; CHECK-NEXT: // %bb.0: // %entry ; CHECK-NEXT: sub sp, sp, #48 ; CHECK-NEXT: .seh_stackalloc 48 -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: .seh_save_reg x30, 32 -; CHECK-NEXT: str d8, [sp, #40] // 8-byte Folded Spill +; CHECK-NEXT: str d8, [sp, #40] // 8-byte Spill ; CHECK-NEXT: .seh_save_freg d8, 40 ; CHECK-NEXT: .seh_endprologue ; CHECK-NEXT: scvtf d8, w0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: mov d0, v0.d[1] ; CHECK-NEXT: fmov d1, d8 ; CHECK-NEXT: bl pow ; CHECK-NEXT: fmov d1, d8 ; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-NEXT: bl pow -; CHECK-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0 ; CHECK-NEXT: mov v0.d[1], v1.d[0] ; CHECK-NEXT: .seh_startepilogue -; CHECK-NEXT: ldr d8, [sp, #40] // 8-byte Folded Reload +; CHECK-NEXT: ldr d8, [sp, #40] // 8-byte Reload ; CHECK-NEXT: .seh_save_freg d8, 40 -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x30, 32 ; CHECK-NEXT: add sp, sp, #48 ; CHECK-NEXT: .seh_stackalloc 48 @@ -92,31 +92,31 @@ define <2 x float> @powi_v2f32(<2 x float> %a, i32 %b) { ; CHECK-NEXT: // %bb.0: // %entry ; CHECK-NEXT: sub sp, sp, #48 ; CHECK-NEXT: .seh_stackalloc 48 -; CHECK-NEXT: str x30, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #32] // 8-byte Spill ; CHECK-NEXT: .seh_save_reg x30, 32 -; CHECK-NEXT: str d8, [sp, #40] // 8-byte Folded Spill +; CHECK-NEXT: str d8, [sp, #40] // 8-byte Spill ; CHECK-NEXT: .seh_save_freg d8, 40 ; CHECK-NEXT: .seh_endprologue ; CHECK-NEXT: scvtf s8, w0 ; CHECK-NEXT: // kill: def $d0 killed $d0 def $q0 -; CHECK-NEXT: str q0, [sp] // 16-byte Folded Spill +; CHECK-NEXT: str q0, [sp] // 16-byte Spill ; CHECK-NEXT: mov s0, v0.s[1] ; CHECK-NEXT: fmov s1, s8 ; CHECK-NEXT: bl powf ; CHECK-NEXT: fmov s1, s8 ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 -; CHECK-NEXT: str q0, [sp, #16] // 16-byte Folded Spill -; CHECK-NEXT: ldr q0, [sp] // 16-byte Folded Reload +; CHECK-NEXT: str q0, [sp, #16] // 16-byte Spill +; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 killed $q0 ; CHECK-NEXT: bl powf -; CHECK-NEXT: ldr q1, [sp, #16] // 16-byte Folded Reload +; CHECK-NEXT: ldr q1, [sp, #16] // 16-byte Reload ; CHECK-NEXT: // kill: def $s0 killed $s0 def $q0 ; CHECK-NEXT: mov v0.s[1], v1.s[0] ; CHECK-NEXT: // kill: def $d0 killed $d0 killed $q0 ; CHECK-NEXT: .seh_startepilogue -; CHECK-NEXT: ldr d8, [sp, #40] // 8-byte Folded Reload +; CHECK-NEXT: ldr d8, [sp, #40] // 8-byte Reload ; CHECK-NEXT: .seh_save_freg d8, 40 -; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x30, 32 ; CHECK-NEXT: add sp, sp, #48 ; CHECK-NEXT: .seh_stackalloc 48 diff --git a/llvm/test/CodeGen/AArch64/win64_vararg.ll b/llvm/test/CodeGen/AArch64/win64_vararg.ll index d72dee9021251..0f4cb44a6f73b 100644 --- a/llvm/test/CodeGen/AArch64/win64_vararg.ll +++ b/llvm/test/CodeGen/AArch64/win64_vararg.ll @@ -109,7 +109,7 @@ define i32 @fp(ptr, i64, ptr, ...) local_unnamed_addr #6 { ; CHECK-NEXT: // %bb.0: ; CHECK-NEXT: stp x19, x20, [sp, #-96]! // 16-byte Folded Spill ; CHECK-NEXT: .seh_save_regp_x x19, 96 -; CHECK-NEXT: str x21, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x21, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .seh_save_reg x21, 16 ; CHECK-NEXT: stp x29, x30, [sp, #24] // 16-byte Folded Spill ; CHECK-NEXT: .seh_save_fplr 24 @@ -138,7 +138,7 @@ define i32 @fp(ptr, i64, ptr, ...) local_unnamed_addr #6 { ; CHECK-NEXT: .seh_startepilogue ; CHECK-NEXT: ldp x29, x30, [sp, #24] // 16-byte Folded Reload ; CHECK-NEXT: .seh_save_fplr 24 -; CHECK-NEXT: ldr x21, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x21, [sp, #16] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x21, 16 ; CHECK-NEXT: ldp x19, x20, [sp], #96 // 16-byte Folded Reload ; CHECK-NEXT: .seh_save_regp_x x19, 96 @@ -171,7 +171,7 @@ define void @vla(i32, ptr, ...) local_unnamed_addr { ; CHECK-NEXT: .seh_save_regp_x x19, 112 ; CHECK-NEXT: stp x21, x22, [sp, #16] // 16-byte Folded Spill ; CHECK-NEXT: .seh_save_regp x21, 16 -; CHECK-NEXT: str x23, [sp, #32] // 8-byte Folded Spill +; CHECK-NEXT: str x23, [sp, #32] // 8-byte Spill ; CHECK-NEXT: .seh_save_reg x23, 32 ; CHECK-NEXT: stp x29, x30, [sp, #40] // 16-byte Folded Spill ; CHECK-NEXT: .seh_save_fplr 40 @@ -209,7 +209,7 @@ define void @vla(i32, ptr, ...) local_unnamed_addr { ; CHECK-NEXT: .seh_add_fp 40 ; CHECK-NEXT: ldp x29, x30, [sp, #40] // 16-byte Folded Reload ; CHECK-NEXT: .seh_save_fplr 40 -; CHECK-NEXT: ldr x23, [sp, #32] // 8-byte Folded Reload +; CHECK-NEXT: ldr x23, [sp, #32] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x23, 32 ; CHECK-NEXT: ldp x21, x22, [sp, #16] // 16-byte Folded Reload ; CHECK-NEXT: .seh_save_regp x21, 16 @@ -308,11 +308,11 @@ define void @fixed_params(i32, double, i32, double, i32, double, i32, double, i3 ; CHECK-NEXT: fmov x3, d1 ; CHECK-NEXT: fmov x5, d2 ; CHECK-NEXT: fmov x7, d3 -; CHECK-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: str d4, [sp, #8] ; CHECK-NEXT: str w8, [sp] ; CHECK-NEXT: bl varargs -; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: ret tail call void (i32, ...) @varargs(i32 %0, double %1, i32 %2, double %3, i32 %4, double %5, i32 %6, double %7, i32 %8, double %9) diff --git a/llvm/test/CodeGen/AArch64/win64_vararg2.ll b/llvm/test/CodeGen/AArch64/win64_vararg2.ll index 2d3156a3aadac..548e6ac5fc0fe 100644 --- a/llvm/test/CodeGen/AArch64/win64_vararg2.ll +++ b/llvm/test/CodeGen/AArch64/win64_vararg2.ll @@ -9,9 +9,9 @@ define i1 @va_func(i32 %a, i8 %b, i8 %c, ...) { ; CHECK-NEXT: // %bb.0: ; CHECK-NEXT: sub sp, sp, #80 ; CHECK-NEXT: .seh_stackalloc 80 -; CHECK-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x19, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .seh_save_reg x19, 16 -; CHECK-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #24] // 8-byte Spill ; CHECK-NEXT: .seh_save_reg x30, 24 ; CHECK-NEXT: .seh_endprologue ; CHECK-NEXT: add x8, sp, #40 @@ -27,9 +27,9 @@ define i1 @va_func(i32 %a, i8 %b, i8 %c, ...) { ; CHECK-NEXT: cmp w19, w0 ; CHECK-NEXT: cset w0, ls ; CHECK-NEXT: .seh_startepilogue -; CHECK-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload +; CHECK-NEXT: ldr x30, [sp, #24] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x30, 24 -; CHECK-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; CHECK-NEXT: .seh_save_reg x19, 16 ; CHECK-NEXT: add sp, sp, #80 ; CHECK-NEXT: .seh_stackalloc 80 @@ -43,9 +43,9 @@ define i1 @va_func(i32 %a, i8 %b, i8 %c, ...) { ; GISEL-NEXT: // %bb.0: ; GISEL-NEXT: sub sp, sp, #80 ; GISEL-NEXT: .seh_stackalloc 80 -; GISEL-NEXT: str x19, [sp, #16] // 8-byte Folded Spill +; GISEL-NEXT: str x19, [sp, #16] // 8-byte Spill ; GISEL-NEXT: .seh_save_reg x19, 16 -; GISEL-NEXT: str x30, [sp, #24] // 8-byte Folded Spill +; GISEL-NEXT: str x30, [sp, #24] // 8-byte Spill ; GISEL-NEXT: .seh_save_reg x30, 24 ; GISEL-NEXT: .seh_endprologue ; GISEL-NEXT: add x8, sp, #40 @@ -61,9 +61,9 @@ define i1 @va_func(i32 %a, i8 %b, i8 %c, ...) { ; GISEL-NEXT: cmp w19, w0 ; GISEL-NEXT: cset w0, ls ; GISEL-NEXT: .seh_startepilogue -; GISEL-NEXT: ldr x30, [sp, #24] // 8-byte Folded Reload +; GISEL-NEXT: ldr x30, [sp, #24] // 8-byte Reload ; GISEL-NEXT: .seh_save_reg x30, 24 -; GISEL-NEXT: ldr x19, [sp, #16] // 8-byte Folded Reload +; GISEL-NEXT: ldr x19, [sp, #16] // 8-byte Reload ; GISEL-NEXT: .seh_save_reg x19, 16 ; GISEL-NEXT: add sp, sp, #80 ; GISEL-NEXT: .seh_stackalloc 80 diff --git a/llvm/test/CodeGen/AArch64/win64_vararg_float.ll b/llvm/test/CodeGen/AArch64/win64_vararg_float.ll index 842f48941421d..a99b29fa3bef9 100644 --- a/llvm/test/CodeGen/AArch64/win64_vararg_float.ll +++ b/llvm/test/CodeGen/AArch64/win64_vararg_float.ll @@ -21,7 +21,7 @@ define void @float_va_fn(float %a, i32 %b, ...) nounwind { ; O0-LABEL: float_va_fn: ; O0: // %bb.0: // %entry ; O0-NEXT: sub sp, sp, #80 -; O0-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; O0-NEXT: str x30, [sp, #16] // 8-byte Spill ; O0-NEXT: str x7, [sp, #72] ; O0-NEXT: str x6, [sp, #64] ; O0-NEXT: str x5, [sp, #56] @@ -33,7 +33,7 @@ define void @float_va_fn(float %a, i32 %b, ...) nounwind { ; O0-NEXT: str x8, [sp, #8] ; O0-NEXT: ldr x0, [sp, #8] ; O0-NEXT: bl f_va_list -; O0-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; O0-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; O0-NEXT: add sp, sp, #80 ; O0-NEXT: ret entry: @@ -71,7 +71,7 @@ define void @double_va_fn(double %a, i32 %b, ...) nounwind { ; O0-LABEL: double_va_fn: ; O0: // %bb.0: // %entry ; O0-NEXT: sub sp, sp, #80 -; O0-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; O0-NEXT: str x30, [sp, #16] // 8-byte Spill ; O0-NEXT: str x7, [sp, #72] ; O0-NEXT: str x6, [sp, #64] ; O0-NEXT: str x5, [sp, #56] @@ -83,7 +83,7 @@ define void @double_va_fn(double %a, i32 %b, ...) nounwind { ; O0-NEXT: str x8, [sp, #8] ; O0-NEXT: ldr x0, [sp, #8] ; O0-NEXT: bl d_va_list -; O0-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; O0-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; O0-NEXT: add sp, sp, #80 ; O0-NEXT: ret entry: diff --git a/llvm/test/CodeGen/AArch64/win64_vararg_float_cc.ll b/llvm/test/CodeGen/AArch64/win64_vararg_float_cc.ll index 90f878327abc8..029d2da43b691 100644 --- a/llvm/test/CodeGen/AArch64/win64_vararg_float_cc.ll +++ b/llvm/test/CodeGen/AArch64/win64_vararg_float_cc.ll @@ -34,7 +34,7 @@ define win64cc void @float_va_fn(float %a, i32 %b, ...) nounwind { ; O0-LABEL: float_va_fn: ; O0: // %bb.0: // %entry ; O0-NEXT: sub sp, sp, #80 -; O0-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; O0-NEXT: str x30, [sp, #16] // 8-byte Spill ; O0-NEXT: str x7, [sp, #72] ; O0-NEXT: str x6, [sp, #64] ; O0-NEXT: str x5, [sp, #56] @@ -46,7 +46,7 @@ define win64cc void @float_va_fn(float %a, i32 %b, ...) nounwind { ; O0-NEXT: str x8, [sp, #8] ; O0-NEXT: ldr x0, [sp, #8] ; O0-NEXT: bl f_va_list -; O0-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; O0-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; O0-NEXT: add sp, sp, #80 ; O0-NEXT: ret entry: @@ -84,7 +84,7 @@ define win64cc void @double_va_fn(double %a, i32 %b, ...) nounwind { ; O0-LABEL: double_va_fn: ; O0: // %bb.0: // %entry ; O0-NEXT: sub sp, sp, #80 -; O0-NEXT: str x30, [sp, #16] // 8-byte Folded Spill +; O0-NEXT: str x30, [sp, #16] // 8-byte Spill ; O0-NEXT: str x7, [sp, #72] ; O0-NEXT: str x6, [sp, #64] ; O0-NEXT: str x5, [sp, #56] @@ -96,7 +96,7 @@ define win64cc void @double_va_fn(double %a, i32 %b, ...) nounwind { ; O0-NEXT: str x8, [sp, #8] ; O0-NEXT: ldr x0, [sp, #8] ; O0-NEXT: bl d_va_list -; O0-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload +; O0-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; O0-NEXT: add sp, sp, #80 ; O0-NEXT: ret entry: diff --git a/llvm/test/CodeGen/AArch64/win64cc-backup-x18.ll b/llvm/test/CodeGen/AArch64/win64cc-backup-x18.ll index 936ee3ca9e392..91c7bfb091b45 100644 --- a/llvm/test/CodeGen/AArch64/win64cc-backup-x18.ll +++ b/llvm/test/CodeGen/AArch64/win64cc-backup-x18.ll @@ -12,10 +12,10 @@ define dso_local win64cc void @func() #0 { ; CHECK-LABEL: func: ; CHECK: // %bb.0: // %entry ; CHECK-NEXT: stp x29, x30, [sp, #-32]! // 16-byte Folded Spill -; CHECK-NEXT: str x18, [sp, #16] // 8-byte Folded Spill +; CHECK-NEXT: str x18, [sp, #16] // 8-byte Spill ; CHECK-NEXT: mov x29, sp ; CHECK-NEXT: bl other -; CHECK-NEXT: ldr x18, [sp, #16] // 8-byte Folded Reload +; CHECK-NEXT: ldr x18, [sp, #16] // 8-byte Reload ; CHECK-NEXT: ldp x29, x30, [sp], #32 // 16-byte Folded Reload ; CHECK-NEXT: ret entry: diff --git a/llvm/test/CodeGen/AArch64/wincfi-missing-seh-directives.ll b/llvm/test/CodeGen/AArch64/wincfi-missing-seh-directives.ll index 6d14abdc2ed75..a7accf5a5a0e4 100644 --- a/llvm/test/CodeGen/AArch64/wincfi-missing-seh-directives.ll +++ b/llvm/test/CodeGen/AArch64/wincfi-missing-seh-directives.ll @@ -9,9 +9,9 @@ ; CHECK-NEXT: .seh_proc foo ; CHECK: sub sp, sp, #496 ; CHECK-NEXT: .seh_stackalloc 496 -; CHECK-NEXT: str x19, [sp, #208] // 8-byte Folded Spill +; CHECK-NEXT: str x19, [sp, #208] // 8-byte Spill ; CHECK-NEXT: .seh_save_reg x19, 208 -; CHECK-NEXT: str x21, [sp, #216] // 8-byte Folded Spill +; CHECK-NEXT: str x21, [sp, #216] // 8-byte Spill ; CHECK-NEXT: .seh_save_reg x21, 216 ; CHECK-NEXT: stp x23, x24, [sp, #224] // 16-byte Folded Spill ; CHECK-NEXT: .seh_save_regp x23, 224 @@ -19,7 +19,7 @@ ; CHECK-NEXT: .seh_save_regp x25, 240 ; CHECK-NEXT: stp x27, x28, [sp, #256] // 16-byte Folded Spill ; CHECK-NEXT: .seh_save_regp x27, 256 -; CHECK-NEXT: str x30, [sp, #272] // 8-byte Folded Spill +; CHECK-NEXT: str x30, [sp, #272] // 8-byte Spill ; CHECK-NEXT: .seh_save_reg x30, 272 ; CHECK-NEXT: .seh_endprologue