From 1a5cc710ee78bf55c3799b49c6fd37619d2dbb7b Mon Sep 17 00:00:00 2001 From: Michael Liao Date: Wed, 24 Oct 2012 04:14:18 +0000 Subject: 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166546 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/CodeGen/X86/cvtv2f32.ll | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'test/CodeGen') diff --git a/test/CodeGen/X86/cvtv2f32.ll b/test/CodeGen/X86/cvtv2f32.ll index 5a27a48910..466b096067 100644 --- a/test/CodeGen/X86/cvtv2f32.ll +++ b/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 -- cgit v1.2.3-70-g09d2