diff --git a/llvm/lib/Target/SystemZ/SystemZInstrVector.td b/llvm/lib/Target/SystemZ/SystemZInstrVector.td index e1fe7edc4cb08..d8c48239ac633 100644 --- a/llvm/lib/Target/SystemZ/SystemZInstrVector.td +++ b/llvm/lib/Target/SystemZ/SystemZInstrVector.td @@ -105,7 +105,8 @@ let Predicates = [FeatureVector] in { let Predicates = [FeatureVector] in { // Load. - defm VL : UnaryVRXAlign<"vl", 0xE706>; + let SimpleBDXLoad = 1 in + defm VL : UnaryVRXAlign<"vl", 0xE706>; // Load to block boundary. The number of loaded bytes is only known // at run time. The instruction is really polymorphic, but v128b matches @@ -213,7 +214,8 @@ defm : ReplicatePeephole; let Predicates = [FeatureVector] in { // Store. - defm VST : StoreVRXAlign<"vst", 0xE70E>; + let SimpleBDXStore = 1 in + defm VST : StoreVRXAlign<"vst", 0xE70E>; // Store with length. The number of stored bytes is only known at run time. def VSTL : StoreLengthVRSb<"vstl", 0xE73F, int_s390_vstl, 0>; diff --git a/llvm/test/CodeGen/SystemZ/vector-constrained-fp-intrinsics.ll b/llvm/test/CodeGen/SystemZ/vector-constrained-fp-intrinsics.ll index e0818ea3da294..614f7b243c7e2 100644 --- a/llvm/test/CodeGen/SystemZ/vector-constrained-fp-intrinsics.ll +++ b/llvm/test/CodeGen/SystemZ/vector-constrained-fp-intrinsics.ll @@ -263,11 +263,11 @@ define <2 x double> @constrained_vector_frem_v2f64() #0 { ; SZ13-NEXT: ldr %f2, %f8 ; SZ13-NEXT: brasl %r14, fmod@PLT ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: vgmg %v0, 2, 11 ; SZ13-NEXT: ldr %f2, %f8 ; SZ13-NEXT: brasl %r14, fmod@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: ld %f8, 176(%r15) # 8-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v24, %v0, %v1 @@ -338,19 +338,19 @@ define <3 x float> @constrained_vector_frem_v3f32() #0 { ; SZ13-NEXT: ldr %f2, %f8 ; SZ13-NEXT: brasl %r14, fmodf@PLT ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: vgmf %v0, 2, 8 ; SZ13-NEXT: ldr %f2, %f8 ; SZ13-NEXT: brasl %r14, fmodf@PLT ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: vgmf %v0, 1, 1 ; SZ13-NEXT: ldr %f2, %f8 ; SZ13-NEXT: brasl %r14, fmodf@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 ; SZ13-NEXT: vmrhf %v0, %v1, %v0 -; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Reload ; SZ13-NEXT: ld %f8, 192(%r15) # 8-byte Reload ; SZ13-NEXT: vrepf %v1, %v1, 0 ; SZ13-NEXT: vmrhg %v24, %v0, %v1 @@ -422,28 +422,27 @@ define void @constrained_vector_frem_v3f64(ptr %a) #0 { ; SZ13-NEXT: ld %f8, 16(%r2) ; SZ13-NEXT: vgmg %v0, 2, 11 ; SZ13-NEXT: lgr %r13, %r2 -; SZ13-NEXT: vst %v2, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v2, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: # kill: def $f2d killed $f2d killed $v2 ; SZ13-NEXT: brasl %r14, fmod@PLT ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill -; SZ13-NEXT: vl %v0, 176(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill +; SZ13-NEXT: vl %v0, 176(%r15), 3 # 16-byte Reload ; SZ13-NEXT: vrepg %v2, %v0, 1 ; SZ13-NEXT: vgmg %v0, 1, 1 ; SZ13-NEXT: # kill: def $f2d killed $f2d killed $v2 ; SZ13-NEXT: brasl %r14, fmod@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v0, %v1, %v0 ; SZ13-NEXT: larl %r1, .LCPI8_0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: ldr %f2, %f8 ; SZ13-NEXT: brasl %r14, fmod@PLT -; SZ13-NEXT: std %f0, 16(%r13) -; SZ13-NEXT: vl %v0, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: mvc 0(16,%r13), 160(%r15) # 16-byte Folded Reload ; SZ13-NEXT: ld %f8, 192(%r15) # 8-byte Reload -; SZ13-NEXT: vst %v0, 0(%r13), 4 +; SZ13-NEXT: std %f0, 16(%r13) ; SZ13-NEXT: lmg %r13, %r15, 304(%r15) ; SZ13-NEXT: br %r14 entry: @@ -522,26 +521,26 @@ define <4 x double> @constrained_vector_frem_v4f64() #0 { ; SZ13-NEXT: ldr %f2, %f8 ; SZ13-NEXT: brasl %r14, fmod@PLT ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: vgmg %v0, 2, 11 ; SZ13-NEXT: ldr %f2, %f8 ; SZ13-NEXT: brasl %r14, fmod@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v0, %v0, %v1 ; SZ13-NEXT: larl %r1, .LCPI9_1 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: ldr %f2, %f8 ; SZ13-NEXT: brasl %r14, fmod@PLT ; SZ13-NEXT: larl %r1, .LCPI9_2 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: ldr %f2, %f8 ; SZ13-NEXT: brasl %r14, fmod@PLT -; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Folded Reload -; SZ13-NEXT: vl %v24, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Reload +; SZ13-NEXT: vl %v24, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: ld %f8, 192(%r15) # 8-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v26, %v0, %v1 @@ -1291,11 +1290,11 @@ define <2 x double> @constrained_vector_pow_v2f64() #0 { ; SZ13-NEXT: brasl %r14, pow@PLT ; SZ13-NEXT: larl %r1, .LCPI31_2 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: ldr %f2, %f8 ; SZ13-NEXT: brasl %r14, pow@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: ld %f8, 176(%r15) # 8-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v24, %v0, %v1 @@ -1367,20 +1366,20 @@ define <3 x float> @constrained_vector_pow_v3f32() #0 { ; SZ13-NEXT: brasl %r14, powf@PLT ; SZ13-NEXT: larl %r1, .LCPI32_2 ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: lde %f0, 0(%r1) ; SZ13-NEXT: ldr %f2, %f8 ; SZ13-NEXT: brasl %r14, powf@PLT ; SZ13-NEXT: larl %r1, .LCPI32_3 ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: lde %f0, 0(%r1) ; SZ13-NEXT: ldr %f2, %f8 ; SZ13-NEXT: brasl %r14, powf@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 ; SZ13-NEXT: vmrhf %v0, %v1, %v0 -; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Reload ; SZ13-NEXT: ld %f8, 192(%r15) # 8-byte Reload ; SZ13-NEXT: vrepf %v1, %v1, 0 ; SZ13-NEXT: vmrhg %v24, %v0, %v1 @@ -1456,28 +1455,27 @@ define void @constrained_vector_pow_v3f64(ptr %a) #0 { ; SZ13-NEXT: ld %f8, 16(%r2) ; SZ13-NEXT: ldr %f2, %f9 ; SZ13-NEXT: lgr %r13, %r2 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: # kill: def $f0d killed $f0d killed $v0 ; SZ13-NEXT: brasl %r14, pow@PLT ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill -; SZ13-NEXT: vl %v0, 176(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill +; SZ13-NEXT: vl %v0, 176(%r15), 3 # 16-byte Reload ; SZ13-NEXT: ldr %f2, %f9 ; SZ13-NEXT: vrepg %v0, %v0, 1 ; SZ13-NEXT: # kill: def $f0d killed $f0d killed $v0 ; SZ13-NEXT: brasl %r14, pow@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v0, %v1, %v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ldr %f0, %f8 ; SZ13-NEXT: ldr %f2, %f9 ; SZ13-NEXT: brasl %r14, pow@PLT -; SZ13-NEXT: std %f0, 16(%r13) -; SZ13-NEXT: vl %v0, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: mvc 0(16,%r13), 160(%r15) # 16-byte Folded Reload ; SZ13-NEXT: ld %f8, 200(%r15) # 8-byte Reload ; SZ13-NEXT: ld %f9, 192(%r15) # 8-byte Reload -; SZ13-NEXT: vst %v0, 0(%r13), 4 +; SZ13-NEXT: std %f0, 16(%r13) ; SZ13-NEXT: lmg %r13, %r15, 312(%r15) ; SZ13-NEXT: br %r14 entry: @@ -1558,26 +1556,26 @@ define <4 x double> @constrained_vector_pow_v4f64() #0 { ; SZ13-NEXT: brasl %r14, pow@PLT ; SZ13-NEXT: larl %r1, .LCPI34_2 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: ldr %f2, %f8 ; SZ13-NEXT: brasl %r14, pow@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v0, %v0, %v1 ; SZ13-NEXT: larl %r1, .LCPI34_3 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: ldr %f2, %f8 ; SZ13-NEXT: brasl %r14, pow@PLT ; SZ13-NEXT: larl %r1, .LCPI34_4 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: ldr %f2, %f8 ; SZ13-NEXT: brasl %r14, pow@PLT -; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Folded Reload -; SZ13-NEXT: vl %v24, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Reload +; SZ13-NEXT: vl %v24, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: ld %f8, 192(%r15) # 8-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v26, %v0, %v1 @@ -1671,11 +1669,11 @@ define <2 x double> @constrained_vector_powi_v2f64() #0 { ; SZ13-NEXT: brasl %r14, __powidf2@PLT ; SZ13-NEXT: larl %r1, .LCPI36_1 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: lghi %r2, 3 ; SZ13-NEXT: brasl %r14, __powidf2@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v24, %v0, %v1 ; SZ13-NEXT: lmg %r14, %r15, 288(%r15) @@ -1737,20 +1735,20 @@ define <3 x float> @constrained_vector_powi_v3f32() #0 { ; SZ13-NEXT: brasl %r14, __powisf2@PLT ; SZ13-NEXT: larl %r1, .LCPI37_1 ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: lde %f0, 0(%r1) ; SZ13-NEXT: lghi %r2, 3 ; SZ13-NEXT: brasl %r14, __powisf2@PLT ; SZ13-NEXT: larl %r1, .LCPI37_2 ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: lde %f0, 0(%r1) ; SZ13-NEXT: lghi %r2, 3 ; SZ13-NEXT: brasl %r14, __powisf2@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 ; SZ13-NEXT: vmrhf %v0, %v1, %v0 -; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Reload ; SZ13-NEXT: vrepf %v1, %v1, 0 ; SZ13-NEXT: vmrhg %v24, %v0, %v1 ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) @@ -1817,21 +1815,20 @@ define void @constrained_vector_powi_v3f64(ptr %a) #0 { ; SZ13-NEXT: brasl %r14, __powidf2@PLT ; SZ13-NEXT: larl %r1, .LCPI38_1 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: lghi %r2, 3 ; SZ13-NEXT: brasl %r14, __powidf2@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v0, %v0, %v1 ; SZ13-NEXT: larl %r1, .LCPI38_2 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: lghi %r2, 3 ; SZ13-NEXT: brasl %r14, __powidf2@PLT +; SZ13-NEXT: mvc 0(16,%r13), 160(%r15) # 16-byte Folded Reload ; SZ13-NEXT: std %f0, 16(%r13) -; SZ13-NEXT: vl %v0, 160(%r15), 3 # 16-byte Folded Reload -; SZ13-NEXT: vst %v0, 0(%r13), 4 ; SZ13-NEXT: lmg %r13, %r15, 280(%r15) ; SZ13-NEXT: br %r14 entry: @@ -1903,26 +1900,26 @@ define <4 x double> @constrained_vector_powi_v4f64() #0 { ; SZ13-NEXT: brasl %r14, __powidf2@PLT ; SZ13-NEXT: larl %r1, .LCPI39_1 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: lghi %r2, 3 ; SZ13-NEXT: brasl %r14, __powidf2@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v0, %v0, %v1 ; SZ13-NEXT: larl %r1, .LCPI39_2 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: lghi %r2, 3 ; SZ13-NEXT: brasl %r14, __powidf2@PLT ; SZ13-NEXT: larl %r1, .LCPI39_3 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: lghi %r2, 3 ; SZ13-NEXT: brasl %r14, __powidf2@PLT -; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Folded Reload -; SZ13-NEXT: vl %v24, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Reload +; SZ13-NEXT: vl %v24, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v26, %v0, %v1 ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) @@ -2008,10 +2005,10 @@ define <2 x double> @constrained_vector_sin_v2f64() #0 { ; SZ13-NEXT: brasl %r14, sin@PLT ; SZ13-NEXT: larl %r1, .LCPI41_1 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, sin@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v24, %v0, %v1 ; SZ13-NEXT: lmg %r14, %r15, 288(%r15) @@ -2068,18 +2065,18 @@ define <3 x float> @constrained_vector_sin_v3f32() #0 { ; SZ13-NEXT: brasl %r14, sinf@PLT ; SZ13-NEXT: larl %r1, .LCPI42_1 ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: lde %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, sinf@PLT ; SZ13-NEXT: larl %r1, .LCPI42_2 ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: lde %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, sinf@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 ; SZ13-NEXT: vmrhf %v0, %v1, %v0 -; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Reload ; SZ13-NEXT: vrepf %v1, %v1, 0 ; SZ13-NEXT: vmrhg %v24, %v0, %v1 ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) @@ -2140,25 +2137,24 @@ define void @constrained_vector_sin_v3f64(ptr %a) #0 { ; SZ13-NEXT: vl %v0, 0(%r2), 4 ; SZ13-NEXT: ld %f8, 16(%r2) ; SZ13-NEXT: lgr %r13, %r2 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: # kill: def $f0d killed $f0d killed $v0 ; SZ13-NEXT: brasl %r14, sin@PLT ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill -; SZ13-NEXT: vl %v0, 176(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill +; SZ13-NEXT: vl %v0, 176(%r15), 3 # 16-byte Reload ; SZ13-NEXT: vrepg %v0, %v0, 1 ; SZ13-NEXT: # kill: def $f0d killed $f0d killed $v0 ; SZ13-NEXT: brasl %r14, sin@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v0, %v1, %v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ldr %f0, %f8 ; SZ13-NEXT: brasl %r14, sin@PLT -; SZ13-NEXT: std %f0, 16(%r13) -; SZ13-NEXT: vl %v0, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: mvc 0(16,%r13), 160(%r15) # 16-byte Folded Reload ; SZ13-NEXT: ld %f8, 192(%r15) # 8-byte Reload -; SZ13-NEXT: vst %v0, 0(%r13), 4 +; SZ13-NEXT: std %f0, 16(%r13) ; SZ13-NEXT: lmg %r13, %r15, 304(%r15) ; SZ13-NEXT: br %r14 entry: @@ -2224,23 +2220,23 @@ define <4 x double> @constrained_vector_sin_v4f64() #0 { ; SZ13-NEXT: brasl %r14, sin@PLT ; SZ13-NEXT: larl %r1, .LCPI44_1 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, sin@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v0, %v0, %v1 ; SZ13-NEXT: larl %r1, .LCPI44_2 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, sin@PLT ; SZ13-NEXT: larl %r1, .LCPI44_3 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, sin@PLT -; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Folded Reload -; SZ13-NEXT: vl %v24, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Reload +; SZ13-NEXT: vl %v24, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v26, %v0, %v1 ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) @@ -2325,10 +2321,10 @@ define <2 x double> @constrained_vector_cos_v2f64() #0 { ; SZ13-NEXT: brasl %r14, cos@PLT ; SZ13-NEXT: larl %r1, .LCPI46_1 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, cos@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v24, %v0, %v1 ; SZ13-NEXT: lmg %r14, %r15, 288(%r15) @@ -2385,18 +2381,18 @@ define <3 x float> @constrained_vector_cos_v3f32() #0 { ; SZ13-NEXT: brasl %r14, cosf@PLT ; SZ13-NEXT: larl %r1, .LCPI47_1 ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: lde %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, cosf@PLT ; SZ13-NEXT: larl %r1, .LCPI47_2 ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: lde %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, cosf@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 ; SZ13-NEXT: vmrhf %v0, %v1, %v0 -; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Reload ; SZ13-NEXT: vrepf %v1, %v1, 0 ; SZ13-NEXT: vmrhg %v24, %v0, %v1 ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) @@ -2457,25 +2453,24 @@ define void @constrained_vector_cos_v3f64(ptr %a) #0 { ; SZ13-NEXT: vl %v0, 0(%r2), 4 ; SZ13-NEXT: ld %f8, 16(%r2) ; SZ13-NEXT: lgr %r13, %r2 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: # kill: def $f0d killed $f0d killed $v0 ; SZ13-NEXT: brasl %r14, cos@PLT ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill -; SZ13-NEXT: vl %v0, 176(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill +; SZ13-NEXT: vl %v0, 176(%r15), 3 # 16-byte Reload ; SZ13-NEXT: vrepg %v0, %v0, 1 ; SZ13-NEXT: # kill: def $f0d killed $f0d killed $v0 ; SZ13-NEXT: brasl %r14, cos@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v0, %v1, %v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ldr %f0, %f8 ; SZ13-NEXT: brasl %r14, cos@PLT -; SZ13-NEXT: std %f0, 16(%r13) -; SZ13-NEXT: vl %v0, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: mvc 0(16,%r13), 160(%r15) # 16-byte Folded Reload ; SZ13-NEXT: ld %f8, 192(%r15) # 8-byte Reload -; SZ13-NEXT: vst %v0, 0(%r13), 4 +; SZ13-NEXT: std %f0, 16(%r13) ; SZ13-NEXT: lmg %r13, %r15, 304(%r15) ; SZ13-NEXT: br %r14 entry: @@ -2541,23 +2536,23 @@ define <4 x double> @constrained_vector_cos_v4f64() #0 { ; SZ13-NEXT: brasl %r14, cos@PLT ; SZ13-NEXT: larl %r1, .LCPI49_1 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, cos@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v0, %v0, %v1 ; SZ13-NEXT: larl %r1, .LCPI49_2 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, cos@PLT ; SZ13-NEXT: larl %r1, .LCPI49_3 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, cos@PLT -; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Folded Reload -; SZ13-NEXT: vl %v24, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Reload +; SZ13-NEXT: vl %v24, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v26, %v0, %v1 ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) @@ -2642,10 +2637,10 @@ define <2 x double> @constrained_vector_exp_v2f64() #0 { ; SZ13-NEXT: brasl %r14, exp@PLT ; SZ13-NEXT: larl %r1, .LCPI51_1 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, exp@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v24, %v0, %v1 ; SZ13-NEXT: lmg %r14, %r15, 288(%r15) @@ -2702,18 +2697,18 @@ define <3 x float> @constrained_vector_exp_v3f32() #0 { ; SZ13-NEXT: brasl %r14, expf@PLT ; SZ13-NEXT: larl %r1, .LCPI52_1 ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: lde %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, expf@PLT ; SZ13-NEXT: larl %r1, .LCPI52_2 ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: lde %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, expf@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 ; SZ13-NEXT: vmrhf %v0, %v1, %v0 -; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Reload ; SZ13-NEXT: vrepf %v1, %v1, 0 ; SZ13-NEXT: vmrhg %v24, %v0, %v1 ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) @@ -2774,25 +2769,24 @@ define void @constrained_vector_exp_v3f64(ptr %a) #0 { ; SZ13-NEXT: vl %v0, 0(%r2), 4 ; SZ13-NEXT: ld %f8, 16(%r2) ; SZ13-NEXT: lgr %r13, %r2 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: # kill: def $f0d killed $f0d killed $v0 ; SZ13-NEXT: brasl %r14, exp@PLT ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill -; SZ13-NEXT: vl %v0, 176(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill +; SZ13-NEXT: vl %v0, 176(%r15), 3 # 16-byte Reload ; SZ13-NEXT: vrepg %v0, %v0, 1 ; SZ13-NEXT: # kill: def $f0d killed $f0d killed $v0 ; SZ13-NEXT: brasl %r14, exp@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v0, %v1, %v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ldr %f0, %f8 ; SZ13-NEXT: brasl %r14, exp@PLT -; SZ13-NEXT: std %f0, 16(%r13) -; SZ13-NEXT: vl %v0, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: mvc 0(16,%r13), 160(%r15) # 16-byte Folded Reload ; SZ13-NEXT: ld %f8, 192(%r15) # 8-byte Reload -; SZ13-NEXT: vst %v0, 0(%r13), 4 +; SZ13-NEXT: std %f0, 16(%r13) ; SZ13-NEXT: lmg %r13, %r15, 304(%r15) ; SZ13-NEXT: br %r14 entry: @@ -2858,23 +2852,23 @@ define <4 x double> @constrained_vector_exp_v4f64() #0 { ; SZ13-NEXT: brasl %r14, exp@PLT ; SZ13-NEXT: larl %r1, .LCPI54_1 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, exp@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v0, %v0, %v1 ; SZ13-NEXT: larl %r1, .LCPI54_2 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, exp@PLT ; SZ13-NEXT: larl %r1, .LCPI54_3 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, exp@PLT -; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Folded Reload -; SZ13-NEXT: vl %v24, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Reload +; SZ13-NEXT: vl %v24, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v26, %v0, %v1 ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) @@ -2959,10 +2953,10 @@ define <2 x double> @constrained_vector_exp2_v2f64() #0 { ; SZ13-NEXT: brasl %r14, exp2@PLT ; SZ13-NEXT: larl %r1, .LCPI56_1 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, exp2@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v24, %v0, %v1 ; SZ13-NEXT: lmg %r14, %r15, 288(%r15) @@ -3019,18 +3013,18 @@ define <3 x float> @constrained_vector_exp2_v3f32() #0 { ; SZ13-NEXT: brasl %r14, exp2f@PLT ; SZ13-NEXT: larl %r1, .LCPI57_1 ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: lde %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, exp2f@PLT ; SZ13-NEXT: larl %r1, .LCPI57_2 ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: lde %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, exp2f@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 ; SZ13-NEXT: vmrhf %v0, %v1, %v0 -; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Reload ; SZ13-NEXT: vrepf %v1, %v1, 0 ; SZ13-NEXT: vmrhg %v24, %v0, %v1 ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) @@ -3091,25 +3085,24 @@ define void @constrained_vector_exp2_v3f64(ptr %a) #0 { ; SZ13-NEXT: vl %v0, 0(%r2), 4 ; SZ13-NEXT: ld %f8, 16(%r2) ; SZ13-NEXT: lgr %r13, %r2 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: # kill: def $f0d killed $f0d killed $v0 ; SZ13-NEXT: brasl %r14, exp2@PLT ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill -; SZ13-NEXT: vl %v0, 176(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill +; SZ13-NEXT: vl %v0, 176(%r15), 3 # 16-byte Reload ; SZ13-NEXT: vrepg %v0, %v0, 1 ; SZ13-NEXT: # kill: def $f0d killed $f0d killed $v0 ; SZ13-NEXT: brasl %r14, exp2@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v0, %v1, %v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ldr %f0, %f8 ; SZ13-NEXT: brasl %r14, exp2@PLT -; SZ13-NEXT: std %f0, 16(%r13) -; SZ13-NEXT: vl %v0, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: mvc 0(16,%r13), 160(%r15) # 16-byte Folded Reload ; SZ13-NEXT: ld %f8, 192(%r15) # 8-byte Reload -; SZ13-NEXT: vst %v0, 0(%r13), 4 +; SZ13-NEXT: std %f0, 16(%r13) ; SZ13-NEXT: lmg %r13, %r15, 304(%r15) ; SZ13-NEXT: br %r14 entry: @@ -3175,23 +3168,23 @@ define <4 x double> @constrained_vector_exp2_v4f64() #0 { ; SZ13-NEXT: brasl %r14, exp2@PLT ; SZ13-NEXT: larl %r1, .LCPI59_1 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, exp2@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v0, %v0, %v1 ; SZ13-NEXT: larl %r1, .LCPI59_2 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, exp2@PLT ; SZ13-NEXT: larl %r1, .LCPI59_3 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, exp2@PLT -; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Folded Reload -; SZ13-NEXT: vl %v24, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Reload +; SZ13-NEXT: vl %v24, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v26, %v0, %v1 ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) @@ -3276,10 +3269,10 @@ define <2 x double> @constrained_vector_log_v2f64() #0 { ; SZ13-NEXT: brasl %r14, log@PLT ; SZ13-NEXT: larl %r1, .LCPI61_1 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, log@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v24, %v0, %v1 ; SZ13-NEXT: lmg %r14, %r15, 288(%r15) @@ -3336,18 +3329,18 @@ define <3 x float> @constrained_vector_log_v3f32() #0 { ; SZ13-NEXT: brasl %r14, logf@PLT ; SZ13-NEXT: larl %r1, .LCPI62_1 ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: lde %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, logf@PLT ; SZ13-NEXT: larl %r1, .LCPI62_2 ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: lde %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, logf@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 ; SZ13-NEXT: vmrhf %v0, %v1, %v0 -; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Reload ; SZ13-NEXT: vrepf %v1, %v1, 0 ; SZ13-NEXT: vmrhg %v24, %v0, %v1 ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) @@ -3408,25 +3401,24 @@ define void @constrained_vector_log_v3f64(ptr %a) #0 { ; SZ13-NEXT: vl %v0, 0(%r2), 4 ; SZ13-NEXT: ld %f8, 16(%r2) ; SZ13-NEXT: lgr %r13, %r2 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: # kill: def $f0d killed $f0d killed $v0 ; SZ13-NEXT: brasl %r14, log@PLT ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill -; SZ13-NEXT: vl %v0, 176(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill +; SZ13-NEXT: vl %v0, 176(%r15), 3 # 16-byte Reload ; SZ13-NEXT: vrepg %v0, %v0, 1 ; SZ13-NEXT: # kill: def $f0d killed $f0d killed $v0 ; SZ13-NEXT: brasl %r14, log@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v0, %v1, %v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ldr %f0, %f8 ; SZ13-NEXT: brasl %r14, log@PLT -; SZ13-NEXT: std %f0, 16(%r13) -; SZ13-NEXT: vl %v0, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: mvc 0(16,%r13), 160(%r15) # 16-byte Folded Reload ; SZ13-NEXT: ld %f8, 192(%r15) # 8-byte Reload -; SZ13-NEXT: vst %v0, 0(%r13), 4 +; SZ13-NEXT: std %f0, 16(%r13) ; SZ13-NEXT: lmg %r13, %r15, 304(%r15) ; SZ13-NEXT: br %r14 entry: @@ -3492,23 +3484,23 @@ define <4 x double> @constrained_vector_log_v4f64() #0 { ; SZ13-NEXT: brasl %r14, log@PLT ; SZ13-NEXT: larl %r1, .LCPI64_1 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, log@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v0, %v0, %v1 ; SZ13-NEXT: larl %r1, .LCPI64_2 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, log@PLT ; SZ13-NEXT: larl %r1, .LCPI64_3 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, log@PLT -; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Folded Reload -; SZ13-NEXT: vl %v24, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Reload +; SZ13-NEXT: vl %v24, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v26, %v0, %v1 ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) @@ -3593,10 +3585,10 @@ define <2 x double> @constrained_vector_log10_v2f64() #0 { ; SZ13-NEXT: brasl %r14, log10@PLT ; SZ13-NEXT: larl %r1, .LCPI66_1 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, log10@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v24, %v0, %v1 ; SZ13-NEXT: lmg %r14, %r15, 288(%r15) @@ -3653,18 +3645,18 @@ define <3 x float> @constrained_vector_log10_v3f32() #0 { ; SZ13-NEXT: brasl %r14, log10f@PLT ; SZ13-NEXT: larl %r1, .LCPI67_1 ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: lde %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, log10f@PLT ; SZ13-NEXT: larl %r1, .LCPI67_2 ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: lde %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, log10f@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 ; SZ13-NEXT: vmrhf %v0, %v1, %v0 -; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Reload ; SZ13-NEXT: vrepf %v1, %v1, 0 ; SZ13-NEXT: vmrhg %v24, %v0, %v1 ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) @@ -3725,25 +3717,24 @@ define void @constrained_vector_log10_v3f64(ptr %a) #0 { ; SZ13-NEXT: vl %v0, 0(%r2), 4 ; SZ13-NEXT: ld %f8, 16(%r2) ; SZ13-NEXT: lgr %r13, %r2 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: # kill: def $f0d killed $f0d killed $v0 ; SZ13-NEXT: brasl %r14, log10@PLT ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill -; SZ13-NEXT: vl %v0, 176(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill +; SZ13-NEXT: vl %v0, 176(%r15), 3 # 16-byte Reload ; SZ13-NEXT: vrepg %v0, %v0, 1 ; SZ13-NEXT: # kill: def $f0d killed $f0d killed $v0 ; SZ13-NEXT: brasl %r14, log10@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v0, %v1, %v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ldr %f0, %f8 ; SZ13-NEXT: brasl %r14, log10@PLT -; SZ13-NEXT: std %f0, 16(%r13) -; SZ13-NEXT: vl %v0, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: mvc 0(16,%r13), 160(%r15) # 16-byte Folded Reload ; SZ13-NEXT: ld %f8, 192(%r15) # 8-byte Reload -; SZ13-NEXT: vst %v0, 0(%r13), 4 +; SZ13-NEXT: std %f0, 16(%r13) ; SZ13-NEXT: lmg %r13, %r15, 304(%r15) ; SZ13-NEXT: br %r14 entry: @@ -3809,23 +3800,23 @@ define <4 x double> @constrained_vector_log10_v4f64() #0 { ; SZ13-NEXT: brasl %r14, log10@PLT ; SZ13-NEXT: larl %r1, .LCPI69_1 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, log10@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v0, %v0, %v1 ; SZ13-NEXT: larl %r1, .LCPI69_2 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, log10@PLT ; SZ13-NEXT: larl %r1, .LCPI69_3 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, log10@PLT -; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Folded Reload -; SZ13-NEXT: vl %v24, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Reload +; SZ13-NEXT: vl %v24, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v26, %v0, %v1 ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) @@ -3910,10 +3901,10 @@ define <2 x double> @constrained_vector_log2_v2f64() #0 { ; SZ13-NEXT: brasl %r14, log2@PLT ; SZ13-NEXT: larl %r1, .LCPI71_1 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, log2@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v24, %v0, %v1 ; SZ13-NEXT: lmg %r14, %r15, 288(%r15) @@ -3970,18 +3961,18 @@ define <3 x float> @constrained_vector_log2_v3f32() #0 { ; SZ13-NEXT: brasl %r14, log2f@PLT ; SZ13-NEXT: larl %r1, .LCPI72_1 ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: lde %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, log2f@PLT ; SZ13-NEXT: larl %r1, .LCPI72_2 ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: lde %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, log2f@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 ; SZ13-NEXT: vmrhf %v0, %v1, %v0 -; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Reload ; SZ13-NEXT: vrepf %v1, %v1, 0 ; SZ13-NEXT: vmrhg %v24, %v0, %v1 ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) @@ -4042,25 +4033,24 @@ define void @constrained_vector_log2_v3f64(ptr %a) #0 { ; SZ13-NEXT: vl %v0, 0(%r2), 4 ; SZ13-NEXT: ld %f8, 16(%r2) ; SZ13-NEXT: lgr %r13, %r2 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: # kill: def $f0d killed $f0d killed $v0 ; SZ13-NEXT: brasl %r14, log2@PLT ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill -; SZ13-NEXT: vl %v0, 176(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill +; SZ13-NEXT: vl %v0, 176(%r15), 3 # 16-byte Reload ; SZ13-NEXT: vrepg %v0, %v0, 1 ; SZ13-NEXT: # kill: def $f0d killed $f0d killed $v0 ; SZ13-NEXT: brasl %r14, log2@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v0, %v1, %v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ldr %f0, %f8 ; SZ13-NEXT: brasl %r14, log2@PLT -; SZ13-NEXT: std %f0, 16(%r13) -; SZ13-NEXT: vl %v0, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: mvc 0(16,%r13), 160(%r15) # 16-byte Folded Reload ; SZ13-NEXT: ld %f8, 192(%r15) # 8-byte Reload -; SZ13-NEXT: vst %v0, 0(%r13), 4 +; SZ13-NEXT: std %f0, 16(%r13) ; SZ13-NEXT: lmg %r13, %r15, 304(%r15) ; SZ13-NEXT: br %r14 entry: @@ -4126,23 +4116,23 @@ define <4 x double> @constrained_vector_log2_v4f64() #0 { ; SZ13-NEXT: brasl %r14, log2@PLT ; SZ13-NEXT: larl %r1, .LCPI74_1 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, log2@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v0, %v0, %v1 ; SZ13-NEXT: larl %r1, .LCPI74_2 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, log2@PLT ; SZ13-NEXT: larl %r1, .LCPI74_3 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, log2@PLT -; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Folded Reload -; SZ13-NEXT: vl %v24, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Reload +; SZ13-NEXT: vl %v24, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v26, %v0, %v1 ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) @@ -4610,12 +4600,12 @@ define <2 x double> @constrained_vector_maxnum_v2f64() #0 { ; SZ13-NEXT: brasl %r14, fmax@PLT ; SZ13-NEXT: larl %r1, .LCPI86_2 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: larl %r1, .LCPI86_3 ; SZ13-NEXT: ld %f2, 0(%r1) ; SZ13-NEXT: brasl %r14, fmax@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v24, %v0, %v1 ; SZ13-NEXT: lmg %r14, %r15, 288(%r15) @@ -4686,20 +4676,20 @@ define <3 x float> @constrained_vector_maxnum_v3f32() #0 { ; SZ13-NEXT: larl %r1, .LCPI87_2 ; SZ13-NEXT: lde %f2, 0(%r1) ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ldr %f0, %f8 ; SZ13-NEXT: brasl %r14, fmaxf@PLT ; SZ13-NEXT: larl %r1, .LCPI87_3 ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: lde %f0, 0(%r1) ; SZ13-NEXT: larl %r1, .LCPI87_4 ; SZ13-NEXT: lde %f2, 0(%r1) ; SZ13-NEXT: brasl %r14, fmaxf@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 ; SZ13-NEXT: vmrhf %v0, %v1, %v0 -; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Reload ; SZ13-NEXT: ld %f8, 192(%r15) # 8-byte Reload ; SZ13-NEXT: vrepf %v1, %v1, 0 ; SZ13-NEXT: vmrhg %v24, %v0, %v1 @@ -4769,29 +4759,28 @@ define void @constrained_vector_log10_maxnum_v3f64(ptr %a) #0 { ; SZ13-NEXT: ld %f2, 0(%r1) ; SZ13-NEXT: ld %f8, 16(%r2) ; SZ13-NEXT: lgr %r13, %r2 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: # kill: def $f0d killed $f0d killed $v0 ; SZ13-NEXT: brasl %r14, fmax@PLT ; SZ13-NEXT: larl %r1, .LCPI88_1 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill -; SZ13-NEXT: vl %v0, 176(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill +; SZ13-NEXT: vl %v0, 176(%r15), 3 # 16-byte Reload ; SZ13-NEXT: ld %f2, 0(%r1) ; SZ13-NEXT: vrepg %v0, %v0, 1 ; SZ13-NEXT: # kill: def $f0d killed $f0d killed $v0 ; SZ13-NEXT: brasl %r14, fmax@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: larl %r1, .LCPI88_2 ; SZ13-NEXT: ld %f2, 0(%r1) ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v0, %v1, %v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ldr %f0, %f8 ; SZ13-NEXT: brasl %r14, fmax@PLT -; SZ13-NEXT: std %f0, 16(%r13) -; SZ13-NEXT: vl %v0, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: mvc 0(16,%r13), 160(%r15) # 16-byte Folded Reload ; SZ13-NEXT: ld %f8, 192(%r15) # 8-byte Reload -; SZ13-NEXT: vst %v0, 0(%r13), 4 +; SZ13-NEXT: std %f0, 16(%r13) ; SZ13-NEXT: lmg %r13, %r15, 304(%r15) ; SZ13-NEXT: br %r14 entry: @@ -4867,29 +4856,29 @@ define <4 x double> @constrained_vector_maxnum_v4f64() #0 { ; SZ13-NEXT: brasl %r14, fmax@PLT ; SZ13-NEXT: larl %r1, .LCPI89_2 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: larl %r1, .LCPI89_3 ; SZ13-NEXT: ld %f2, 0(%r1) ; SZ13-NEXT: brasl %r14, fmax@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v0, %v0, %v1 ; SZ13-NEXT: larl %r1, .LCPI89_4 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: larl %r1, .LCPI89_5 ; SZ13-NEXT: ld %f2, 0(%r1) ; SZ13-NEXT: brasl %r14, fmax@PLT ; SZ13-NEXT: larl %r1, .LCPI89_6 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: larl %r1, .LCPI89_7 ; SZ13-NEXT: ld %f2, 0(%r1) ; SZ13-NEXT: brasl %r14, fmax@PLT -; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Folded Reload -; SZ13-NEXT: vl %v24, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Reload +; SZ13-NEXT: vl %v24, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v26, %v0, %v1 ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) @@ -4984,12 +4973,12 @@ define <2 x double> @constrained_vector_minnum_v2f64() #0 { ; SZ13-NEXT: brasl %r14, fmin@PLT ; SZ13-NEXT: larl %r1, .LCPI91_2 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: larl %r1, .LCPI91_3 ; SZ13-NEXT: ld %f2, 0(%r1) ; SZ13-NEXT: brasl %r14, fmin@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v24, %v0, %v1 ; SZ13-NEXT: lmg %r14, %r15, 288(%r15) @@ -5060,20 +5049,20 @@ define <3 x float> @constrained_vector_minnum_v3f32() #0 { ; SZ13-NEXT: larl %r1, .LCPI92_2 ; SZ13-NEXT: lde %f2, 0(%r1) ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ldr %f0, %f8 ; SZ13-NEXT: brasl %r14, fminf@PLT ; SZ13-NEXT: larl %r1, .LCPI92_3 ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: lde %f0, 0(%r1) ; SZ13-NEXT: larl %r1, .LCPI92_4 ; SZ13-NEXT: lde %f2, 0(%r1) ; SZ13-NEXT: brasl %r14, fminf@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 ; SZ13-NEXT: vmrhf %v0, %v1, %v0 -; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Reload ; SZ13-NEXT: ld %f8, 192(%r15) # 8-byte Reload ; SZ13-NEXT: vrepf %v1, %v1, 0 ; SZ13-NEXT: vmrhg %v24, %v0, %v1 @@ -5148,28 +5137,27 @@ define void @constrained_vector_minnum_v3f64(ptr %a) #0 { ; SZ13-NEXT: ld %f8, 16(%r2) ; SZ13-NEXT: ldr %f2, %f9 ; SZ13-NEXT: lgr %r13, %r2 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: # kill: def $f0d killed $f0d killed $v0 ; SZ13-NEXT: brasl %r14, fmin@PLT ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill -; SZ13-NEXT: vl %v0, 176(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill +; SZ13-NEXT: vl %v0, 176(%r15), 3 # 16-byte Reload ; SZ13-NEXT: ldr %f2, %f9 ; SZ13-NEXT: vrepg %v0, %v0, 1 ; SZ13-NEXT: # kill: def $f0d killed $f0d killed $v0 ; SZ13-NEXT: brasl %r14, fmin@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v0, %v1, %v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ldr %f0, %f8 ; SZ13-NEXT: ldr %f2, %f9 ; SZ13-NEXT: brasl %r14, fmin@PLT -; SZ13-NEXT: std %f0, 16(%r13) -; SZ13-NEXT: vl %v0, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: mvc 0(16,%r13), 160(%r15) # 16-byte Folded Reload ; SZ13-NEXT: ld %f8, 200(%r15) # 8-byte Reload ; SZ13-NEXT: ld %f9, 192(%r15) # 8-byte Reload -; SZ13-NEXT: vst %v0, 0(%r13), 4 +; SZ13-NEXT: std %f0, 16(%r13) ; SZ13-NEXT: lmg %r13, %r15, 312(%r15) ; SZ13-NEXT: br %r14 entry: @@ -5245,29 +5233,29 @@ define <4 x double> @constrained_vector_minnum_v4f64() #0 { ; SZ13-NEXT: brasl %r14, fmin@PLT ; SZ13-NEXT: larl %r1, .LCPI94_2 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: larl %r1, .LCPI94_3 ; SZ13-NEXT: ld %f2, 0(%r1) ; SZ13-NEXT: brasl %r14, fmin@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v0, %v0, %v1 ; SZ13-NEXT: larl %r1, .LCPI94_4 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: larl %r1, .LCPI94_5 ; SZ13-NEXT: ld %f2, 0(%r1) ; SZ13-NEXT: brasl %r14, fmin@PLT ; SZ13-NEXT: larl %r1, .LCPI94_6 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: larl %r1, .LCPI94_7 ; SZ13-NEXT: ld %f2, 0(%r1) ; SZ13-NEXT: brasl %r14, fmin@PLT -; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Folded Reload -; SZ13-NEXT: vl %v24, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Reload +; SZ13-NEXT: vl %v24, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v26, %v0, %v1 ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) @@ -6465,10 +6453,10 @@ define <2 x double> @constrained_vector_tan_v2f64() #0 { ; SZ13-NEXT: brasl %r14, tan@PLT ; SZ13-NEXT: larl %r1, .LCPI124_1 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, tan@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v24, %v0, %v1 ; SZ13-NEXT: lmg %r14, %r15, 288(%r15) @@ -6525,18 +6513,18 @@ define <3 x float> @constrained_vector_tan_v3f32() #0 { ; SZ13-NEXT: brasl %r14, tanf@PLT ; SZ13-NEXT: larl %r1, .LCPI125_1 ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: lde %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, tanf@PLT ; SZ13-NEXT: larl %r1, .LCPI125_2 ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: lde %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, tanf@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 ; SZ13-NEXT: vmrhf %v0, %v1, %v0 -; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Reload ; SZ13-NEXT: vrepf %v1, %v1, 0 ; SZ13-NEXT: vmrhg %v24, %v0, %v1 ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) @@ -6597,25 +6585,24 @@ define void @constrained_vector_tan_v3f64(ptr %a) #0 { ; SZ13-NEXT: vl %v0, 0(%r2), 4 ; SZ13-NEXT: ld %f8, 16(%r2) ; SZ13-NEXT: lgr %r13, %r2 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: # kill: def $f0d killed $f0d killed $v0 ; SZ13-NEXT: brasl %r14, tan@PLT ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill -; SZ13-NEXT: vl %v0, 176(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill +; SZ13-NEXT: vl %v0, 176(%r15), 3 # 16-byte Reload ; SZ13-NEXT: vrepg %v0, %v0, 1 ; SZ13-NEXT: # kill: def $f0d killed $f0d killed $v0 ; SZ13-NEXT: brasl %r14, tan@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v0, %v1, %v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ldr %f0, %f8 ; SZ13-NEXT: brasl %r14, tan@PLT -; SZ13-NEXT: std %f0, 16(%r13) -; SZ13-NEXT: vl %v0, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: mvc 0(16,%r13), 160(%r15) # 16-byte Folded Reload ; SZ13-NEXT: ld %f8, 192(%r15) # 8-byte Reload -; SZ13-NEXT: vst %v0, 0(%r13), 4 +; SZ13-NEXT: std %f0, 16(%r13) ; SZ13-NEXT: lmg %r13, %r15, 304(%r15) ; SZ13-NEXT: br %r14 entry: @@ -6681,23 +6668,23 @@ define <4 x double> @constrained_vector_tan_v4f64() #0 { ; SZ13-NEXT: brasl %r14, tan@PLT ; SZ13-NEXT: larl %r1, .LCPI127_1 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, tan@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v0, %v0, %v1 ; SZ13-NEXT: larl %r1, .LCPI127_2 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, tan@PLT ; SZ13-NEXT: larl %r1, .LCPI127_3 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: brasl %r14, tan@PLT -; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Folded Reload -; SZ13-NEXT: vl %v24, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Reload +; SZ13-NEXT: vl %v24, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v26, %v0, %v1 ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) @@ -6793,12 +6780,12 @@ define <2 x double> @constrained_vector_atan2_v2f64() #0 { ; SZ13-NEXT: brasl %r14, atan2@PLT ; SZ13-NEXT: larl %r1, .LCPI129_2 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: larl %r1, .LCPI129_3 ; SZ13-NEXT: ld %f2, 0(%r1) ; SZ13-NEXT: brasl %r14, atan2@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v24, %v0, %v1 ; SZ13-NEXT: lmg %r14, %r15, 288(%r15) @@ -6864,22 +6851,22 @@ define <3 x float> @constrained_vector_atan2_v3f32() #0 { ; SZ13-NEXT: brasl %r14, atan2f@PLT ; SZ13-NEXT: larl %r1, .LCPI130_2 ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: lde %f0, 0(%r1) ; SZ13-NEXT: larl %r1, .LCPI130_3 ; SZ13-NEXT: lde %f2, 0(%r1) ; SZ13-NEXT: brasl %r14, atan2f@PLT ; SZ13-NEXT: larl %r1, .LCPI130_4 ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: lde %f0, 0(%r1) ; SZ13-NEXT: larl %r1, .LCPI130_5 ; SZ13-NEXT: lde %f2, 0(%r1) ; SZ13-NEXT: brasl %r14, atan2f@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0s killed $f0s def $v0 ; SZ13-NEXT: vmrhf %v0, %v1, %v0 -; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Reload ; SZ13-NEXT: vrepf %v1, %v1, 0 ; SZ13-NEXT: vmrhg %v24, %v0, %v1 ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) @@ -6956,32 +6943,31 @@ define void @constrained_vector_atan2_v3f64(ptr %a, ptr %b) #0 { ; SZ13-NEXT: ld %f8, 16(%r2) ; SZ13-NEXT: ld %f9, 16(%r3) ; SZ13-NEXT: lgr %r13, %r2 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill -; SZ13-NEXT: vst %v2, 192(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill +; SZ13-NEXT: vst %v2, 192(%r15), 3 # 16-byte Spill ; SZ13-NEXT: # kill: def $f0d killed $f0d killed $v0 ; SZ13-NEXT: # kill: def $f2d killed $f2d killed $v2 ; SZ13-NEXT: brasl %r14, atan2@PLT ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill -; SZ13-NEXT: vl %v0, 176(%r15), 3 # 16-byte Folded Reload -; SZ13-NEXT: vl %v1, 192(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill +; SZ13-NEXT: vl %v0, 176(%r15), 3 # 16-byte Reload +; SZ13-NEXT: vl %v1, 192(%r15), 3 # 16-byte Reload ; SZ13-NEXT: vrepg %v0, %v0, 1 ; SZ13-NEXT: vrepg %v2, %v1, 1 ; SZ13-NEXT: # kill: def $f0d killed $f0d killed $v0 ; SZ13-NEXT: # kill: def $f2d killed $f2d killed $v2 ; SZ13-NEXT: brasl %r14, atan2@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v0, %v1, %v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ldr %f0, %f8 ; SZ13-NEXT: ldr %f2, %f9 ; SZ13-NEXT: brasl %r14, atan2@PLT -; SZ13-NEXT: std %f0, 16(%r13) -; SZ13-NEXT: vl %v0, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: mvc 0(16,%r13), 160(%r15) # 16-byte Folded Reload ; SZ13-NEXT: ld %f8, 216(%r15) # 8-byte Reload ; SZ13-NEXT: ld %f9, 208(%r15) # 8-byte Reload -; SZ13-NEXT: vst %v0, 0(%r13), 4 +; SZ13-NEXT: std %f0, 16(%r13) ; SZ13-NEXT: lmg %r13, %r15, 328(%r15) ; SZ13-NEXT: br %r14 entry: @@ -7059,29 +7045,29 @@ define <4 x double> @constrained_vector_atan2_v4f64() #0 { ; SZ13-NEXT: brasl %r14, atan2@PLT ; SZ13-NEXT: larl %r1, .LCPI132_2 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: larl %r1, .LCPI132_3 ; SZ13-NEXT: ld %f2, 0(%r1) ; SZ13-NEXT: brasl %r14, atan2@PLT -; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v0, %v0, %v1 ; SZ13-NEXT: larl %r1, .LCPI132_4 -; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 160(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: larl %r1, .LCPI132_5 ; SZ13-NEXT: ld %f2, 0(%r1) ; SZ13-NEXT: brasl %r14, atan2@PLT ; SZ13-NEXT: larl %r1, .LCPI132_6 ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 -; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Folded Spill +; SZ13-NEXT: vst %v0, 176(%r15), 3 # 16-byte Spill ; SZ13-NEXT: ld %f0, 0(%r1) ; SZ13-NEXT: larl %r1, .LCPI132_7 ; SZ13-NEXT: ld %f2, 0(%r1) ; SZ13-NEXT: brasl %r14, atan2@PLT -; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Folded Reload -; SZ13-NEXT: vl %v24, 160(%r15), 3 # 16-byte Folded Reload +; SZ13-NEXT: vl %v1, 176(%r15), 3 # 16-byte Reload +; SZ13-NEXT: vl %v24, 160(%r15), 3 # 16-byte Reload ; SZ13-NEXT: # kill: def $f0d killed $f0d def $v0 ; SZ13-NEXT: vmrhg %v26, %v0, %v1 ; SZ13-NEXT: lmg %r14, %r15, 304(%r15) diff --git a/llvm/test/CodeGen/SystemZ/zos-prologue-epilog.ll b/llvm/test/CodeGen/SystemZ/zos-prologue-epilog.ll index 428d9bbe64c53..bdd0660651456 100644 --- a/llvm/test/CodeGen/SystemZ/zos-prologue-epilog.ll +++ b/llvm/test/CodeGen/SystemZ/zos-prologue-epilog.ll @@ -95,14 +95,14 @@ define void @func1(ptr %ptr) { ; CHECK64: std 10,{{[0-9]+}}(4) * 8-byte Spill ; CHECK64: std 9,{{[0-9]+}}(4) * 8-byte Spill ; CHECK64: std 8,{{[0-9]+}}(4) * 8-byte Spill -; CHECK64: vst 23,{{[0-9]+}}(4),4 * 16-byte Folded Spill -; CHECK64: vst 22,{{[0-9]+}}(4),4 * 16-byte Folded Spill -; CHECK64: vst 21,{{[0-9]+}}(4),4 * 16-byte Folded Spill -; CHECK64: vst 20,{{[0-9]+}}(4),4 * 16-byte Folded Spill -; CHECK64: vst 19,{{[0-9]+}}(4),4 * 16-byte Folded Spill -; CHECK64: vst 18,{{[0-9]+}}(4),4 * 16-byte Folded Spill -; CHECK64: vst 17,{{[0-9]+}}(4),4 * 16-byte Folded Spill -; CHECK64: vst 16,{{[0-9]+}}(4),4 * 16-byte Folded Spill +; CHECK64: vst 23,{{[0-9]+}}(4),4 * 16-byte Spill +; CHECK64: vst 22,{{[0-9]+}}(4),4 * 16-byte Spill +; CHECK64: vst 21,{{[0-9]+}}(4),4 * 16-byte Spill +; CHECK64: vst 20,{{[0-9]+}}(4),4 * 16-byte Spill +; CHECK64: vst 19,{{[0-9]+}}(4),4 * 16-byte Spill +; CHECK64: vst 18,{{[0-9]+}}(4),4 * 16-byte Spill +; CHECK64: vst 17,{{[0-9]+}}(4),4 * 16-byte Spill +; CHECK64: vst 16,{{[0-9]+}}(4),4 * 16-byte Spill ; CHECK64: ld 15,{{[0-9]+}}(4) * 8-byte Reload ; CHECK64: ld 14,{{[0-9]+}}(4) * 8-byte Reload @@ -112,14 +112,14 @@ define void @func1(ptr %ptr) { ; CHECK64: ld 10,{{[0-9]+}}(4) * 8-byte Reload ; CHECK64: ld 9,{{[0-9]+}}(4) * 8-byte Reload ; CHECK64: ld 8,{{[0-9]+}}(4) * 8-byte Reload -; CHECK64: vl 23,{{[0-9]+}}(4),4 * 16-byte Folded Reload -; CHECK64: vl 22,{{[0-9]+}}(4),4 * 16-byte Folded Reload -; CHECK64: vl 21,{{[0-9]+}}(4),4 * 16-byte Folded Reload -; CHECK64: vl 20,{{[0-9]+}}(4),4 * 16-byte Folded Reload -; CHECK64: vl 19,{{[0-9]+}}(4),4 * 16-byte Folded Reload -; CHECK64: vl 18,{{[0-9]+}}(4),4 * 16-byte Folded Reload -; CHECK64: vl 17,{{[0-9]+}}(4),4 * 16-byte Folded Reload -; CHECK64: vl 16,{{[0-9]+}}(4),4 * 16-byte Folded Reload +; CHECK64: vl 23,{{[0-9]+}}(4),4 * 16-byte Reload +; CHECK64: vl 22,{{[0-9]+}}(4),4 * 16-byte Reload +; CHECK64: vl 21,{{[0-9]+}}(4),4 * 16-byte Reload +; CHECK64: vl 20,{{[0-9]+}}(4),4 * 16-byte Reload +; CHECK64: vl 19,{{[0-9]+}}(4),4 * 16-byte Reload +; CHECK64: vl 18,{{[0-9]+}}(4),4 * 16-byte Reload +; CHECK64: vl 17,{{[0-9]+}}(4),4 * 16-byte Reload +; CHECK64: vl 16,{{[0-9]+}}(4),4 * 16-byte Reload ; CHECK64: lg 7,2072(4) ; CHECK64: aghi 4,320 ; CHECK64: b 2(7)