aboutsummaryrefslogtreecommitdiff
path: root/llvm/test/CodeGen/RISCV/interrupt-attr.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/CodeGen/RISCV/interrupt-attr.ll')
-rw-r--r--llvm/test/CodeGen/RISCV/interrupt-attr.ll5616
1 files changed, 96 insertions, 5520 deletions
diff --git a/llvm/test/CodeGen/RISCV/interrupt-attr.ll b/llvm/test/CodeGen/RISCV/interrupt-attr.ll
index e278b8d..472b903 100644
--- a/llvm/test/CodeGen/RISCV/interrupt-attr.ll
+++ b/llvm/test/CodeGen/RISCV/interrupt-attr.ll
@@ -794,498 +794,46 @@ define void @foo_with_call() #1 {
; CHECK-RV32-V-NEXT: slli a0, a0, 5
; CHECK-RV32-V-NEXT: sub sp, sp, a0
; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a1, a0, 5
-; CHECK-RV32-V-NEXT: sub a0, a1, a0
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vs1r.v v0, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vs1r.v v1, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vs1r.v v2, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vs1r.v v3, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vs1r.v v4, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vs1r.v v5, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 3
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vs1r.v v6, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
; CHECK-RV32-V-NEXT: slli a0, a0, 3
; CHECK-RV32-V-NEXT: mv a1, a0
; CHECK-RV32-V-NEXT: slli a0, a0, 1
; CHECK-RV32-V-NEXT: add a0, a0, a1
; CHECK-RV32-V-NEXT: add a0, sp, a0
; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vs1r.v v7, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vs1r.v v8, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vs1r.v v9, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vs1r.v v10, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vs1r.v v11, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 3
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vs1r.v v12, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 3
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vs1r.v v13, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a1, a0, 4
-; CHECK-RV32-V-NEXT: add a0, a1, a0
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vs1r.v v14, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV32-V-NEXT: vs8r.v v0, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV32-V-NEXT: csrr a0, vlenb
; CHECK-RV32-V-NEXT: slli a0, a0, 4
; CHECK-RV32-V-NEXT: add a0, sp, a0
; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vs1r.v v15, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a1, a0, 4
-; CHECK-RV32-V-NEXT: sub a0, a1, a0
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vs1r.v v16, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vs1r.v v17, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vs1r.v v18, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vs1r.v v19, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vs1r.v v20, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vs1r.v v21, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a1, a0, 3
-; CHECK-RV32-V-NEXT: add a0, a1, a0
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vs1r.v v22, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV32-V-NEXT: vs8r.v v8, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV32-V-NEXT: csrr a0, vlenb
; CHECK-RV32-V-NEXT: slli a0, a0, 3
; CHECK-RV32-V-NEXT: add a0, sp, a0
; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vs1r.v v23, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a1, a0, 3
-; CHECK-RV32-V-NEXT: sub a0, a1, a0
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vs1r.v v24, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vs1r.v v25, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a1, a0, 2
-; CHECK-RV32-V-NEXT: add a0, a1, a0
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vs1r.v v26, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vs1r.v v27, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a1, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a1, a0
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vs1r.v v28, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vs1r.v v29, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vs1r.v v30, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV32-V-NEXT: vs8r.v v16, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV32-V-NEXT: addi a0, sp, 16
-; CHECK-RV32-V-NEXT: vs1r.v v31, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV32-V-NEXT: vs8r.v v24, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV32-V-NEXT: call otherfoo
; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a1, a0, 5
-; CHECK-RV32-V-NEXT: sub a0, a1, a0
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vl1r.v v0, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vl1r.v v1, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vl1r.v v2, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vl1r.v v3, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vl1r.v v4, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vl1r.v v5, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: mv a1, a0
; CHECK-RV32-V-NEXT: slli a0, a0, 3
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vl1r.v v6, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 3
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vl1r.v v7, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vl1r.v v8, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vl1r.v v9, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vl1r.v v10, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vl1r.v v11, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
; CHECK-RV32-V-NEXT: mv a1, a0
; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 3
; CHECK-RV32-V-NEXT: add a0, a0, a1
; CHECK-RV32-V-NEXT: add a0, sp, a0
; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vl1r.v v12, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 3
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vl1r.v v13, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a1, a0, 4
-; CHECK-RV32-V-NEXT: add a0, a1, a0
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vl1r.v v14, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV32-V-NEXT: vl8r.v v0, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV32-V-NEXT: csrr a0, vlenb
; CHECK-RV32-V-NEXT: slli a0, a0, 4
; CHECK-RV32-V-NEXT: add a0, sp, a0
; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vl1r.v v15, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a1, a0, 4
-; CHECK-RV32-V-NEXT: sub a0, a1, a0
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vl1r.v v16, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vl1r.v v17, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vl1r.v v18, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vl1r.v v19, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vl1r.v v20, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vl1r.v v21, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a1, a0, 3
-; CHECK-RV32-V-NEXT: add a0, a1, a0
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vl1r.v v22, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV32-V-NEXT: vl8r.v v8, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV32-V-NEXT: csrr a0, vlenb
; CHECK-RV32-V-NEXT: slli a0, a0, 3
; CHECK-RV32-V-NEXT: add a0, sp, a0
; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vl1r.v v23, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a1, a0, 3
-; CHECK-RV32-V-NEXT: sub a0, a1, a0
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vl1r.v v24, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vl1r.v v25, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a1, a0, 2
-; CHECK-RV32-V-NEXT: add a0, a1, a0
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vl1r.v v26, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vl1r.v v27, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a1, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a1, a0
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vl1r.v v28, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vl1r.v v29, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: add a0, sp, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, 16
-; CHECK-RV32-V-NEXT: vl1r.v v30, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV32-V-NEXT: vl8r.v v16, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV32-V-NEXT: addi a0, sp, 16
-; CHECK-RV32-V-NEXT: vl1r.v v31, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV32-V-NEXT: vl8r.v v24, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV32-V-NEXT: csrr a0, vlenb
; CHECK-RV32-V-NEXT: slli a0, a0, 5
; CHECK-RV32-V-NEXT: add sp, sp, a0
@@ -1351,498 +899,46 @@ define void @foo_with_call() #1 {
; CHECK-RV32-FV-NEXT: slli a0, a0, 5
; CHECK-RV32-FV-NEXT: sub sp, sp, a0
; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a1, a0, 5
-; CHECK-RV32-FV-NEXT: sub a0, a1, a0
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vs1r.v v0, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vs1r.v v1, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vs1r.v v2, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vs1r.v v3, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vs1r.v v4, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vs1r.v v5, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 3
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vs1r.v v6, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
; CHECK-RV32-FV-NEXT: slli a0, a0, 3
; CHECK-RV32-FV-NEXT: mv a1, a0
; CHECK-RV32-FV-NEXT: slli a0, a0, 1
; CHECK-RV32-FV-NEXT: add a0, a0, a1
; CHECK-RV32-FV-NEXT: add a0, sp, a0
; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vs1r.v v7, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vs1r.v v8, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vs1r.v v9, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vs1r.v v10, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vs1r.v v11, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 3
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vs1r.v v12, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 3
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vs1r.v v13, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a1, a0, 4
-; CHECK-RV32-FV-NEXT: add a0, a1, a0
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vs1r.v v14, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV32-FV-NEXT: vs8r.v v0, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV32-FV-NEXT: csrr a0, vlenb
; CHECK-RV32-FV-NEXT: slli a0, a0, 4
; CHECK-RV32-FV-NEXT: add a0, sp, a0
; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vs1r.v v15, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a1, a0, 4
-; CHECK-RV32-FV-NEXT: sub a0, a1, a0
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vs1r.v v16, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vs1r.v v17, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vs1r.v v18, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vs1r.v v19, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vs1r.v v20, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vs1r.v v21, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a1, a0, 3
-; CHECK-RV32-FV-NEXT: add a0, a1, a0
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vs1r.v v22, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV32-FV-NEXT: vs8r.v v8, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV32-FV-NEXT: csrr a0, vlenb
; CHECK-RV32-FV-NEXT: slli a0, a0, 3
; CHECK-RV32-FV-NEXT: add a0, sp, a0
; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vs1r.v v23, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a1, a0, 3
-; CHECK-RV32-FV-NEXT: sub a0, a1, a0
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vs1r.v v24, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vs1r.v v25, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a1, a0, 2
-; CHECK-RV32-FV-NEXT: add a0, a1, a0
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vs1r.v v26, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vs1r.v v27, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a1, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a1, a0
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vs1r.v v28, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vs1r.v v29, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vs1r.v v30, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV32-FV-NEXT: vs8r.v v16, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV32-FV-NEXT: addi a0, sp, 16
-; CHECK-RV32-FV-NEXT: vs1r.v v31, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV32-FV-NEXT: vs8r.v v24, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV32-FV-NEXT: call otherfoo
; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a1, a0, 5
-; CHECK-RV32-FV-NEXT: sub a0, a1, a0
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vl1r.v v0, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vl1r.v v1, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vl1r.v v2, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vl1r.v v3, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vl1r.v v4, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vl1r.v v5, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 3
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vl1r.v v6, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
; CHECK-RV32-FV-NEXT: slli a0, a0, 3
; CHECK-RV32-FV-NEXT: mv a1, a0
; CHECK-RV32-FV-NEXT: slli a0, a0, 1
; CHECK-RV32-FV-NEXT: add a0, a0, a1
; CHECK-RV32-FV-NEXT: add a0, sp, a0
; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vl1r.v v7, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vl1r.v v8, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vl1r.v v9, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vl1r.v v10, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vl1r.v v11, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 3
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vl1r.v v12, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 3
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vl1r.v v13, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a1, a0, 4
-; CHECK-RV32-FV-NEXT: add a0, a1, a0
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vl1r.v v14, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV32-FV-NEXT: vl8r.v v0, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV32-FV-NEXT: csrr a0, vlenb
; CHECK-RV32-FV-NEXT: slli a0, a0, 4
; CHECK-RV32-FV-NEXT: add a0, sp, a0
; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vl1r.v v15, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a1, a0, 4
-; CHECK-RV32-FV-NEXT: sub a0, a1, a0
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vl1r.v v16, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vl1r.v v17, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vl1r.v v18, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vl1r.v v19, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vl1r.v v20, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vl1r.v v21, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a1, a0, 3
-; CHECK-RV32-FV-NEXT: add a0, a1, a0
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vl1r.v v22, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV32-FV-NEXT: vl8r.v v8, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV32-FV-NEXT: csrr a0, vlenb
; CHECK-RV32-FV-NEXT: slli a0, a0, 3
; CHECK-RV32-FV-NEXT: add a0, sp, a0
; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vl1r.v v23, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a1, a0, 3
-; CHECK-RV32-FV-NEXT: sub a0, a1, a0
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vl1r.v v24, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vl1r.v v25, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a1, a0, 2
-; CHECK-RV32-FV-NEXT: add a0, a1, a0
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vl1r.v v26, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vl1r.v v27, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a1, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a1, a0
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vl1r.v v28, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vl1r.v v29, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: add a0, sp, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FV-NEXT: vl1r.v v30, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV32-FV-NEXT: vl8r.v v16, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV32-FV-NEXT: addi a0, sp, 16
-; CHECK-RV32-FV-NEXT: vl1r.v v31, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV32-FV-NEXT: vl8r.v v24, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV32-FV-NEXT: csrr a0, vlenb
; CHECK-RV32-FV-NEXT: slli a0, a0, 5
; CHECK-RV32-FV-NEXT: add sp, sp, a0
@@ -1928,498 +1024,46 @@ define void @foo_with_call() #1 {
; CHECK-RV32-FDV-NEXT: slli a0, a0, 5
; CHECK-RV32-FDV-NEXT: sub sp, sp, a0
; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a1, a0, 5
-; CHECK-RV32-FDV-NEXT: sub a0, a1, a0
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vs1r.v v0, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vs1r.v v1, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vs1r.v v2, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vs1r.v v3, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vs1r.v v4, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vs1r.v v5, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: mv a1, a0
; CHECK-RV32-FDV-NEXT: slli a0, a0, 3
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vs1r.v v6, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 3
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vs1r.v v7, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vs1r.v v8, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vs1r.v v9, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vs1r.v v10, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vs1r.v v11, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
; CHECK-RV32-FDV-NEXT: mv a1, a0
; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 3
; CHECK-RV32-FDV-NEXT: add a0, a0, a1
; CHECK-RV32-FDV-NEXT: add a0, sp, a0
; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vs1r.v v12, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 3
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vs1r.v v13, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a1, a0, 4
-; CHECK-RV32-FDV-NEXT: add a0, a1, a0
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vs1r.v v14, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV32-FDV-NEXT: vs8r.v v0, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
; CHECK-RV32-FDV-NEXT: slli a0, a0, 4
; CHECK-RV32-FDV-NEXT: add a0, sp, a0
; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vs1r.v v15, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a1, a0, 4
-; CHECK-RV32-FDV-NEXT: sub a0, a1, a0
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vs1r.v v16, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vs1r.v v17, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vs1r.v v18, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vs1r.v v19, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vs1r.v v20, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vs1r.v v21, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a1, a0, 3
-; CHECK-RV32-FDV-NEXT: add a0, a1, a0
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vs1r.v v22, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV32-FDV-NEXT: vs8r.v v8, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
; CHECK-RV32-FDV-NEXT: slli a0, a0, 3
; CHECK-RV32-FDV-NEXT: add a0, sp, a0
; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vs1r.v v23, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a1, a0, 3
-; CHECK-RV32-FDV-NEXT: sub a0, a1, a0
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vs1r.v v24, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vs1r.v v25, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a1, a0, 2
-; CHECK-RV32-FDV-NEXT: add a0, a1, a0
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vs1r.v v26, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vs1r.v v27, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a1, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a1, a0
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vs1r.v v28, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vs1r.v v29, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vs1r.v v30, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV32-FDV-NEXT: vs8r.v v16, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV32-FDV-NEXT: addi a0, sp, 16
-; CHECK-RV32-FDV-NEXT: vs1r.v v31, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV32-FDV-NEXT: vs8r.v v24, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV32-FDV-NEXT: call otherfoo
; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a1, a0, 5
-; CHECK-RV32-FDV-NEXT: sub a0, a1, a0
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vl1r.v v0, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vl1r.v v1, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vl1r.v v2, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vl1r.v v3, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vl1r.v v4, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vl1r.v v5, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 3
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vl1r.v v6, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
; CHECK-RV32-FDV-NEXT: slli a0, a0, 3
; CHECK-RV32-FDV-NEXT: mv a1, a0
; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
; CHECK-RV32-FDV-NEXT: add a0, a0, a1
; CHECK-RV32-FDV-NEXT: add a0, sp, a0
; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vl1r.v v7, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vl1r.v v8, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vl1r.v v9, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vl1r.v v10, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vl1r.v v11, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 3
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vl1r.v v12, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 3
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vl1r.v v13, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a1, a0, 4
-; CHECK-RV32-FDV-NEXT: add a0, a1, a0
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vl1r.v v14, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV32-FDV-NEXT: vl8r.v v0, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
; CHECK-RV32-FDV-NEXT: slli a0, a0, 4
; CHECK-RV32-FDV-NEXT: add a0, sp, a0
; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vl1r.v v15, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a1, a0, 4
-; CHECK-RV32-FDV-NEXT: sub a0, a1, a0
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vl1r.v v16, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vl1r.v v17, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vl1r.v v18, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vl1r.v v19, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vl1r.v v20, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vl1r.v v21, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a1, a0, 3
-; CHECK-RV32-FDV-NEXT: add a0, a1, a0
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vl1r.v v22, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV32-FDV-NEXT: vl8r.v v8, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
; CHECK-RV32-FDV-NEXT: slli a0, a0, 3
; CHECK-RV32-FDV-NEXT: add a0, sp, a0
; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vl1r.v v23, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a1, a0, 3
-; CHECK-RV32-FDV-NEXT: sub a0, a1, a0
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vl1r.v v24, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vl1r.v v25, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a1, a0, 2
-; CHECK-RV32-FDV-NEXT: add a0, a1, a0
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vl1r.v v26, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vl1r.v v27, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a1, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a1, a0
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vl1r.v v28, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vl1r.v v29, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: add a0, sp, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV32-FDV-NEXT: vl1r.v v30, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV32-FDV-NEXT: vl8r.v v16, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV32-FDV-NEXT: addi a0, sp, 16
-; CHECK-RV32-FDV-NEXT: vl1r.v v31, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV32-FDV-NEXT: vl8r.v v24, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
; CHECK-RV32-FDV-NEXT: slli a0, a0, 5
; CHECK-RV32-FDV-NEXT: add sp, sp, a0
@@ -3259,498 +1903,46 @@ define void @foo_with_call() #1 {
; CHECK-RV64-V-NEXT: slli a0, a0, 5
; CHECK-RV64-V-NEXT: sub sp, sp, a0
; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a1, a0, 5
-; CHECK-RV64-V-NEXT: sub a0, a1, a0
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vs1r.v v0, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vs1r.v v1, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vs1r.v v2, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vs1r.v v3, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vs1r.v v4, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vs1r.v v5, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 3
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vs1r.v v6, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
; CHECK-RV64-V-NEXT: slli a0, a0, 3
; CHECK-RV64-V-NEXT: mv a1, a0
; CHECK-RV64-V-NEXT: slli a0, a0, 1
; CHECK-RV64-V-NEXT: add a0, a0, a1
; CHECK-RV64-V-NEXT: add a0, sp, a0
; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vs1r.v v7, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vs1r.v v8, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vs1r.v v9, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vs1r.v v10, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vs1r.v v11, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 3
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vs1r.v v12, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 3
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vs1r.v v13, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a1, a0, 4
-; CHECK-RV64-V-NEXT: add a0, a1, a0
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vs1r.v v14, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV64-V-NEXT: vs8r.v v0, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV64-V-NEXT: csrr a0, vlenb
; CHECK-RV64-V-NEXT: slli a0, a0, 4
; CHECK-RV64-V-NEXT: add a0, sp, a0
; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vs1r.v v15, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a1, a0, 4
-; CHECK-RV64-V-NEXT: sub a0, a1, a0
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vs1r.v v16, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vs1r.v v17, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vs1r.v v18, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vs1r.v v19, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vs1r.v v20, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vs1r.v v21, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a1, a0, 3
-; CHECK-RV64-V-NEXT: add a0, a1, a0
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vs1r.v v22, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV64-V-NEXT: vs8r.v v8, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV64-V-NEXT: csrr a0, vlenb
; CHECK-RV64-V-NEXT: slli a0, a0, 3
; CHECK-RV64-V-NEXT: add a0, sp, a0
; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vs1r.v v23, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a1, a0, 3
-; CHECK-RV64-V-NEXT: sub a0, a1, a0
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vs1r.v v24, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vs1r.v v25, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a1, a0, 2
-; CHECK-RV64-V-NEXT: add a0, a1, a0
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vs1r.v v26, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vs1r.v v27, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a1, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a1, a0
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vs1r.v v28, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vs1r.v v29, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vs1r.v v30, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV64-V-NEXT: vs8r.v v16, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV64-V-NEXT: addi a0, sp, 16
-; CHECK-RV64-V-NEXT: vs1r.v v31, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV64-V-NEXT: vs8r.v v24, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV64-V-NEXT: call otherfoo
; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a1, a0, 5
-; CHECK-RV64-V-NEXT: sub a0, a1, a0
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vl1r.v v0, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vl1r.v v1, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vl1r.v v2, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vl1r.v v3, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vl1r.v v4, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vl1r.v v5, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: mv a1, a0
; CHECK-RV64-V-NEXT: slli a0, a0, 3
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vl1r.v v6, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 3
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vl1r.v v7, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vl1r.v v8, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vl1r.v v9, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vl1r.v v10, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vl1r.v v11, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
; CHECK-RV64-V-NEXT: mv a1, a0
; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 3
; CHECK-RV64-V-NEXT: add a0, a0, a1
; CHECK-RV64-V-NEXT: add a0, sp, a0
; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vl1r.v v12, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 3
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vl1r.v v13, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a1, a0, 4
-; CHECK-RV64-V-NEXT: add a0, a1, a0
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vl1r.v v14, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV64-V-NEXT: vl8r.v v0, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV64-V-NEXT: csrr a0, vlenb
; CHECK-RV64-V-NEXT: slli a0, a0, 4
; CHECK-RV64-V-NEXT: add a0, sp, a0
; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vl1r.v v15, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a1, a0, 4
-; CHECK-RV64-V-NEXT: sub a0, a1, a0
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vl1r.v v16, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vl1r.v v17, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vl1r.v v18, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vl1r.v v19, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vl1r.v v20, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vl1r.v v21, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a1, a0, 3
-; CHECK-RV64-V-NEXT: add a0, a1, a0
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vl1r.v v22, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV64-V-NEXT: vl8r.v v8, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV64-V-NEXT: csrr a0, vlenb
; CHECK-RV64-V-NEXT: slli a0, a0, 3
; CHECK-RV64-V-NEXT: add a0, sp, a0
; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vl1r.v v23, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a1, a0, 3
-; CHECK-RV64-V-NEXT: sub a0, a1, a0
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vl1r.v v24, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vl1r.v v25, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a1, a0, 2
-; CHECK-RV64-V-NEXT: add a0, a1, a0
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vl1r.v v26, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vl1r.v v27, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a1, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a1, a0
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vl1r.v v28, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vl1r.v v29, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: add a0, sp, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, 16
-; CHECK-RV64-V-NEXT: vl1r.v v30, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV64-V-NEXT: vl8r.v v16, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV64-V-NEXT: addi a0, sp, 16
-; CHECK-RV64-V-NEXT: vl1r.v v31, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV64-V-NEXT: vl8r.v v24, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV64-V-NEXT: csrr a0, vlenb
; CHECK-RV64-V-NEXT: slli a0, a0, 5
; CHECK-RV64-V-NEXT: add sp, sp, a0
@@ -3816,498 +2008,46 @@ define void @foo_with_call() #1 {
; CHECK-RV64-FV-NEXT: slli a0, a0, 5
; CHECK-RV64-FV-NEXT: sub sp, sp, a0
; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a1, a0, 5
-; CHECK-RV64-FV-NEXT: sub a0, a1, a0
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vs1r.v v0, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vs1r.v v1, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vs1r.v v2, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vs1r.v v3, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vs1r.v v4, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vs1r.v v5, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 3
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vs1r.v v6, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
; CHECK-RV64-FV-NEXT: slli a0, a0, 3
; CHECK-RV64-FV-NEXT: mv a1, a0
; CHECK-RV64-FV-NEXT: slli a0, a0, 1
; CHECK-RV64-FV-NEXT: add a0, a0, a1
; CHECK-RV64-FV-NEXT: add a0, sp, a0
; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vs1r.v v7, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vs1r.v v8, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vs1r.v v9, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vs1r.v v10, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vs1r.v v11, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 3
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vs1r.v v12, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 3
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vs1r.v v13, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a1, a0, 4
-; CHECK-RV64-FV-NEXT: add a0, a1, a0
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vs1r.v v14, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV64-FV-NEXT: vs8r.v v0, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV64-FV-NEXT: csrr a0, vlenb
; CHECK-RV64-FV-NEXT: slli a0, a0, 4
; CHECK-RV64-FV-NEXT: add a0, sp, a0
; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vs1r.v v15, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a1, a0, 4
-; CHECK-RV64-FV-NEXT: sub a0, a1, a0
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vs1r.v v16, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vs1r.v v17, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vs1r.v v18, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vs1r.v v19, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vs1r.v v20, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vs1r.v v21, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a1, a0, 3
-; CHECK-RV64-FV-NEXT: add a0, a1, a0
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vs1r.v v22, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV64-FV-NEXT: vs8r.v v8, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV64-FV-NEXT: csrr a0, vlenb
; CHECK-RV64-FV-NEXT: slli a0, a0, 3
; CHECK-RV64-FV-NEXT: add a0, sp, a0
; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vs1r.v v23, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a1, a0, 3
-; CHECK-RV64-FV-NEXT: sub a0, a1, a0
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vs1r.v v24, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vs1r.v v25, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a1, a0, 2
-; CHECK-RV64-FV-NEXT: add a0, a1, a0
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vs1r.v v26, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vs1r.v v27, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a1, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a1, a0
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vs1r.v v28, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vs1r.v v29, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vs1r.v v30, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV64-FV-NEXT: vs8r.v v16, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV64-FV-NEXT: addi a0, sp, 16
-; CHECK-RV64-FV-NEXT: vs1r.v v31, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV64-FV-NEXT: vs8r.v v24, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV64-FV-NEXT: call otherfoo
; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a1, a0, 5
-; CHECK-RV64-FV-NEXT: sub a0, a1, a0
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vl1r.v v0, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vl1r.v v1, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vl1r.v v2, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vl1r.v v3, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vl1r.v v4, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vl1r.v v5, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 3
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vl1r.v v6, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
; CHECK-RV64-FV-NEXT: slli a0, a0, 3
; CHECK-RV64-FV-NEXT: mv a1, a0
; CHECK-RV64-FV-NEXT: slli a0, a0, 1
; CHECK-RV64-FV-NEXT: add a0, a0, a1
; CHECK-RV64-FV-NEXT: add a0, sp, a0
; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vl1r.v v7, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vl1r.v v8, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vl1r.v v9, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vl1r.v v10, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vl1r.v v11, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 3
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vl1r.v v12, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 3
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vl1r.v v13, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a1, a0, 4
-; CHECK-RV64-FV-NEXT: add a0, a1, a0
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vl1r.v v14, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV64-FV-NEXT: vl8r.v v0, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV64-FV-NEXT: csrr a0, vlenb
; CHECK-RV64-FV-NEXT: slli a0, a0, 4
; CHECK-RV64-FV-NEXT: add a0, sp, a0
; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vl1r.v v15, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a1, a0, 4
-; CHECK-RV64-FV-NEXT: sub a0, a1, a0
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vl1r.v v16, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vl1r.v v17, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vl1r.v v18, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vl1r.v v19, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vl1r.v v20, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vl1r.v v21, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a1, a0, 3
-; CHECK-RV64-FV-NEXT: add a0, a1, a0
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vl1r.v v22, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV64-FV-NEXT: vl8r.v v8, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV64-FV-NEXT: csrr a0, vlenb
; CHECK-RV64-FV-NEXT: slli a0, a0, 3
; CHECK-RV64-FV-NEXT: add a0, sp, a0
; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vl1r.v v23, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a1, a0, 3
-; CHECK-RV64-FV-NEXT: sub a0, a1, a0
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vl1r.v v24, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vl1r.v v25, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a1, a0, 2
-; CHECK-RV64-FV-NEXT: add a0, a1, a0
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vl1r.v v26, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vl1r.v v27, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a1, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a1, a0
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vl1r.v v28, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vl1r.v v29, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: add a0, sp, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FV-NEXT: vl1r.v v30, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV64-FV-NEXT: vl8r.v v16, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV64-FV-NEXT: addi a0, sp, 16
-; CHECK-RV64-FV-NEXT: vl1r.v v31, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV64-FV-NEXT: vl8r.v v24, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV64-FV-NEXT: csrr a0, vlenb
; CHECK-RV64-FV-NEXT: slli a0, a0, 5
; CHECK-RV64-FV-NEXT: add sp, sp, a0
@@ -4393,498 +2133,46 @@ define void @foo_with_call() #1 {
; CHECK-RV64-FDV-NEXT: slli a0, a0, 5
; CHECK-RV64-FDV-NEXT: sub sp, sp, a0
; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a1, a0, 5
-; CHECK-RV64-FDV-NEXT: sub a0, a1, a0
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vs1r.v v0, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vs1r.v v1, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vs1r.v v2, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vs1r.v v3, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vs1r.v v4, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vs1r.v v5, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: mv a1, a0
; CHECK-RV64-FDV-NEXT: slli a0, a0, 3
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vs1r.v v6, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 3
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vs1r.v v7, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vs1r.v v8, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vs1r.v v9, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vs1r.v v10, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vs1r.v v11, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
; CHECK-RV64-FDV-NEXT: mv a1, a0
; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 3
; CHECK-RV64-FDV-NEXT: add a0, a0, a1
; CHECK-RV64-FDV-NEXT: add a0, sp, a0
; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vs1r.v v12, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 3
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vs1r.v v13, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a1, a0, 4
-; CHECK-RV64-FDV-NEXT: add a0, a1, a0
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vs1r.v v14, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV64-FDV-NEXT: vs8r.v v0, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
; CHECK-RV64-FDV-NEXT: slli a0, a0, 4
; CHECK-RV64-FDV-NEXT: add a0, sp, a0
; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vs1r.v v15, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a1, a0, 4
-; CHECK-RV64-FDV-NEXT: sub a0, a1, a0
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vs1r.v v16, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vs1r.v v17, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vs1r.v v18, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vs1r.v v19, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vs1r.v v20, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vs1r.v v21, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a1, a0, 3
-; CHECK-RV64-FDV-NEXT: add a0, a1, a0
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vs1r.v v22, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV64-FDV-NEXT: vs8r.v v8, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
; CHECK-RV64-FDV-NEXT: slli a0, a0, 3
; CHECK-RV64-FDV-NEXT: add a0, sp, a0
; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vs1r.v v23, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a1, a0, 3
-; CHECK-RV64-FDV-NEXT: sub a0, a1, a0
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vs1r.v v24, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vs1r.v v25, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a1, a0, 2
-; CHECK-RV64-FDV-NEXT: add a0, a1, a0
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vs1r.v v26, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vs1r.v v27, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a1, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a1, a0
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vs1r.v v28, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vs1r.v v29, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vs1r.v v30, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV64-FDV-NEXT: vs8r.v v16, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV64-FDV-NEXT: addi a0, sp, 16
-; CHECK-RV64-FDV-NEXT: vs1r.v v31, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV64-FDV-NEXT: vs8r.v v24, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV64-FDV-NEXT: call otherfoo
; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a1, a0, 5
-; CHECK-RV64-FDV-NEXT: sub a0, a1, a0
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vl1r.v v0, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vl1r.v v1, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vl1r.v v2, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vl1r.v v3, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vl1r.v v4, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vl1r.v v5, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 3
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vl1r.v v6, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
; CHECK-RV64-FDV-NEXT: slli a0, a0, 3
; CHECK-RV64-FDV-NEXT: mv a1, a0
; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
; CHECK-RV64-FDV-NEXT: add a0, a0, a1
; CHECK-RV64-FDV-NEXT: add a0, sp, a0
; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vl1r.v v7, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vl1r.v v8, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vl1r.v v9, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vl1r.v v10, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vl1r.v v11, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 3
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vl1r.v v12, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 3
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vl1r.v v13, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a1, a0, 4
-; CHECK-RV64-FDV-NEXT: add a0, a1, a0
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vl1r.v v14, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV64-FDV-NEXT: vl8r.v v0, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
; CHECK-RV64-FDV-NEXT: slli a0, a0, 4
; CHECK-RV64-FDV-NEXT: add a0, sp, a0
; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vl1r.v v15, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a1, a0, 4
-; CHECK-RV64-FDV-NEXT: sub a0, a1, a0
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vl1r.v v16, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vl1r.v v17, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vl1r.v v18, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vl1r.v v19, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vl1r.v v20, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vl1r.v v21, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a1, a0, 3
-; CHECK-RV64-FDV-NEXT: add a0, a1, a0
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vl1r.v v22, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV64-FDV-NEXT: vl8r.v v8, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
; CHECK-RV64-FDV-NEXT: slli a0, a0, 3
; CHECK-RV64-FDV-NEXT: add a0, sp, a0
; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vl1r.v v23, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a1, a0, 3
-; CHECK-RV64-FDV-NEXT: sub a0, a1, a0
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vl1r.v v24, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vl1r.v v25, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a1, a0, 2
-; CHECK-RV64-FDV-NEXT: add a0, a1, a0
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vl1r.v v26, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vl1r.v v27, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a1, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a1, a0
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vl1r.v v28, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vl1r.v v29, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: add a0, sp, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, 16
-; CHECK-RV64-FDV-NEXT: vl1r.v v30, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV64-FDV-NEXT: vl8r.v v16, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV64-FDV-NEXT: addi a0, sp, 16
-; CHECK-RV64-FDV-NEXT: vl1r.v v31, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV64-FDV-NEXT: vl8r.v v24, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
; CHECK-RV64-FDV-NEXT: slli a0, a0, 5
; CHECK-RV64-FDV-NEXT: add sp, sp, a0
@@ -5670,422 +2958,39 @@ define void @foo_fp_with_call() #2 {
; CHECK-RV32-V-NEXT: slli a0, a0, 5
; CHECK-RV32-V-NEXT: sub sp, sp, a0
; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vs1r.v v0, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vs1r.v v1, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a1, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a1, a0
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vs1r.v v2, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vs1r.v v3, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a1, a0, 2
-; CHECK-RV32-V-NEXT: add a0, a1, a0
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vs1r.v v4, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vs1r.v v5, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a1, a0, 3
-; CHECK-RV32-V-NEXT: sub a0, a1, a0
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vs1r.v v6, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
; CHECK-RV32-V-NEXT: slli a0, a0, 3
; CHECK-RV32-V-NEXT: sub a0, s0, a0
; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vs1r.v v7, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a1, a0, 3
-; CHECK-RV32-V-NEXT: add a0, a1, a0
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vs1r.v v8, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vs1r.v v9, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vs1r.v v10, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vs1r.v v11, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vs1r.v v12, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vs1r.v v13, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a1, a0, 4
-; CHECK-RV32-V-NEXT: sub a0, a1, a0
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vs1r.v v14, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV32-V-NEXT: vs8r.v v0, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV32-V-NEXT: csrr a0, vlenb
; CHECK-RV32-V-NEXT: slli a0, a0, 4
; CHECK-RV32-V-NEXT: sub a0, s0, a0
; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vs1r.v v15, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV32-V-NEXT: vs8r.v v8, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a1, a0, 4
-; CHECK-RV32-V-NEXT: add a0, a1, a0
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vs1r.v v16, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: mv a1, a0
; CHECK-RV32-V-NEXT: slli a0, a0, 3
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vs1r.v v17, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 3
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vs1r.v v18, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vs1r.v v19, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vs1r.v v20, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vs1r.v v21, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vs1r.v v22, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 3
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vs1r.v v23, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 3
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vs1r.v v24, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a1, a1, a0
; CHECK-RV32-V-NEXT: slli a0, a0, 1
; CHECK-RV32-V-NEXT: add a0, a0, a1
; CHECK-RV32-V-NEXT: sub a0, s0, a0
; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vs1r.v v25, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vs1r.v v26, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vs1r.v v27, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vs1r.v v28, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vs1r.v v29, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a1, a0, 5
-; CHECK-RV32-V-NEXT: sub a0, a1, a0
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vs1r.v v30, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV32-V-NEXT: vs8r.v v16, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV32-V-NEXT: csrr a0, vlenb
; CHECK-RV32-V-NEXT: slli a0, a0, 5
; CHECK-RV32-V-NEXT: sub a0, s0, a0
; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vs1r.v v31, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV32-V-NEXT: vs8r.v v24, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV32-V-NEXT: call otherfoo
; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vl1r.v v0, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vl1r.v v1, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a1, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a1, a0
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vl1r.v v2, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vl1r.v v3, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a1, a0, 2
-; CHECK-RV32-V-NEXT: add a0, a1, a0
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vl1r.v v4, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vl1r.v v5, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a1, a0, 3
-; CHECK-RV32-V-NEXT: sub a0, a1, a0
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vl1r.v v6, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
; CHECK-RV32-V-NEXT: slli a0, a0, 3
; CHECK-RV32-V-NEXT: sub a0, s0, a0
; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vl1r.v v7, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a1, a0, 3
-; CHECK-RV32-V-NEXT: add a0, a1, a0
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vl1r.v v8, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vl1r.v v9, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vl1r.v v10, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vl1r.v v11, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vl1r.v v12, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vl1r.v v13, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a1, a0, 4
-; CHECK-RV32-V-NEXT: sub a0, a1, a0
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vl1r.v v14, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV32-V-NEXT: vl8r.v v0, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV32-V-NEXT: csrr a0, vlenb
; CHECK-RV32-V-NEXT: slli a0, a0, 4
; CHECK-RV32-V-NEXT: sub a0, s0, a0
; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vl1r.v v15, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a1, a0, 4
-; CHECK-RV32-V-NEXT: add a0, a1, a0
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vl1r.v v16, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 3
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vl1r.v v17, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 3
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vl1r.v v18, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vl1r.v v19, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vl1r.v v20, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vl1r.v v21, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vl1r.v v22, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV32-V-NEXT: vl8r.v v8, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV32-V-NEXT: csrr a0, vlenb
; CHECK-RV32-V-NEXT: slli a0, a0, 3
; CHECK-RV32-V-NEXT: mv a1, a0
@@ -6093,81 +2998,12 @@ define void @foo_fp_with_call() #2 {
; CHECK-RV32-V-NEXT: add a0, a0, a1
; CHECK-RV32-V-NEXT: sub a0, s0, a0
; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vl1r.v v23, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 3
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vl1r.v v24, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vl1r.v v25, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vl1r.v v26, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vl1r.v v27, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 2
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vl1r.v v28, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: mv a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a1, a1, a0
-; CHECK-RV32-V-NEXT: slli a0, a0, 1
-; CHECK-RV32-V-NEXT: add a0, a0, a1
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vl1r.v v29, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-V-NEXT: csrr a0, vlenb
-; CHECK-RV32-V-NEXT: slli a1, a0, 5
-; CHECK-RV32-V-NEXT: sub a0, a1, a0
-; CHECK-RV32-V-NEXT: sub a0, s0, a0
-; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vl1r.v v30, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV32-V-NEXT: vl8r.v v16, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV32-V-NEXT: csrr a0, vlenb
; CHECK-RV32-V-NEXT: slli a0, a0, 5
; CHECK-RV32-V-NEXT: sub a0, s0, a0
; CHECK-RV32-V-NEXT: addi a0, a0, -80
-; CHECK-RV32-V-NEXT: vl1r.v v31, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV32-V-NEXT: vl8r.v v24, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV32-V-NEXT: addi sp, s0, -80
; CHECK-RV32-V-NEXT: lw ra, 76(sp) # 4-byte Folded Reload
; CHECK-RV32-V-NEXT: lw t0, 72(sp) # 4-byte Folded Reload
@@ -6234,172 +3070,15 @@ define void @foo_fp_with_call() #2 {
; CHECK-RV32-FV-NEXT: slli a0, a0, 5
; CHECK-RV32-FV-NEXT: sub sp, sp, a0
; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vs1r.v v0, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vs1r.v v1, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a1, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a1, a0
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vs1r.v v2, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vs1r.v v3, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a1, a0, 2
-; CHECK-RV32-FV-NEXT: add a0, a1, a0
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vs1r.v v4, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vs1r.v v5, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a1, a0, 3
-; CHECK-RV32-FV-NEXT: sub a0, a1, a0
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vs1r.v v6, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
; CHECK-RV32-FV-NEXT: slli a0, a0, 3
; CHECK-RV32-FV-NEXT: sub a0, s0, a0
; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vs1r.v v7, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a1, a0, 3
-; CHECK-RV32-FV-NEXT: add a0, a1, a0
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vs1r.v v8, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vs1r.v v9, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vs1r.v v10, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vs1r.v v11, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vs1r.v v12, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vs1r.v v13, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a1, a0, 4
-; CHECK-RV32-FV-NEXT: sub a0, a1, a0
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vs1r.v v14, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV32-FV-NEXT: vs8r.v v0, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV32-FV-NEXT: csrr a0, vlenb
; CHECK-RV32-FV-NEXT: slli a0, a0, 4
; CHECK-RV32-FV-NEXT: sub a0, s0, a0
; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vs1r.v v15, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a1, a0, 4
-; CHECK-RV32-FV-NEXT: add a0, a1, a0
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vs1r.v v16, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 3
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vs1r.v v17, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 3
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vs1r.v v18, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vs1r.v v19, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vs1r.v v20, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vs1r.v v21, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vs1r.v v22, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV32-FV-NEXT: vs8r.v v8, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV32-FV-NEXT: csrr a0, vlenb
; CHECK-RV32-FV-NEXT: slli a0, a0, 3
; CHECK-RV32-FV-NEXT: mv a1, a0
@@ -6407,331 +3086,36 @@ define void @foo_fp_with_call() #2 {
; CHECK-RV32-FV-NEXT: add a0, a0, a1
; CHECK-RV32-FV-NEXT: sub a0, s0, a0
; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vs1r.v v23, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 3
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vs1r.v v24, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vs1r.v v25, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vs1r.v v26, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vs1r.v v27, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vs1r.v v28, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vs1r.v v29, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a1, a0, 5
-; CHECK-RV32-FV-NEXT: sub a0, a1, a0
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vs1r.v v30, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV32-FV-NEXT: vs8r.v v16, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV32-FV-NEXT: csrr a0, vlenb
; CHECK-RV32-FV-NEXT: slli a0, a0, 5
; CHECK-RV32-FV-NEXT: sub a0, s0, a0
; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vs1r.v v31, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV32-FV-NEXT: vs8r.v v24, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV32-FV-NEXT: call otherfoo
; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vl1r.v v0, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vl1r.v v1, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a1, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a1, a0
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vl1r.v v2, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vl1r.v v3, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a1, a0, 2
-; CHECK-RV32-FV-NEXT: add a0, a1, a0
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vl1r.v v4, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vl1r.v v5, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a1, a0, 3
-; CHECK-RV32-FV-NEXT: sub a0, a1, a0
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vl1r.v v6, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
; CHECK-RV32-FV-NEXT: slli a0, a0, 3
; CHECK-RV32-FV-NEXT: sub a0, s0, a0
; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vl1r.v v7, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a1, a0, 3
-; CHECK-RV32-FV-NEXT: add a0, a1, a0
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vl1r.v v8, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vl1r.v v9, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vl1r.v v10, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vl1r.v v11, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vl1r.v v12, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vl1r.v v13, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a1, a0, 4
-; CHECK-RV32-FV-NEXT: sub a0, a1, a0
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vl1r.v v14, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV32-FV-NEXT: vl8r.v v0, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV32-FV-NEXT: csrr a0, vlenb
; CHECK-RV32-FV-NEXT: slli a0, a0, 4
; CHECK-RV32-FV-NEXT: sub a0, s0, a0
; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vl1r.v v15, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV32-FV-NEXT: vl8r.v v8, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a1, a0, 4
-; CHECK-RV32-FV-NEXT: add a0, a1, a0
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vl1r.v v16, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: mv a1, a0
; CHECK-RV32-FV-NEXT: slli a0, a0, 3
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vl1r.v v17, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 3
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vl1r.v v18, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vl1r.v v19, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vl1r.v v20, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vl1r.v v21, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vl1r.v v22, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 3
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vl1r.v v23, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 3
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vl1r.v v24, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
; CHECK-RV32-FV-NEXT: slli a0, a0, 1
; CHECK-RV32-FV-NEXT: add a0, a0, a1
; CHECK-RV32-FV-NEXT: sub a0, s0, a0
; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vl1r.v v25, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vl1r.v v26, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vl1r.v v27, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vl1r.v v28, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: mv a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a1, a1, a0
-; CHECK-RV32-FV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FV-NEXT: add a0, a0, a1
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vl1r.v v29, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FV-NEXT: slli a1, a0, 5
-; CHECK-RV32-FV-NEXT: sub a0, a1, a0
-; CHECK-RV32-FV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vl1r.v v30, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV32-FV-NEXT: vl8r.v v16, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV32-FV-NEXT: csrr a0, vlenb
; CHECK-RV32-FV-NEXT: slli a0, a0, 5
; CHECK-RV32-FV-NEXT: sub a0, s0, a0
; CHECK-RV32-FV-NEXT: addi a0, a0, -160
-; CHECK-RV32-FV-NEXT: vl1r.v v31, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV32-FV-NEXT: vl8r.v v24, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV32-FV-NEXT: addi sp, s0, -160
; CHECK-RV32-FV-NEXT: lw ra, 156(sp) # 4-byte Folded Reload
; CHECK-RV32-FV-NEXT: lw t0, 152(sp) # 4-byte Folded Reload
@@ -6818,172 +3202,15 @@ define void @foo_fp_with_call() #2 {
; CHECK-RV32-FDV-NEXT: slli a0, a0, 5
; CHECK-RV32-FDV-NEXT: sub sp, sp, a0
; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vs1r.v v0, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vs1r.v v1, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a1, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a1, a0
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vs1r.v v2, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vs1r.v v3, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a1, a0, 2
-; CHECK-RV32-FDV-NEXT: add a0, a1, a0
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vs1r.v v4, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vs1r.v v5, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a1, a0, 3
-; CHECK-RV32-FDV-NEXT: sub a0, a1, a0
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vs1r.v v6, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
; CHECK-RV32-FDV-NEXT: slli a0, a0, 3
; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vs1r.v v7, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a1, a0, 3
-; CHECK-RV32-FDV-NEXT: add a0, a1, a0
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vs1r.v v8, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vs1r.v v9, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vs1r.v v10, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vs1r.v v11, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vs1r.v v12, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vs1r.v v13, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a1, a0, 4
-; CHECK-RV32-FDV-NEXT: sub a0, a1, a0
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vs1r.v v14, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV32-FDV-NEXT: vs8r.v v0, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
; CHECK-RV32-FDV-NEXT: slli a0, a0, 4
; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vs1r.v v15, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a1, a0, 4
-; CHECK-RV32-FDV-NEXT: add a0, a1, a0
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vs1r.v v16, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 3
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vs1r.v v17, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 3
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vs1r.v v18, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vs1r.v v19, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vs1r.v v20, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vs1r.v v21, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vs1r.v v22, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV32-FDV-NEXT: vs8r.v v8, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
; CHECK-RV32-FDV-NEXT: slli a0, a0, 3
; CHECK-RV32-FDV-NEXT: mv a1, a0
@@ -6991,249 +3218,23 @@ define void @foo_fp_with_call() #2 {
; CHECK-RV32-FDV-NEXT: add a0, a0, a1
; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vs1r.v v23, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 3
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vs1r.v v24, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vs1r.v v25, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vs1r.v v26, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vs1r.v v27, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vs1r.v v28, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vs1r.v v29, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a1, a0, 5
-; CHECK-RV32-FDV-NEXT: sub a0, a1, a0
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vs1r.v v30, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV32-FDV-NEXT: vs8r.v v16, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
; CHECK-RV32-FDV-NEXT: slli a0, a0, 5
; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vs1r.v v31, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV32-FDV-NEXT: vs8r.v v24, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV32-FDV-NEXT: call otherfoo
; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vl1r.v v0, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vl1r.v v1, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a1, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a1, a0
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vl1r.v v2, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vl1r.v v3, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a1, a0, 2
-; CHECK-RV32-FDV-NEXT: add a0, a1, a0
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vl1r.v v4, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vl1r.v v5, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a1, a0, 3
-; CHECK-RV32-FDV-NEXT: sub a0, a1, a0
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vl1r.v v6, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
; CHECK-RV32-FDV-NEXT: slli a0, a0, 3
; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vl1r.v v7, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a1, a0, 3
-; CHECK-RV32-FDV-NEXT: add a0, a1, a0
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vl1r.v v8, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vl1r.v v9, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vl1r.v v10, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vl1r.v v11, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vl1r.v v12, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vl1r.v v13, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a1, a0, 4
-; CHECK-RV32-FDV-NEXT: sub a0, a1, a0
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vl1r.v v14, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV32-FDV-NEXT: vl8r.v v0, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
; CHECK-RV32-FDV-NEXT: slli a0, a0, 4
; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vl1r.v v15, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a1, a0, 4
-; CHECK-RV32-FDV-NEXT: add a0, a1, a0
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vl1r.v v16, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 3
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vl1r.v v17, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 3
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vl1r.v v18, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vl1r.v v19, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vl1r.v v20, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vl1r.v v21, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vl1r.v v22, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV32-FDV-NEXT: vl8r.v v8, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
; CHECK-RV32-FDV-NEXT: slli a0, a0, 3
; CHECK-RV32-FDV-NEXT: mv a1, a0
@@ -7241,81 +3242,12 @@ define void @foo_fp_with_call() #2 {
; CHECK-RV32-FDV-NEXT: add a0, a0, a1
; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vl1r.v v23, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 3
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vl1r.v v24, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vl1r.v v25, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vl1r.v v26, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vl1r.v v27, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vl1r.v v28, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: mv a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a1, a1, a0
-; CHECK-RV32-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV32-FDV-NEXT: add a0, a0, a1
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vl1r.v v29, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV32-FDV-NEXT: slli a1, a0, 5
-; CHECK-RV32-FDV-NEXT: sub a0, a1, a0
-; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vl1r.v v30, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV32-FDV-NEXT: vl8r.v v16, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV32-FDV-NEXT: csrr a0, vlenb
; CHECK-RV32-FDV-NEXT: slli a0, a0, 5
; CHECK-RV32-FDV-NEXT: sub a0, s0, a0
; CHECK-RV32-FDV-NEXT: addi a0, a0, -240
-; CHECK-RV32-FDV-NEXT: vl1r.v v31, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV32-FDV-NEXT: vl8r.v v24, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV32-FDV-NEXT: addi sp, s0, -240
; CHECK-RV32-FDV-NEXT: lw ra, 236(sp) # 4-byte Folded Reload
; CHECK-RV32-FDV-NEXT: lw t0, 232(sp) # 4-byte Folded Reload
@@ -8186,422 +4118,39 @@ define void @foo_fp_with_call() #2 {
; CHECK-RV64-V-NEXT: slli a0, a0, 5
; CHECK-RV64-V-NEXT: sub sp, sp, a0
; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vs1r.v v0, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vs1r.v v1, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a1, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a1, a0
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vs1r.v v2, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vs1r.v v3, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a1, a0, 2
-; CHECK-RV64-V-NEXT: add a0, a1, a0
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vs1r.v v4, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vs1r.v v5, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a1, a0, 3
-; CHECK-RV64-V-NEXT: sub a0, a1, a0
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vs1r.v v6, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
; CHECK-RV64-V-NEXT: slli a0, a0, 3
; CHECK-RV64-V-NEXT: sub a0, s0, a0
; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vs1r.v v7, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a1, a0, 3
-; CHECK-RV64-V-NEXT: add a0, a1, a0
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vs1r.v v8, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vs1r.v v9, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vs1r.v v10, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vs1r.v v11, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vs1r.v v12, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vs1r.v v13, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a1, a0, 4
-; CHECK-RV64-V-NEXT: sub a0, a1, a0
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vs1r.v v14, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV64-V-NEXT: vs8r.v v0, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV64-V-NEXT: csrr a0, vlenb
; CHECK-RV64-V-NEXT: slli a0, a0, 4
; CHECK-RV64-V-NEXT: sub a0, s0, a0
; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vs1r.v v15, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV64-V-NEXT: vs8r.v v8, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a1, a0, 4
-; CHECK-RV64-V-NEXT: add a0, a1, a0
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vs1r.v v16, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: mv a1, a0
; CHECK-RV64-V-NEXT: slli a0, a0, 3
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vs1r.v v17, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 3
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vs1r.v v18, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vs1r.v v19, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vs1r.v v20, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vs1r.v v21, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vs1r.v v22, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 3
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vs1r.v v23, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 3
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vs1r.v v24, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a1, a1, a0
; CHECK-RV64-V-NEXT: slli a0, a0, 1
; CHECK-RV64-V-NEXT: add a0, a0, a1
; CHECK-RV64-V-NEXT: sub a0, s0, a0
; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vs1r.v v25, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vs1r.v v26, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vs1r.v v27, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vs1r.v v28, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vs1r.v v29, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a1, a0, 5
-; CHECK-RV64-V-NEXT: sub a0, a1, a0
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vs1r.v v30, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV64-V-NEXT: vs8r.v v16, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV64-V-NEXT: csrr a0, vlenb
; CHECK-RV64-V-NEXT: slli a0, a0, 5
; CHECK-RV64-V-NEXT: sub a0, s0, a0
; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vs1r.v v31, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV64-V-NEXT: vs8r.v v24, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV64-V-NEXT: call otherfoo
; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vl1r.v v0, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vl1r.v v1, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a1, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a1, a0
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vl1r.v v2, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vl1r.v v3, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a1, a0, 2
-; CHECK-RV64-V-NEXT: add a0, a1, a0
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vl1r.v v4, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vl1r.v v5, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a1, a0, 3
-; CHECK-RV64-V-NEXT: sub a0, a1, a0
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vl1r.v v6, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
; CHECK-RV64-V-NEXT: slli a0, a0, 3
; CHECK-RV64-V-NEXT: sub a0, s0, a0
; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vl1r.v v7, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a1, a0, 3
-; CHECK-RV64-V-NEXT: add a0, a1, a0
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vl1r.v v8, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vl1r.v v9, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vl1r.v v10, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vl1r.v v11, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vl1r.v v12, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vl1r.v v13, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a1, a0, 4
-; CHECK-RV64-V-NEXT: sub a0, a1, a0
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vl1r.v v14, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV64-V-NEXT: vl8r.v v0, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV64-V-NEXT: csrr a0, vlenb
; CHECK-RV64-V-NEXT: slli a0, a0, 4
; CHECK-RV64-V-NEXT: sub a0, s0, a0
; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vl1r.v v15, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a1, a0, 4
-; CHECK-RV64-V-NEXT: add a0, a1, a0
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vl1r.v v16, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 3
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vl1r.v v17, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 3
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vl1r.v v18, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vl1r.v v19, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vl1r.v v20, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vl1r.v v21, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vl1r.v v22, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV64-V-NEXT: vl8r.v v8, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV64-V-NEXT: csrr a0, vlenb
; CHECK-RV64-V-NEXT: slli a0, a0, 3
; CHECK-RV64-V-NEXT: mv a1, a0
@@ -8609,81 +4158,12 @@ define void @foo_fp_with_call() #2 {
; CHECK-RV64-V-NEXT: add a0, a0, a1
; CHECK-RV64-V-NEXT: sub a0, s0, a0
; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vl1r.v v23, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 3
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vl1r.v v24, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vl1r.v v25, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vl1r.v v26, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vl1r.v v27, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 2
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vl1r.v v28, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: mv a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a1, a1, a0
-; CHECK-RV64-V-NEXT: slli a0, a0, 1
-; CHECK-RV64-V-NEXT: add a0, a0, a1
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vl1r.v v29, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-V-NEXT: csrr a0, vlenb
-; CHECK-RV64-V-NEXT: slli a1, a0, 5
-; CHECK-RV64-V-NEXT: sub a0, a1, a0
-; CHECK-RV64-V-NEXT: sub a0, s0, a0
-; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vl1r.v v30, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV64-V-NEXT: vl8r.v v16, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV64-V-NEXT: csrr a0, vlenb
; CHECK-RV64-V-NEXT: slli a0, a0, 5
; CHECK-RV64-V-NEXT: sub a0, s0, a0
; CHECK-RV64-V-NEXT: addi a0, a0, -160
-; CHECK-RV64-V-NEXT: vl1r.v v31, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV64-V-NEXT: vl8r.v v24, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV64-V-NEXT: addi sp, s0, -160
; CHECK-RV64-V-NEXT: ld ra, 152(sp) # 8-byte Folded Reload
; CHECK-RV64-V-NEXT: ld t0, 144(sp) # 8-byte Folded Reload
@@ -8750,172 +4230,15 @@ define void @foo_fp_with_call() #2 {
; CHECK-RV64-FV-NEXT: slli a0, a0, 5
; CHECK-RV64-FV-NEXT: sub sp, sp, a0
; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vs1r.v v0, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vs1r.v v1, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a1, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a1, a0
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vs1r.v v2, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vs1r.v v3, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a1, a0, 2
-; CHECK-RV64-FV-NEXT: add a0, a1, a0
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vs1r.v v4, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vs1r.v v5, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a1, a0, 3
-; CHECK-RV64-FV-NEXT: sub a0, a1, a0
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vs1r.v v6, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
; CHECK-RV64-FV-NEXT: slli a0, a0, 3
; CHECK-RV64-FV-NEXT: sub a0, s0, a0
; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vs1r.v v7, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a1, a0, 3
-; CHECK-RV64-FV-NEXT: add a0, a1, a0
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vs1r.v v8, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vs1r.v v9, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vs1r.v v10, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vs1r.v v11, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vs1r.v v12, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vs1r.v v13, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a1, a0, 4
-; CHECK-RV64-FV-NEXT: sub a0, a1, a0
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vs1r.v v14, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV64-FV-NEXT: vs8r.v v0, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV64-FV-NEXT: csrr a0, vlenb
; CHECK-RV64-FV-NEXT: slli a0, a0, 4
; CHECK-RV64-FV-NEXT: sub a0, s0, a0
; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vs1r.v v15, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a1, a0, 4
-; CHECK-RV64-FV-NEXT: add a0, a1, a0
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vs1r.v v16, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 3
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vs1r.v v17, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 3
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vs1r.v v18, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vs1r.v v19, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vs1r.v v20, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vs1r.v v21, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vs1r.v v22, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV64-FV-NEXT: vs8r.v v8, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV64-FV-NEXT: csrr a0, vlenb
; CHECK-RV64-FV-NEXT: slli a0, a0, 3
; CHECK-RV64-FV-NEXT: mv a1, a0
@@ -8923,331 +4246,36 @@ define void @foo_fp_with_call() #2 {
; CHECK-RV64-FV-NEXT: add a0, a0, a1
; CHECK-RV64-FV-NEXT: sub a0, s0, a0
; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vs1r.v v23, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 3
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vs1r.v v24, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vs1r.v v25, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vs1r.v v26, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vs1r.v v27, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vs1r.v v28, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vs1r.v v29, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a1, a0, 5
-; CHECK-RV64-FV-NEXT: sub a0, a1, a0
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vs1r.v v30, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV64-FV-NEXT: vs8r.v v16, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV64-FV-NEXT: csrr a0, vlenb
; CHECK-RV64-FV-NEXT: slli a0, a0, 5
; CHECK-RV64-FV-NEXT: sub a0, s0, a0
; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vs1r.v v31, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV64-FV-NEXT: vs8r.v v24, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV64-FV-NEXT: call otherfoo
; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vl1r.v v0, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vl1r.v v1, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a1, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a1, a0
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vl1r.v v2, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vl1r.v v3, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a1, a0, 2
-; CHECK-RV64-FV-NEXT: add a0, a1, a0
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vl1r.v v4, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vl1r.v v5, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a1, a0, 3
-; CHECK-RV64-FV-NEXT: sub a0, a1, a0
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vl1r.v v6, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
; CHECK-RV64-FV-NEXT: slli a0, a0, 3
; CHECK-RV64-FV-NEXT: sub a0, s0, a0
; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vl1r.v v7, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a1, a0, 3
-; CHECK-RV64-FV-NEXT: add a0, a1, a0
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vl1r.v v8, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vl1r.v v9, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vl1r.v v10, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vl1r.v v11, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vl1r.v v12, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vl1r.v v13, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a1, a0, 4
-; CHECK-RV64-FV-NEXT: sub a0, a1, a0
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vl1r.v v14, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV64-FV-NEXT: vl8r.v v0, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV64-FV-NEXT: csrr a0, vlenb
; CHECK-RV64-FV-NEXT: slli a0, a0, 4
; CHECK-RV64-FV-NEXT: sub a0, s0, a0
; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vl1r.v v15, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV64-FV-NEXT: vl8r.v v8, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a1, a0, 4
-; CHECK-RV64-FV-NEXT: add a0, a1, a0
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vl1r.v v16, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: mv a1, a0
; CHECK-RV64-FV-NEXT: slli a0, a0, 3
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vl1r.v v17, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 3
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vl1r.v v18, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vl1r.v v19, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vl1r.v v20, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vl1r.v v21, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vl1r.v v22, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 3
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vl1r.v v23, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 3
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vl1r.v v24, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
; CHECK-RV64-FV-NEXT: slli a0, a0, 1
; CHECK-RV64-FV-NEXT: add a0, a0, a1
; CHECK-RV64-FV-NEXT: sub a0, s0, a0
; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vl1r.v v25, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vl1r.v v26, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vl1r.v v27, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vl1r.v v28, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: mv a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a1, a1, a0
-; CHECK-RV64-FV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FV-NEXT: add a0, a0, a1
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vl1r.v v29, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FV-NEXT: slli a1, a0, 5
-; CHECK-RV64-FV-NEXT: sub a0, a1, a0
-; CHECK-RV64-FV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vl1r.v v30, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV64-FV-NEXT: vl8r.v v16, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV64-FV-NEXT: csrr a0, vlenb
; CHECK-RV64-FV-NEXT: slli a0, a0, 5
; CHECK-RV64-FV-NEXT: sub a0, s0, a0
; CHECK-RV64-FV-NEXT: addi a0, a0, -240
-; CHECK-RV64-FV-NEXT: vl1r.v v31, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV64-FV-NEXT: vl8r.v v24, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV64-FV-NEXT: addi sp, s0, -240
; CHECK-RV64-FV-NEXT: ld ra, 232(sp) # 8-byte Folded Reload
; CHECK-RV64-FV-NEXT: ld t0, 224(sp) # 8-byte Folded Reload
@@ -9334,172 +4362,15 @@ define void @foo_fp_with_call() #2 {
; CHECK-RV64-FDV-NEXT: slli a0, a0, 5
; CHECK-RV64-FDV-NEXT: sub sp, sp, a0
; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vs1r.v v0, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vs1r.v v1, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a1, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a1, a0
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vs1r.v v2, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vs1r.v v3, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a1, a0, 2
-; CHECK-RV64-FDV-NEXT: add a0, a1, a0
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vs1r.v v4, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vs1r.v v5, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a1, a0, 3
-; CHECK-RV64-FDV-NEXT: sub a0, a1, a0
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vs1r.v v6, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
; CHECK-RV64-FDV-NEXT: slli a0, a0, 3
; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vs1r.v v7, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a1, a0, 3
-; CHECK-RV64-FDV-NEXT: add a0, a1, a0
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vs1r.v v8, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vs1r.v v9, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vs1r.v v10, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vs1r.v v11, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vs1r.v v12, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vs1r.v v13, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a1, a0, 4
-; CHECK-RV64-FDV-NEXT: sub a0, a1, a0
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vs1r.v v14, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV64-FDV-NEXT: vs8r.v v0, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
; CHECK-RV64-FDV-NEXT: slli a0, a0, 4
; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vs1r.v v15, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a1, a0, 4
-; CHECK-RV64-FDV-NEXT: add a0, a1, a0
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vs1r.v v16, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 3
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vs1r.v v17, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 3
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vs1r.v v18, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vs1r.v v19, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vs1r.v v20, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vs1r.v v21, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vs1r.v v22, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV64-FDV-NEXT: vs8r.v v8, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
; CHECK-RV64-FDV-NEXT: slli a0, a0, 3
; CHECK-RV64-FDV-NEXT: mv a1, a0
@@ -9507,249 +4378,23 @@ define void @foo_fp_with_call() #2 {
; CHECK-RV64-FDV-NEXT: add a0, a0, a1
; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vs1r.v v23, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 3
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vs1r.v v24, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vs1r.v v25, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vs1r.v v26, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vs1r.v v27, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vs1r.v v28, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vs1r.v v29, (a0) # vscale x 8-byte Folded Spill
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a1, a0, 5
-; CHECK-RV64-FDV-NEXT: sub a0, a1, a0
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vs1r.v v30, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV64-FDV-NEXT: vs8r.v v16, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
; CHECK-RV64-FDV-NEXT: slli a0, a0, 5
; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vs1r.v v31, (a0) # vscale x 8-byte Folded Spill
+; CHECK-RV64-FDV-NEXT: vs8r.v v24, (a0) # vscale x 64-byte Folded Spill
; CHECK-RV64-FDV-NEXT: call otherfoo
; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vl1r.v v0, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vl1r.v v1, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a1, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a1, a0
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vl1r.v v2, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vl1r.v v3, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a1, a0, 2
-; CHECK-RV64-FDV-NEXT: add a0, a1, a0
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vl1r.v v4, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vl1r.v v5, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a1, a0, 3
-; CHECK-RV64-FDV-NEXT: sub a0, a1, a0
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vl1r.v v6, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
; CHECK-RV64-FDV-NEXT: slli a0, a0, 3
; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vl1r.v v7, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a1, a0, 3
-; CHECK-RV64-FDV-NEXT: add a0, a1, a0
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vl1r.v v8, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vl1r.v v9, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vl1r.v v10, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vl1r.v v11, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vl1r.v v12, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vl1r.v v13, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a1, a0, 4
-; CHECK-RV64-FDV-NEXT: sub a0, a1, a0
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vl1r.v v14, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV64-FDV-NEXT: vl8r.v v0, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
; CHECK-RV64-FDV-NEXT: slli a0, a0, 4
; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vl1r.v v15, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a1, a0, 4
-; CHECK-RV64-FDV-NEXT: add a0, a1, a0
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vl1r.v v16, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 3
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vl1r.v v17, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 3
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vl1r.v v18, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vl1r.v v19, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vl1r.v v20, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vl1r.v v21, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vl1r.v v22, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV64-FDV-NEXT: vl8r.v v8, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
; CHECK-RV64-FDV-NEXT: slli a0, a0, 3
; CHECK-RV64-FDV-NEXT: mv a1, a0
@@ -9757,81 +4402,12 @@ define void @foo_fp_with_call() #2 {
; CHECK-RV64-FDV-NEXT: add a0, a0, a1
; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vl1r.v v23, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 3
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vl1r.v v24, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vl1r.v v25, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vl1r.v v26, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vl1r.v v27, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 2
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vl1r.v v28, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: mv a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a1, a1, a0
-; CHECK-RV64-FDV-NEXT: slli a0, a0, 1
-; CHECK-RV64-FDV-NEXT: add a0, a0, a1
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vl1r.v v29, (a0) # vscale x 8-byte Folded Reload
-; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
-; CHECK-RV64-FDV-NEXT: slli a1, a0, 5
-; CHECK-RV64-FDV-NEXT: sub a0, a1, a0
-; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
-; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vl1r.v v30, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV64-FDV-NEXT: vl8r.v v16, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV64-FDV-NEXT: csrr a0, vlenb
; CHECK-RV64-FDV-NEXT: slli a0, a0, 5
; CHECK-RV64-FDV-NEXT: sub a0, s0, a0
; CHECK-RV64-FDV-NEXT: addi a0, a0, -320
-; CHECK-RV64-FDV-NEXT: vl1r.v v31, (a0) # vscale x 8-byte Folded Reload
+; CHECK-RV64-FDV-NEXT: vl8r.v v24, (a0) # vscale x 64-byte Folded Reload
; CHECK-RV64-FDV-NEXT: addi sp, s0, -320
; CHECK-RV64-FDV-NEXT: ld ra, 312(sp) # 8-byte Folded Reload
; CHECK-RV64-FDV-NEXT: ld t0, 304(sp) # 8-byte Folded Reload