summaryrefslogtreecommitdiffstats
path: root/llvm/include
diff options
context:
space:
mode:
authorScott Michel <scottm@aero.org>2008-02-23 18:41:37 +0000
committerScott Michel <scottm@aero.org>2008-02-23 18:41:37 +0000
commit7d5eaec6dd0141c96724e1a370c4cf010c4e5e97 (patch)
tree3e9be8a070444bcb9f335ae71969b1c31bb0adfe /llvm/include
parentaae582ba9967a1b51c28b6b64c2dc79fe909e44d (diff)
downloadbcm5719-llvm-7d5eaec6dd0141c96724e1a370c4cf010c4e5e97.tar.gz
bcm5719-llvm-7d5eaec6dd0141c96724e1a370c4cf010c4e5e97.zip
Merge current work back to tree to minimize diffs and drift. Major highlights
for CellSPU modifications: - SPUInstrInfo.td refactoring: "multiclass" really is _your_ friend. - Other improvements based on refactoring effort in SPUISelLowering.cpp, esp. in SPUISelLowering::PerformDAGCombine(), where zero amount shifts and rotates are now eliminiated, other scalar-to-vector-to-scalar silliness is also eliminated. - 64-bit operations are being implemented, _muldi3.c gcc runtime now compiles and generates the right code. More work still needs to be done. llvm-svn: 47532
Diffstat (limited to 'llvm/include')
-rw-r--r--llvm/include/llvm/IntrinsicsCellSPU.td15
1 files changed, 13 insertions, 2 deletions
diff --git a/llvm/include/llvm/IntrinsicsCellSPU.td b/llvm/include/llvm/IntrinsicsCellSPU.td
index 7030278708e..dde5aff2fe0 100644
--- a/llvm/include/llvm/IntrinsicsCellSPU.td
+++ b/llvm/include/llvm/IntrinsicsCellSPU.td
@@ -20,6 +20,9 @@
def cell_i7_ty: LLVMType<i8>;
def cell_i8_ty: LLVMType<i8>;
+// Keep this here until it's actually supported:
+def llvm_i128_ty : LLVMType<i128>;
+
class v16i8_u7imm<string builtin_suffix> :
GCCBuiltin<!strconcat("__builtin_si_", builtin_suffix)>,
Intrinsic<[llvm_v16i8_ty, llvm_v16i8_ty, cell_i7_ty],
@@ -158,9 +161,17 @@ let TargetPrefix = "spu" in {
[IntrNoMem]>;
def int_spu_si_shli: v4i32_u7imm<"shli">;
- def int_spu_si_shlqbi: v16i8_rr<"shlqbi">;
+
+ def int_spu_si_shlqbi:
+ GCCBuiltin<!strconcat("__builtin_si_", "shlqbi")>,
+ Intrinsic<[llvm_v8i16_ty, llvm_v8i16_ty, llvm_i32_ty],
+ [IntrNoMem]>;
+
def int_spu_si_shlqbii: v16i8_u7imm<"shlqbii">;
- def int_spu_si_shlqby: v16i8_rr<"shlqby">;
+ def int_spu_si_shlqby:
+ GCCBuiltin<!strconcat("__builtin_si_", "shlqby")>,
+ Intrinsic<[llvm_v8i16_ty, llvm_v8i16_ty, llvm_i32_ty],
+ [IntrNoMem]>;
def int_spu_si_shlqbyi: v16i8_u7imm<"shlqbyi">;
def int_spu_si_ceq: v4i32_rr<"ceq">;
OpenPOWER on IntegriCloud