summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/X86/cvtv2f32.ll
diff options
context:
space:
mode:
authorMichael Liao <michael.liao@intel.com>2012-10-24 04:14:18 +0000
committerMichael Liao <michael.liao@intel.com>2012-10-24 04:14:18 +0000
commit5922979e497715bb28f4787f51f8984d504421ce (patch)
treea6c5a39da0d1ec8c1657f71d02c04da7ee0a85f8 /llvm/test/CodeGen/X86/cvtv2f32.ll
parentc5af149e707d7021b26490c84776da1c125fdc23 (diff)
downloadbcm5719-llvm-5922979e497715bb28f4787f51f8984d504421ce.tar.gz
bcm5719-llvm-5922979e497715bb28f4787f51f8984d504421ce.zip
Teach DAG combine to fold (buildvec (Xint2fp x)) to (Xint2fp (buildvec x))
- If more than 1 elemennts are defined and target supports the vectorized conversion, use the vectorized one instead to reduce the strength on conversion operation. llvm-svn: 166546
Diffstat (limited to 'llvm/test/CodeGen/X86/cvtv2f32.ll')
-rw-r--r--llvm/test/CodeGen/X86/cvtv2f32.ll14
1 files changed, 14 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/cvtv2f32.ll b/llvm/test/CodeGen/X86/cvtv2f32.ll
index 5a27a489105..466b0960678 100644
--- a/llvm/test/CodeGen/X86/cvtv2f32.ll
+++ b/llvm/test/CodeGen/X86/cvtv2f32.ll
@@ -1,5 +1,19 @@
; RUN: llc < %s -mtriple=i686-linux-pc -mcpu=corei7 | FileCheck %s
+define <2 x float> @foo(i32 %x, i32 %y, <2 x float> %v) {
+ %t1 = uitofp i32 %x to float
+ %t2 = insertelement <2 x float> undef, float %t1, i32 0
+ %t3 = uitofp i32 %y to float
+ %t4 = insertelement <2 x float> %t2, float %t3, i32 1
+ %t5 = fmul <2 x float> %v, %t4
+ ret <2 x float> %t5
+; CHECK: foo
+; CHECK: or
+; CHECK: subpd
+; CHECK: cvtpd2ps
+; CHECK: ret
+}
+
define <2 x float> @bar(<2 x i32> %in) {
%r = uitofp <2 x i32> %in to <2 x float>
ret <2 x float> %r
OpenPOWER on IntegriCloud