[llvm] [RISCV][RFC] Prevent folding ADD_LO into load/store if we can't fold all uses. (PR #155935)
Pengcheng Wang via llvm-commits
llvm-commits at lists.llvm.org
Sun Aug 31 23:45:28 PDT 2025
================
@@ -706,1143 +706,1127 @@ define void @caller() nounwind {
; ILP32-NEXT: addi sp, sp, -144
; ILP32-NEXT: sw ra, 140(sp) # 4-byte Folded Spill
; ILP32-NEXT: sw s0, 136(sp) # 4-byte Folded Spill
-; ILP32-NEXT: sw s1, 132(sp) # 4-byte Folded Spill
; ILP32-NEXT: lui s0, %hi(var)
-; ILP32-NEXT: flw fa5, %lo(var)(s0)
+; ILP32-NEXT: addi s0, s0, %lo(var)
+; ILP32-NEXT: flw fa5, 0(s0)
+; ILP32-NEXT: fsw fa5, 132(sp) # 4-byte Folded Spill
+; ILP32-NEXT: flw fa5, 4(s0)
; ILP32-NEXT: fsw fa5, 128(sp) # 4-byte Folded Spill
-; ILP32-NEXT: flw fa5, %lo(var+4)(s0)
+; ILP32-NEXT: flw fa5, 8(s0)
; ILP32-NEXT: fsw fa5, 124(sp) # 4-byte Folded Spill
-; ILP32-NEXT: flw fa5, %lo(var+8)(s0)
+; ILP32-NEXT: flw fa5, 12(s0)
; ILP32-NEXT: fsw fa5, 120(sp) # 4-byte Folded Spill
-; ILP32-NEXT: flw fa5, %lo(var+12)(s0)
+; ILP32-NEXT: flw fa5, 16(s0)
; ILP32-NEXT: fsw fa5, 116(sp) # 4-byte Folded Spill
-; ILP32-NEXT: addi s1, s0, %lo(var)
-; ILP32-NEXT: flw fa5, 16(s1)
+; ILP32-NEXT: flw fa5, 20(s0)
; ILP32-NEXT: fsw fa5, 112(sp) # 4-byte Folded Spill
-; ILP32-NEXT: flw fa5, 20(s1)
+; ILP32-NEXT: flw fa5, 24(s0)
; ILP32-NEXT: fsw fa5, 108(sp) # 4-byte Folded Spill
-; ILP32-NEXT: flw fa5, 24(s1)
+; ILP32-NEXT: flw fa5, 28(s0)
; ILP32-NEXT: fsw fa5, 104(sp) # 4-byte Folded Spill
-; ILP32-NEXT: flw fa5, 28(s1)
+; ILP32-NEXT: flw fa5, 32(s0)
; ILP32-NEXT: fsw fa5, 100(sp) # 4-byte Folded Spill
-; ILP32-NEXT: flw fa5, 32(s1)
+; ILP32-NEXT: flw fa5, 36(s0)
; ILP32-NEXT: fsw fa5, 96(sp) # 4-byte Folded Spill
-; ILP32-NEXT: flw fa5, 36(s1)
+; ILP32-NEXT: flw fa5, 40(s0)
; ILP32-NEXT: fsw fa5, 92(sp) # 4-byte Folded Spill
-; ILP32-NEXT: flw fa5, 40(s1)
+; ILP32-NEXT: flw fa5, 44(s0)
; ILP32-NEXT: fsw fa5, 88(sp) # 4-byte Folded Spill
-; ILP32-NEXT: flw fa5, 44(s1)
+; ILP32-NEXT: flw fa5, 48(s0)
; ILP32-NEXT: fsw fa5, 84(sp) # 4-byte Folded Spill
-; ILP32-NEXT: flw fa5, 48(s1)
+; ILP32-NEXT: flw fa5, 52(s0)
; ILP32-NEXT: fsw fa5, 80(sp) # 4-byte Folded Spill
-; ILP32-NEXT: flw fa5, 52(s1)
+; ILP32-NEXT: flw fa5, 56(s0)
; ILP32-NEXT: fsw fa5, 76(sp) # 4-byte Folded Spill
-; ILP32-NEXT: flw fa5, 56(s1)
+; ILP32-NEXT: flw fa5, 60(s0)
; ILP32-NEXT: fsw fa5, 72(sp) # 4-byte Folded Spill
-; ILP32-NEXT: flw fa5, 60(s1)
+; ILP32-NEXT: flw fa5, 64(s0)
; ILP32-NEXT: fsw fa5, 68(sp) # 4-byte Folded Spill
-; ILP32-NEXT: flw fa5, 64(s1)
+; ILP32-NEXT: flw fa5, 68(s0)
; ILP32-NEXT: fsw fa5, 64(sp) # 4-byte Folded Spill
-; ILP32-NEXT: flw fa5, 68(s1)
+; ILP32-NEXT: flw fa5, 72(s0)
; ILP32-NEXT: fsw fa5, 60(sp) # 4-byte Folded Spill
-; ILP32-NEXT: flw fa5, 72(s1)
+; ILP32-NEXT: flw fa5, 76(s0)
; ILP32-NEXT: fsw fa5, 56(sp) # 4-byte Folded Spill
-; ILP32-NEXT: flw fa5, 76(s1)
+; ILP32-NEXT: flw fa5, 80(s0)
; ILP32-NEXT: fsw fa5, 52(sp) # 4-byte Folded Spill
-; ILP32-NEXT: flw fa5, 80(s1)
+; ILP32-NEXT: flw fa5, 84(s0)
; ILP32-NEXT: fsw fa5, 48(sp) # 4-byte Folded Spill
-; ILP32-NEXT: flw fa5, 84(s1)
+; ILP32-NEXT: flw fa5, 88(s0)
; ILP32-NEXT: fsw fa5, 44(sp) # 4-byte Folded Spill
-; ILP32-NEXT: flw fa5, 88(s1)
+; ILP32-NEXT: flw fa5, 92(s0)
; ILP32-NEXT: fsw fa5, 40(sp) # 4-byte Folded Spill
-; ILP32-NEXT: flw fa5, 92(s1)
+; ILP32-NEXT: flw fa5, 96(s0)
; ILP32-NEXT: fsw fa5, 36(sp) # 4-byte Folded Spill
-; ILP32-NEXT: flw fa5, 96(s1)
+; ILP32-NEXT: flw fa5, 100(s0)
; ILP32-NEXT: fsw fa5, 32(sp) # 4-byte Folded Spill
-; ILP32-NEXT: flw fa5, 100(s1)
+; ILP32-NEXT: flw fa5, 104(s0)
; ILP32-NEXT: fsw fa5, 28(sp) # 4-byte Folded Spill
-; ILP32-NEXT: flw fa5, 104(s1)
+; ILP32-NEXT: flw fa5, 108(s0)
; ILP32-NEXT: fsw fa5, 24(sp) # 4-byte Folded Spill
-; ILP32-NEXT: flw fa5, 108(s1)
+; ILP32-NEXT: flw fa5, 112(s0)
; ILP32-NEXT: fsw fa5, 20(sp) # 4-byte Folded Spill
-; ILP32-NEXT: flw fa5, 112(s1)
+; ILP32-NEXT: flw fa5, 116(s0)
; ILP32-NEXT: fsw fa5, 16(sp) # 4-byte Folded Spill
-; ILP32-NEXT: flw fa5, 116(s1)
+; ILP32-NEXT: flw fa5, 120(s0)
; ILP32-NEXT: fsw fa5, 12(sp) # 4-byte Folded Spill
-; ILP32-NEXT: flw fa5, 120(s1)
+; ILP32-NEXT: flw fa5, 124(s0)
; ILP32-NEXT: fsw fa5, 8(sp) # 4-byte Folded Spill
-; ILP32-NEXT: flw fa5, 124(s1)
-; ILP32-NEXT: fsw fa5, 4(sp) # 4-byte Folded Spill
; ILP32-NEXT: call callee
-; ILP32-NEXT: flw fa5, 4(sp) # 4-byte Folded Reload
-; ILP32-NEXT: fsw fa5, 124(s1)
; ILP32-NEXT: flw fa5, 8(sp) # 4-byte Folded Reload
-; ILP32-NEXT: fsw fa5, 120(s1)
+; ILP32-NEXT: fsw fa5, 124(s0)
; ILP32-NEXT: flw fa5, 12(sp) # 4-byte Folded Reload
-; ILP32-NEXT: fsw fa5, 116(s1)
+; ILP32-NEXT: fsw fa5, 120(s0)
; ILP32-NEXT: flw fa5, 16(sp) # 4-byte Folded Reload
-; ILP32-NEXT: fsw fa5, 112(s1)
+; ILP32-NEXT: fsw fa5, 116(s0)
; ILP32-NEXT: flw fa5, 20(sp) # 4-byte Folded Reload
-; ILP32-NEXT: fsw fa5, 108(s1)
+; ILP32-NEXT: fsw fa5, 112(s0)
; ILP32-NEXT: flw fa5, 24(sp) # 4-byte Folded Reload
-; ILP32-NEXT: fsw fa5, 104(s1)
+; ILP32-NEXT: fsw fa5, 108(s0)
; ILP32-NEXT: flw fa5, 28(sp) # 4-byte Folded Reload
-; ILP32-NEXT: fsw fa5, 100(s1)
+; ILP32-NEXT: fsw fa5, 104(s0)
; ILP32-NEXT: flw fa5, 32(sp) # 4-byte Folded Reload
-; ILP32-NEXT: fsw fa5, 96(s1)
+; ILP32-NEXT: fsw fa5, 100(s0)
; ILP32-NEXT: flw fa5, 36(sp) # 4-byte Folded Reload
-; ILP32-NEXT: fsw fa5, 92(s1)
+; ILP32-NEXT: fsw fa5, 96(s0)
; ILP32-NEXT: flw fa5, 40(sp) # 4-byte Folded Reload
-; ILP32-NEXT: fsw fa5, 88(s1)
+; ILP32-NEXT: fsw fa5, 92(s0)
; ILP32-NEXT: flw fa5, 44(sp) # 4-byte Folded Reload
-; ILP32-NEXT: fsw fa5, 84(s1)
+; ILP32-NEXT: fsw fa5, 88(s0)
; ILP32-NEXT: flw fa5, 48(sp) # 4-byte Folded Reload
-; ILP32-NEXT: fsw fa5, 80(s1)
+; ILP32-NEXT: fsw fa5, 84(s0)
; ILP32-NEXT: flw fa5, 52(sp) # 4-byte Folded Reload
-; ILP32-NEXT: fsw fa5, 76(s1)
+; ILP32-NEXT: fsw fa5, 80(s0)
; ILP32-NEXT: flw fa5, 56(sp) # 4-byte Folded Reload
-; ILP32-NEXT: fsw fa5, 72(s1)
+; ILP32-NEXT: fsw fa5, 76(s0)
; ILP32-NEXT: flw fa5, 60(sp) # 4-byte Folded Reload
-; ILP32-NEXT: fsw fa5, 68(s1)
+; ILP32-NEXT: fsw fa5, 72(s0)
; ILP32-NEXT: flw fa5, 64(sp) # 4-byte Folded Reload
-; ILP32-NEXT: fsw fa5, 64(s1)
+; ILP32-NEXT: fsw fa5, 68(s0)
; ILP32-NEXT: flw fa5, 68(sp) # 4-byte Folded Reload
-; ILP32-NEXT: fsw fa5, 60(s1)
+; ILP32-NEXT: fsw fa5, 64(s0)
; ILP32-NEXT: flw fa5, 72(sp) # 4-byte Folded Reload
-; ILP32-NEXT: fsw fa5, 56(s1)
+; ILP32-NEXT: fsw fa5, 60(s0)
; ILP32-NEXT: flw fa5, 76(sp) # 4-byte Folded Reload
-; ILP32-NEXT: fsw fa5, 52(s1)
+; ILP32-NEXT: fsw fa5, 56(s0)
; ILP32-NEXT: flw fa5, 80(sp) # 4-byte Folded Reload
-; ILP32-NEXT: fsw fa5, 48(s1)
+; ILP32-NEXT: fsw fa5, 52(s0)
; ILP32-NEXT: flw fa5, 84(sp) # 4-byte Folded Reload
-; ILP32-NEXT: fsw fa5, 44(s1)
+; ILP32-NEXT: fsw fa5, 48(s0)
; ILP32-NEXT: flw fa5, 88(sp) # 4-byte Folded Reload
-; ILP32-NEXT: fsw fa5, 40(s1)
+; ILP32-NEXT: fsw fa5, 44(s0)
; ILP32-NEXT: flw fa5, 92(sp) # 4-byte Folded Reload
-; ILP32-NEXT: fsw fa5, 36(s1)
+; ILP32-NEXT: fsw fa5, 40(s0)
; ILP32-NEXT: flw fa5, 96(sp) # 4-byte Folded Reload
-; ILP32-NEXT: fsw fa5, 32(s1)
+; ILP32-NEXT: fsw fa5, 36(s0)
; ILP32-NEXT: flw fa5, 100(sp) # 4-byte Folded Reload
-; ILP32-NEXT: fsw fa5, 28(s1)
+; ILP32-NEXT: fsw fa5, 32(s0)
; ILP32-NEXT: flw fa5, 104(sp) # 4-byte Folded Reload
-; ILP32-NEXT: fsw fa5, 24(s1)
+; ILP32-NEXT: fsw fa5, 28(s0)
; ILP32-NEXT: flw fa5, 108(sp) # 4-byte Folded Reload
-; ILP32-NEXT: fsw fa5, 20(s1)
+; ILP32-NEXT: fsw fa5, 24(s0)
; ILP32-NEXT: flw fa5, 112(sp) # 4-byte Folded Reload
-; ILP32-NEXT: fsw fa5, 16(s1)
+; ILP32-NEXT: fsw fa5, 20(s0)
; ILP32-NEXT: flw fa5, 116(sp) # 4-byte Folded Reload
-; ILP32-NEXT: fsw fa5, %lo(var+12)(s0)
+; ILP32-NEXT: fsw fa5, 16(s0)
; ILP32-NEXT: flw fa5, 120(sp) # 4-byte Folded Reload
-; ILP32-NEXT: fsw fa5, %lo(var+8)(s0)
+; ILP32-NEXT: fsw fa5, 12(s0)
; ILP32-NEXT: flw fa5, 124(sp) # 4-byte Folded Reload
-; ILP32-NEXT: fsw fa5, %lo(var+4)(s0)
+; ILP32-NEXT: fsw fa5, 8(s0)
; ILP32-NEXT: flw fa5, 128(sp) # 4-byte Folded Reload
-; ILP32-NEXT: fsw fa5, %lo(var)(s0)
+; ILP32-NEXT: fsw fa5, 4(s0)
+; ILP32-NEXT: flw fa5, 132(sp) # 4-byte Folded Reload
+; ILP32-NEXT: fsw fa5, 0(s0)
; ILP32-NEXT: lw ra, 140(sp) # 4-byte Folded Reload
; ILP32-NEXT: lw s0, 136(sp) # 4-byte Folded Reload
-; ILP32-NEXT: lw s1, 132(sp) # 4-byte Folded Reload
; ILP32-NEXT: addi sp, sp, 144
; ILP32-NEXT: ret
;
; ILP32E-LABEL: caller:
; ILP32E: # %bb.0:
-; ILP32E-NEXT: addi sp, sp, -140
-; ILP32E-NEXT: sw ra, 136(sp) # 4-byte Folded Spill
-; ILP32E-NEXT: sw s0, 132(sp) # 4-byte Folded Spill
-; ILP32E-NEXT: sw s1, 128(sp) # 4-byte Folded Spill
+; ILP32E-NEXT: addi sp, sp, -136
+; ILP32E-NEXT: sw ra, 132(sp) # 4-byte Folded Spill
+; ILP32E-NEXT: sw s0, 128(sp) # 4-byte Folded Spill
; ILP32E-NEXT: lui s0, %hi(var)
-; ILP32E-NEXT: flw fa5, %lo(var)(s0)
+; ILP32E-NEXT: addi s0, s0, %lo(var)
+; ILP32E-NEXT: flw fa5, 0(s0)
; ILP32E-NEXT: fsw fa5, 124(sp) # 4-byte Folded Spill
-; ILP32E-NEXT: flw fa5, %lo(var+4)(s0)
+; ILP32E-NEXT: flw fa5, 4(s0)
; ILP32E-NEXT: fsw fa5, 120(sp) # 4-byte Folded Spill
-; ILP32E-NEXT: flw fa5, %lo(var+8)(s0)
+; ILP32E-NEXT: flw fa5, 8(s0)
; ILP32E-NEXT: fsw fa5, 116(sp) # 4-byte Folded Spill
-; ILP32E-NEXT: flw fa5, %lo(var+12)(s0)
+; ILP32E-NEXT: flw fa5, 12(s0)
; ILP32E-NEXT: fsw fa5, 112(sp) # 4-byte Folded Spill
-; ILP32E-NEXT: addi s1, s0, %lo(var)
-; ILP32E-NEXT: flw fa5, 16(s1)
+; ILP32E-NEXT: flw fa5, 16(s0)
; ILP32E-NEXT: fsw fa5, 108(sp) # 4-byte Folded Spill
-; ILP32E-NEXT: flw fa5, 20(s1)
+; ILP32E-NEXT: flw fa5, 20(s0)
; ILP32E-NEXT: fsw fa5, 104(sp) # 4-byte Folded Spill
-; ILP32E-NEXT: flw fa5, 24(s1)
+; ILP32E-NEXT: flw fa5, 24(s0)
; ILP32E-NEXT: fsw fa5, 100(sp) # 4-byte Folded Spill
-; ILP32E-NEXT: flw fa5, 28(s1)
+; ILP32E-NEXT: flw fa5, 28(s0)
; ILP32E-NEXT: fsw fa5, 96(sp) # 4-byte Folded Spill
-; ILP32E-NEXT: flw fa5, 32(s1)
+; ILP32E-NEXT: flw fa5, 32(s0)
; ILP32E-NEXT: fsw fa5, 92(sp) # 4-byte Folded Spill
-; ILP32E-NEXT: flw fa5, 36(s1)
+; ILP32E-NEXT: flw fa5, 36(s0)
; ILP32E-NEXT: fsw fa5, 88(sp) # 4-byte Folded Spill
-; ILP32E-NEXT: flw fa5, 40(s1)
+; ILP32E-NEXT: flw fa5, 40(s0)
; ILP32E-NEXT: fsw fa5, 84(sp) # 4-byte Folded Spill
-; ILP32E-NEXT: flw fa5, 44(s1)
+; ILP32E-NEXT: flw fa5, 44(s0)
; ILP32E-NEXT: fsw fa5, 80(sp) # 4-byte Folded Spill
-; ILP32E-NEXT: flw fa5, 48(s1)
+; ILP32E-NEXT: flw fa5, 48(s0)
; ILP32E-NEXT: fsw fa5, 76(sp) # 4-byte Folded Spill
-; ILP32E-NEXT: flw fa5, 52(s1)
+; ILP32E-NEXT: flw fa5, 52(s0)
; ILP32E-NEXT: fsw fa5, 72(sp) # 4-byte Folded Spill
-; ILP32E-NEXT: flw fa5, 56(s1)
+; ILP32E-NEXT: flw fa5, 56(s0)
; ILP32E-NEXT: fsw fa5, 68(sp) # 4-byte Folded Spill
-; ILP32E-NEXT: flw fa5, 60(s1)
+; ILP32E-NEXT: flw fa5, 60(s0)
; ILP32E-NEXT: fsw fa5, 64(sp) # 4-byte Folded Spill
-; ILP32E-NEXT: flw fa5, 64(s1)
+; ILP32E-NEXT: flw fa5, 64(s0)
; ILP32E-NEXT: fsw fa5, 60(sp) # 4-byte Folded Spill
-; ILP32E-NEXT: flw fa5, 68(s1)
+; ILP32E-NEXT: flw fa5, 68(s0)
; ILP32E-NEXT: fsw fa5, 56(sp) # 4-byte Folded Spill
-; ILP32E-NEXT: flw fa5, 72(s1)
+; ILP32E-NEXT: flw fa5, 72(s0)
; ILP32E-NEXT: fsw fa5, 52(sp) # 4-byte Folded Spill
-; ILP32E-NEXT: flw fa5, 76(s1)
+; ILP32E-NEXT: flw fa5, 76(s0)
; ILP32E-NEXT: fsw fa5, 48(sp) # 4-byte Folded Spill
-; ILP32E-NEXT: flw fa5, 80(s1)
+; ILP32E-NEXT: flw fa5, 80(s0)
; ILP32E-NEXT: fsw fa5, 44(sp) # 4-byte Folded Spill
-; ILP32E-NEXT: flw fa5, 84(s1)
+; ILP32E-NEXT: flw fa5, 84(s0)
; ILP32E-NEXT: fsw fa5, 40(sp) # 4-byte Folded Spill
-; ILP32E-NEXT: flw fa5, 88(s1)
+; ILP32E-NEXT: flw fa5, 88(s0)
; ILP32E-NEXT: fsw fa5, 36(sp) # 4-byte Folded Spill
-; ILP32E-NEXT: flw fa5, 92(s1)
+; ILP32E-NEXT: flw fa5, 92(s0)
; ILP32E-NEXT: fsw fa5, 32(sp) # 4-byte Folded Spill
-; ILP32E-NEXT: flw fa5, 96(s1)
+; ILP32E-NEXT: flw fa5, 96(s0)
; ILP32E-NEXT: fsw fa5, 28(sp) # 4-byte Folded Spill
-; ILP32E-NEXT: flw fa5, 100(s1)
+; ILP32E-NEXT: flw fa5, 100(s0)
; ILP32E-NEXT: fsw fa5, 24(sp) # 4-byte Folded Spill
-; ILP32E-NEXT: flw fa5, 104(s1)
+; ILP32E-NEXT: flw fa5, 104(s0)
; ILP32E-NEXT: fsw fa5, 20(sp) # 4-byte Folded Spill
-; ILP32E-NEXT: flw fa5, 108(s1)
+; ILP32E-NEXT: flw fa5, 108(s0)
; ILP32E-NEXT: fsw fa5, 16(sp) # 4-byte Folded Spill
-; ILP32E-NEXT: flw fa5, 112(s1)
+; ILP32E-NEXT: flw fa5, 112(s0)
; ILP32E-NEXT: fsw fa5, 12(sp) # 4-byte Folded Spill
-; ILP32E-NEXT: flw fa5, 116(s1)
+; ILP32E-NEXT: flw fa5, 116(s0)
; ILP32E-NEXT: fsw fa5, 8(sp) # 4-byte Folded Spill
-; ILP32E-NEXT: flw fa5, 120(s1)
+; ILP32E-NEXT: flw fa5, 120(s0)
; ILP32E-NEXT: fsw fa5, 4(sp) # 4-byte Folded Spill
-; ILP32E-NEXT: flw fa5, 124(s1)
+; ILP32E-NEXT: flw fa5, 124(s0)
; ILP32E-NEXT: fsw fa5, 0(sp) # 4-byte Folded Spill
; ILP32E-NEXT: call callee
; ILP32E-NEXT: flw fa5, 0(sp) # 4-byte Folded Reload
-; ILP32E-NEXT: fsw fa5, 124(s1)
+; ILP32E-NEXT: fsw fa5, 124(s0)
; ILP32E-NEXT: flw fa5, 4(sp) # 4-byte Folded Reload
-; ILP32E-NEXT: fsw fa5, 120(s1)
+; ILP32E-NEXT: fsw fa5, 120(s0)
; ILP32E-NEXT: flw fa5, 8(sp) # 4-byte Folded Reload
-; ILP32E-NEXT: fsw fa5, 116(s1)
+; ILP32E-NEXT: fsw fa5, 116(s0)
; ILP32E-NEXT: flw fa5, 12(sp) # 4-byte Folded Reload
-; ILP32E-NEXT: fsw fa5, 112(s1)
+; ILP32E-NEXT: fsw fa5, 112(s0)
; ILP32E-NEXT: flw fa5, 16(sp) # 4-byte Folded Reload
-; ILP32E-NEXT: fsw fa5, 108(s1)
+; ILP32E-NEXT: fsw fa5, 108(s0)
; ILP32E-NEXT: flw fa5, 20(sp) # 4-byte Folded Reload
-; ILP32E-NEXT: fsw fa5, 104(s1)
+; ILP32E-NEXT: fsw fa5, 104(s0)
; ILP32E-NEXT: flw fa5, 24(sp) # 4-byte Folded Reload
-; ILP32E-NEXT: fsw fa5, 100(s1)
+; ILP32E-NEXT: fsw fa5, 100(s0)
; ILP32E-NEXT: flw fa5, 28(sp) # 4-byte Folded Reload
-; ILP32E-NEXT: fsw fa5, 96(s1)
+; ILP32E-NEXT: fsw fa5, 96(s0)
; ILP32E-NEXT: flw fa5, 32(sp) # 4-byte Folded Reload
-; ILP32E-NEXT: fsw fa5, 92(s1)
+; ILP32E-NEXT: fsw fa5, 92(s0)
; ILP32E-NEXT: flw fa5, 36(sp) # 4-byte Folded Reload
-; ILP32E-NEXT: fsw fa5, 88(s1)
+; ILP32E-NEXT: fsw fa5, 88(s0)
; ILP32E-NEXT: flw fa5, 40(sp) # 4-byte Folded Reload
-; ILP32E-NEXT: fsw fa5, 84(s1)
+; ILP32E-NEXT: fsw fa5, 84(s0)
; ILP32E-NEXT: flw fa5, 44(sp) # 4-byte Folded Reload
-; ILP32E-NEXT: fsw fa5, 80(s1)
+; ILP32E-NEXT: fsw fa5, 80(s0)
; ILP32E-NEXT: flw fa5, 48(sp) # 4-byte Folded Reload
-; ILP32E-NEXT: fsw fa5, 76(s1)
+; ILP32E-NEXT: fsw fa5, 76(s0)
; ILP32E-NEXT: flw fa5, 52(sp) # 4-byte Folded Reload
-; ILP32E-NEXT: fsw fa5, 72(s1)
+; ILP32E-NEXT: fsw fa5, 72(s0)
; ILP32E-NEXT: flw fa5, 56(sp) # 4-byte Folded Reload
-; ILP32E-NEXT: fsw fa5, 68(s1)
+; ILP32E-NEXT: fsw fa5, 68(s0)
; ILP32E-NEXT: flw fa5, 60(sp) # 4-byte Folded Reload
-; ILP32E-NEXT: fsw fa5, 64(s1)
+; ILP32E-NEXT: fsw fa5, 64(s0)
; ILP32E-NEXT: flw fa5, 64(sp) # 4-byte Folded Reload
-; ILP32E-NEXT: fsw fa5, 60(s1)
+; ILP32E-NEXT: fsw fa5, 60(s0)
; ILP32E-NEXT: flw fa5, 68(sp) # 4-byte Folded Reload
-; ILP32E-NEXT: fsw fa5, 56(s1)
+; ILP32E-NEXT: fsw fa5, 56(s0)
; ILP32E-NEXT: flw fa5, 72(sp) # 4-byte Folded Reload
-; ILP32E-NEXT: fsw fa5, 52(s1)
+; ILP32E-NEXT: fsw fa5, 52(s0)
; ILP32E-NEXT: flw fa5, 76(sp) # 4-byte Folded Reload
-; ILP32E-NEXT: fsw fa5, 48(s1)
+; ILP32E-NEXT: fsw fa5, 48(s0)
; ILP32E-NEXT: flw fa5, 80(sp) # 4-byte Folded Reload
-; ILP32E-NEXT: fsw fa5, 44(s1)
+; ILP32E-NEXT: fsw fa5, 44(s0)
; ILP32E-NEXT: flw fa5, 84(sp) # 4-byte Folded Reload
-; ILP32E-NEXT: fsw fa5, 40(s1)
+; ILP32E-NEXT: fsw fa5, 40(s0)
; ILP32E-NEXT: flw fa5, 88(sp) # 4-byte Folded Reload
-; ILP32E-NEXT: fsw fa5, 36(s1)
+; ILP32E-NEXT: fsw fa5, 36(s0)
; ILP32E-NEXT: flw fa5, 92(sp) # 4-byte Folded Reload
-; ILP32E-NEXT: fsw fa5, 32(s1)
+; ILP32E-NEXT: fsw fa5, 32(s0)
; ILP32E-NEXT: flw fa5, 96(sp) # 4-byte Folded Reload
-; ILP32E-NEXT: fsw fa5, 28(s1)
+; ILP32E-NEXT: fsw fa5, 28(s0)
; ILP32E-NEXT: flw fa5, 100(sp) # 4-byte Folded Reload
-; ILP32E-NEXT: fsw fa5, 24(s1)
+; ILP32E-NEXT: fsw fa5, 24(s0)
; ILP32E-NEXT: flw fa5, 104(sp) # 4-byte Folded Reload
-; ILP32E-NEXT: fsw fa5, 20(s1)
+; ILP32E-NEXT: fsw fa5, 20(s0)
; ILP32E-NEXT: flw fa5, 108(sp) # 4-byte Folded Reload
-; ILP32E-NEXT: fsw fa5, 16(s1)
+; ILP32E-NEXT: fsw fa5, 16(s0)
; ILP32E-NEXT: flw fa5, 112(sp) # 4-byte Folded Reload
-; ILP32E-NEXT: fsw fa5, %lo(var+12)(s0)
+; ILP32E-NEXT: fsw fa5, 12(s0)
; ILP32E-NEXT: flw fa5, 116(sp) # 4-byte Folded Reload
-; ILP32E-NEXT: fsw fa5, %lo(var+8)(s0)
+; ILP32E-NEXT: fsw fa5, 8(s0)
; ILP32E-NEXT: flw fa5, 120(sp) # 4-byte Folded Reload
-; ILP32E-NEXT: fsw fa5, %lo(var+4)(s0)
+; ILP32E-NEXT: fsw fa5, 4(s0)
; ILP32E-NEXT: flw fa5, 124(sp) # 4-byte Folded Reload
-; ILP32E-NEXT: fsw fa5, %lo(var)(s0)
-; ILP32E-NEXT: lw ra, 136(sp) # 4-byte Folded Reload
-; ILP32E-NEXT: lw s0, 132(sp) # 4-byte Folded Reload
-; ILP32E-NEXT: lw s1, 128(sp) # 4-byte Folded Reload
-; ILP32E-NEXT: addi sp, sp, 140
+; ILP32E-NEXT: fsw fa5, 0(s0)
+; ILP32E-NEXT: lw ra, 132(sp) # 4-byte Folded Reload
+; ILP32E-NEXT: lw s0, 128(sp) # 4-byte Folded Reload
+; ILP32E-NEXT: addi sp, sp, 136
; ILP32E-NEXT: ret
;
; LP64-LABEL: caller:
; LP64: # %bb.0:
-; LP64-NEXT: addi sp, sp, -160
-; LP64-NEXT: sd ra, 152(sp) # 8-byte Folded Spill
-; LP64-NEXT: sd s0, 144(sp) # 8-byte Folded Spill
-; LP64-NEXT: sd s1, 136(sp) # 8-byte Folded Spill
+; LP64-NEXT: addi sp, sp, -144
+; LP64-NEXT: sd ra, 136(sp) # 8-byte Folded Spill
+; LP64-NEXT: sd s0, 128(sp) # 8-byte Folded Spill
; LP64-NEXT: lui s0, %hi(var)
-; LP64-NEXT: flw fa5, %lo(var)(s0)
-; LP64-NEXT: fsw fa5, 132(sp) # 4-byte Folded Spill
-; LP64-NEXT: flw fa5, %lo(var+4)(s0)
-; LP64-NEXT: fsw fa5, 128(sp) # 4-byte Folded Spill
-; LP64-NEXT: flw fa5, %lo(var+8)(s0)
+; LP64-NEXT: addi s0, s0, %lo(var)
+; LP64-NEXT: flw fa5, 0(s0)
; LP64-NEXT: fsw fa5, 124(sp) # 4-byte Folded Spill
-; LP64-NEXT: flw fa5, %lo(var+12)(s0)
+; LP64-NEXT: flw fa5, 4(s0)
; LP64-NEXT: fsw fa5, 120(sp) # 4-byte Folded Spill
-; LP64-NEXT: addi s1, s0, %lo(var)
-; LP64-NEXT: flw fa5, 16(s1)
+; LP64-NEXT: flw fa5, 8(s0)
; LP64-NEXT: fsw fa5, 116(sp) # 4-byte Folded Spill
-; LP64-NEXT: flw fa5, 20(s1)
+; LP64-NEXT: flw fa5, 12(s0)
; LP64-NEXT: fsw fa5, 112(sp) # 4-byte Folded Spill
-; LP64-NEXT: flw fa5, 24(s1)
+; LP64-NEXT: flw fa5, 16(s0)
; LP64-NEXT: fsw fa5, 108(sp) # 4-byte Folded Spill
-; LP64-NEXT: flw fa5, 28(s1)
+; LP64-NEXT: flw fa5, 20(s0)
; LP64-NEXT: fsw fa5, 104(sp) # 4-byte Folded Spill
-; LP64-NEXT: flw fa5, 32(s1)
+; LP64-NEXT: flw fa5, 24(s0)
; LP64-NEXT: fsw fa5, 100(sp) # 4-byte Folded Spill
-; LP64-NEXT: flw fa5, 36(s1)
+; LP64-NEXT: flw fa5, 28(s0)
; LP64-NEXT: fsw fa5, 96(sp) # 4-byte Folded Spill
-; LP64-NEXT: flw fa5, 40(s1)
+; LP64-NEXT: flw fa5, 32(s0)
; LP64-NEXT: fsw fa5, 92(sp) # 4-byte Folded Spill
-; LP64-NEXT: flw fa5, 44(s1)
+; LP64-NEXT: flw fa5, 36(s0)
; LP64-NEXT: fsw fa5, 88(sp) # 4-byte Folded Spill
-; LP64-NEXT: flw fa5, 48(s1)
+; LP64-NEXT: flw fa5, 40(s0)
; LP64-NEXT: fsw fa5, 84(sp) # 4-byte Folded Spill
-; LP64-NEXT: flw fa5, 52(s1)
+; LP64-NEXT: flw fa5, 44(s0)
; LP64-NEXT: fsw fa5, 80(sp) # 4-byte Folded Spill
-; LP64-NEXT: flw fa5, 56(s1)
+; LP64-NEXT: flw fa5, 48(s0)
; LP64-NEXT: fsw fa5, 76(sp) # 4-byte Folded Spill
-; LP64-NEXT: flw fa5, 60(s1)
+; LP64-NEXT: flw fa5, 52(s0)
; LP64-NEXT: fsw fa5, 72(sp) # 4-byte Folded Spill
-; LP64-NEXT: flw fa5, 64(s1)
+; LP64-NEXT: flw fa5, 56(s0)
; LP64-NEXT: fsw fa5, 68(sp) # 4-byte Folded Spill
-; LP64-NEXT: flw fa5, 68(s1)
+; LP64-NEXT: flw fa5, 60(s0)
; LP64-NEXT: fsw fa5, 64(sp) # 4-byte Folded Spill
-; LP64-NEXT: flw fa5, 72(s1)
+; LP64-NEXT: flw fa5, 64(s0)
; LP64-NEXT: fsw fa5, 60(sp) # 4-byte Folded Spill
-; LP64-NEXT: flw fa5, 76(s1)
+; LP64-NEXT: flw fa5, 68(s0)
; LP64-NEXT: fsw fa5, 56(sp) # 4-byte Folded Spill
-; LP64-NEXT: flw fa5, 80(s1)
+; LP64-NEXT: flw fa5, 72(s0)
; LP64-NEXT: fsw fa5, 52(sp) # 4-byte Folded Spill
-; LP64-NEXT: flw fa5, 84(s1)
+; LP64-NEXT: flw fa5, 76(s0)
; LP64-NEXT: fsw fa5, 48(sp) # 4-byte Folded Spill
-; LP64-NEXT: flw fa5, 88(s1)
+; LP64-NEXT: flw fa5, 80(s0)
; LP64-NEXT: fsw fa5, 44(sp) # 4-byte Folded Spill
-; LP64-NEXT: flw fa5, 92(s1)
+; LP64-NEXT: flw fa5, 84(s0)
; LP64-NEXT: fsw fa5, 40(sp) # 4-byte Folded Spill
-; LP64-NEXT: flw fa5, 96(s1)
+; LP64-NEXT: flw fa5, 88(s0)
; LP64-NEXT: fsw fa5, 36(sp) # 4-byte Folded Spill
-; LP64-NEXT: flw fa5, 100(s1)
+; LP64-NEXT: flw fa5, 92(s0)
; LP64-NEXT: fsw fa5, 32(sp) # 4-byte Folded Spill
-; LP64-NEXT: flw fa5, 104(s1)
+; LP64-NEXT: flw fa5, 96(s0)
; LP64-NEXT: fsw fa5, 28(sp) # 4-byte Folded Spill
-; LP64-NEXT: flw fa5, 108(s1)
+; LP64-NEXT: flw fa5, 100(s0)
; LP64-NEXT: fsw fa5, 24(sp) # 4-byte Folded Spill
-; LP64-NEXT: flw fa5, 112(s1)
+; LP64-NEXT: flw fa5, 104(s0)
; LP64-NEXT: fsw fa5, 20(sp) # 4-byte Folded Spill
-; LP64-NEXT: flw fa5, 116(s1)
+; LP64-NEXT: flw fa5, 108(s0)
; LP64-NEXT: fsw fa5, 16(sp) # 4-byte Folded Spill
-; LP64-NEXT: flw fa5, 120(s1)
+; LP64-NEXT: flw fa5, 112(s0)
; LP64-NEXT: fsw fa5, 12(sp) # 4-byte Folded Spill
-; LP64-NEXT: flw fa5, 124(s1)
+; LP64-NEXT: flw fa5, 116(s0)
; LP64-NEXT: fsw fa5, 8(sp) # 4-byte Folded Spill
+; LP64-NEXT: flw fa5, 120(s0)
+; LP64-NEXT: fsw fa5, 4(sp) # 4-byte Folded Spill
+; LP64-NEXT: flw fa5, 124(s0)
+; LP64-NEXT: fsw fa5, 0(sp) # 4-byte Folded Spill
; LP64-NEXT: call callee
+; LP64-NEXT: flw fa5, 0(sp) # 4-byte Folded Reload
+; LP64-NEXT: fsw fa5, 124(s0)
+; LP64-NEXT: flw fa5, 4(sp) # 4-byte Folded Reload
+; LP64-NEXT: fsw fa5, 120(s0)
; LP64-NEXT: flw fa5, 8(sp) # 4-byte Folded Reload
-; LP64-NEXT: fsw fa5, 124(s1)
+; LP64-NEXT: fsw fa5, 116(s0)
; LP64-NEXT: flw fa5, 12(sp) # 4-byte Folded Reload
-; LP64-NEXT: fsw fa5, 120(s1)
+; LP64-NEXT: fsw fa5, 112(s0)
; LP64-NEXT: flw fa5, 16(sp) # 4-byte Folded Reload
-; LP64-NEXT: fsw fa5, 116(s1)
+; LP64-NEXT: fsw fa5, 108(s0)
; LP64-NEXT: flw fa5, 20(sp) # 4-byte Folded Reload
-; LP64-NEXT: fsw fa5, 112(s1)
+; LP64-NEXT: fsw fa5, 104(s0)
; LP64-NEXT: flw fa5, 24(sp) # 4-byte Folded Reload
-; LP64-NEXT: fsw fa5, 108(s1)
+; LP64-NEXT: fsw fa5, 100(s0)
; LP64-NEXT: flw fa5, 28(sp) # 4-byte Folded Reload
-; LP64-NEXT: fsw fa5, 104(s1)
+; LP64-NEXT: fsw fa5, 96(s0)
; LP64-NEXT: flw fa5, 32(sp) # 4-byte Folded Reload
-; LP64-NEXT: fsw fa5, 100(s1)
+; LP64-NEXT: fsw fa5, 92(s0)
; LP64-NEXT: flw fa5, 36(sp) # 4-byte Folded Reload
-; LP64-NEXT: fsw fa5, 96(s1)
+; LP64-NEXT: fsw fa5, 88(s0)
; LP64-NEXT: flw fa5, 40(sp) # 4-byte Folded Reload
-; LP64-NEXT: fsw fa5, 92(s1)
+; LP64-NEXT: fsw fa5, 84(s0)
; LP64-NEXT: flw fa5, 44(sp) # 4-byte Folded Reload
-; LP64-NEXT: fsw fa5, 88(s1)
+; LP64-NEXT: fsw fa5, 80(s0)
; LP64-NEXT: flw fa5, 48(sp) # 4-byte Folded Reload
-; LP64-NEXT: fsw fa5, 84(s1)
+; LP64-NEXT: fsw fa5, 76(s0)
; LP64-NEXT: flw fa5, 52(sp) # 4-byte Folded Reload
-; LP64-NEXT: fsw fa5, 80(s1)
+; LP64-NEXT: fsw fa5, 72(s0)
; LP64-NEXT: flw fa5, 56(sp) # 4-byte Folded Reload
-; LP64-NEXT: fsw fa5, 76(s1)
+; LP64-NEXT: fsw fa5, 68(s0)
; LP64-NEXT: flw fa5, 60(sp) # 4-byte Folded Reload
-; LP64-NEXT: fsw fa5, 72(s1)
+; LP64-NEXT: fsw fa5, 64(s0)
; LP64-NEXT: flw fa5, 64(sp) # 4-byte Folded Reload
-; LP64-NEXT: fsw fa5, 68(s1)
+; LP64-NEXT: fsw fa5, 60(s0)
; LP64-NEXT: flw fa5, 68(sp) # 4-byte Folded Reload
-; LP64-NEXT: fsw fa5, 64(s1)
+; LP64-NEXT: fsw fa5, 56(s0)
; LP64-NEXT: flw fa5, 72(sp) # 4-byte Folded Reload
-; LP64-NEXT: fsw fa5, 60(s1)
+; LP64-NEXT: fsw fa5, 52(s0)
; LP64-NEXT: flw fa5, 76(sp) # 4-byte Folded Reload
-; LP64-NEXT: fsw fa5, 56(s1)
+; LP64-NEXT: fsw fa5, 48(s0)
; LP64-NEXT: flw fa5, 80(sp) # 4-byte Folded Reload
-; LP64-NEXT: fsw fa5, 52(s1)
+; LP64-NEXT: fsw fa5, 44(s0)
; LP64-NEXT: flw fa5, 84(sp) # 4-byte Folded Reload
-; LP64-NEXT: fsw fa5, 48(s1)
+; LP64-NEXT: fsw fa5, 40(s0)
; LP64-NEXT: flw fa5, 88(sp) # 4-byte Folded Reload
-; LP64-NEXT: fsw fa5, 44(s1)
+; LP64-NEXT: fsw fa5, 36(s0)
; LP64-NEXT: flw fa5, 92(sp) # 4-byte Folded Reload
-; LP64-NEXT: fsw fa5, 40(s1)
+; LP64-NEXT: fsw fa5, 32(s0)
; LP64-NEXT: flw fa5, 96(sp) # 4-byte Folded Reload
-; LP64-NEXT: fsw fa5, 36(s1)
+; LP64-NEXT: fsw fa5, 28(s0)
; LP64-NEXT: flw fa5, 100(sp) # 4-byte Folded Reload
-; LP64-NEXT: fsw fa5, 32(s1)
+; LP64-NEXT: fsw fa5, 24(s0)
; LP64-NEXT: flw fa5, 104(sp) # 4-byte Folded Reload
-; LP64-NEXT: fsw fa5, 28(s1)
+; LP64-NEXT: fsw fa5, 20(s0)
; LP64-NEXT: flw fa5, 108(sp) # 4-byte Folded Reload
-; LP64-NEXT: fsw fa5, 24(s1)
+; LP64-NEXT: fsw fa5, 16(s0)
; LP64-NEXT: flw fa5, 112(sp) # 4-byte Folded Reload
-; LP64-NEXT: fsw fa5, 20(s1)
+; LP64-NEXT: fsw fa5, 12(s0)
; LP64-NEXT: flw fa5, 116(sp) # 4-byte Folded Reload
-; LP64-NEXT: fsw fa5, 16(s1)
+; LP64-NEXT: fsw fa5, 8(s0)
; LP64-NEXT: flw fa5, 120(sp) # 4-byte Folded Reload
-; LP64-NEXT: fsw fa5, %lo(var+12)(s0)
+; LP64-NEXT: fsw fa5, 4(s0)
; LP64-NEXT: flw fa5, 124(sp) # 4-byte Folded Reload
-; LP64-NEXT: fsw fa5, %lo(var+8)(s0)
-; LP64-NEXT: flw fa5, 128(sp) # 4-byte Folded Reload
-; LP64-NEXT: fsw fa5, %lo(var+4)(s0)
-; LP64-NEXT: flw fa5, 132(sp) # 4-byte Folded Reload
-; LP64-NEXT: fsw fa5, %lo(var)(s0)
-; LP64-NEXT: ld ra, 152(sp) # 8-byte Folded Reload
-; LP64-NEXT: ld s0, 144(sp) # 8-byte Folded Reload
-; LP64-NEXT: ld s1, 136(sp) # 8-byte Folded Reload
-; LP64-NEXT: addi sp, sp, 160
+; LP64-NEXT: fsw fa5, 0(s0)
+; LP64-NEXT: ld ra, 136(sp) # 8-byte Folded Reload
+; LP64-NEXT: ld s0, 128(sp) # 8-byte Folded Reload
+; LP64-NEXT: addi sp, sp, 144
; LP64-NEXT: ret
;
; LP64E-LABEL: caller:
; LP64E: # %bb.0:
-; LP64E-NEXT: addi sp, sp, -152
-; LP64E-NEXT: sd ra, 144(sp) # 8-byte Folded Spill
-; LP64E-NEXT: sd s0, 136(sp) # 8-byte Folded Spill
-; LP64E-NEXT: sd s1, 128(sp) # 8-byte Folded Spill
+; LP64E-NEXT: addi sp, sp, -144
+; LP64E-NEXT: sd ra, 136(sp) # 8-byte Folded Spill
+; LP64E-NEXT: sd s0, 128(sp) # 8-byte Folded Spill
; LP64E-NEXT: lui s0, %hi(var)
-; LP64E-NEXT: flw fa5, %lo(var)(s0)
+; LP64E-NEXT: addi s0, s0, %lo(var)
+; LP64E-NEXT: flw fa5, 0(s0)
; LP64E-NEXT: fsw fa5, 124(sp) # 4-byte Folded Spill
-; LP64E-NEXT: flw fa5, %lo(var+4)(s0)
+; LP64E-NEXT: flw fa5, 4(s0)
; LP64E-NEXT: fsw fa5, 120(sp) # 4-byte Folded Spill
-; LP64E-NEXT: flw fa5, %lo(var+8)(s0)
+; LP64E-NEXT: flw fa5, 8(s0)
; LP64E-NEXT: fsw fa5, 116(sp) # 4-byte Folded Spill
-; LP64E-NEXT: flw fa5, %lo(var+12)(s0)
+; LP64E-NEXT: flw fa5, 12(s0)
; LP64E-NEXT: fsw fa5, 112(sp) # 4-byte Folded Spill
-; LP64E-NEXT: addi s1, s0, %lo(var)
-; LP64E-NEXT: flw fa5, 16(s1)
+; LP64E-NEXT: flw fa5, 16(s0)
; LP64E-NEXT: fsw fa5, 108(sp) # 4-byte Folded Spill
-; LP64E-NEXT: flw fa5, 20(s1)
+; LP64E-NEXT: flw fa5, 20(s0)
; LP64E-NEXT: fsw fa5, 104(sp) # 4-byte Folded Spill
-; LP64E-NEXT: flw fa5, 24(s1)
+; LP64E-NEXT: flw fa5, 24(s0)
; LP64E-NEXT: fsw fa5, 100(sp) # 4-byte Folded Spill
-; LP64E-NEXT: flw fa5, 28(s1)
+; LP64E-NEXT: flw fa5, 28(s0)
; LP64E-NEXT: fsw fa5, 96(sp) # 4-byte Folded Spill
-; LP64E-NEXT: flw fa5, 32(s1)
+; LP64E-NEXT: flw fa5, 32(s0)
; LP64E-NEXT: fsw fa5, 92(sp) # 4-byte Folded Spill
-; LP64E-NEXT: flw fa5, 36(s1)
+; LP64E-NEXT: flw fa5, 36(s0)
; LP64E-NEXT: fsw fa5, 88(sp) # 4-byte Folded Spill
-; LP64E-NEXT: flw fa5, 40(s1)
+; LP64E-NEXT: flw fa5, 40(s0)
; LP64E-NEXT: fsw fa5, 84(sp) # 4-byte Folded Spill
-; LP64E-NEXT: flw fa5, 44(s1)
+; LP64E-NEXT: flw fa5, 44(s0)
; LP64E-NEXT: fsw fa5, 80(sp) # 4-byte Folded Spill
-; LP64E-NEXT: flw fa5, 48(s1)
+; LP64E-NEXT: flw fa5, 48(s0)
; LP64E-NEXT: fsw fa5, 76(sp) # 4-byte Folded Spill
-; LP64E-NEXT: flw fa5, 52(s1)
+; LP64E-NEXT: flw fa5, 52(s0)
; LP64E-NEXT: fsw fa5, 72(sp) # 4-byte Folded Spill
-; LP64E-NEXT: flw fa5, 56(s1)
+; LP64E-NEXT: flw fa5, 56(s0)
; LP64E-NEXT: fsw fa5, 68(sp) # 4-byte Folded Spill
-; LP64E-NEXT: flw fa5, 60(s1)
+; LP64E-NEXT: flw fa5, 60(s0)
; LP64E-NEXT: fsw fa5, 64(sp) # 4-byte Folded Spill
-; LP64E-NEXT: flw fa5, 64(s1)
+; LP64E-NEXT: flw fa5, 64(s0)
; LP64E-NEXT: fsw fa5, 60(sp) # 4-byte Folded Spill
-; LP64E-NEXT: flw fa5, 68(s1)
+; LP64E-NEXT: flw fa5, 68(s0)
; LP64E-NEXT: fsw fa5, 56(sp) # 4-byte Folded Spill
-; LP64E-NEXT: flw fa5, 72(s1)
+; LP64E-NEXT: flw fa5, 72(s0)
; LP64E-NEXT: fsw fa5, 52(sp) # 4-byte Folded Spill
-; LP64E-NEXT: flw fa5, 76(s1)
+; LP64E-NEXT: flw fa5, 76(s0)
; LP64E-NEXT: fsw fa5, 48(sp) # 4-byte Folded Spill
-; LP64E-NEXT: flw fa5, 80(s1)
+; LP64E-NEXT: flw fa5, 80(s0)
; LP64E-NEXT: fsw fa5, 44(sp) # 4-byte Folded Spill
-; LP64E-NEXT: flw fa5, 84(s1)
+; LP64E-NEXT: flw fa5, 84(s0)
; LP64E-NEXT: fsw fa5, 40(sp) # 4-byte Folded Spill
-; LP64E-NEXT: flw fa5, 88(s1)
+; LP64E-NEXT: flw fa5, 88(s0)
; LP64E-NEXT: fsw fa5, 36(sp) # 4-byte Folded Spill
-; LP64E-NEXT: flw fa5, 92(s1)
+; LP64E-NEXT: flw fa5, 92(s0)
; LP64E-NEXT: fsw fa5, 32(sp) # 4-byte Folded Spill
-; LP64E-NEXT: flw fa5, 96(s1)
+; LP64E-NEXT: flw fa5, 96(s0)
; LP64E-NEXT: fsw fa5, 28(sp) # 4-byte Folded Spill
-; LP64E-NEXT: flw fa5, 100(s1)
+; LP64E-NEXT: flw fa5, 100(s0)
; LP64E-NEXT: fsw fa5, 24(sp) # 4-byte Folded Spill
-; LP64E-NEXT: flw fa5, 104(s1)
+; LP64E-NEXT: flw fa5, 104(s0)
; LP64E-NEXT: fsw fa5, 20(sp) # 4-byte Folded Spill
-; LP64E-NEXT: flw fa5, 108(s1)
+; LP64E-NEXT: flw fa5, 108(s0)
; LP64E-NEXT: fsw fa5, 16(sp) # 4-byte Folded Spill
-; LP64E-NEXT: flw fa5, 112(s1)
+; LP64E-NEXT: flw fa5, 112(s0)
; LP64E-NEXT: fsw fa5, 12(sp) # 4-byte Folded Spill
-; LP64E-NEXT: flw fa5, 116(s1)
+; LP64E-NEXT: flw fa5, 116(s0)
; LP64E-NEXT: fsw fa5, 8(sp) # 4-byte Folded Spill
-; LP64E-NEXT: flw fa5, 120(s1)
+; LP64E-NEXT: flw fa5, 120(s0)
; LP64E-NEXT: fsw fa5, 4(sp) # 4-byte Folded Spill
-; LP64E-NEXT: flw fa5, 124(s1)
+; LP64E-NEXT: flw fa5, 124(s0)
; LP64E-NEXT: fsw fa5, 0(sp) # 4-byte Folded Spill
; LP64E-NEXT: call callee
; LP64E-NEXT: flw fa5, 0(sp) # 4-byte Folded Reload
-; LP64E-NEXT: fsw fa5, 124(s1)
+; LP64E-NEXT: fsw fa5, 124(s0)
; LP64E-NEXT: flw fa5, 4(sp) # 4-byte Folded Reload
-; LP64E-NEXT: fsw fa5, 120(s1)
+; LP64E-NEXT: fsw fa5, 120(s0)
; LP64E-NEXT: flw fa5, 8(sp) # 4-byte Folded Reload
-; LP64E-NEXT: fsw fa5, 116(s1)
+; LP64E-NEXT: fsw fa5, 116(s0)
; LP64E-NEXT: flw fa5, 12(sp) # 4-byte Folded Reload
-; LP64E-NEXT: fsw fa5, 112(s1)
+; LP64E-NEXT: fsw fa5, 112(s0)
; LP64E-NEXT: flw fa5, 16(sp) # 4-byte Folded Reload
-; LP64E-NEXT: fsw fa5, 108(s1)
+; LP64E-NEXT: fsw fa5, 108(s0)
; LP64E-NEXT: flw fa5, 20(sp) # 4-byte Folded Reload
-; LP64E-NEXT: fsw fa5, 104(s1)
+; LP64E-NEXT: fsw fa5, 104(s0)
; LP64E-NEXT: flw fa5, 24(sp) # 4-byte Folded Reload
-; LP64E-NEXT: fsw fa5, 100(s1)
+; LP64E-NEXT: fsw fa5, 100(s0)
; LP64E-NEXT: flw fa5, 28(sp) # 4-byte Folded Reload
-; LP64E-NEXT: fsw fa5, 96(s1)
+; LP64E-NEXT: fsw fa5, 96(s0)
; LP64E-NEXT: flw fa5, 32(sp) # 4-byte Folded Reload
-; LP64E-NEXT: fsw fa5, 92(s1)
+; LP64E-NEXT: fsw fa5, 92(s0)
; LP64E-NEXT: flw fa5, 36(sp) # 4-byte Folded Reload
-; LP64E-NEXT: fsw fa5, 88(s1)
+; LP64E-NEXT: fsw fa5, 88(s0)
; LP64E-NEXT: flw fa5, 40(sp) # 4-byte Folded Reload
-; LP64E-NEXT: fsw fa5, 84(s1)
+; LP64E-NEXT: fsw fa5, 84(s0)
; LP64E-NEXT: flw fa5, 44(sp) # 4-byte Folded Reload
-; LP64E-NEXT: fsw fa5, 80(s1)
+; LP64E-NEXT: fsw fa5, 80(s0)
; LP64E-NEXT: flw fa5, 48(sp) # 4-byte Folded Reload
-; LP64E-NEXT: fsw fa5, 76(s1)
+; LP64E-NEXT: fsw fa5, 76(s0)
; LP64E-NEXT: flw fa5, 52(sp) # 4-byte Folded Reload
-; LP64E-NEXT: fsw fa5, 72(s1)
+; LP64E-NEXT: fsw fa5, 72(s0)
; LP64E-NEXT: flw fa5, 56(sp) # 4-byte Folded Reload
-; LP64E-NEXT: fsw fa5, 68(s1)
+; LP64E-NEXT: fsw fa5, 68(s0)
; LP64E-NEXT: flw fa5, 60(sp) # 4-byte Folded Reload
-; LP64E-NEXT: fsw fa5, 64(s1)
+; LP64E-NEXT: fsw fa5, 64(s0)
; LP64E-NEXT: flw fa5, 64(sp) # 4-byte Folded Reload
-; LP64E-NEXT: fsw fa5, 60(s1)
+; LP64E-NEXT: fsw fa5, 60(s0)
; LP64E-NEXT: flw fa5, 68(sp) # 4-byte Folded Reload
-; LP64E-NEXT: fsw fa5, 56(s1)
+; LP64E-NEXT: fsw fa5, 56(s0)
; LP64E-NEXT: flw fa5, 72(sp) # 4-byte Folded Reload
-; LP64E-NEXT: fsw fa5, 52(s1)
+; LP64E-NEXT: fsw fa5, 52(s0)
; LP64E-NEXT: flw fa5, 76(sp) # 4-byte Folded Reload
-; LP64E-NEXT: fsw fa5, 48(s1)
+; LP64E-NEXT: fsw fa5, 48(s0)
; LP64E-NEXT: flw fa5, 80(sp) # 4-byte Folded Reload
-; LP64E-NEXT: fsw fa5, 44(s1)
+; LP64E-NEXT: fsw fa5, 44(s0)
; LP64E-NEXT: flw fa5, 84(sp) # 4-byte Folded Reload
-; LP64E-NEXT: fsw fa5, 40(s1)
+; LP64E-NEXT: fsw fa5, 40(s0)
; LP64E-NEXT: flw fa5, 88(sp) # 4-byte Folded Reload
-; LP64E-NEXT: fsw fa5, 36(s1)
+; LP64E-NEXT: fsw fa5, 36(s0)
; LP64E-NEXT: flw fa5, 92(sp) # 4-byte Folded Reload
-; LP64E-NEXT: fsw fa5, 32(s1)
+; LP64E-NEXT: fsw fa5, 32(s0)
; LP64E-NEXT: flw fa5, 96(sp) # 4-byte Folded Reload
-; LP64E-NEXT: fsw fa5, 28(s1)
+; LP64E-NEXT: fsw fa5, 28(s0)
; LP64E-NEXT: flw fa5, 100(sp) # 4-byte Folded Reload
-; LP64E-NEXT: fsw fa5, 24(s1)
+; LP64E-NEXT: fsw fa5, 24(s0)
; LP64E-NEXT: flw fa5, 104(sp) # 4-byte Folded Reload
-; LP64E-NEXT: fsw fa5, 20(s1)
+; LP64E-NEXT: fsw fa5, 20(s0)
; LP64E-NEXT: flw fa5, 108(sp) # 4-byte Folded Reload
-; LP64E-NEXT: fsw fa5, 16(s1)
+; LP64E-NEXT: fsw fa5, 16(s0)
; LP64E-NEXT: flw fa5, 112(sp) # 4-byte Folded Reload
-; LP64E-NEXT: fsw fa5, %lo(var+12)(s0)
+; LP64E-NEXT: fsw fa5, 12(s0)
; LP64E-NEXT: flw fa5, 116(sp) # 4-byte Folded Reload
-; LP64E-NEXT: fsw fa5, %lo(var+8)(s0)
+; LP64E-NEXT: fsw fa5, 8(s0)
; LP64E-NEXT: flw fa5, 120(sp) # 4-byte Folded Reload
-; LP64E-NEXT: fsw fa5, %lo(var+4)(s0)
+; LP64E-NEXT: fsw fa5, 4(s0)
; LP64E-NEXT: flw fa5, 124(sp) # 4-byte Folded Reload
-; LP64E-NEXT: fsw fa5, %lo(var)(s0)
-; LP64E-NEXT: ld ra, 144(sp) # 8-byte Folded Reload
-; LP64E-NEXT: ld s0, 136(sp) # 8-byte Folded Reload
-; LP64E-NEXT: ld s1, 128(sp) # 8-byte Folded Reload
-; LP64E-NEXT: addi sp, sp, 152
+; LP64E-NEXT: fsw fa5, 0(s0)
+; LP64E-NEXT: ld ra, 136(sp) # 8-byte Folded Reload
+; LP64E-NEXT: ld s0, 128(sp) # 8-byte Folded Reload
+; LP64E-NEXT: addi sp, sp, 144
; LP64E-NEXT: ret
;
; ILP32F-LABEL: caller:
; ILP32F: # %bb.0:
; ILP32F-NEXT: addi sp, sp, -144
; ILP32F-NEXT: sw ra, 140(sp) # 4-byte Folded Spill
; ILP32F-NEXT: sw s0, 136(sp) # 4-byte Folded Spill
-; ILP32F-NEXT: sw s1, 132(sp) # 4-byte Folded Spill
-; ILP32F-NEXT: fsw fs0, 128(sp) # 4-byte Folded Spill
-; ILP32F-NEXT: fsw fs1, 124(sp) # 4-byte Folded Spill
-; ILP32F-NEXT: fsw fs2, 120(sp) # 4-byte Folded Spill
-; ILP32F-NEXT: fsw fs3, 116(sp) # 4-byte Folded Spill
-; ILP32F-NEXT: fsw fs4, 112(sp) # 4-byte Folded Spill
-; ILP32F-NEXT: fsw fs5, 108(sp) # 4-byte Folded Spill
-; ILP32F-NEXT: fsw fs6, 104(sp) # 4-byte Folded Spill
-; ILP32F-NEXT: fsw fs7, 100(sp) # 4-byte Folded Spill
-; ILP32F-NEXT: fsw fs8, 96(sp) # 4-byte Folded Spill
-; ILP32F-NEXT: fsw fs9, 92(sp) # 4-byte Folded Spill
-; ILP32F-NEXT: fsw fs10, 88(sp) # 4-byte Folded Spill
-; ILP32F-NEXT: fsw fs11, 84(sp) # 4-byte Folded Spill
+; ILP32F-NEXT: fsw fs0, 132(sp) # 4-byte Folded Spill
+; ILP32F-NEXT: fsw fs1, 128(sp) # 4-byte Folded Spill
+; ILP32F-NEXT: fsw fs2, 124(sp) # 4-byte Folded Spill
+; ILP32F-NEXT: fsw fs3, 120(sp) # 4-byte Folded Spill
+; ILP32F-NEXT: fsw fs4, 116(sp) # 4-byte Folded Spill
+; ILP32F-NEXT: fsw fs5, 112(sp) # 4-byte Folded Spill
+; ILP32F-NEXT: fsw fs6, 108(sp) # 4-byte Folded Spill
+; ILP32F-NEXT: fsw fs7, 104(sp) # 4-byte Folded Spill
+; ILP32F-NEXT: fsw fs8, 100(sp) # 4-byte Folded Spill
+; ILP32F-NEXT: fsw fs9, 96(sp) # 4-byte Folded Spill
+; ILP32F-NEXT: fsw fs10, 92(sp) # 4-byte Folded Spill
+; ILP32F-NEXT: fsw fs11, 88(sp) # 4-byte Folded Spill
; ILP32F-NEXT: lui s0, %hi(var)
-; ILP32F-NEXT: flw fa5, %lo(var)(s0)
+; ILP32F-NEXT: addi s0, s0, %lo(var)
+; ILP32F-NEXT: flw fa5, 0(s0)
+; ILP32F-NEXT: fsw fa5, 84(sp) # 4-byte Folded Spill
+; ILP32F-NEXT: flw fa5, 4(s0)
; ILP32F-NEXT: fsw fa5, 80(sp) # 4-byte Folded Spill
-; ILP32F-NEXT: flw fa5, %lo(var+4)(s0)
+; ILP32F-NEXT: flw fa5, 8(s0)
; ILP32F-NEXT: fsw fa5, 76(sp) # 4-byte Folded Spill
-; ILP32F-NEXT: flw fa5, %lo(var+8)(s0)
+; ILP32F-NEXT: flw fa5, 12(s0)
; ILP32F-NEXT: fsw fa5, 72(sp) # 4-byte Folded Spill
-; ILP32F-NEXT: flw fa5, %lo(var+12)(s0)
+; ILP32F-NEXT: flw fa5, 16(s0)
; ILP32F-NEXT: fsw fa5, 68(sp) # 4-byte Folded Spill
-; ILP32F-NEXT: addi s1, s0, %lo(var)
-; ILP32F-NEXT: flw fa5, 16(s1)
+; ILP32F-NEXT: flw fa5, 20(s0)
; ILP32F-NEXT: fsw fa5, 64(sp) # 4-byte Folded Spill
-; ILP32F-NEXT: flw fa5, 20(s1)
+; ILP32F-NEXT: flw fa5, 24(s0)
; ILP32F-NEXT: fsw fa5, 60(sp) # 4-byte Folded Spill
-; ILP32F-NEXT: flw fa5, 24(s1)
+; ILP32F-NEXT: flw fa5, 28(s0)
; ILP32F-NEXT: fsw fa5, 56(sp) # 4-byte Folded Spill
-; ILP32F-NEXT: flw fa5, 28(s1)
+; ILP32F-NEXT: flw fa5, 32(s0)
; ILP32F-NEXT: fsw fa5, 52(sp) # 4-byte Folded Spill
-; ILP32F-NEXT: flw fa5, 32(s1)
+; ILP32F-NEXT: flw fa5, 36(s0)
; ILP32F-NEXT: fsw fa5, 48(sp) # 4-byte Folded Spill
-; ILP32F-NEXT: flw fa5, 36(s1)
+; ILP32F-NEXT: flw fa5, 40(s0)
; ILP32F-NEXT: fsw fa5, 44(sp) # 4-byte Folded Spill
-; ILP32F-NEXT: flw fa5, 40(s1)
+; ILP32F-NEXT: flw fa5, 44(s0)
; ILP32F-NEXT: fsw fa5, 40(sp) # 4-byte Folded Spill
-; ILP32F-NEXT: flw fa5, 44(s1)
+; ILP32F-NEXT: flw fa5, 48(s0)
; ILP32F-NEXT: fsw fa5, 36(sp) # 4-byte Folded Spill
-; ILP32F-NEXT: flw fa5, 48(s1)
+; ILP32F-NEXT: flw fa5, 52(s0)
; ILP32F-NEXT: fsw fa5, 32(sp) # 4-byte Folded Spill
-; ILP32F-NEXT: flw fa5, 52(s1)
+; ILP32F-NEXT: flw fa5, 56(s0)
; ILP32F-NEXT: fsw fa5, 28(sp) # 4-byte Folded Spill
-; ILP32F-NEXT: flw fa5, 56(s1)
+; ILP32F-NEXT: flw fa5, 60(s0)
; ILP32F-NEXT: fsw fa5, 24(sp) # 4-byte Folded Spill
-; ILP32F-NEXT: flw fa5, 60(s1)
+; ILP32F-NEXT: flw fa5, 64(s0)
; ILP32F-NEXT: fsw fa5, 20(sp) # 4-byte Folded Spill
-; ILP32F-NEXT: flw fa5, 64(s1)
+; ILP32F-NEXT: flw fa5, 68(s0)
; ILP32F-NEXT: fsw fa5, 16(sp) # 4-byte Folded Spill
-; ILP32F-NEXT: flw fa5, 68(s1)
+; ILP32F-NEXT: flw fa5, 72(s0)
; ILP32F-NEXT: fsw fa5, 12(sp) # 4-byte Folded Spill
-; ILP32F-NEXT: flw fa5, 72(s1)
+; ILP32F-NEXT: flw fa5, 76(s0)
; ILP32F-NEXT: fsw fa5, 8(sp) # 4-byte Folded Spill
-; ILP32F-NEXT: flw fa5, 76(s1)
-; ILP32F-NEXT: fsw fa5, 4(sp) # 4-byte Folded Spill
-; ILP32F-NEXT: flw fs8, 80(s1)
-; ILP32F-NEXT: flw fs9, 84(s1)
-; ILP32F-NEXT: flw fs10, 88(s1)
-; ILP32F-NEXT: flw fs11, 92(s1)
-; ILP32F-NEXT: flw fs0, 96(s1)
-; ILP32F-NEXT: flw fs1, 100(s1)
-; ILP32F-NEXT: flw fs2, 104(s1)
-; ILP32F-NEXT: flw fs3, 108(s1)
-; ILP32F-NEXT: flw fs4, 112(s1)
-; ILP32F-NEXT: flw fs5, 116(s1)
-; ILP32F-NEXT: flw fs6, 120(s1)
-; ILP32F-NEXT: flw fs7, 124(s1)
+; ILP32F-NEXT: flw fs8, 80(s0)
+; ILP32F-NEXT: flw fs9, 84(s0)
+; ILP32F-NEXT: flw fs10, 88(s0)
+; ILP32F-NEXT: flw fs11, 92(s0)
+; ILP32F-NEXT: flw fs0, 96(s0)
+; ILP32F-NEXT: flw fs1, 100(s0)
+; ILP32F-NEXT: flw fs2, 104(s0)
+; ILP32F-NEXT: flw fs3, 108(s0)
+; ILP32F-NEXT: flw fs4, 112(s0)
+; ILP32F-NEXT: flw fs5, 116(s0)
+; ILP32F-NEXT: flw fs6, 120(s0)
+; ILP32F-NEXT: flw fs7, 124(s0)
; ILP32F-NEXT: call callee
-; ILP32F-NEXT: fsw fs7, 124(s1)
-; ILP32F-NEXT: fsw fs6, 120(s1)
-; ILP32F-NEXT: fsw fs5, 116(s1)
-; ILP32F-NEXT: fsw fs4, 112(s1)
-; ILP32F-NEXT: fsw fs3, 108(s1)
-; ILP32F-NEXT: fsw fs2, 104(s1)
-; ILP32F-NEXT: fsw fs1, 100(s1)
-; ILP32F-NEXT: fsw fs0, 96(s1)
-; ILP32F-NEXT: fsw fs11, 92(s1)
-; ILP32F-NEXT: fsw fs10, 88(s1)
-; ILP32F-NEXT: fsw fs9, 84(s1)
-; ILP32F-NEXT: fsw fs8, 80(s1)
-; ILP32F-NEXT: flw fa5, 4(sp) # 4-byte Folded Reload
-; ILP32F-NEXT: fsw fa5, 76(s1)
+; ILP32F-NEXT: fsw fs7, 124(s0)
+; ILP32F-NEXT: fsw fs6, 120(s0)
+; ILP32F-NEXT: fsw fs5, 116(s0)
+; ILP32F-NEXT: fsw fs4, 112(s0)
+; ILP32F-NEXT: fsw fs3, 108(s0)
+; ILP32F-NEXT: fsw fs2, 104(s0)
+; ILP32F-NEXT: fsw fs1, 100(s0)
+; ILP32F-NEXT: fsw fs0, 96(s0)
+; ILP32F-NEXT: fsw fs11, 92(s0)
+; ILP32F-NEXT: fsw fs10, 88(s0)
+; ILP32F-NEXT: fsw fs9, 84(s0)
+; ILP32F-NEXT: fsw fs8, 80(s0)
; ILP32F-NEXT: flw fa5, 8(sp) # 4-byte Folded Reload
-; ILP32F-NEXT: fsw fa5, 72(s1)
+; ILP32F-NEXT: fsw fa5, 76(s0)
; ILP32F-NEXT: flw fa5, 12(sp) # 4-byte Folded Reload
-; ILP32F-NEXT: fsw fa5, 68(s1)
+; ILP32F-NEXT: fsw fa5, 72(s0)
; ILP32F-NEXT: flw fa5, 16(sp) # 4-byte Folded Reload
-; ILP32F-NEXT: fsw fa5, 64(s1)
+; ILP32F-NEXT: fsw fa5, 68(s0)
; ILP32F-NEXT: flw fa5, 20(sp) # 4-byte Folded Reload
-; ILP32F-NEXT: fsw fa5, 60(s1)
+; ILP32F-NEXT: fsw fa5, 64(s0)
; ILP32F-NEXT: flw fa5, 24(sp) # 4-byte Folded Reload
-; ILP32F-NEXT: fsw fa5, 56(s1)
+; ILP32F-NEXT: fsw fa5, 60(s0)
; ILP32F-NEXT: flw fa5, 28(sp) # 4-byte Folded Reload
-; ILP32F-NEXT: fsw fa5, 52(s1)
+; ILP32F-NEXT: fsw fa5, 56(s0)
; ILP32F-NEXT: flw fa5, 32(sp) # 4-byte Folded Reload
-; ILP32F-NEXT: fsw fa5, 48(s1)
+; ILP32F-NEXT: fsw fa5, 52(s0)
; ILP32F-NEXT: flw fa5, 36(sp) # 4-byte Folded Reload
-; ILP32F-NEXT: fsw fa5, 44(s1)
+; ILP32F-NEXT: fsw fa5, 48(s0)
; ILP32F-NEXT: flw fa5, 40(sp) # 4-byte Folded Reload
-; ILP32F-NEXT: fsw fa5, 40(s1)
+; ILP32F-NEXT: fsw fa5, 44(s0)
; ILP32F-NEXT: flw fa5, 44(sp) # 4-byte Folded Reload
-; ILP32F-NEXT: fsw fa5, 36(s1)
+; ILP32F-NEXT: fsw fa5, 40(s0)
; ILP32F-NEXT: flw fa5, 48(sp) # 4-byte Folded Reload
-; ILP32F-NEXT: fsw fa5, 32(s1)
+; ILP32F-NEXT: fsw fa5, 36(s0)
; ILP32F-NEXT: flw fa5, 52(sp) # 4-byte Folded Reload
-; ILP32F-NEXT: fsw fa5, 28(s1)
+; ILP32F-NEXT: fsw fa5, 32(s0)
; ILP32F-NEXT: flw fa5, 56(sp) # 4-byte Folded Reload
-; ILP32F-NEXT: fsw fa5, 24(s1)
+; ILP32F-NEXT: fsw fa5, 28(s0)
; ILP32F-NEXT: flw fa5, 60(sp) # 4-byte Folded Reload
-; ILP32F-NEXT: fsw fa5, 20(s1)
+; ILP32F-NEXT: fsw fa5, 24(s0)
; ILP32F-NEXT: flw fa5, 64(sp) # 4-byte Folded Reload
-; ILP32F-NEXT: fsw fa5, 16(s1)
+; ILP32F-NEXT: fsw fa5, 20(s0)
; ILP32F-NEXT: flw fa5, 68(sp) # 4-byte Folded Reload
-; ILP32F-NEXT: fsw fa5, %lo(var+12)(s0)
+; ILP32F-NEXT: fsw fa5, 16(s0)
; ILP32F-NEXT: flw fa5, 72(sp) # 4-byte Folded Reload
-; ILP32F-NEXT: fsw fa5, %lo(var+8)(s0)
+; ILP32F-NEXT: fsw fa5, 12(s0)
; ILP32F-NEXT: flw fa5, 76(sp) # 4-byte Folded Reload
-; ILP32F-NEXT: fsw fa5, %lo(var+4)(s0)
+; ILP32F-NEXT: fsw fa5, 8(s0)
; ILP32F-NEXT: flw fa5, 80(sp) # 4-byte Folded Reload
-; ILP32F-NEXT: fsw fa5, %lo(var)(s0)
+; ILP32F-NEXT: fsw fa5, 4(s0)
+; ILP32F-NEXT: flw fa5, 84(sp) # 4-byte Folded Reload
+; ILP32F-NEXT: fsw fa5, 0(s0)
; ILP32F-NEXT: lw ra, 140(sp) # 4-byte Folded Reload
; ILP32F-NEXT: lw s0, 136(sp) # 4-byte Folded Reload
-; ILP32F-NEXT: lw s1, 132(sp) # 4-byte Folded Reload
-; ILP32F-NEXT: flw fs0, 128(sp) # 4-byte Folded Reload
-; ILP32F-NEXT: flw fs1, 124(sp) # 4-byte Folded Reload
-; ILP32F-NEXT: flw fs2, 120(sp) # 4-byte Folded Reload
-; ILP32F-NEXT: flw fs3, 116(sp) # 4-byte Folded Reload
-; ILP32F-NEXT: flw fs4, 112(sp) # 4-byte Folded Reload
-; ILP32F-NEXT: flw fs5, 108(sp) # 4-byte Folded Reload
-; ILP32F-NEXT: flw fs6, 104(sp) # 4-byte Folded Reload
-; ILP32F-NEXT: flw fs7, 100(sp) # 4-byte Folded Reload
-; ILP32F-NEXT: flw fs8, 96(sp) # 4-byte Folded Reload
-; ILP32F-NEXT: flw fs9, 92(sp) # 4-byte Folded Reload
-; ILP32F-NEXT: flw fs10, 88(sp) # 4-byte Folded Reload
-; ILP32F-NEXT: flw fs11, 84(sp) # 4-byte Folded Reload
+; ILP32F-NEXT: flw fs0, 132(sp) # 4-byte Folded Reload
+; ILP32F-NEXT: flw fs1, 128(sp) # 4-byte Folded Reload
+; ILP32F-NEXT: flw fs2, 124(sp) # 4-byte Folded Reload
+; ILP32F-NEXT: flw fs3, 120(sp) # 4-byte Folded Reload
+; ILP32F-NEXT: flw fs4, 116(sp) # 4-byte Folded Reload
+; ILP32F-NEXT: flw fs5, 112(sp) # 4-byte Folded Reload
+; ILP32F-NEXT: flw fs6, 108(sp) # 4-byte Folded Reload
+; ILP32F-NEXT: flw fs7, 104(sp) # 4-byte Folded Reload
+; ILP32F-NEXT: flw fs8, 100(sp) # 4-byte Folded Reload
+; ILP32F-NEXT: flw fs9, 96(sp) # 4-byte Folded Reload
+; ILP32F-NEXT: flw fs10, 92(sp) # 4-byte Folded Reload
+; ILP32F-NEXT: flw fs11, 88(sp) # 4-byte Folded Reload
; ILP32F-NEXT: addi sp, sp, 144
; ILP32F-NEXT: ret
;
; LP64F-LABEL: caller:
; LP64F: # %bb.0:
-; LP64F-NEXT: addi sp, sp, -160
-; LP64F-NEXT: sd ra, 152(sp) # 8-byte Folded Spill
-; LP64F-NEXT: sd s0, 144(sp) # 8-byte Folded Spill
-; LP64F-NEXT: sd s1, 136(sp) # 8-byte Folded Spill
-; LP64F-NEXT: fsw fs0, 132(sp) # 4-byte Folded Spill
-; LP64F-NEXT: fsw fs1, 128(sp) # 4-byte Folded Spill
-; LP64F-NEXT: fsw fs2, 124(sp) # 4-byte Folded Spill
-; LP64F-NEXT: fsw fs3, 120(sp) # 4-byte Folded Spill
-; LP64F-NEXT: fsw fs4, 116(sp) # 4-byte Folded Spill
-; LP64F-NEXT: fsw fs5, 112(sp) # 4-byte Folded Spill
-; LP64F-NEXT: fsw fs6, 108(sp) # 4-byte Folded Spill
-; LP64F-NEXT: fsw fs7, 104(sp) # 4-byte Folded Spill
-; LP64F-NEXT: fsw fs8, 100(sp) # 4-byte Folded Spill
-; LP64F-NEXT: fsw fs9, 96(sp) # 4-byte Folded Spill
-; LP64F-NEXT: fsw fs10, 92(sp) # 4-byte Folded Spill
-; LP64F-NEXT: fsw fs11, 88(sp) # 4-byte Folded Spill
+; LP64F-NEXT: addi sp, sp, -144
+; LP64F-NEXT: sd ra, 136(sp) # 8-byte Folded Spill
+; LP64F-NEXT: sd s0, 128(sp) # 8-byte Folded Spill
+; LP64F-NEXT: fsw fs0, 124(sp) # 4-byte Folded Spill
+; LP64F-NEXT: fsw fs1, 120(sp) # 4-byte Folded Spill
+; LP64F-NEXT: fsw fs2, 116(sp) # 4-byte Folded Spill
+; LP64F-NEXT: fsw fs3, 112(sp) # 4-byte Folded Spill
+; LP64F-NEXT: fsw fs4, 108(sp) # 4-byte Folded Spill
+; LP64F-NEXT: fsw fs5, 104(sp) # 4-byte Folded Spill
+; LP64F-NEXT: fsw fs6, 100(sp) # 4-byte Folded Spill
+; LP64F-NEXT: fsw fs7, 96(sp) # 4-byte Folded Spill
+; LP64F-NEXT: fsw fs8, 92(sp) # 4-byte Folded Spill
+; LP64F-NEXT: fsw fs9, 88(sp) # 4-byte Folded Spill
+; LP64F-NEXT: fsw fs10, 84(sp) # 4-byte Folded Spill
+; LP64F-NEXT: fsw fs11, 80(sp) # 4-byte Folded Spill
; LP64F-NEXT: lui s0, %hi(var)
-; LP64F-NEXT: flw fa5, %lo(var)(s0)
-; LP64F-NEXT: fsw fa5, 84(sp) # 4-byte Folded Spill
-; LP64F-NEXT: flw fa5, %lo(var+4)(s0)
-; LP64F-NEXT: fsw fa5, 80(sp) # 4-byte Folded Spill
-; LP64F-NEXT: flw fa5, %lo(var+8)(s0)
+; LP64F-NEXT: addi s0, s0, %lo(var)
+; LP64F-NEXT: flw fa5, 0(s0)
; LP64F-NEXT: fsw fa5, 76(sp) # 4-byte Folded Spill
-; LP64F-NEXT: flw fa5, %lo(var+12)(s0)
+; LP64F-NEXT: flw fa5, 4(s0)
; LP64F-NEXT: fsw fa5, 72(sp) # 4-byte Folded Spill
-; LP64F-NEXT: addi s1, s0, %lo(var)
-; LP64F-NEXT: flw fa5, 16(s1)
+; LP64F-NEXT: flw fa5, 8(s0)
; LP64F-NEXT: fsw fa5, 68(sp) # 4-byte Folded Spill
-; LP64F-NEXT: flw fa5, 20(s1)
+; LP64F-NEXT: flw fa5, 12(s0)
; LP64F-NEXT: fsw fa5, 64(sp) # 4-byte Folded Spill
-; LP64F-NEXT: flw fa5, 24(s1)
+; LP64F-NEXT: flw fa5, 16(s0)
; LP64F-NEXT: fsw fa5, 60(sp) # 4-byte Folded Spill
-; LP64F-NEXT: flw fa5, 28(s1)
+; LP64F-NEXT: flw fa5, 20(s0)
; LP64F-NEXT: fsw fa5, 56(sp) # 4-byte Folded Spill
-; LP64F-NEXT: flw fa5, 32(s1)
+; LP64F-NEXT: flw fa5, 24(s0)
; LP64F-NEXT: fsw fa5, 52(sp) # 4-byte Folded Spill
-; LP64F-NEXT: flw fa5, 36(s1)
+; LP64F-NEXT: flw fa5, 28(s0)
; LP64F-NEXT: fsw fa5, 48(sp) # 4-byte Folded Spill
-; LP64F-NEXT: flw fa5, 40(s1)
+; LP64F-NEXT: flw fa5, 32(s0)
; LP64F-NEXT: fsw fa5, 44(sp) # 4-byte Folded Spill
-; LP64F-NEXT: flw fa5, 44(s1)
+; LP64F-NEXT: flw fa5, 36(s0)
; LP64F-NEXT: fsw fa5, 40(sp) # 4-byte Folded Spill
-; LP64F-NEXT: flw fa5, 48(s1)
+; LP64F-NEXT: flw fa5, 40(s0)
; LP64F-NEXT: fsw fa5, 36(sp) # 4-byte Folded Spill
-; LP64F-NEXT: flw fa5, 52(s1)
+; LP64F-NEXT: flw fa5, 44(s0)
; LP64F-NEXT: fsw fa5, 32(sp) # 4-byte Folded Spill
-; LP64F-NEXT: flw fa5, 56(s1)
+; LP64F-NEXT: flw fa5, 48(s0)
; LP64F-NEXT: fsw fa5, 28(sp) # 4-byte Folded Spill
-; LP64F-NEXT: flw fa5, 60(s1)
+; LP64F-NEXT: flw fa5, 52(s0)
; LP64F-NEXT: fsw fa5, 24(sp) # 4-byte Folded Spill
-; LP64F-NEXT: flw fa5, 64(s1)
+; LP64F-NEXT: flw fa5, 56(s0)
; LP64F-NEXT: fsw fa5, 20(sp) # 4-byte Folded Spill
-; LP64F-NEXT: flw fa5, 68(s1)
+; LP64F-NEXT: flw fa5, 60(s0)
; LP64F-NEXT: fsw fa5, 16(sp) # 4-byte Folded Spill
-; LP64F-NEXT: flw fa5, 72(s1)
+; LP64F-NEXT: flw fa5, 64(s0)
; LP64F-NEXT: fsw fa5, 12(sp) # 4-byte Folded Spill
-; LP64F-NEXT: flw fa5, 76(s1)
+; LP64F-NEXT: flw fa5, 68(s0)
; LP64F-NEXT: fsw fa5, 8(sp) # 4-byte Folded Spill
-; LP64F-NEXT: flw fs8, 80(s1)
-; LP64F-NEXT: flw fs9, 84(s1)
-; LP64F-NEXT: flw fs10, 88(s1)
-; LP64F-NEXT: flw fs11, 92(s1)
-; LP64F-NEXT: flw fs0, 96(s1)
-; LP64F-NEXT: flw fs1, 100(s1)
-; LP64F-NEXT: flw fs2, 104(s1)
-; LP64F-NEXT: flw fs3, 108(s1)
-; LP64F-NEXT: flw fs4, 112(s1)
-; LP64F-NEXT: flw fs5, 116(s1)
-; LP64F-NEXT: flw fs6, 120(s1)
-; LP64F-NEXT: flw fs7, 124(s1)
+; LP64F-NEXT: flw fa5, 72(s0)
+; LP64F-NEXT: fsw fa5, 4(sp) # 4-byte Folded Spill
+; LP64F-NEXT: flw fa5, 76(s0)
+; LP64F-NEXT: fsw fa5, 0(sp) # 4-byte Folded Spill
+; LP64F-NEXT: flw fs8, 80(s0)
+; LP64F-NEXT: flw fs9, 84(s0)
+; LP64F-NEXT: flw fs10, 88(s0)
+; LP64F-NEXT: flw fs11, 92(s0)
+; LP64F-NEXT: flw fs0, 96(s0)
+; LP64F-NEXT: flw fs1, 100(s0)
+; LP64F-NEXT: flw fs2, 104(s0)
+; LP64F-NEXT: flw fs3, 108(s0)
+; LP64F-NEXT: flw fs4, 112(s0)
+; LP64F-NEXT: flw fs5, 116(s0)
+; LP64F-NEXT: flw fs6, 120(s0)
+; LP64F-NEXT: flw fs7, 124(s0)
; LP64F-NEXT: call callee
-; LP64F-NEXT: fsw fs7, 124(s1)
-; LP64F-NEXT: fsw fs6, 120(s1)
-; LP64F-NEXT: fsw fs5, 116(s1)
-; LP64F-NEXT: fsw fs4, 112(s1)
-; LP64F-NEXT: fsw fs3, 108(s1)
-; LP64F-NEXT: fsw fs2, 104(s1)
-; LP64F-NEXT: fsw fs1, 100(s1)
-; LP64F-NEXT: fsw fs0, 96(s1)
-; LP64F-NEXT: fsw fs11, 92(s1)
-; LP64F-NEXT: fsw fs10, 88(s1)
-; LP64F-NEXT: fsw fs9, 84(s1)
-; LP64F-NEXT: fsw fs8, 80(s1)
+; LP64F-NEXT: fsw fs7, 124(s0)
+; LP64F-NEXT: fsw fs6, 120(s0)
+; LP64F-NEXT: fsw fs5, 116(s0)
+; LP64F-NEXT: fsw fs4, 112(s0)
+; LP64F-NEXT: fsw fs3, 108(s0)
+; LP64F-NEXT: fsw fs2, 104(s0)
+; LP64F-NEXT: fsw fs1, 100(s0)
+; LP64F-NEXT: fsw fs0, 96(s0)
+; LP64F-NEXT: fsw fs11, 92(s0)
+; LP64F-NEXT: fsw fs10, 88(s0)
+; LP64F-NEXT: fsw fs9, 84(s0)
+; LP64F-NEXT: fsw fs8, 80(s0)
+; LP64F-NEXT: flw fa5, 0(sp) # 4-byte Folded Reload
+; LP64F-NEXT: fsw fa5, 76(s0)
+; LP64F-NEXT: flw fa5, 4(sp) # 4-byte Folded Reload
+; LP64F-NEXT: fsw fa5, 72(s0)
; LP64F-NEXT: flw fa5, 8(sp) # 4-byte Folded Reload
-; LP64F-NEXT: fsw fa5, 76(s1)
+; LP64F-NEXT: fsw fa5, 68(s0)
; LP64F-NEXT: flw fa5, 12(sp) # 4-byte Folded Reload
-; LP64F-NEXT: fsw fa5, 72(s1)
+; LP64F-NEXT: fsw fa5, 64(s0)
; LP64F-NEXT: flw fa5, 16(sp) # 4-byte Folded Reload
-; LP64F-NEXT: fsw fa5, 68(s1)
+; LP64F-NEXT: fsw fa5, 60(s0)
; LP64F-NEXT: flw fa5, 20(sp) # 4-byte Folded Reload
-; LP64F-NEXT: fsw fa5, 64(s1)
+; LP64F-NEXT: fsw fa5, 56(s0)
; LP64F-NEXT: flw fa5, 24(sp) # 4-byte Folded Reload
-; LP64F-NEXT: fsw fa5, 60(s1)
+; LP64F-NEXT: fsw fa5, 52(s0)
; LP64F-NEXT: flw fa5, 28(sp) # 4-byte Folded Reload
-; LP64F-NEXT: fsw fa5, 56(s1)
+; LP64F-NEXT: fsw fa5, 48(s0)
; LP64F-NEXT: flw fa5, 32(sp) # 4-byte Folded Reload
-; LP64F-NEXT: fsw fa5, 52(s1)
+; LP64F-NEXT: fsw fa5, 44(s0)
; LP64F-NEXT: flw fa5, 36(sp) # 4-byte Folded Reload
-; LP64F-NEXT: fsw fa5, 48(s1)
+; LP64F-NEXT: fsw fa5, 40(s0)
; LP64F-NEXT: flw fa5, 40(sp) # 4-byte Folded Reload
-; LP64F-NEXT: fsw fa5, 44(s1)
+; LP64F-NEXT: fsw fa5, 36(s0)
; LP64F-NEXT: flw fa5, 44(sp) # 4-byte Folded Reload
-; LP64F-NEXT: fsw fa5, 40(s1)
+; LP64F-NEXT: fsw fa5, 32(s0)
; LP64F-NEXT: flw fa5, 48(sp) # 4-byte Folded Reload
-; LP64F-NEXT: fsw fa5, 36(s1)
+; LP64F-NEXT: fsw fa5, 28(s0)
; LP64F-NEXT: flw fa5, 52(sp) # 4-byte Folded Reload
-; LP64F-NEXT: fsw fa5, 32(s1)
+; LP64F-NEXT: fsw fa5, 24(s0)
; LP64F-NEXT: flw fa5, 56(sp) # 4-byte Folded Reload
-; LP64F-NEXT: fsw fa5, 28(s1)
+; LP64F-NEXT: fsw fa5, 20(s0)
; LP64F-NEXT: flw fa5, 60(sp) # 4-byte Folded Reload
-; LP64F-NEXT: fsw fa5, 24(s1)
+; LP64F-NEXT: fsw fa5, 16(s0)
; LP64F-NEXT: flw fa5, 64(sp) # 4-byte Folded Reload
-; LP64F-NEXT: fsw fa5, 20(s1)
+; LP64F-NEXT: fsw fa5, 12(s0)
; LP64F-NEXT: flw fa5, 68(sp) # 4-byte Folded Reload
-; LP64F-NEXT: fsw fa5, 16(s1)
+; LP64F-NEXT: fsw fa5, 8(s0)
; LP64F-NEXT: flw fa5, 72(sp) # 4-byte Folded Reload
-; LP64F-NEXT: fsw fa5, %lo(var+12)(s0)
+; LP64F-NEXT: fsw fa5, 4(s0)
; LP64F-NEXT: flw fa5, 76(sp) # 4-byte Folded Reload
-; LP64F-NEXT: fsw fa5, %lo(var+8)(s0)
-; LP64F-NEXT: flw fa5, 80(sp) # 4-byte Folded Reload
-; LP64F-NEXT: fsw fa5, %lo(var+4)(s0)
-; LP64F-NEXT: flw fa5, 84(sp) # 4-byte Folded Reload
-; LP64F-NEXT: fsw fa5, %lo(var)(s0)
-; LP64F-NEXT: ld ra, 152(sp) # 8-byte Folded Reload
-; LP64F-NEXT: ld s0, 144(sp) # 8-byte Folded Reload
-; LP64F-NEXT: ld s1, 136(sp) # 8-byte Folded Reload
-; LP64F-NEXT: flw fs0, 132(sp) # 4-byte Folded Reload
-; LP64F-NEXT: flw fs1, 128(sp) # 4-byte Folded Reload
-; LP64F-NEXT: flw fs2, 124(sp) # 4-byte Folded Reload
-; LP64F-NEXT: flw fs3, 120(sp) # 4-byte Folded Reload
-; LP64F-NEXT: flw fs4, 116(sp) # 4-byte Folded Reload
-; LP64F-NEXT: flw fs5, 112(sp) # 4-byte Folded Reload
-; LP64F-NEXT: flw fs6, 108(sp) # 4-byte Folded Reload
-; LP64F-NEXT: flw fs7, 104(sp) # 4-byte Folded Reload
-; LP64F-NEXT: flw fs8, 100(sp) # 4-byte Folded Reload
-; LP64F-NEXT: flw fs9, 96(sp) # 4-byte Folded Reload
-; LP64F-NEXT: flw fs10, 92(sp) # 4-byte Folded Reload
-; LP64F-NEXT: flw fs11, 88(sp) # 4-byte Folded Reload
-; LP64F-NEXT: addi sp, sp, 160
+; LP64F-NEXT: fsw fa5, 0(s0)
+; LP64F-NEXT: ld ra, 136(sp) # 8-byte Folded Reload
+; LP64F-NEXT: ld s0, 128(sp) # 8-byte Folded Reload
+; LP64F-NEXT: flw fs0, 124(sp) # 4-byte Folded Reload
+; LP64F-NEXT: flw fs1, 120(sp) # 4-byte Folded Reload
+; LP64F-NEXT: flw fs2, 116(sp) # 4-byte Folded Reload
+; LP64F-NEXT: flw fs3, 112(sp) # 4-byte Folded Reload
+; LP64F-NEXT: flw fs4, 108(sp) # 4-byte Folded Reload
+; LP64F-NEXT: flw fs5, 104(sp) # 4-byte Folded Reload
+; LP64F-NEXT: flw fs6, 100(sp) # 4-byte Folded Reload
+; LP64F-NEXT: flw fs7, 96(sp) # 4-byte Folded Reload
+; LP64F-NEXT: flw fs8, 92(sp) # 4-byte Folded Reload
+; LP64F-NEXT: flw fs9, 88(sp) # 4-byte Folded Reload
+; LP64F-NEXT: flw fs10, 84(sp) # 4-byte Folded Reload
+; LP64F-NEXT: flw fs11, 80(sp) # 4-byte Folded Reload
+; LP64F-NEXT: addi sp, sp, 144
; LP64F-NEXT: ret
;
; ILP32D-LABEL: caller:
; ILP32D: # %bb.0:
; ILP32D-NEXT: addi sp, sp, -192
; ILP32D-NEXT: sw ra, 188(sp) # 4-byte Folded Spill
; ILP32D-NEXT: sw s0, 184(sp) # 4-byte Folded Spill
-; ILP32D-NEXT: sw s1, 180(sp) # 4-byte Folded Spill
-; ILP32D-NEXT: fsd fs0, 168(sp) # 8-byte Folded Spill
-; ILP32D-NEXT: fsd fs1, 160(sp) # 8-byte Folded Spill
-; ILP32D-NEXT: fsd fs2, 152(sp) # 8-byte Folded Spill
-; ILP32D-NEXT: fsd fs3, 144(sp) # 8-byte Folded Spill
-; ILP32D-NEXT: fsd fs4, 136(sp) # 8-byte Folded Spill
-; ILP32D-NEXT: fsd fs5, 128(sp) # 8-byte Folded Spill
-; ILP32D-NEXT: fsd fs6, 120(sp) # 8-byte Folded Spill
-; ILP32D-NEXT: fsd fs7, 112(sp) # 8-byte Folded Spill
-; ILP32D-NEXT: fsd fs8, 104(sp) # 8-byte Folded Spill
-; ILP32D-NEXT: fsd fs9, 96(sp) # 8-byte Folded Spill
-; ILP32D-NEXT: fsd fs10, 88(sp) # 8-byte Folded Spill
-; ILP32D-NEXT: fsd fs11, 80(sp) # 8-byte Folded Spill
+; ILP32D-NEXT: fsd fs0, 176(sp) # 8-byte Folded Spill
+; ILP32D-NEXT: fsd fs1, 168(sp) # 8-byte Folded Spill
+; ILP32D-NEXT: fsd fs2, 160(sp) # 8-byte Folded Spill
+; ILP32D-NEXT: fsd fs3, 152(sp) # 8-byte Folded Spill
+; ILP32D-NEXT: fsd fs4, 144(sp) # 8-byte Folded Spill
+; ILP32D-NEXT: fsd fs5, 136(sp) # 8-byte Folded Spill
+; ILP32D-NEXT: fsd fs6, 128(sp) # 8-byte Folded Spill
+; ILP32D-NEXT: fsd fs7, 120(sp) # 8-byte Folded Spill
+; ILP32D-NEXT: fsd fs8, 112(sp) # 8-byte Folded Spill
+; ILP32D-NEXT: fsd fs9, 104(sp) # 8-byte Folded Spill
+; ILP32D-NEXT: fsd fs10, 96(sp) # 8-byte Folded Spill
+; ILP32D-NEXT: fsd fs11, 88(sp) # 8-byte Folded Spill
; ILP32D-NEXT: lui s0, %hi(var)
-; ILP32D-NEXT: flw fa5, %lo(var)(s0)
+; ILP32D-NEXT: addi s0, s0, %lo(var)
+; ILP32D-NEXT: flw fa5, 0(s0)
+; ILP32D-NEXT: fsw fa5, 84(sp) # 4-byte Folded Spill
+; ILP32D-NEXT: flw fa5, 4(s0)
+; ILP32D-NEXT: fsw fa5, 80(sp) # 4-byte Folded Spill
+; ILP32D-NEXT: flw fa5, 8(s0)
; ILP32D-NEXT: fsw fa5, 76(sp) # 4-byte Folded Spill
-; ILP32D-NEXT: flw fa5, %lo(var+4)(s0)
+; ILP32D-NEXT: flw fa5, 12(s0)
; ILP32D-NEXT: fsw fa5, 72(sp) # 4-byte Folded Spill
-; ILP32D-NEXT: flw fa5, %lo(var+8)(s0)
+; ILP32D-NEXT: flw fa5, 16(s0)
; ILP32D-NEXT: fsw fa5, 68(sp) # 4-byte Folded Spill
-; ILP32D-NEXT: flw fa5, %lo(var+12)(s0)
+; ILP32D-NEXT: flw fa5, 20(s0)
; ILP32D-NEXT: fsw fa5, 64(sp) # 4-byte Folded Spill
-; ILP32D-NEXT: addi s1, s0, %lo(var)
-; ILP32D-NEXT: flw fa5, 16(s1)
+; ILP32D-NEXT: flw fa5, 24(s0)
; ILP32D-NEXT: fsw fa5, 60(sp) # 4-byte Folded Spill
-; ILP32D-NEXT: flw fa5, 20(s1)
+; ILP32D-NEXT: flw fa5, 28(s0)
; ILP32D-NEXT: fsw fa5, 56(sp) # 4-byte Folded Spill
-; ILP32D-NEXT: flw fa5, 24(s1)
+; ILP32D-NEXT: flw fa5, 32(s0)
; ILP32D-NEXT: fsw fa5, 52(sp) # 4-byte Folded Spill
-; ILP32D-NEXT: flw fa5, 28(s1)
+; ILP32D-NEXT: flw fa5, 36(s0)
; ILP32D-NEXT: fsw fa5, 48(sp) # 4-byte Folded Spill
-; ILP32D-NEXT: flw fa5, 32(s1)
+; ILP32D-NEXT: flw fa5, 40(s0)
; ILP32D-NEXT: fsw fa5, 44(sp) # 4-byte Folded Spill
-; ILP32D-NEXT: flw fa5, 36(s1)
+; ILP32D-NEXT: flw fa5, 44(s0)
; ILP32D-NEXT: fsw fa5, 40(sp) # 4-byte Folded Spill
-; ILP32D-NEXT: flw fa5, 40(s1)
+; ILP32D-NEXT: flw fa5, 48(s0)
; ILP32D-NEXT: fsw fa5, 36(sp) # 4-byte Folded Spill
-; ILP32D-NEXT: flw fa5, 44(s1)
+; ILP32D-NEXT: flw fa5, 52(s0)
; ILP32D-NEXT: fsw fa5, 32(sp) # 4-byte Folded Spill
-; ILP32D-NEXT: flw fa5, 48(s1)
+; ILP32D-NEXT: flw fa5, 56(s0)
; ILP32D-NEXT: fsw fa5, 28(sp) # 4-byte Folded Spill
-; ILP32D-NEXT: flw fa5, 52(s1)
+; ILP32D-NEXT: flw fa5, 60(s0)
; ILP32D-NEXT: fsw fa5, 24(sp) # 4-byte Folded Spill
-; ILP32D-NEXT: flw fa5, 56(s1)
+; ILP32D-NEXT: flw fa5, 64(s0)
; ILP32D-NEXT: fsw fa5, 20(sp) # 4-byte Folded Spill
-; ILP32D-NEXT: flw fa5, 60(s1)
+; ILP32D-NEXT: flw fa5, 68(s0)
; ILP32D-NEXT: fsw fa5, 16(sp) # 4-byte Folded Spill
-; ILP32D-NEXT: flw fa5, 64(s1)
+; ILP32D-NEXT: flw fa5, 72(s0)
; ILP32D-NEXT: fsw fa5, 12(sp) # 4-byte Folded Spill
-; ILP32D-NEXT: flw fa5, 68(s1)
+; ILP32D-NEXT: flw fa5, 76(s0)
; ILP32D-NEXT: fsw fa5, 8(sp) # 4-byte Folded Spill
-; ILP32D-NEXT: flw fa5, 72(s1)
-; ILP32D-NEXT: fsw fa5, 4(sp) # 4-byte Folded Spill
-; ILP32D-NEXT: flw fa5, 76(s1)
-; ILP32D-NEXT: fsw fa5, 0(sp) # 4-byte Folded Spill
-; ILP32D-NEXT: flw fs8, 80(s1)
-; ILP32D-NEXT: flw fs9, 84(s1)
-; ILP32D-NEXT: flw fs10, 88(s1)
-; ILP32D-NEXT: flw fs11, 92(s1)
-; ILP32D-NEXT: flw fs0, 96(s1)
-; ILP32D-NEXT: flw fs1, 100(s1)
-; ILP32D-NEXT: flw fs2, 104(s1)
-; ILP32D-NEXT: flw fs3, 108(s1)
-; ILP32D-NEXT: flw fs4, 112(s1)
-; ILP32D-NEXT: flw fs5, 116(s1)
-; ILP32D-NEXT: flw fs6, 120(s1)
-; ILP32D-NEXT: flw fs7, 124(s1)
+; ILP32D-NEXT: flw fs8, 80(s0)
+; ILP32D-NEXT: flw fs9, 84(s0)
+; ILP32D-NEXT: flw fs10, 88(s0)
+; ILP32D-NEXT: flw fs11, 92(s0)
+; ILP32D-NEXT: flw fs0, 96(s0)
+; ILP32D-NEXT: flw fs1, 100(s0)
+; ILP32D-NEXT: flw fs2, 104(s0)
+; ILP32D-NEXT: flw fs3, 108(s0)
+; ILP32D-NEXT: flw fs4, 112(s0)
+; ILP32D-NEXT: flw fs5, 116(s0)
+; ILP32D-NEXT: flw fs6, 120(s0)
+; ILP32D-NEXT: flw fs7, 124(s0)
; ILP32D-NEXT: call callee
-; ILP32D-NEXT: fsw fs7, 124(s1)
-; ILP32D-NEXT: fsw fs6, 120(s1)
-; ILP32D-NEXT: fsw fs5, 116(s1)
-; ILP32D-NEXT: fsw fs4, 112(s1)
-; ILP32D-NEXT: fsw fs3, 108(s1)
-; ILP32D-NEXT: fsw fs2, 104(s1)
-; ILP32D-NEXT: fsw fs1, 100(s1)
-; ILP32D-NEXT: fsw fs0, 96(s1)
-; ILP32D-NEXT: fsw fs11, 92(s1)
-; ILP32D-NEXT: fsw fs10, 88(s1)
-; ILP32D-NEXT: fsw fs9, 84(s1)
-; ILP32D-NEXT: fsw fs8, 80(s1)
-; ILP32D-NEXT: flw fa5, 0(sp) # 4-byte Folded Reload
-; ILP32D-NEXT: fsw fa5, 76(s1)
-; ILP32D-NEXT: flw fa5, 4(sp) # 4-byte Folded Reload
-; ILP32D-NEXT: fsw fa5, 72(s1)
+; ILP32D-NEXT: fsw fs7, 124(s0)
+; ILP32D-NEXT: fsw fs6, 120(s0)
+; ILP32D-NEXT: fsw fs5, 116(s0)
+; ILP32D-NEXT: fsw fs4, 112(s0)
+; ILP32D-NEXT: fsw fs3, 108(s0)
+; ILP32D-NEXT: fsw fs2, 104(s0)
+; ILP32D-NEXT: fsw fs1, 100(s0)
+; ILP32D-NEXT: fsw fs0, 96(s0)
+; ILP32D-NEXT: fsw fs11, 92(s0)
+; ILP32D-NEXT: fsw fs10, 88(s0)
+; ILP32D-NEXT: fsw fs9, 84(s0)
+; ILP32D-NEXT: fsw fs8, 80(s0)
; ILP32D-NEXT: flw fa5, 8(sp) # 4-byte Folded Reload
-; ILP32D-NEXT: fsw fa5, 68(s1)
+; ILP32D-NEXT: fsw fa5, 76(s0)
; ILP32D-NEXT: flw fa5, 12(sp) # 4-byte Folded Reload
-; ILP32D-NEXT: fsw fa5, 64(s1)
+; ILP32D-NEXT: fsw fa5, 72(s0)
; ILP32D-NEXT: flw fa5, 16(sp) # 4-byte Folded Reload
-; ILP32D-NEXT: fsw fa5, 60(s1)
+; ILP32D-NEXT: fsw fa5, 68(s0)
; ILP32D-NEXT: flw fa5, 20(sp) # 4-byte Folded Reload
-; ILP32D-NEXT: fsw fa5, 56(s1)
+; ILP32D-NEXT: fsw fa5, 64(s0)
; ILP32D-NEXT: flw fa5, 24(sp) # 4-byte Folded Reload
-; ILP32D-NEXT: fsw fa5, 52(s1)
+; ILP32D-NEXT: fsw fa5, 60(s0)
; ILP32D-NEXT: flw fa5, 28(sp) # 4-byte Folded Reload
-; ILP32D-NEXT: fsw fa5, 48(s1)
+; ILP32D-NEXT: fsw fa5, 56(s0)
; ILP32D-NEXT: flw fa5, 32(sp) # 4-byte Folded Reload
-; ILP32D-NEXT: fsw fa5, 44(s1)
+; ILP32D-NEXT: fsw fa5, 52(s0)
; ILP32D-NEXT: flw fa5, 36(sp) # 4-byte Folded Reload
-; ILP32D-NEXT: fsw fa5, 40(s1)
+; ILP32D-NEXT: fsw fa5, 48(s0)
; ILP32D-NEXT: flw fa5, 40(sp) # 4-byte Folded Reload
-; ILP32D-NEXT: fsw fa5, 36(s1)
+; ILP32D-NEXT: fsw fa5, 44(s0)
; ILP32D-NEXT: flw fa5, 44(sp) # 4-byte Folded Reload
-; ILP32D-NEXT: fsw fa5, 32(s1)
+; ILP32D-NEXT: fsw fa5, 40(s0)
; ILP32D-NEXT: flw fa5, 48(sp) # 4-byte Folded Reload
-; ILP32D-NEXT: fsw fa5, 28(s1)
+; ILP32D-NEXT: fsw fa5, 36(s0)
; ILP32D-NEXT: flw fa5, 52(sp) # 4-byte Folded Reload
-; ILP32D-NEXT: fsw fa5, 24(s1)
+; ILP32D-NEXT: fsw fa5, 32(s0)
; ILP32D-NEXT: flw fa5, 56(sp) # 4-byte Folded Reload
-; ILP32D-NEXT: fsw fa5, 20(s1)
+; ILP32D-NEXT: fsw fa5, 28(s0)
; ILP32D-NEXT: flw fa5, 60(sp) # 4-byte Folded Reload
-; ILP32D-NEXT: fsw fa5, 16(s1)
+; ILP32D-NEXT: fsw fa5, 24(s0)
; ILP32D-NEXT: flw fa5, 64(sp) # 4-byte Folded Reload
-; ILP32D-NEXT: fsw fa5, %lo(var+12)(s0)
+; ILP32D-NEXT: fsw fa5, 20(s0)
; ILP32D-NEXT: flw fa5, 68(sp) # 4-byte Folded Reload
-; ILP32D-NEXT: fsw fa5, %lo(var+8)(s0)
+; ILP32D-NEXT: fsw fa5, 16(s0)
; ILP32D-NEXT: flw fa5, 72(sp) # 4-byte Folded Reload
-; ILP32D-NEXT: fsw fa5, %lo(var+4)(s0)
+; ILP32D-NEXT: fsw fa5, 12(s0)
; ILP32D-NEXT: flw fa5, 76(sp) # 4-byte Folded Reload
-; ILP32D-NEXT: fsw fa5, %lo(var)(s0)
+; ILP32D-NEXT: fsw fa5, 8(s0)
+; ILP32D-NEXT: flw fa5, 80(sp) # 4-byte Folded Reload
+; ILP32D-NEXT: fsw fa5, 4(s0)
+; ILP32D-NEXT: flw fa5, 84(sp) # 4-byte Folded Reload
+; ILP32D-NEXT: fsw fa5, 0(s0)
; ILP32D-NEXT: lw ra, 188(sp) # 4-byte Folded Reload
; ILP32D-NEXT: lw s0, 184(sp) # 4-byte Folded Reload
-; ILP32D-NEXT: lw s1, 180(sp) # 4-byte Folded Reload
-; ILP32D-NEXT: fld fs0, 168(sp) # 8-byte Folded Reload
-; ILP32D-NEXT: fld fs1, 160(sp) # 8-byte Folded Reload
-; ILP32D-NEXT: fld fs2, 152(sp) # 8-byte Folded Reload
-; ILP32D-NEXT: fld fs3, 144(sp) # 8-byte Folded Reload
-; ILP32D-NEXT: fld fs4, 136(sp) # 8-byte Folded Reload
-; ILP32D-NEXT: fld fs5, 128(sp) # 8-byte Folded Reload
-; ILP32D-NEXT: fld fs6, 120(sp) # 8-byte Folded Reload
-; ILP32D-NEXT: fld fs7, 112(sp) # 8-byte Folded Reload
-; ILP32D-NEXT: fld fs8, 104(sp) # 8-byte Folded Reload
-; ILP32D-NEXT: fld fs9, 96(sp) # 8-byte Folded Reload
-; ILP32D-NEXT: fld fs10, 88(sp) # 8-byte Folded Reload
-; ILP32D-NEXT: fld fs11, 80(sp) # 8-byte Folded Reload
+; ILP32D-NEXT: fld fs0, 176(sp) # 8-byte Folded Reload
+; ILP32D-NEXT: fld fs1, 168(sp) # 8-byte Folded Reload
+; ILP32D-NEXT: fld fs2, 160(sp) # 8-byte Folded Reload
+; ILP32D-NEXT: fld fs3, 152(sp) # 8-byte Folded Reload
+; ILP32D-NEXT: fld fs4, 144(sp) # 8-byte Folded Reload
+; ILP32D-NEXT: fld fs5, 136(sp) # 8-byte Folded Reload
+; ILP32D-NEXT: fld fs6, 128(sp) # 8-byte Folded Reload
+; ILP32D-NEXT: fld fs7, 120(sp) # 8-byte Folded Reload
+; ILP32D-NEXT: fld fs8, 112(sp) # 8-byte Folded Reload
+; ILP32D-NEXT: fld fs9, 104(sp) # 8-byte Folded Reload
+; ILP32D-NEXT: fld fs10, 96(sp) # 8-byte Folded Reload
+; ILP32D-NEXT: fld fs11, 88(sp) # 8-byte Folded Reload
; ILP32D-NEXT: addi sp, sp, 192
; ILP32D-NEXT: ret
;
; LP64D-LABEL: caller:
; LP64D: # %bb.0:
-; LP64D-NEXT: addi sp, sp, -208
-; LP64D-NEXT: sd ra, 200(sp) # 8-byte Folded Spill
-; LP64D-NEXT: sd s0, 192(sp) # 8-byte Folded Spill
-; LP64D-NEXT: sd s1, 184(sp) # 8-byte Folded Spill
-; LP64D-NEXT: fsd fs0, 176(sp) # 8-byte Folded Spill
-; LP64D-NEXT: fsd fs1, 168(sp) # 8-byte Folded Spill
-; LP64D-NEXT: fsd fs2, 160(sp) # 8-byte Folded Spill
-; LP64D-NEXT: fsd fs3, 152(sp) # 8-byte Folded Spill
-; LP64D-NEXT: fsd fs4, 144(sp) # 8-byte Folded Spill
-; LP64D-NEXT: fsd fs5, 136(sp) # 8-byte Folded Spill
-; LP64D-NEXT: fsd fs6, 128(sp) # 8-byte Folded Spill
-; LP64D-NEXT: fsd fs7, 120(sp) # 8-byte Folded Spill
-; LP64D-NEXT: fsd fs8, 112(sp) # 8-byte Folded Spill
-; LP64D-NEXT: fsd fs9, 104(sp) # 8-byte Folded Spill
-; LP64D-NEXT: fsd fs10, 96(sp) # 8-byte Folded Spill
-; LP64D-NEXT: fsd fs11, 88(sp) # 8-byte Folded Spill
+; LP64D-NEXT: addi sp, sp, -192
----------------
wangpc-pp wrote:
Smaller stack size.
https://github.com/llvm/llvm-project/pull/155935
More information about the llvm-commits
mailing list