[llvm-branch-commits] [llvm-gcc-branch] r99926 - in /llvm-gcc-4.2/branches/Apple/Morbo: ./ gcc/config/i386/llvm-i386.cpp gcc/llvm-convert.cpp
Eric Christopher
echristo at apple.com
Tue Mar 30 13:45:57 PDT 2010
Author: echristo
Date: Tue Mar 30 15:45:57 2010
New Revision: 99926
URL: http://llvm.org/viewvc/llvm-project?rev=99926&view=rev
Log:
Merge patches 99592 and 99593 from mainline.
Rest of fix for rdar://7661702
Modified:
llvm-gcc-4.2/branches/Apple/Morbo/ (props changed)
llvm-gcc-4.2/branches/Apple/Morbo/gcc/config/i386/llvm-i386.cpp
llvm-gcc-4.2/branches/Apple/Morbo/gcc/llvm-convert.cpp
Propchange: llvm-gcc-4.2/branches/Apple/Morbo/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Mar 30 15:45:57 2010
@@ -1 +1 @@
-/llvm-gcc-4.2/trunk:98728,98841,98893,99305
+/llvm-gcc-4.2/trunk:98728,98841,98893,99305,99592-99593
Modified: llvm-gcc-4.2/branches/Apple/Morbo/gcc/config/i386/llvm-i386.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/branches/Apple/Morbo/gcc/config/i386/llvm-i386.cpp?rev=99926&r1=99925&r2=99926&view=diff
==============================================================================
--- llvm-gcc-4.2/branches/Apple/Morbo/gcc/config/i386/llvm-i386.cpp (original)
+++ llvm-gcc-4.2/branches/Apple/Morbo/gcc/config/i386/llvm-i386.cpp Tue Mar 30 15:45:57 2010
@@ -80,6 +80,7 @@
case IX86_BUILTIN_MULPD:
case IX86_BUILTIN_PMULLW:
case IX86_BUILTIN_PMULLW128:
+ case IX86_BUILTIN_PMULLD128:
Result = Builder.CreateMul(Ops[0], Ops[1]);
return true;
case IX86_BUILTIN_DIVPS:
Modified: llvm-gcc-4.2/branches/Apple/Morbo/gcc/llvm-convert.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/branches/Apple/Morbo/gcc/llvm-convert.cpp?rev=99926&r1=99925&r2=99926&view=diff
==============================================================================
--- llvm-gcc-4.2/branches/Apple/Morbo/gcc/llvm-convert.cpp (original)
+++ llvm-gcc-4.2/branches/Apple/Morbo/gcc/llvm-convert.cpp Tue Mar 30 15:45:57 2010
@@ -4918,8 +4918,7 @@
// ... Builtin Function Expansion ...
//===----------------------------------------------------------------------===//
-/// EmitFrontendExpandedBuiltinCall - For MD builtins that do not have a
-/// directly corresponding LLVM intrinsic, we allow the target to do some amount
+/// EmitFrontendExpandedBuiltinCall - We allow the target to do some amount
/// of lowering. This allows us to avoid having intrinsics for operations that
/// directly correspond to LLVM constructs.
///
@@ -5075,14 +5074,17 @@
#ifdef LLVM_TARGET_INTRINSIC_PREFIX
TargetPrefix = LLVM_TARGET_INTRINSIC_PREFIX;
#endif
+ // If the backend has some special code to lower, go ahead and try to
+ // do that first.
+ if (EmitFrontendExpandedBuiltinCall(exp, fndecl, DestLoc, Result))
+ return true;
+
// If this builtin directly corresponds to an LLVM intrinsic, get the
// IntrinsicID now.
const char *BuiltinName = IDENTIFIER_POINTER(DECL_NAME(fndecl));
Intrinsic::ID IntrinsicID =
Intrinsic::getIntrinsicForGCCBuiltin(TargetPrefix, BuiltinName);
if (IntrinsicID == Intrinsic::not_intrinsic) {
- if (EmitFrontendExpandedBuiltinCall(exp, fndecl, DestLoc, Result))
- return true;
error("%Hunsupported target builtin %<%s%> used", &EXPR_LOCATION(exp),
BuiltinName);
More information about the llvm-branch-commits
mailing list