diff options
| author | Scott Michel <scottm@aero.org> | 2008-02-23 18:41:37 +0000 |
|---|---|---|
| committer | Scott Michel <scottm@aero.org> | 2008-02-23 18:41:37 +0000 |
| commit | 7d5eaec6dd0141c96724e1a370c4cf010c4e5e97 (patch) | |
| tree | 3e9be8a070444bcb9f335ae71969b1c31bb0adfe /llvm/include | |
| parent | aae582ba9967a1b51c28b6b64c2dc79fe909e44d (diff) | |
| download | bcm5719-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.td | 15 |
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">; |

