aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2007-12-17 22:33:23 +0000
committerEvan Cheng <evan.cheng@apple.com>2007-12-17 22:33:23 +0000
commit7f05d85f62c2ab4db57c3c042a2a12ef622dd6f5 (patch)
tree0545ada63de4a6fd2f4d2a60a1f5c4206f8abed0 /include
parent438be256033c719b0e782801cea97fe5de4d29b6 (diff)
downloadexternal_llvm-7f05d85f62c2ab4db57c3c042a2a12ef622dd6f5.zip
external_llvm-7f05d85f62c2ab4db57c3c042a2a12ef622dd6f5.tar.gz
external_llvm-7f05d85f62c2ab4db57c3c042a2a12ef622dd6f5.tar.bz2
Bring back int_x86_sse2_movl_dq intrinsic for backward compatibility. Make sure
it's auto-upgraded to a shufflevector instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45131 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/AutoUpgrade.h6
-rw-r--r--include/llvm/IntrinsicsX86.td2
2 files changed, 6 insertions, 2 deletions
diff --git a/include/llvm/AutoUpgrade.h b/include/llvm/AutoUpgrade.h
index e3a32b9..d0d8e95 100644
--- a/include/llvm/AutoUpgrade.h
+++ b/include/llvm/AutoUpgrade.h
@@ -20,8 +20,10 @@ namespace llvm {
class BasicBlock;
/// This is a more granular function that simply checks an intrinsic function
- /// for upgrading, and if it requires upgrading provides the new function.
- Function* UpgradeIntrinsicFunction(Function *F);
+ /// for upgrading, and returns true if it requires upgrading. It may return
+ /// null in NewFn if the all calls to the original intrinsic function
+ /// should be transformed to non-function-call instructions.
+ bool UpgradeIntrinsicFunction(Function *F, Function *&NewFn);
/// This is the complement to the above, replacing a specific call to an
/// intrinsic function with a call to the specified new function.
diff --git a/include/llvm/IntrinsicsX86.td b/include/llvm/IntrinsicsX86.td
index 4a553af..12e7633 100644
--- a/include/llvm/IntrinsicsX86.td
+++ b/include/llvm/IntrinsicsX86.td
@@ -460,6 +460,8 @@ let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
def int_x86_sse2_packuswb_128 : GCCBuiltin<"__builtin_ia32_packuswb128">,
Intrinsic<[llvm_v8i16_ty, llvm_v8i16_ty,
llvm_v8i16_ty], [IntrNoMem]>;
+ def int_x86_sse2_movl_dq : GCCBuiltin<"__builtin_ia32_movqv4si">,
+ Intrinsic<[llvm_v4i32_ty, llvm_v4i32_ty], [IntrNoMem]>;
def int_x86_sse2_movmsk_pd : GCCBuiltin<"__builtin_ia32_movmskpd">,
Intrinsic<[llvm_i32_ty, llvm_v2f64_ty], [IntrNoMem]>;
def int_x86_sse2_pmovmskb_128 : GCCBuiltin<"__builtin_ia32_pmovmskb128">,