; CHECK-SPE-NEXT: efdadd 3, 3, 4
; CHECK-SPE-NEXT: efdadd 4, 3, 5
; CHECK-SPE-NEXT: evmergehi 3, 4, 4
-; CHECK-SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; CHECK-SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; CHECK-SPE-NEXT: blr
double %D, double %E) {
%F = fmul double %A, %B ; <double> [#uses=1]
; CHECK-SPE-NEXT: efdadd 3, 3, 4
; CHECK-SPE-NEXT: efdadd 4, 5, 3
; CHECK-SPE-NEXT: evmergehi 3, 4, 4
-; CHECK-SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; CHECK-SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; CHECK-SPE-NEXT: blr
double %D, double %E) {
%F = fmul double %A, %B ; <double> [#uses=1]
; CHECK-SPE-NEXT: efdadd 3, 3, 4
; CHECK-SPE-NEXT: efdsub 4, 3, 5
; CHECK-SPE-NEXT: evmergehi 3, 4, 4
-; CHECK-SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; CHECK-SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; CHECK-SPE-NEXT: blr
double %D, double %E) {
%F = fmul double %A, %B ; <double> [#uses=1]
; CHECK-SPE-NEXT: efdadd 3, 3, 4
; CHECK-SPE-NEXT: efdsub 4, 5, 3
; CHECK-SPE-NEXT: evmergehi 3, 4, 4
-; CHECK-SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; CHECK-SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; CHECK-SPE-NEXT: blr
double %D, double %E) {
%F = fmul double %A, %B ; <double> [#uses=1]
; CHECK-SPE-NEXT: efdadd 3, 5, 3
; CHECK-SPE-NEXT: efdadd 4, 3, 4
; CHECK-SPE-NEXT: evmergehi 3, 4, 4
-; CHECK-SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; CHECK-SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; CHECK-SPE-NEXT: blr
double %D, double %E) {
%F = fmul float %A, %B ; <float> [#uses=1]
; CHECK-SPE-NEXT: efdcfs 3, 3
; CHECK-SPE-NEXT: efdadd 4, 3, 4
; CHECK-SPE-NEXT: evmergehi 3, 4, 4
-; CHECK-SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; CHECK-SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; CHECK-SPE-NEXT: blr
float %D, double %E) {
%F = fmul float %A, %B ; <float> [#uses=1]
; CHECK-SPE-NEXT: efdadd 3, 5, 3
; CHECK-SPE-NEXT: efdadd 4, 4, 3
; CHECK-SPE-NEXT: evmergehi 3, 4, 4
-; CHECK-SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; CHECK-SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; CHECK-SPE-NEXT: blr
double %D, double %E) {
%F = fmul float %A, %B ; <float> [#uses=1]
; CHECK-SPE-NEXT: efdcfs 3, 3
; CHECK-SPE-NEXT: efdadd 4, 4, 3
; CHECK-SPE-NEXT: evmergehi 3, 4, 4
-; CHECK-SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; CHECK-SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; CHECK-SPE-NEXT: blr
float %D, double %E) {
%F = fmul float %A, %B ; <float> [#uses=1]
; CHECK-SPE-NEXT: efdadd 3, 5, 3
; CHECK-SPE-NEXT: efdsub 4, 3, 4
; CHECK-SPE-NEXT: evmergehi 3, 4, 4
-; CHECK-SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; CHECK-SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; CHECK-SPE-NEXT: blr
double %D, double %E) {
%F = fmul float %A, %B ; <float> [#uses=1]
; CHECK-SPE-NEXT: efdcfs 3, 3
; CHECK-SPE-NEXT: efdsub 4, 3, 4
; CHECK-SPE-NEXT: evmergehi 3, 4, 4
-; CHECK-SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; CHECK-SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; CHECK-SPE-NEXT: blr
float %D, double %E) {
%F = fmul float %A, %B ; <float> [#uses=1]
; CHECK-SPE-NEXT: efdadd 3, 5, 3
; CHECK-SPE-NEXT: efdsub 4, 4, 3
; CHECK-SPE-NEXT: evmergehi 3, 4, 4
-; CHECK-SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; CHECK-SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; CHECK-SPE-NEXT: blr
double %D, double %E) {
%F = fmul float %A, %B ; <float> [#uses=1]
; CHECK-SPE-NEXT: efdcfs 3, 3
; CHECK-SPE-NEXT: efdsub 4, 4, 3
; CHECK-SPE-NEXT: evmergehi 3, 4, 4
-; CHECK-SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; CHECK-SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; CHECK-SPE-NEXT: blr
float %D, double %E) {
%F = fmul float %A, %B ; <float> [#uses=1]
; CHECK-SPE-NEXT: efdadd 3, 3, 4
; CHECK-SPE-NEXT: efdadd 4, 3, 5
; CHECK-SPE-NEXT: evmergehi 3, 4, 4
-; CHECK-SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; CHECK-SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; CHECK-SPE-NEXT: blr
double %D, double %E) {
%F = fmul reassoc double %A, %B ; <double> [#uses=1]
; CHECK-SPE-NEXT: efdadd 3, 3, 4
; CHECK-SPE-NEXT: efdadd 4, 5, 3
; CHECK-SPE-NEXT: evmergehi 3, 4, 4
-; CHECK-SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; CHECK-SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; CHECK-SPE-NEXT: blr
double %D, double %E) {
%F = fmul reassoc double %A, %B ; <double> [#uses=1]
; CHECK-SPE-NEXT: efdadd 3, 3, 4
; CHECK-SPE-NEXT: efdsub 4, 3, 5
; CHECK-SPE-NEXT: evmergehi 3, 4, 4
-; CHECK-SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; CHECK-SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; CHECK-SPE-NEXT: blr
double %D, double %E) {
%F = fmul reassoc double %A, %B ; <double> [#uses=1]
; CHECK-SPE-NEXT: efdadd 3, 3, 4
; CHECK-SPE-NEXT: efdsub 4, 3, 5
; CHECK-SPE-NEXT: evmergehi 3, 4, 4
-; CHECK-SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; CHECK-SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; CHECK-SPE-NEXT: blr
double %D, double %E) {
%F = fmul contract reassoc double %A, %B ; <double> [#uses=1]
; CHECK-SPE-NEXT: efdadd 3, 3, 4
; CHECK-SPE-NEXT: efdsub 4, 5, 3
; CHECK-SPE-NEXT: evmergehi 3, 4, 4
-; CHECK-SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; CHECK-SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; CHECK-SPE-NEXT: blr
double %D, double %E) {
%F = fmul reassoc double %A, %B ; <double> [#uses=1]
; CHECK-SPE-NEXT: efdadd 3, 3, 4
; CHECK-SPE-NEXT: efdsub 4, 5, 3
; CHECK-SPE-NEXT: evmergehi 3, 4, 4
-; CHECK-SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; CHECK-SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; CHECK-SPE-NEXT: blr
double %D, double %E) {
%F = fmul reassoc double %A, %B ; <double> [#uses=1]
; CHECK-SPE-NEXT: efdadd 3, 5, 3
; CHECK-SPE-NEXT: efdadd 4, 3, 4
; CHECK-SPE-NEXT: evmergehi 3, 4, 4
-; CHECK-SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; CHECK-SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; CHECK-SPE-NEXT: blr
double %D, double %E) {
%F = fmul reassoc float %A, %B ; <float> [#uses=1]
; CHECK-SPE-NEXT: efdcfs 3, 3
; CHECK-SPE-NEXT: efdadd 4, 3, 4
; CHECK-SPE-NEXT: evmergehi 3, 4, 4
-; CHECK-SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; CHECK-SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; CHECK-SPE-NEXT: blr
float %D, double %E) {
%F = fmul reassoc float %A, %B ; <float> [#uses=1]
; CHECK-SPE-NEXT: efdadd 3, 5, 3
; CHECK-SPE-NEXT: efdadd 4, 4, 3
; CHECK-SPE-NEXT: evmergehi 3, 4, 4
-; CHECK-SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; CHECK-SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; CHECK-SPE-NEXT: blr
double %D, double %E) {
%F = fmul reassoc float %A, %B ; <float> [#uses=1]
; CHECK-SPE-NEXT: efdcfs 3, 3
; CHECK-SPE-NEXT: efdadd 4, 4, 3
; CHECK-SPE-NEXT: evmergehi 3, 4, 4
-; CHECK-SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; CHECK-SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; CHECK-SPE-NEXT: blr
float %D, double %E) {
%F = fmul reassoc float %A, %B ; <float> [#uses=1]
; CHECK-SPE-NEXT: efdadd 3, 5, 3
; CHECK-SPE-NEXT: efdsub 4, 3, 4
; CHECK-SPE-NEXT: evmergehi 3, 4, 4
-; CHECK-SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; CHECK-SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; CHECK-SPE-NEXT: blr
double %D, double %E) {
%F = fmul reassoc float %A, %B ; <float> [#uses=1]
; CHECK-SPE-NEXT: efdcfs 3, 3
; CHECK-SPE-NEXT: efdsub 4, 3, 4
; CHECK-SPE-NEXT: evmergehi 3, 4, 4
-; CHECK-SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; CHECK-SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; CHECK-SPE-NEXT: blr
float %D, double %E) {
%F = fmul reassoc float %A, %B ; <float> [#uses=1]
; CHECK-SPE-NEXT: efdadd 3, 5, 3
; CHECK-SPE-NEXT: efdsub 4, 4, 3
; CHECK-SPE-NEXT: evmergehi 3, 4, 4
-; CHECK-SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; CHECK-SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; CHECK-SPE-NEXT: blr
double %D, double %E) {
%F = fmul reassoc float %A, %B ; <float> [#uses=1]
; CHECK-SPE-NEXT: efdadd 3, 5, 3
; CHECK-SPE-NEXT: efdsub 4, 4, 3
; CHECK-SPE-NEXT: evmergehi 3, 4, 4
-; CHECK-SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; CHECK-SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; CHECK-SPE-NEXT: blr
double %D, double %E) {
%F = fmul reassoc float %A, %B
; CHECK-SPE-NEXT: efdcfs 3, 3
; CHECK-SPE-NEXT: efdsub 4, 4, 3
; CHECK-SPE-NEXT: evmergehi 3, 4, 4
-; CHECK-SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; CHECK-SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; CHECK-SPE-NEXT: blr
float %D, double %E) {
%F = fmul reassoc float %A, %B ; <float> [#uses=1]
; CHECK-SPE-NEXT: efdcfs 3, 3
; CHECK-SPE-NEXT: efdsub 4, 4, 3
; CHECK-SPE-NEXT: evmergehi 3, 4, 4
-; CHECK-SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; CHECK-SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; CHECK-SPE-NEXT: blr
float %D, double %E) {
%F = fmul reassoc float %A, %B
; SPE-NEXT: evmergelo r3, r3, r4
; SPE-NEXT: efdadd r4, r3, r5
; SPE-NEXT: evmergehi r3, r4, r4
-; SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; SPE-NEXT: blr
%res = call double @llvm.experimental.constrained.fadd.f64(
double %f1, double %f2,
; SPE-NEXT: evmergelo r3, r3, r4
; SPE-NEXT: efdsub r4, r3, r5
; SPE-NEXT: evmergehi r3, r4, r4
-; SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; SPE-NEXT: blr
%res = call double @llvm.experimental.constrained.fsub.f64(
; SPE-NEXT: evmergelo r3, r3, r4
; SPE-NEXT: efdmul r4, r3, r5
; SPE-NEXT: evmergehi r3, r4, r4
-; SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; SPE-NEXT: blr
%res = call double @llvm.experimental.constrained.fmul.f64(
; SPE-NEXT: evmergelo r3, r3, r4
; SPE-NEXT: efddiv r4, r3, r5
; SPE-NEXT: evmergehi r3, r4, r4
-; SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; SPE-NEXT: blr
%res = call double @llvm.experimental.constrained.fdiv.f64(
; SPE-NEXT: efdmul r3, r3, r5
; SPE-NEXT: efdadd r4, r3, r7
; SPE-NEXT: evmergehi r3, r4, r4
-; SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; SPE-NEXT: blr
%mul = call double @llvm.experimental.constrained.fmul.f64(
double %f1, double %f2,
; SPE-NEXT: evmergehi r3, r4, r4
; SPE-NEXT: evmergehi r5, r6, r6
; SPE-NEXT: evmergehi r7, r8, r8
-; SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; SPE-NEXT: # kill: def $r6 killed $r6 killed $s6
-; SPE-NEXT: # kill: def $r8 killed $r8 killed $s8
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
-; SPE-NEXT: # kill: def $r5 killed $r5 killed $s5
-; SPE-NEXT: # kill: def $r7 killed $r7 killed $s7
; SPE-NEXT: bl fma
; SPE-NEXT: evmergelo r4, r3, r4
; SPE-NEXT: evmergehi r3, r4, r4
-; SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
; SPE-NEXT: lwz r0, 20(r1)
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; SPE-NEXT: addi r1, r1, 16
; SPE-NEXT: mtlr r0
; SPE-NEXT: blr
; SPE-LABEL: fmadd_v4f32:
; SPE: # %bb.0:
; SPE-NEXT: mflr r0
-; SPE-NEXT: stwu r1, -96(r1)
-; SPE-NEXT: stw r0, 100(r1)
-; SPE-NEXT: .cfi_def_cfa_offset 96
+; SPE-NEXT: stwu r1, -64(r1)
+; SPE-NEXT: stw r0, 68(r1)
+; SPE-NEXT: .cfi_def_cfa_offset 64
; SPE-NEXT: .cfi_offset lr, 4
-; SPE-NEXT: .cfi_offset r21, -88
-; SPE-NEXT: .cfi_offset r22, -80
-; SPE-NEXT: .cfi_offset r23, -72
-; SPE-NEXT: .cfi_offset r24, -64
-; SPE-NEXT: .cfi_offset r25, -56
-; SPE-NEXT: .cfi_offset r26, -48
-; SPE-NEXT: .cfi_offset r27, -40
-; SPE-NEXT: .cfi_offset r28, -32
-; SPE-NEXT: .cfi_offset r29, -24
-; SPE-NEXT: .cfi_offset r30, -16
-; SPE-NEXT: evstdd r27, 56(r1) # 8-byte Folded Spill
+; SPE-NEXT: .cfi_offset r21, -44
+; SPE-NEXT: .cfi_offset r22, -40
+; SPE-NEXT: .cfi_offset r23, -36
+; SPE-NEXT: .cfi_offset r24, -32
+; SPE-NEXT: .cfi_offset r25, -28
+; SPE-NEXT: .cfi_offset r26, -24
+; SPE-NEXT: .cfi_offset r27, -20
+; SPE-NEXT: .cfi_offset r28, -16
+; SPE-NEXT: .cfi_offset r29, -12
+; SPE-NEXT: .cfi_offset r30, -8
+; SPE-NEXT: stw r27, 44(r1) # 4-byte Folded Spill
; SPE-NEXT: mr r27, r5
-; SPE-NEXT: lwz r5, 116(r1)
-; SPE-NEXT: evstdd r25, 40(r1) # 8-byte Folded Spill
+; SPE-NEXT: lwz r5, 84(r1)
+; SPE-NEXT: stw r25, 36(r1) # 4-byte Folded Spill
; SPE-NEXT: mr r25, r3
-; SPE-NEXT: evstdd r26, 48(r1) # 8-byte Folded Spill
+; SPE-NEXT: stw r26, 40(r1) # 4-byte Folded Spill
; SPE-NEXT: mr r26, r4
; SPE-NEXT: mr r3, r6
; SPE-NEXT: mr r4, r10
-; SPE-NEXT: evstdd r21, 8(r1) # 8-byte Folded Spill
-; SPE-NEXT: evstdd r22, 16(r1) # 8-byte Folded Spill
-; SPE-NEXT: evstdd r23, 24(r1) # 8-byte Folded Spill
-; SPE-NEXT: evstdd r24, 32(r1) # 8-byte Folded Spill
-; SPE-NEXT: evstdd r28, 64(r1) # 8-byte Folded Spill
+; SPE-NEXT: stw r21, 20(r1) # 4-byte Folded Spill
+; SPE-NEXT: stw r22, 24(r1) # 4-byte Folded Spill
+; SPE-NEXT: stw r23, 28(r1) # 4-byte Folded Spill
+; SPE-NEXT: stw r24, 32(r1) # 4-byte Folded Spill
+; SPE-NEXT: stw r28, 48(r1) # 4-byte Folded Spill
; SPE-NEXT: mr r28, r7
-; SPE-NEXT: evstdd r29, 72(r1) # 8-byte Folded Spill
+; SPE-NEXT: stw r29, 52(r1) # 4-byte Folded Spill
; SPE-NEXT: mr r29, r8
-; SPE-NEXT: evstdd r30, 80(r1) # 8-byte Folded Spill
+; SPE-NEXT: stw r30, 56(r1) # 4-byte Folded Spill
; SPE-NEXT: mr r30, r9
-; SPE-NEXT: lwz r24, 104(r1)
-; SPE-NEXT: lwz r23, 108(r1)
-; SPE-NEXT: lwz r22, 112(r1)
+; SPE-NEXT: lwz r24, 72(r1)
+; SPE-NEXT: lwz r23, 76(r1)
+; SPE-NEXT: lwz r22, 80(r1)
; SPE-NEXT: bl fmaf
; SPE-NEXT: mr r21, r3
; SPE-NEXT: mr r3, r27
; SPE-NEXT: mr r4, r29
; SPE-NEXT: mr r5, r30
; SPE-NEXT: mr r6, r21
-; SPE-NEXT: evldd r30, 80(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r29, 72(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r28, 64(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r27, 56(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r26, 48(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r25, 40(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r24, 32(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r23, 24(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r22, 16(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r21, 8(r1) # 8-byte Folded Reload
-; SPE-NEXT: lwz r0, 100(r1)
-; SPE-NEXT: addi r1, r1, 96
+; SPE-NEXT: lwz r30, 56(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r29, 52(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r28, 48(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r27, 44(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r26, 40(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r25, 36(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r24, 32(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r23, 28(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r22, 24(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r21, 20(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r0, 68(r1)
+; SPE-NEXT: addi r1, r1, 64
; SPE-NEXT: mtlr r0
; SPE-NEXT: blr
%res = call <4 x float> @llvm.experimental.constrained.fma.v4f32(
; SPE-LABEL: fmadd_v2f64:
; SPE: # %bb.0:
; SPE-NEXT: mflr r0
-; SPE-NEXT: stwu r1, -64(r1)
-; SPE-NEXT: stw r0, 68(r1)
-; SPE-NEXT: .cfi_def_cfa_offset 64
+; SPE-NEXT: stwu r1, -80(r1)
+; SPE-NEXT: stw r0, 84(r1)
+; SPE-NEXT: .cfi_def_cfa_offset 80
; SPE-NEXT: .cfi_offset lr, 4
-; SPE-NEXT: .cfi_offset r26, -48
-; SPE-NEXT: .cfi_offset r27, -40
-; SPE-NEXT: .cfi_offset r28, -32
-; SPE-NEXT: .cfi_offset r29, -24
-; SPE-NEXT: .cfi_offset r30, -16
+; SPE-NEXT: .cfi_offset r26, -64
+; SPE-NEXT: .cfi_offset r27, -56
+; SPE-NEXT: .cfi_offset r28, -48
+; SPE-NEXT: .cfi_offset r29, -40
+; SPE-NEXT: .cfi_offset r30, -8
; SPE-NEXT: evstdd r26, 16(r1) # 8-byte Folded Spill
; SPE-NEXT: evstdd r27, 24(r1) # 8-byte Folded Spill
; SPE-NEXT: evstdd r28, 32(r1) # 8-byte Folded Spill
; SPE-NEXT: evstdd r29, 40(r1) # 8-byte Folded Spill
-; SPE-NEXT: evstdd r30, 48(r1) # 8-byte Folded Spill
+; SPE-NEXT: stw r30, 72(r1) # 4-byte Folded Spill
; SPE-NEXT: evmergelo r27, r7, r8
; SPE-NEXT: evmergelo r9, r9, r10
; SPE-NEXT: evmergelo r4, r5, r6
; SPE-NEXT: mr r30, r3
-; SPE-NEXT: evldd r8, 80(r1)
+; SPE-NEXT: evldd r8, 96(r1)
; SPE-NEXT: evmergehi r3, r4, r4
; SPE-NEXT: evmergehi r5, r9, r9
; SPE-NEXT: mr r6, r9
-; SPE-NEXT: evldd r29, 88(r1)
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
-; SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; SPE-NEXT: # kill: def $r5 killed $r5 killed $s5
+; SPE-NEXT: evldd r29, 104(r1)
; SPE-NEXT: evmergehi r7, r8, r8
-; SPE-NEXT: evldd r28, 72(r1)
-; SPE-NEXT: # kill: def $r7 killed $r7 killed $s7
-; SPE-NEXT: # kill: def $r8 killed $r8 killed $s8
+; SPE-NEXT: evldd r28, 88(r1)
; SPE-NEXT: bl fma
; SPE-NEXT: evmergelo r26, r3, r4
; SPE-NEXT: evmergehi r3, r27, r27
; SPE-NEXT: mr r4, r27
; SPE-NEXT: mr r6, r28
; SPE-NEXT: mr r8, r29
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
-; SPE-NEXT: # kill: def $r5 killed $r5 killed $s5
-; SPE-NEXT: # kill: def $r7 killed $r7 killed $s7
; SPE-NEXT: bl fma
; SPE-NEXT: li r5, 8
; SPE-NEXT: evmergelo r3, r3, r4
; SPE-NEXT: evstddx r3, r30, r5
; SPE-NEXT: evstdd r26, 0(r30)
-; SPE-NEXT: evldd r30, 48(r1) # 8-byte Folded Reload
+; SPE-NEXT: lwz r30, 72(r1) # 4-byte Folded Reload
; SPE-NEXT: evldd r29, 40(r1) # 8-byte Folded Reload
; SPE-NEXT: evldd r28, 32(r1) # 8-byte Folded Reload
; SPE-NEXT: evldd r27, 24(r1) # 8-byte Folded Reload
; SPE-NEXT: evldd r26, 16(r1) # 8-byte Folded Reload
-; SPE-NEXT: lwz r0, 68(r1)
-; SPE-NEXT: addi r1, r1, 64
+; SPE-NEXT: lwz r0, 84(r1)
+; SPE-NEXT: addi r1, r1, 80
; SPE-NEXT: mtlr r0
; SPE-NEXT: blr
%res = call <2 x double> @llvm.experimental.constrained.fma.v2f64(
; SPE-NEXT: efdneg r8, r3
; SPE-NEXT: evmergehi r3, r4, r4
; SPE-NEXT: evmergehi r5, r6, r6
-; SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; SPE-NEXT: # kill: def $r6 killed $r6 killed $s6
; SPE-NEXT: evmergehi r7, r8, r8
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
-; SPE-NEXT: # kill: def $r5 killed $r5 killed $s5
-; SPE-NEXT: # kill: def $r8 killed $r8 killed $s8
-; SPE-NEXT: # kill: def $r7 killed $r7 killed $s7
; SPE-NEXT: bl fma
; SPE-NEXT: evmergelo r4, r3, r4
; SPE-NEXT: evmergehi r3, r4, r4
-; SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
; SPE-NEXT: lwz r0, 20(r1)
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; SPE-NEXT: addi r1, r1, 16
; SPE-NEXT: mtlr r0
; SPE-NEXT: blr
; SPE-LABEL: fmsub_v4f32:
; SPE: # %bb.0:
; SPE-NEXT: mflr r0
-; SPE-NEXT: stwu r1, -96(r1)
-; SPE-NEXT: stw r0, 100(r1)
-; SPE-NEXT: .cfi_def_cfa_offset 96
+; SPE-NEXT: stwu r1, -64(r1)
+; SPE-NEXT: stw r0, 68(r1)
+; SPE-NEXT: .cfi_def_cfa_offset 64
; SPE-NEXT: .cfi_offset lr, 4
-; SPE-NEXT: .cfi_offset r21, -88
-; SPE-NEXT: .cfi_offset r22, -80
-; SPE-NEXT: .cfi_offset r23, -72
-; SPE-NEXT: .cfi_offset r24, -64
-; SPE-NEXT: .cfi_offset r25, -56
-; SPE-NEXT: .cfi_offset r26, -48
-; SPE-NEXT: .cfi_offset r27, -40
-; SPE-NEXT: .cfi_offset r28, -32
-; SPE-NEXT: .cfi_offset r29, -24
-; SPE-NEXT: .cfi_offset r30, -16
-; SPE-NEXT: evstdd r25, 40(r1) # 8-byte Folded Spill
+; SPE-NEXT: .cfi_offset r21, -44
+; SPE-NEXT: .cfi_offset r22, -40
+; SPE-NEXT: .cfi_offset r23, -36
+; SPE-NEXT: .cfi_offset r24, -32
+; SPE-NEXT: .cfi_offset r25, -28
+; SPE-NEXT: .cfi_offset r26, -24
+; SPE-NEXT: .cfi_offset r27, -20
+; SPE-NEXT: .cfi_offset r28, -16
+; SPE-NEXT: .cfi_offset r29, -12
+; SPE-NEXT: .cfi_offset r30, -8
+; SPE-NEXT: stw r25, 36(r1) # 4-byte Folded Spill
; SPE-NEXT: mr r25, r3
-; SPE-NEXT: evstdd r26, 48(r1) # 8-byte Folded Spill
+; SPE-NEXT: stw r26, 40(r1) # 4-byte Folded Spill
; SPE-NEXT: mr r26, r4
-; SPE-NEXT: evstdd r27, 56(r1) # 8-byte Folded Spill
+; SPE-NEXT: stw r27, 44(r1) # 4-byte Folded Spill
; SPE-NEXT: mr r27, r5
-; SPE-NEXT: evstdd r28, 64(r1) # 8-byte Folded Spill
+; SPE-NEXT: stw r28, 48(r1) # 4-byte Folded Spill
; SPE-NEXT: mr r28, r7
-; SPE-NEXT: lwz r3, 112(r1)
-; SPE-NEXT: lwz r4, 104(r1)
-; SPE-NEXT: lwz r5, 108(r1)
-; SPE-NEXT: lwz r7, 116(r1)
-; SPE-NEXT: evstdd r22, 16(r1) # 8-byte Folded Spill
+; SPE-NEXT: lwz r3, 80(r1)
+; SPE-NEXT: lwz r4, 72(r1)
+; SPE-NEXT: lwz r5, 76(r1)
+; SPE-NEXT: lwz r7, 84(r1)
+; SPE-NEXT: stw r22, 24(r1) # 4-byte Folded Spill
; SPE-NEXT: efsneg r22, r3
-; SPE-NEXT: evstdd r23, 24(r1) # 8-byte Folded Spill
+; SPE-NEXT: stw r23, 28(r1) # 4-byte Folded Spill
; SPE-NEXT: efsneg r23, r5
-; SPE-NEXT: evstdd r24, 32(r1) # 8-byte Folded Spill
+; SPE-NEXT: stw r24, 32(r1) # 4-byte Folded Spill
; SPE-NEXT: efsneg r24, r4
; SPE-NEXT: efsneg r5, r7
; SPE-NEXT: mr r3, r6
; SPE-NEXT: mr r4, r10
-; SPE-NEXT: evstdd r21, 8(r1) # 8-byte Folded Spill
-; SPE-NEXT: evstdd r29, 72(r1) # 8-byte Folded Spill
+; SPE-NEXT: stw r21, 20(r1) # 4-byte Folded Spill
+; SPE-NEXT: stw r29, 52(r1) # 4-byte Folded Spill
; SPE-NEXT: mr r29, r8
-; SPE-NEXT: evstdd r30, 80(r1) # 8-byte Folded Spill
+; SPE-NEXT: stw r30, 56(r1) # 4-byte Folded Spill
; SPE-NEXT: mr r30, r9
; SPE-NEXT: bl fmaf
; SPE-NEXT: mr r21, r3
; SPE-NEXT: mr r4, r29
; SPE-NEXT: mr r5, r30
; SPE-NEXT: mr r6, r21
-; SPE-NEXT: evldd r30, 80(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r29, 72(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r28, 64(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r27, 56(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r26, 48(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r25, 40(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r24, 32(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r23, 24(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r22, 16(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r21, 8(r1) # 8-byte Folded Reload
-; SPE-NEXT: lwz r0, 100(r1)
-; SPE-NEXT: addi r1, r1, 96
+; SPE-NEXT: lwz r30, 56(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r29, 52(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r28, 48(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r27, 44(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r26, 40(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r25, 36(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r24, 32(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r23, 28(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r22, 24(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r21, 20(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r0, 68(r1)
+; SPE-NEXT: addi r1, r1, 64
; SPE-NEXT: mtlr r0
; SPE-NEXT: blr
%neg = fneg <4 x float> %vf2
; SPE-LABEL: fmsub_v2f64:
; SPE: # %bb.0:
; SPE-NEXT: mflr r0
-; SPE-NEXT: stwu r1, -64(r1)
-; SPE-NEXT: stw r0, 68(r1)
-; SPE-NEXT: .cfi_def_cfa_offset 64
+; SPE-NEXT: stwu r1, -80(r1)
+; SPE-NEXT: stw r0, 84(r1)
+; SPE-NEXT: .cfi_def_cfa_offset 80
; SPE-NEXT: .cfi_offset lr, 4
-; SPE-NEXT: .cfi_offset r26, -48
-; SPE-NEXT: .cfi_offset r27, -40
-; SPE-NEXT: .cfi_offset r28, -32
-; SPE-NEXT: .cfi_offset r29, -24
-; SPE-NEXT: .cfi_offset r30, -16
-; SPE-NEXT: evstdd r30, 48(r1) # 8-byte Folded Spill
+; SPE-NEXT: .cfi_offset r26, -64
+; SPE-NEXT: .cfi_offset r27, -56
+; SPE-NEXT: .cfi_offset r28, -48
+; SPE-NEXT: .cfi_offset r29, -40
+; SPE-NEXT: .cfi_offset r30, -8
+; SPE-NEXT: stw r30, 72(r1) # 4-byte Folded Spill
; SPE-NEXT: mr r30, r3
-; SPE-NEXT: evldd r3, 80(r1)
-; SPE-NEXT: evldd r11, 88(r1)
+; SPE-NEXT: evldd r3, 96(r1)
+; SPE-NEXT: evldd r11, 104(r1)
; SPE-NEXT: evstdd r26, 16(r1) # 8-byte Folded Spill
; SPE-NEXT: evstdd r27, 24(r1) # 8-byte Folded Spill
; SPE-NEXT: efdneg r27, r11
; SPE-NEXT: evmergehi r5, r9, r9
; SPE-NEXT: evmergehi r7, r8, r8
; SPE-NEXT: mr r6, r9
-; SPE-NEXT: evldd r28, 72(r1)
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
-; SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; SPE-NEXT: # kill: def $r5 killed $r5 killed $s5
-; SPE-NEXT: # kill: def $r7 killed $r7 killed $s7
-; SPE-NEXT: # kill: def $r8 killed $r8 killed $s8
+; SPE-NEXT: evldd r28, 88(r1)
; SPE-NEXT: bl fma
; SPE-NEXT: evmergelo r26, r3, r4
; SPE-NEXT: evmergehi r3, r29, r29
; SPE-NEXT: mr r4, r29
; SPE-NEXT: mr r6, r28
; SPE-NEXT: mr r8, r27
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
-; SPE-NEXT: # kill: def $r5 killed $r5 killed $s5
-; SPE-NEXT: # kill: def $r7 killed $r7 killed $s7
; SPE-NEXT: bl fma
; SPE-NEXT: li r5, 8
; SPE-NEXT: evmergelo r3, r3, r4
; SPE-NEXT: evstddx r3, r30, r5
; SPE-NEXT: evstdd r26, 0(r30)
-; SPE-NEXT: evldd r30, 48(r1) # 8-byte Folded Reload
+; SPE-NEXT: lwz r30, 72(r1) # 4-byte Folded Reload
; SPE-NEXT: evldd r29, 40(r1) # 8-byte Folded Reload
; SPE-NEXT: evldd r28, 32(r1) # 8-byte Folded Reload
; SPE-NEXT: evldd r27, 24(r1) # 8-byte Folded Reload
; SPE-NEXT: evldd r26, 16(r1) # 8-byte Folded Reload
-; SPE-NEXT: lwz r0, 68(r1)
-; SPE-NEXT: addi r1, r1, 64
+; SPE-NEXT: lwz r0, 84(r1)
+; SPE-NEXT: addi r1, r1, 80
; SPE-NEXT: mtlr r0
; SPE-NEXT: blr
%neg = fneg <2 x double> %vf2
; SPE-NEXT: evmergehi r3, r4, r4
; SPE-NEXT: evmergehi r5, r6, r6
; SPE-NEXT: evmergehi r7, r8, r8
-; SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; SPE-NEXT: # kill: def $r6 killed $r6 killed $s6
-; SPE-NEXT: # kill: def $r8 killed $r8 killed $s8
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
-; SPE-NEXT: # kill: def $r5 killed $r5 killed $s5
-; SPE-NEXT: # kill: def $r7 killed $r7 killed $s7
; SPE-NEXT: bl fma
; SPE-NEXT: evmergelo r3, r3, r4
; SPE-NEXT: efdneg r4, r3
; SPE-NEXT: evmergehi r3, r4, r4
-; SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
; SPE-NEXT: lwz r0, 20(r1)
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; SPE-NEXT: addi r1, r1, 16
; SPE-NEXT: mtlr r0
; SPE-NEXT: blr
; SPE-LABEL: fnmadd_v4f32:
; SPE: # %bb.0:
; SPE-NEXT: mflr r0
-; SPE-NEXT: stwu r1, -96(r1)
-; SPE-NEXT: stw r0, 100(r1)
-; SPE-NEXT: .cfi_def_cfa_offset 96
+; SPE-NEXT: stwu r1, -64(r1)
+; SPE-NEXT: stw r0, 68(r1)
+; SPE-NEXT: .cfi_def_cfa_offset 64
; SPE-NEXT: .cfi_offset lr, 4
-; SPE-NEXT: .cfi_offset r21, -88
-; SPE-NEXT: .cfi_offset r22, -80
-; SPE-NEXT: .cfi_offset r23, -72
-; SPE-NEXT: .cfi_offset r24, -64
-; SPE-NEXT: .cfi_offset r25, -56
-; SPE-NEXT: .cfi_offset r26, -48
-; SPE-NEXT: .cfi_offset r27, -40
-; SPE-NEXT: .cfi_offset r28, -32
-; SPE-NEXT: .cfi_offset r29, -24
-; SPE-NEXT: .cfi_offset r30, -16
-; SPE-NEXT: evstdd r27, 56(r1) # 8-byte Folded Spill
+; SPE-NEXT: .cfi_offset r21, -44
+; SPE-NEXT: .cfi_offset r22, -40
+; SPE-NEXT: .cfi_offset r23, -36
+; SPE-NEXT: .cfi_offset r24, -32
+; SPE-NEXT: .cfi_offset r25, -28
+; SPE-NEXT: .cfi_offset r26, -24
+; SPE-NEXT: .cfi_offset r27, -20
+; SPE-NEXT: .cfi_offset r28, -16
+; SPE-NEXT: .cfi_offset r29, -12
+; SPE-NEXT: .cfi_offset r30, -8
+; SPE-NEXT: stw r27, 44(r1) # 4-byte Folded Spill
; SPE-NEXT: mr r27, r5
-; SPE-NEXT: lwz r5, 116(r1)
-; SPE-NEXT: evstdd r25, 40(r1) # 8-byte Folded Spill
+; SPE-NEXT: lwz r5, 84(r1)
+; SPE-NEXT: stw r25, 36(r1) # 4-byte Folded Spill
; SPE-NEXT: mr r25, r3
-; SPE-NEXT: evstdd r26, 48(r1) # 8-byte Folded Spill
+; SPE-NEXT: stw r26, 40(r1) # 4-byte Folded Spill
; SPE-NEXT: mr r26, r4
; SPE-NEXT: mr r3, r6
; SPE-NEXT: mr r4, r10
-; SPE-NEXT: evstdd r21, 8(r1) # 8-byte Folded Spill
-; SPE-NEXT: evstdd r22, 16(r1) # 8-byte Folded Spill
-; SPE-NEXT: evstdd r23, 24(r1) # 8-byte Folded Spill
-; SPE-NEXT: evstdd r24, 32(r1) # 8-byte Folded Spill
-; SPE-NEXT: evstdd r28, 64(r1) # 8-byte Folded Spill
+; SPE-NEXT: stw r21, 20(r1) # 4-byte Folded Spill
+; SPE-NEXT: stw r22, 24(r1) # 4-byte Folded Spill
+; SPE-NEXT: stw r23, 28(r1) # 4-byte Folded Spill
+; SPE-NEXT: stw r24, 32(r1) # 4-byte Folded Spill
+; SPE-NEXT: stw r28, 48(r1) # 4-byte Folded Spill
; SPE-NEXT: mr r28, r7
-; SPE-NEXT: evstdd r29, 72(r1) # 8-byte Folded Spill
+; SPE-NEXT: stw r29, 52(r1) # 4-byte Folded Spill
; SPE-NEXT: mr r29, r8
-; SPE-NEXT: evstdd r30, 80(r1) # 8-byte Folded Spill
+; SPE-NEXT: stw r30, 56(r1) # 4-byte Folded Spill
; SPE-NEXT: mr r30, r9
-; SPE-NEXT: lwz r24, 104(r1)
-; SPE-NEXT: lwz r23, 108(r1)
-; SPE-NEXT: lwz r22, 112(r1)
+; SPE-NEXT: lwz r24, 72(r1)
+; SPE-NEXT: lwz r23, 76(r1)
+; SPE-NEXT: lwz r22, 80(r1)
; SPE-NEXT: bl fmaf
; SPE-NEXT: mr r21, r3
; SPE-NEXT: mr r3, r27
; SPE-NEXT: efsneg r5, r30
; SPE-NEXT: efsneg r3, r3
; SPE-NEXT: efsneg r6, r21
-; SPE-NEXT: evldd r30, 80(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r29, 72(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r28, 64(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r27, 56(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r26, 48(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r25, 40(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r24, 32(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r23, 24(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r22, 16(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r21, 8(r1) # 8-byte Folded Reload
-; SPE-NEXT: lwz r0, 100(r1)
-; SPE-NEXT: addi r1, r1, 96
+; SPE-NEXT: lwz r30, 56(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r29, 52(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r28, 48(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r27, 44(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r26, 40(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r25, 36(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r24, 32(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r23, 28(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r22, 24(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r21, 20(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r0, 68(r1)
+; SPE-NEXT: addi r1, r1, 64
; SPE-NEXT: mtlr r0
; SPE-NEXT: blr
%fma = call <4 x float> @llvm.experimental.constrained.fma.v4f32(
; SPE-LABEL: fnmadd_v2f64:
; SPE: # %bb.0:
; SPE-NEXT: mflr r0
-; SPE-NEXT: stwu r1, -64(r1)
-; SPE-NEXT: stw r0, 68(r1)
-; SPE-NEXT: .cfi_def_cfa_offset 64
+; SPE-NEXT: stwu r1, -80(r1)
+; SPE-NEXT: stw r0, 84(r1)
+; SPE-NEXT: .cfi_def_cfa_offset 80
; SPE-NEXT: .cfi_offset lr, 4
-; SPE-NEXT: .cfi_offset r26, -48
-; SPE-NEXT: .cfi_offset r27, -40
-; SPE-NEXT: .cfi_offset r28, -32
-; SPE-NEXT: .cfi_offset r29, -24
-; SPE-NEXT: .cfi_offset r30, -16
+; SPE-NEXT: .cfi_offset r26, -64
+; SPE-NEXT: .cfi_offset r27, -56
+; SPE-NEXT: .cfi_offset r28, -48
+; SPE-NEXT: .cfi_offset r29, -40
+; SPE-NEXT: .cfi_offset r30, -8
; SPE-NEXT: evstdd r26, 16(r1) # 8-byte Folded Spill
; SPE-NEXT: evstdd r27, 24(r1) # 8-byte Folded Spill
; SPE-NEXT: evstdd r28, 32(r1) # 8-byte Folded Spill
; SPE-NEXT: evstdd r29, 40(r1) # 8-byte Folded Spill
-; SPE-NEXT: evstdd r30, 48(r1) # 8-byte Folded Spill
+; SPE-NEXT: stw r30, 72(r1) # 4-byte Folded Spill
; SPE-NEXT: evmergelo r27, r7, r8
; SPE-NEXT: evmergelo r9, r9, r10
; SPE-NEXT: evmergelo r4, r5, r6
; SPE-NEXT: mr r30, r3
-; SPE-NEXT: evldd r8, 80(r1)
+; SPE-NEXT: evldd r8, 96(r1)
; SPE-NEXT: evmergehi r3, r4, r4
; SPE-NEXT: evmergehi r5, r9, r9
; SPE-NEXT: mr r6, r9
-; SPE-NEXT: evldd r29, 88(r1)
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
-; SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; SPE-NEXT: # kill: def $r5 killed $r5 killed $s5
+; SPE-NEXT: evldd r29, 104(r1)
; SPE-NEXT: evmergehi r7, r8, r8
-; SPE-NEXT: evldd r28, 72(r1)
-; SPE-NEXT: # kill: def $r7 killed $r7 killed $s7
-; SPE-NEXT: # kill: def $r8 killed $r8 killed $s8
+; SPE-NEXT: evldd r28, 88(r1)
; SPE-NEXT: bl fma
; SPE-NEXT: evmergelo r26, r3, r4
; SPE-NEXT: evmergehi r3, r27, r27
; SPE-NEXT: mr r4, r27
; SPE-NEXT: mr r6, r28
; SPE-NEXT: mr r8, r29
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
-; SPE-NEXT: # kill: def $r5 killed $r5 killed $s5
-; SPE-NEXT: # kill: def $r7 killed $r7 killed $s7
; SPE-NEXT: bl fma
; SPE-NEXT: evmergelo r3, r3, r4
; SPE-NEXT: li r5, 8
; SPE-NEXT: evstddx r3, r30, r5
; SPE-NEXT: efdneg r3, r26
; SPE-NEXT: evstdd r3, 0(r30)
-; SPE-NEXT: evldd r30, 48(r1) # 8-byte Folded Reload
+; SPE-NEXT: lwz r30, 72(r1) # 4-byte Folded Reload
; SPE-NEXT: evldd r29, 40(r1) # 8-byte Folded Reload
; SPE-NEXT: evldd r28, 32(r1) # 8-byte Folded Reload
; SPE-NEXT: evldd r27, 24(r1) # 8-byte Folded Reload
; SPE-NEXT: evldd r26, 16(r1) # 8-byte Folded Reload
-; SPE-NEXT: lwz r0, 68(r1)
-; SPE-NEXT: addi r1, r1, 64
+; SPE-NEXT: lwz r0, 84(r1)
+; SPE-NEXT: addi r1, r1, 80
; SPE-NEXT: mtlr r0
; SPE-NEXT: blr
%fma = call <2 x double> @llvm.experimental.constrained.fma.v2f64(
; SPE-NEXT: efdneg r8, r3
; SPE-NEXT: evmergehi r3, r4, r4
; SPE-NEXT: evmergehi r5, r6, r6
-; SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; SPE-NEXT: # kill: def $r6 killed $r6 killed $s6
; SPE-NEXT: evmergehi r7, r8, r8
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
-; SPE-NEXT: # kill: def $r5 killed $r5 killed $s5
-; SPE-NEXT: # kill: def $r8 killed $r8 killed $s8
-; SPE-NEXT: # kill: def $r7 killed $r7 killed $s7
; SPE-NEXT: bl fma
; SPE-NEXT: evmergelo r3, r3, r4
; SPE-NEXT: efdneg r4, r3
; SPE-NEXT: evmergehi r3, r4, r4
-; SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
; SPE-NEXT: lwz r0, 20(r1)
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; SPE-NEXT: addi r1, r1, 16
; SPE-NEXT: mtlr r0
; SPE-NEXT: blr
; SPE-LABEL: fnmsub_v4f32:
; SPE: # %bb.0:
; SPE-NEXT: mflr r0
-; SPE-NEXT: stwu r1, -96(r1)
-; SPE-NEXT: stw r0, 100(r1)
-; SPE-NEXT: .cfi_def_cfa_offset 96
+; SPE-NEXT: stwu r1, -64(r1)
+; SPE-NEXT: stw r0, 68(r1)
+; SPE-NEXT: .cfi_def_cfa_offset 64
; SPE-NEXT: .cfi_offset lr, 4
-; SPE-NEXT: .cfi_offset r21, -88
-; SPE-NEXT: .cfi_offset r22, -80
-; SPE-NEXT: .cfi_offset r23, -72
-; SPE-NEXT: .cfi_offset r24, -64
-; SPE-NEXT: .cfi_offset r25, -56
-; SPE-NEXT: .cfi_offset r26, -48
-; SPE-NEXT: .cfi_offset r27, -40
-; SPE-NEXT: .cfi_offset r28, -32
-; SPE-NEXT: .cfi_offset r29, -24
-; SPE-NEXT: .cfi_offset r30, -16
-; SPE-NEXT: evstdd r25, 40(r1) # 8-byte Folded Spill
+; SPE-NEXT: .cfi_offset r21, -44
+; SPE-NEXT: .cfi_offset r22, -40
+; SPE-NEXT: .cfi_offset r23, -36
+; SPE-NEXT: .cfi_offset r24, -32
+; SPE-NEXT: .cfi_offset r25, -28
+; SPE-NEXT: .cfi_offset r26, -24
+; SPE-NEXT: .cfi_offset r27, -20
+; SPE-NEXT: .cfi_offset r28, -16
+; SPE-NEXT: .cfi_offset r29, -12
+; SPE-NEXT: .cfi_offset r30, -8
+; SPE-NEXT: stw r25, 36(r1) # 4-byte Folded Spill
; SPE-NEXT: mr r25, r3
-; SPE-NEXT: evstdd r26, 48(r1) # 8-byte Folded Spill
+; SPE-NEXT: stw r26, 40(r1) # 4-byte Folded Spill
; SPE-NEXT: mr r26, r4
-; SPE-NEXT: evstdd r27, 56(r1) # 8-byte Folded Spill
+; SPE-NEXT: stw r27, 44(r1) # 4-byte Folded Spill
; SPE-NEXT: mr r27, r5
-; SPE-NEXT: evstdd r28, 64(r1) # 8-byte Folded Spill
+; SPE-NEXT: stw r28, 48(r1) # 4-byte Folded Spill
; SPE-NEXT: mr r28, r7
-; SPE-NEXT: lwz r3, 112(r1)
-; SPE-NEXT: lwz r4, 104(r1)
-; SPE-NEXT: lwz r5, 108(r1)
-; SPE-NEXT: lwz r7, 116(r1)
-; SPE-NEXT: evstdd r22, 16(r1) # 8-byte Folded Spill
+; SPE-NEXT: lwz r3, 80(r1)
+; SPE-NEXT: lwz r4, 72(r1)
+; SPE-NEXT: lwz r5, 76(r1)
+; SPE-NEXT: lwz r7, 84(r1)
+; SPE-NEXT: stw r22, 24(r1) # 4-byte Folded Spill
; SPE-NEXT: efsneg r22, r3
-; SPE-NEXT: evstdd r23, 24(r1) # 8-byte Folded Spill
+; SPE-NEXT: stw r23, 28(r1) # 4-byte Folded Spill
; SPE-NEXT: efsneg r23, r5
-; SPE-NEXT: evstdd r24, 32(r1) # 8-byte Folded Spill
+; SPE-NEXT: stw r24, 32(r1) # 4-byte Folded Spill
; SPE-NEXT: efsneg r24, r4
; SPE-NEXT: efsneg r5, r7
; SPE-NEXT: mr r3, r6
; SPE-NEXT: mr r4, r10
-; SPE-NEXT: evstdd r21, 8(r1) # 8-byte Folded Spill
-; SPE-NEXT: evstdd r29, 72(r1) # 8-byte Folded Spill
+; SPE-NEXT: stw r21, 20(r1) # 4-byte Folded Spill
+; SPE-NEXT: stw r29, 52(r1) # 4-byte Folded Spill
; SPE-NEXT: mr r29, r8
-; SPE-NEXT: evstdd r30, 80(r1) # 8-byte Folded Spill
+; SPE-NEXT: stw r30, 56(r1) # 4-byte Folded Spill
; SPE-NEXT: mr r30, r9
; SPE-NEXT: bl fmaf
; SPE-NEXT: mr r21, r3
; SPE-NEXT: efsneg r5, r30
; SPE-NEXT: efsneg r3, r3
; SPE-NEXT: efsneg r6, r21
-; SPE-NEXT: evldd r30, 80(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r29, 72(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r28, 64(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r27, 56(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r26, 48(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r25, 40(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r24, 32(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r23, 24(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r22, 16(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r21, 8(r1) # 8-byte Folded Reload
-; SPE-NEXT: lwz r0, 100(r1)
-; SPE-NEXT: addi r1, r1, 96
+; SPE-NEXT: lwz r30, 56(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r29, 52(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r28, 48(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r27, 44(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r26, 40(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r25, 36(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r24, 32(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r23, 28(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r22, 24(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r21, 20(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r0, 68(r1)
+; SPE-NEXT: addi r1, r1, 64
; SPE-NEXT: mtlr r0
; SPE-NEXT: blr
%neg = fneg <4 x float> %vf2
; SPE-LABEL: fnmsub_v2f64:
; SPE: # %bb.0:
; SPE-NEXT: mflr r0
-; SPE-NEXT: stwu r1, -64(r1)
-; SPE-NEXT: stw r0, 68(r1)
-; SPE-NEXT: .cfi_def_cfa_offset 64
+; SPE-NEXT: stwu r1, -80(r1)
+; SPE-NEXT: stw r0, 84(r1)
+; SPE-NEXT: .cfi_def_cfa_offset 80
; SPE-NEXT: .cfi_offset lr, 4
-; SPE-NEXT: .cfi_offset r26, -48
-; SPE-NEXT: .cfi_offset r27, -40
-; SPE-NEXT: .cfi_offset r28, -32
-; SPE-NEXT: .cfi_offset r29, -24
-; SPE-NEXT: .cfi_offset r30, -16
-; SPE-NEXT: evstdd r30, 48(r1) # 8-byte Folded Spill
+; SPE-NEXT: .cfi_offset r26, -64
+; SPE-NEXT: .cfi_offset r27, -56
+; SPE-NEXT: .cfi_offset r28, -48
+; SPE-NEXT: .cfi_offset r29, -40
+; SPE-NEXT: .cfi_offset r30, -8
+; SPE-NEXT: stw r30, 72(r1) # 4-byte Folded Spill
; SPE-NEXT: mr r30, r3
-; SPE-NEXT: evldd r3, 80(r1)
-; SPE-NEXT: evldd r11, 88(r1)
+; SPE-NEXT: evldd r3, 96(r1)
+; SPE-NEXT: evldd r11, 104(r1)
; SPE-NEXT: evstdd r26, 16(r1) # 8-byte Folded Spill
; SPE-NEXT: evstdd r27, 24(r1) # 8-byte Folded Spill
; SPE-NEXT: efdneg r27, r11
; SPE-NEXT: evmergehi r5, r9, r9
; SPE-NEXT: evmergehi r7, r8, r8
; SPE-NEXT: mr r6, r9
-; SPE-NEXT: evldd r28, 72(r1)
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
-; SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; SPE-NEXT: # kill: def $r5 killed $r5 killed $s5
-; SPE-NEXT: # kill: def $r7 killed $r7 killed $s7
-; SPE-NEXT: # kill: def $r8 killed $r8 killed $s8
+; SPE-NEXT: evldd r28, 88(r1)
; SPE-NEXT: bl fma
; SPE-NEXT: evmergelo r26, r3, r4
; SPE-NEXT: evmergehi r3, r29, r29
; SPE-NEXT: mr r4, r29
; SPE-NEXT: mr r6, r28
; SPE-NEXT: mr r8, r27
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
-; SPE-NEXT: # kill: def $r5 killed $r5 killed $s5
-; SPE-NEXT: # kill: def $r7 killed $r7 killed $s7
; SPE-NEXT: bl fma
; SPE-NEXT: evmergelo r3, r3, r4
; SPE-NEXT: li r5, 8
; SPE-NEXT: evstddx r3, r30, r5
; SPE-NEXT: efdneg r3, r26
; SPE-NEXT: evstdd r3, 0(r30)
-; SPE-NEXT: evldd r30, 48(r1) # 8-byte Folded Reload
+; SPE-NEXT: lwz r30, 72(r1) # 4-byte Folded Reload
; SPE-NEXT: evldd r29, 40(r1) # 8-byte Folded Reload
; SPE-NEXT: evldd r28, 32(r1) # 8-byte Folded Reload
; SPE-NEXT: evldd r27, 24(r1) # 8-byte Folded Reload
; SPE-NEXT: evldd r26, 16(r1) # 8-byte Folded Reload
-; SPE-NEXT: lwz r0, 68(r1)
-; SPE-NEXT: addi r1, r1, 64
+; SPE-NEXT: lwz r0, 84(r1)
+; SPE-NEXT: addi r1, r1, 80
; SPE-NEXT: mtlr r0
; SPE-NEXT: blr
%neg = fneg <2 x double> %vf2
; SPE-NEXT: .cfi_offset lr, 4
; SPE-NEXT: evmergelo r4, r3, r4
; SPE-NEXT: evmergehi r3, r4, r4
-; SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; SPE-NEXT: bl sqrt
; SPE-NEXT: evmergelo r4, r3, r4
; SPE-NEXT: evmergehi r3, r4, r4
-; SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
; SPE-NEXT: lwz r0, 20(r1)
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; SPE-NEXT: addi r1, r1, 16
; SPE-NEXT: mtlr r0
; SPE-NEXT: blr
; SPE-LABEL: fsqrt_v4f32:
; SPE: # %bb.0:
; SPE-NEXT: mflr r0
-; SPE-NEXT: stwu r1, -48(r1)
-; SPE-NEXT: stw r0, 52(r1)
-; SPE-NEXT: .cfi_def_cfa_offset 48
+; SPE-NEXT: stwu r1, -32(r1)
+; SPE-NEXT: stw r0, 36(r1)
+; SPE-NEXT: .cfi_def_cfa_offset 32
; SPE-NEXT: .cfi_offset lr, 4
-; SPE-NEXT: .cfi_offset r27, -40
-; SPE-NEXT: .cfi_offset r28, -32
-; SPE-NEXT: .cfi_offset r29, -24
-; SPE-NEXT: .cfi_offset r30, -16
-; SPE-NEXT: evstdd r28, 16(r1) # 8-byte Folded Spill
+; SPE-NEXT: .cfi_offset r27, -20
+; SPE-NEXT: .cfi_offset r28, -16
+; SPE-NEXT: .cfi_offset r29, -12
+; SPE-NEXT: .cfi_offset r30, -8
+; SPE-NEXT: stw r28, 16(r1) # 4-byte Folded Spill
; SPE-NEXT: mr r28, r3
; SPE-NEXT: mr r3, r6
-; SPE-NEXT: evstdd r27, 8(r1) # 8-byte Folded Spill
-; SPE-NEXT: evstdd r29, 24(r1) # 8-byte Folded Spill
+; SPE-NEXT: stw r27, 12(r1) # 4-byte Folded Spill
+; SPE-NEXT: stw r29, 20(r1) # 4-byte Folded Spill
; SPE-NEXT: mr r29, r4
-; SPE-NEXT: evstdd r30, 32(r1) # 8-byte Folded Spill
+; SPE-NEXT: stw r30, 24(r1) # 4-byte Folded Spill
; SPE-NEXT: mr r30, r5
; SPE-NEXT: bl sqrtf
; SPE-NEXT: mr r27, r3
; SPE-NEXT: mr r4, r29
; SPE-NEXT: mr r5, r30
; SPE-NEXT: mr r6, r27
-; SPE-NEXT: evldd r30, 32(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r29, 24(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r28, 16(r1) # 8-byte Folded Reload
-; SPE-NEXT: evldd r27, 8(r1) # 8-byte Folded Reload
-; SPE-NEXT: lwz r0, 52(r1)
-; SPE-NEXT: addi r1, r1, 48
+; SPE-NEXT: lwz r30, 24(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r29, 20(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r28, 16(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r27, 12(r1) # 4-byte Folded Reload
+; SPE-NEXT: lwz r0, 36(r1)
+; SPE-NEXT: addi r1, r1, 32
; SPE-NEXT: mtlr r0
; SPE-NEXT: blr
%res = call <4 x float> @llvm.experimental.constrained.sqrt.v4f32(
; SPE-LABEL: fsqrt_v2f64:
; SPE: # %bb.0:
; SPE-NEXT: mflr r0
-; SPE-NEXT: stwu r1, -48(r1)
-; SPE-NEXT: stw r0, 52(r1)
-; SPE-NEXT: .cfi_def_cfa_offset 48
+; SPE-NEXT: stwu r1, -64(r1)
+; SPE-NEXT: stw r0, 68(r1)
+; SPE-NEXT: .cfi_def_cfa_offset 64
; SPE-NEXT: .cfi_offset lr, 4
-; SPE-NEXT: .cfi_offset r28, -32
-; SPE-NEXT: .cfi_offset r29, -24
-; SPE-NEXT: .cfi_offset r30, -16
+; SPE-NEXT: .cfi_offset r28, -48
+; SPE-NEXT: .cfi_offset r29, -40
+; SPE-NEXT: .cfi_offset r30, -8
; SPE-NEXT: evstdd r28, 16(r1) # 8-byte Folded Spill
; SPE-NEXT: evstdd r29, 24(r1) # 8-byte Folded Spill
-; SPE-NEXT: evstdd r30, 32(r1) # 8-byte Folded Spill
+; SPE-NEXT: stw r30, 56(r1) # 4-byte Folded Spill
; SPE-NEXT: evmergelo r29, r7, r8
; SPE-NEXT: evmergelo r4, r5, r6
; SPE-NEXT: mr r30, r3
; SPE-NEXT: evmergehi r3, r4, r4
-; SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; SPE-NEXT: bl sqrt
; SPE-NEXT: evmergelo r28, r3, r4
; SPE-NEXT: evmergehi r3, r29, r29
; SPE-NEXT: mr r4, r29
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; SPE-NEXT: bl sqrt
; SPE-NEXT: li r5, 8
; SPE-NEXT: evmergelo r3, r3, r4
; SPE-NEXT: evstddx r3, r30, r5
; SPE-NEXT: evstdd r28, 0(r30)
-; SPE-NEXT: evldd r30, 32(r1) # 8-byte Folded Reload
+; SPE-NEXT: lwz r30, 56(r1) # 4-byte Folded Reload
; SPE-NEXT: evldd r29, 24(r1) # 8-byte Folded Reload
; SPE-NEXT: evldd r28, 16(r1) # 8-byte Folded Reload
-; SPE-NEXT: lwz r0, 52(r1)
-; SPE-NEXT: addi r1, r1, 48
+; SPE-NEXT: lwz r0, 68(r1)
+; SPE-NEXT: addi r1, r1, 64
; SPE-NEXT: mtlr r0
; SPE-NEXT: blr
%res = call <2 x double> @llvm.experimental.constrained.sqrt.v2f64(
; SPE-NEXT: evmergelo 3, 3, 4
; SPE-NEXT: efddiv 4, 3, 5
; SPE-NEXT: evmergehi 3, 4, 4
-; SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; SPE-NEXT: blr
;
; EFPU2-LABEL: test_ddiv:
; SPE-NEXT: evmergelo 3, 3, 4
; SPE-NEXT: efdmul 4, 3, 5
; SPE-NEXT: evmergehi 3, 4, 4
-; SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; SPE-NEXT: blr
;
; EFPU2-LABEL: test_dmul:
; SPE-NEXT: evmergelo 3, 3, 4
; SPE-NEXT: efdadd 4, 3, 5
; SPE-NEXT: evmergehi 3, 4, 4
-; SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; SPE-NEXT: blr
;
; EFPU2-LABEL: test_dadd:
; SPE-NEXT: evmergelo 3, 3, 4
; SPE-NEXT: efdsub 4, 3, 5
; SPE-NEXT: evmergehi 3, 4, 4
-; SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; SPE-NEXT: blr
;
; EFPU2-LABEL: test_dsub:
; SPE-NEXT: evmergelo 3, 3, 4
; SPE-NEXT: efdneg 4, 3
; SPE-NEXT: evmergehi 3, 4, 4
-; SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; SPE-NEXT: blr
;
; EFPU2-LABEL: test_dneg:
; SPE: # %bb.0: # %entry
; SPE-NEXT: efdcfs 4, 3
; SPE-NEXT: evmergehi 3, 4, 4
-; SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; SPE-NEXT: blr
;
; EFPU2-LABEL: test_stod:
; EFPU2-LABEL: test_dcmpueq:
; EFPU2: # %bb.0: # %entry
; EFPU2-NEXT: mflr 0
-; EFPU2-NEXT: stwu 1, -80(1)
+; EFPU2-NEXT: stwu 1, -48(1)
; EFPU2-NEXT: mfcr 12
-; EFPU2-NEXT: stw 0, 84(1)
-; EFPU2-NEXT: stw 12, 76(1)
-; EFPU2-NEXT: evstdd 27, 24(1) # 8-byte Folded Spill
+; EFPU2-NEXT: stw 0, 52(1)
+; EFPU2-NEXT: stw 12, 24(1)
+; EFPU2-NEXT: stw 27, 28(1) # 4-byte Folded Spill
; EFPU2-NEXT: mr 27, 3
-; EFPU2-NEXT: evstdd 28, 32(1) # 8-byte Folded Spill
+; EFPU2-NEXT: stw 28, 32(1) # 4-byte Folded Spill
; EFPU2-NEXT: mr 28, 4
-; EFPU2-NEXT: evstdd 29, 40(1) # 8-byte Folded Spill
+; EFPU2-NEXT: stw 29, 36(1) # 4-byte Folded Spill
; EFPU2-NEXT: mr 29, 5
-; EFPU2-NEXT: evstdd 30, 48(1) # 8-byte Folded Spill
+; EFPU2-NEXT: stw 30, 40(1) # 4-byte Folded Spill
; EFPU2-NEXT: mr 30, 6
; EFPU2-NEXT: bl __eqdf2
; EFPU2-NEXT: cmpwi 2, 3, 0
; EFPU2-NEXT: .LBB42_4: # %ret
; EFPU2-NEXT: stw 3, 20(1)
; EFPU2-NEXT: lwz 3, 20(1)
-; EFPU2-NEXT: evldd 30, 48(1) # 8-byte Folded Reload
-; EFPU2-NEXT: evldd 29, 40(1) # 8-byte Folded Reload
-; EFPU2-NEXT: evldd 28, 32(1) # 8-byte Folded Reload
-; EFPU2-NEXT: lwz 12, 76(1)
-; EFPU2-NEXT: evldd 27, 24(1) # 8-byte Folded Reload
+; EFPU2-NEXT: lwz 30, 40(1) # 4-byte Folded Reload
+; EFPU2-NEXT: lwz 29, 36(1) # 4-byte Folded Reload
+; EFPU2-NEXT: lwz 28, 32(1) # 4-byte Folded Reload
+; EFPU2-NEXT: lwz 12, 24(1)
+; EFPU2-NEXT: lwz 27, 28(1) # 4-byte Folded Reload
; EFPU2-NEXT: mtcrf 32, 12 # cr2
-; EFPU2-NEXT: lwz 0, 84(1)
-; EFPU2-NEXT: addi 1, 1, 80
+; EFPU2-NEXT: lwz 0, 52(1)
+; EFPU2-NEXT: addi 1, 1, 48
; EFPU2-NEXT: mtlr 0
; EFPU2-NEXT: blr
entry:
; EFPU2-LABEL: test_dcmpne:
; EFPU2: # %bb.0: # %entry
; EFPU2-NEXT: mflr 0
-; EFPU2-NEXT: stwu 1, -80(1)
+; EFPU2-NEXT: stwu 1, -48(1)
; EFPU2-NEXT: mfcr 12
-; EFPU2-NEXT: stw 0, 84(1)
-; EFPU2-NEXT: stw 12, 76(1)
-; EFPU2-NEXT: evstdd 27, 24(1) # 8-byte Folded Spill
+; EFPU2-NEXT: stw 0, 52(1)
+; EFPU2-NEXT: stw 12, 24(1)
+; EFPU2-NEXT: stw 27, 28(1) # 4-byte Folded Spill
; EFPU2-NEXT: mr 27, 3
-; EFPU2-NEXT: evstdd 28, 32(1) # 8-byte Folded Spill
+; EFPU2-NEXT: stw 28, 32(1) # 4-byte Folded Spill
; EFPU2-NEXT: mr 28, 4
-; EFPU2-NEXT: evstdd 29, 40(1) # 8-byte Folded Spill
+; EFPU2-NEXT: stw 29, 36(1) # 4-byte Folded Spill
; EFPU2-NEXT: mr 29, 5
-; EFPU2-NEXT: evstdd 30, 48(1) # 8-byte Folded Spill
+; EFPU2-NEXT: stw 30, 40(1) # 4-byte Folded Spill
; EFPU2-NEXT: mr 30, 6
; EFPU2-NEXT: bl __unorddf2
; EFPU2-NEXT: cmpwi 2, 3, 0
; EFPU2-NEXT: mr 5, 29
; EFPU2-NEXT: mr 6, 30
; EFPU2-NEXT: bl __eqdf2
-; EFPU2-NEXT: evldd 30, 48(1) # 8-byte Folded Reload
+; EFPU2-NEXT: lwz 30, 40(1) # 4-byte Folded Reload
; EFPU2-NEXT: cmpwi 3, 0
-; EFPU2-NEXT: evldd 29, 40(1) # 8-byte Folded Reload
+; EFPU2-NEXT: lwz 29, 36(1) # 4-byte Folded Reload
; EFPU2-NEXT: li 4, 1
-; EFPU2-NEXT: evldd 28, 32(1) # 8-byte Folded Reload
+; EFPU2-NEXT: lwz 28, 32(1) # 4-byte Folded Reload
; EFPU2-NEXT: crorc 20, 2, 10
-; EFPU2-NEXT: lwz 12, 76(1)
+; EFPU2-NEXT: lwz 12, 24(1)
; EFPU2-NEXT: bc 12, 20, .LBB43_2
; EFPU2-NEXT: # %bb.1: # %entry
; EFPU2-NEXT: ori 3, 4, 0
; EFPU2-NEXT: .LBB43_2: # %entry
; EFPU2-NEXT: li 3, 0
; EFPU2-NEXT: .LBB43_3: # %entry
-; EFPU2-NEXT: evldd 27, 24(1) # 8-byte Folded Reload
+; EFPU2-NEXT: lwz 27, 28(1) # 4-byte Folded Reload
; EFPU2-NEXT: mtcrf 32, 12 # cr2
-; EFPU2-NEXT: lwz 0, 84(1)
-; EFPU2-NEXT: addi 1, 1, 80
+; EFPU2-NEXT: lwz 0, 52(1)
+; EFPU2-NEXT: addi 1, 1, 48
; EFPU2-NEXT: mtlr 0
; EFPU2-NEXT: blr
entry:
; SPE-NEXT: evor 4, 5, 5
; SPE-NEXT: .LBB49_2: # %entry
; SPE-NEXT: evmergehi 3, 4, 4
-; SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; SPE-NEXT: blr
;
; EFPU2-LABEL: test_dselect:
; SPE: # %bb.0: # %entry
; SPE-NEXT: efdcfui 4, 3
; SPE-NEXT: evmergehi 3, 4, 4
-; SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; SPE-NEXT: blr
;
; EFPU2-LABEL: test_dfromui:
; SPE: # %bb.0: # %entry
; SPE-NEXT: efdcfsi 4, 3
; SPE-NEXT: evmergehi 3, 4, 4
-; SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; SPE-NEXT: blr
;
; EFPU2-LABEL: test_dfromsi:
; SPE-NEXT: evldd 4, 24(1) # 8-byte Folded Reload
; SPE-NEXT: li 5, 256
; SPE-NEXT: evmergehi 3, 4, 4
-; SPE-NEXT: # kill: def $r4 killed $r4 killed $s4
; SPE-NEXT: evlddx 30, 1, 5 # 8-byte Folded Reload
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; SPE-NEXT: evldd 29, 248(1) # 8-byte Folded Reload
; SPE-NEXT: evldd 28, 240(1) # 8-byte Folded Reload
; SPE-NEXT: evldd 27, 232(1) # 8-byte Folded Reload
; EFPU2-LABEL: test_spill:
; EFPU2: # %bb.0: # %entry
; EFPU2-NEXT: mflr 0
-; EFPU2-NEXT: stwu 1, -144(1)
+; EFPU2-NEXT: stwu 1, -128(1)
; EFPU2-NEXT: mr 5, 3
; EFPU2-NEXT: mr 6, 4
-; EFPU2-NEXT: stw 0, 148(1)
-; EFPU2-NEXT: evstdd 27, 104(1) # 8-byte Folded Spill
-; EFPU2-NEXT: evstdd 28, 112(1) # 8-byte Folded Spill
-; EFPU2-NEXT: evstdd 29, 120(1) # 8-byte Folded Spill
-; EFPU2-NEXT: evstdd 30, 128(1) # 8-byte Folded Spill
-; EFPU2-NEXT: lwz 28, 152(1)
+; EFPU2-NEXT: stw 0, 132(1)
+; EFPU2-NEXT: stw 27, 108(1) # 4-byte Folded Spill
+; EFPU2-NEXT: stw 28, 112(1) # 4-byte Folded Spill
+; EFPU2-NEXT: stw 29, 116(1) # 4-byte Folded Spill
+; EFPU2-NEXT: stw 30, 120(1) # 4-byte Folded Spill
+; EFPU2-NEXT: lwz 28, 136(1)
; EFPU2-NEXT: bl __adddf3
; EFPU2-NEXT: lis 5, 16393
; EFPU2-NEXT: lis 6, -4069
; EFPU2-NEXT: bl __adddf3
; EFPU2-NEXT: mr 30, 3
; EFPU2-NEXT: mr 29, 4
-; EFPU2-NEXT: addi 3, 1, 52
+; EFPU2-NEXT: addi 3, 1, 56
; EFPU2-NEXT: li 4, 0
; EFPU2-NEXT: li 5, 24
; EFPU2-NEXT: li 6, 1
; EFPU2-NEXT: bl test_memset
; EFPU2-NEXT: stw 27, 0(28)
; EFPU2-NEXT: bl test_func2
-; EFPU2-NEXT: addi 3, 1, 8
+; EFPU2-NEXT: addi 3, 1, 12
; EFPU2-NEXT: li 4, 0
; EFPU2-NEXT: li 5, 20
; EFPU2-NEXT: li 6, 1
; EFPU2-NEXT: bl test_memset
; EFPU2-NEXT: mr 3, 30
; EFPU2-NEXT: mr 4, 29
-; EFPU2-NEXT: evldd 30, 128(1) # 8-byte Folded Reload
-; EFPU2-NEXT: evldd 29, 120(1) # 8-byte Folded Reload
-; EFPU2-NEXT: evldd 28, 112(1) # 8-byte Folded Reload
-; EFPU2-NEXT: evldd 27, 104(1) # 8-byte Folded Reload
-; EFPU2-NEXT: lwz 0, 148(1)
-; EFPU2-NEXT: addi 1, 1, 144
+; EFPU2-NEXT: lwz 30, 120(1) # 4-byte Folded Reload
+; EFPU2-NEXT: lwz 29, 116(1) # 4-byte Folded Reload
+; EFPU2-NEXT: lwz 28, 112(1) # 4-byte Folded Reload
+; EFPU2-NEXT: lwz 27, 108(1) # 4-byte Folded Reload
+; EFPU2-NEXT: lwz 0, 132(1)
+; EFPU2-NEXT: addi 1, 1, 128
; EFPU2-NEXT: mtlr 0
; EFPU2-NEXT: blr
entry:
; CHECK-NEXT: stwu 1, -32(1)
; CHECK-NEXT: cmpwi 3, 0
; CHECK-NEXT: stw 0, 36(1)
-; CHECK-NEXT: evstdd 29, 8(1) # 8-byte Folded Spill
-; CHECK-NEXT: evstdd 30, 16(1) # 8-byte Folded Spill
+; CHECK-NEXT: stw 29, 20(1) # 4-byte Folded Spill
+; CHECK-NEXT: stw 30, 24(1) # 4-byte Folded Spill
; CHECK-NEXT: ble 0, .LBB56_3
; CHECK-NEXT: # %bb.1: # %for.body.preheader
; CHECK-NEXT: mr 30, 3
; CHECK-NEXT: # implicit-def: $r5
; CHECK-NEXT: .LBB56_4: # %for.cond.cleanup
; CHECK-NEXT: mr 3, 5
-; CHECK-NEXT: evldd 30, 16(1) # 8-byte Folded Reload
-; CHECK-NEXT: evldd 29, 8(1) # 8-byte Folded Reload
+; CHECK-NEXT: lwz 30, 24(1) # 4-byte Folded Reload
+; CHECK-NEXT: lwz 29, 20(1) # 4-byte Folded Reload
; CHECK-NEXT: lwz 0, 36(1)
; CHECK-NEXT: addi 1, 1, 32
; CHECK-NEXT: mtlr 0
; SPE-NEXT: stw 0, 52(1)
; SPE-NEXT: lwz 4, 0(4)
; SPE-NEXT: lwz 3, 0(3)
-; SPE-NEXT: evstdd 29, 24(1) # 8-byte Folded Spill
+; SPE-NEXT: evstdd 29, 8(1) # 8-byte Folded Spill
; SPE-NEXT: efdcfs 29, 4
-; SPE-NEXT: evstdd 28, 16(1) # 8-byte Folded Spill
+; SPE-NEXT: stw 28, 32(1) # 4-byte Folded Spill
; SPE-NEXT: mr 4, 29
-; SPE-NEXT: evstdd 30, 32(1) # 8-byte Folded Spill
+; SPE-NEXT: evstdd 30, 16(1) # 8-byte Folded Spill
; SPE-NEXT: efdcfs 30, 3
; SPE-NEXT: evmergehi 3, 29, 29
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; SPE-NEXT: bl foo
; SPE-NEXT: mr 28, 3
; SPE-NEXT: evmergehi 3, 30, 30
; SPE-NEXT: mr 4, 30
-; SPE-NEXT: # kill: def $r3 killed $r3 killed $s3
; SPE-NEXT: bl foo
; SPE-NEXT: efdcfsi 3, 28
-; SPE-NEXT: evldd 30, 32(1) # 8-byte Folded Reload
+; SPE-NEXT: evldd 30, 16(1) # 8-byte Folded Reload
; SPE-NEXT: efdmul 3, 29, 3
; SPE-NEXT: efscfd 3, 3
-; SPE-NEXT: evldd 29, 24(1) # 8-byte Folded Reload
+; SPE-NEXT: evldd 29, 8(1) # 8-byte Folded Reload
; SPE-NEXT: stw 3, 0(3)
-; SPE-NEXT: evldd 28, 16(1) # 8-byte Folded Reload
+; SPE-NEXT: lwz 28, 32(1) # 4-byte Folded Reload
; SPE-NEXT: lwz 0, 52(1)
; SPE-NEXT: addi 1, 1, 48
; SPE-NEXT: mtlr 0
; EFPU2-LABEL: d:
; EFPU2: # %bb.0: # %entry
; EFPU2-NEXT: mflr 0
-; EFPU2-NEXT: stwu 1, -64(1)
-; EFPU2-NEXT: stw 0, 68(1)
+; EFPU2-NEXT: stwu 1, -32(1)
+; EFPU2-NEXT: stw 0, 36(1)
; EFPU2-NEXT: lwz 3, 0(3)
-; EFPU2-NEXT: evstdd 26, 16(1) # 8-byte Folded Spill
-; EFPU2-NEXT: evstdd 27, 24(1) # 8-byte Folded Spill
-; EFPU2-NEXT: evstdd 28, 32(1) # 8-byte Folded Spill
-; EFPU2-NEXT: evstdd 29, 40(1) # 8-byte Folded Spill
-; EFPU2-NEXT: evstdd 30, 48(1) # 8-byte Folded Spill
+; EFPU2-NEXT: stw 26, 8(1) # 4-byte Folded Spill
+; EFPU2-NEXT: stw 27, 12(1) # 4-byte Folded Spill
+; EFPU2-NEXT: stw 28, 16(1) # 4-byte Folded Spill
+; EFPU2-NEXT: stw 29, 20(1) # 4-byte Folded Spill
+; EFPU2-NEXT: stw 30, 24(1) # 4-byte Folded Spill
; EFPU2-NEXT: mr 30, 4
; EFPU2-NEXT: bl __extendsfdf2
; EFPU2-NEXT: mr 28, 3
; EFPU2-NEXT: bl __muldf3
; EFPU2-NEXT: bl __truncdfsf2
; EFPU2-NEXT: stw 3, 0(3)
-; EFPU2-NEXT: evldd 30, 48(1) # 8-byte Folded Reload
-; EFPU2-NEXT: evldd 29, 40(1) # 8-byte Folded Reload
-; EFPU2-NEXT: evldd 28, 32(1) # 8-byte Folded Reload
-; EFPU2-NEXT: evldd 27, 24(1) # 8-byte Folded Reload
-; EFPU2-NEXT: evldd 26, 16(1) # 8-byte Folded Reload
-; EFPU2-NEXT: lwz 0, 68(1)
-; EFPU2-NEXT: addi 1, 1, 64
+; EFPU2-NEXT: lwz 30, 24(1) # 4-byte Folded Reload
+; EFPU2-NEXT: lwz 29, 20(1) # 4-byte Folded Reload
+; EFPU2-NEXT: lwz 28, 16(1) # 4-byte Folded Reload
+; EFPU2-NEXT: lwz 27, 12(1) # 4-byte Folded Reload
+; EFPU2-NEXT: lwz 26, 8(1) # 4-byte Folded Reload
+; EFPU2-NEXT: lwz 0, 36(1)
+; EFPU2-NEXT: addi 1, 1, 32
; EFPU2-NEXT: mtlr 0
; EFPU2-NEXT: blr
entry: