summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2014-12-16 22:30:10 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2014-12-16 22:30:10 +0000
commitbf1e0790054b49ad67b78468a8e201bb511982bb (patch)
tree331af2463983fa562653c9a445b908286799b3e7 /llvm/test
parent9573a9cf9d1728975ac8a0791bd75f32f8cae4e0 (diff)
downloadbcm5719-llvm-bf1e0790054b49ad67b78468a8e201bb511982bb.tar.gz
bcm5719-llvm-bf1e0790054b49ad67b78468a8e201bb511982bb.zip
[X86][SSE] Vector double -> float conversion memory folding (cvtpd2ps)
Added a missing memory folding relationship for the (V)CVTPD2PS instruction - we can safely fold these for stack reloads. Differential Revision: http://reviews.llvm.org/D6663 llvm-svn: 224383
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/CodeGen/X86/avx1-stack-reload-folding.ll15
1 files changed, 15 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/avx1-stack-reload-folding.ll b/llvm/test/CodeGen/X86/avx1-stack-reload-folding.ll
index 2e669b0fe12..480e3dd6306 100644
--- a/llvm/test/CodeGen/X86/avx1-stack-reload-folding.ll
+++ b/llvm/test/CodeGen/X86/avx1-stack-reload-folding.ll
@@ -37,6 +37,21 @@ define void @stack_fold_cvtdq2ps(<128 x i32>* %a, <128 x i32>* %b, <128 x float>
ret void
}
+define void @stack_fold_cvtpd2ps(<128 x double>* %a, <128 x double>* %b, <128 x float>* %c) {
+ ;CHECK-LABEL: stack_fold_cvtpd2ps
+ ;CHECK: vcvtpd2psy {{[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 32-byte Folded Reload
+
+ %1 = load <128 x double>* %a
+ %2 = load <128 x double>* %b
+ %3 = fadd <128 x double> %1, %2
+ %4 = fsub <128 x double> %1, %2
+ %5 = fptrunc <128 x double> %3 to <128 x float>
+ %6 = fptrunc <128 x double> %4 to <128 x float>
+ %7 = fadd <128 x float> %5, %6
+ store <128 x float> %7, <128 x float>* %c
+ ret void
+}
+
define void @stack_fold_cvttpd2dq(<64 x double>* %a, <64 x double>* %b, <64 x i32>* %c) #0 {
;CHECK-LABEL: stack_fold_cvttpd2dq
;CHECK: vcvttpd2dqy {{[0-9]*}}(%rsp), {{%xmm[0-9][0-9]*}} {{.*#+}} 32-byte Folded Reload
OpenPOWER on IntegriCloud