[llvm-commits] [llvm] r168240 - in /llvm/trunk: lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp lib/Target/ARM/ARMISelLowering.cpp test/CodeGen/ARM/neon_fpconv.ll

Eli Friedman eli.friedman at gmail.com
Fri Nov 16 17:52:46 PST 2012


Author: efriedma
Date: Fri Nov 16 19:52:46 2012
New Revision: 168240

URL: http://llvm.org/viewvc/llvm-project?rev=168240&view=rev
Log:
Mark FP_EXTEND form v2f32 to v2f64 as "expand" for ARM NEON.  Patch by Pete Couperus.


Modified:
    llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
    llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp
    llvm/trunk/test/CodeGen/ARM/neon_fpconv.ll

Modified: llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp?rev=168240&r1=168239&r2=168240&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp (original)
+++ llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp Fri Nov 16 19:52:46 2012
@@ -222,6 +222,7 @@
   case ISD::FNEARBYINT:
   case ISD::FFLOOR:
   case ISD::FP_ROUND:
+  case ISD::FP_EXTEND:
   case ISD::FMA:
   case ISD::SIGN_EXTEND_INREG:
     QueryType = Node->getValueType(0);

Modified: llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp?rev=168240&r1=168239&r2=168240&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp (original)
+++ llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp Fri Nov 16 19:52:46 2012
@@ -544,6 +544,7 @@
     setOperationAction(ISD::FP_TO_SINT, MVT::v4i16, Custom);
 
     setOperationAction(ISD::FP_ROUND,   MVT::v2f32, Expand);
+    setOperationAction(ISD::FP_EXTEND,  MVT::v2f64, Expand);
 
     setTargetDAGCombine(ISD::INTRINSIC_VOID);
     setTargetDAGCombine(ISD::INTRINSIC_W_CHAIN);

Modified: llvm/trunk/test/CodeGen/ARM/neon_fpconv.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/neon_fpconv.ll?rev=168240&r1=168239&r2=168240&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/ARM/neon_fpconv.ll (original)
+++ llvm/trunk/test/CodeGen/ARM/neon_fpconv.ll Fri Nov 16 19:52:46 2012
@@ -7,3 +7,11 @@
   %vt = fptrunc <2 x double> %a to <2 x float>
   ret <2 x float> %vt
 }
+
+define <2 x double> @vextend(<2 x float> %a) {
+; CHECK: vcvt.f64.f32 [[D0:d[0-9]+]], [[S0:s[0-9]+]]
+; CHECK: vcvt.f64.f32 [[D1:d[0-9]+]], [[S1:s[0-9]+]]
+  %ve = fpext <2 x float> %a to <2 x double>
+  ret <2 x double> %ve
+}
+





More information about the llvm-commits mailing list