aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/llvm/IntrinsicsBlackfin.td17
-rw-r--r--lib/Target/Blackfin/BlackfinInstrInfo.td8
-rw-r--r--test/CodeGen/Blackfin/load-intr.ll13
3 files changed, 1 insertions, 37 deletions
diff --git a/include/llvm/IntrinsicsBlackfin.td b/include/llvm/IntrinsicsBlackfin.td
index 3a4052b..188e18c 100644
--- a/include/llvm/IntrinsicsBlackfin.td
+++ b/include/llvm/IntrinsicsBlackfin.td
@@ -32,20 +32,3 @@ let TargetPrefix = "bfin" in {
Intrinsic<[llvm_void_ty]>;
}
-
-//===----------------------------------------------------------------------===//
-// Miscellaneous GCC-compatible builtins.
-//
-
-let TargetPrefix = "bfin" in {
-
- // Almost identical to ctpop except for the type signature
- def int_bfin_ones : GCCBuiltin<"__builtin_bfin_ones">,
- Intrinsic<[llvm_i16_ty], [llvm_i32_ty], [IntrNoMem]>;
-
- // Load unaligned pointer, ignoring the low bits. Like *(p&~3).
- // This uses the disalignexcpt instruction
- def int_bfin_loadbytes : GCCBuiltin<"__builtin_bfin_loadbytes">,
- Intrinsic<[llvm_i32_ty], [llvm_ptr_ty], [IntrReadArgMem]>;
-
-}
diff --git a/lib/Target/Blackfin/BlackfinInstrInfo.td b/lib/Target/Blackfin/BlackfinInstrInfo.td
index 6faec27..b0a2cc1 100644
--- a/lib/Target/Blackfin/BlackfinInstrInfo.td
+++ b/lib/Target/Blackfin/BlackfinInstrInfo.td
@@ -672,9 +672,8 @@ def NBITTST: F1<(outs JustCC:$cc), (ins D:$src1, uimm5mask:$src2),
def ONES: F2<(outs D16L:$dst), (ins D:$src),
"$dst = ones $src;",
- [(set D16L:$dst, (int_bfin_ones D:$src))]>;
+ [(set D16L:$dst, (trunc (ctpop D:$src)))]>;
-def : Pat<(i16 (trunc (ctpop D:$src))), (ONES D:$src)>;
def : Pat<(ctpop D:$src), (MOVEzext (ONES D:$src))>;
//===----------------------------------------------------------------------===//
@@ -848,11 +847,6 @@ def ALIGN24 : F2<(outs D:$dst), (ins D:$src1, D:$src2),
def DISALGNEXCPT : F2<(outs), (ins), "disalignexcpt;", []>;
-// This is really two instructions in parallel, but we don't support vliw yet
-def DISALGNEXCPT_LOAD : F2<(outs D:$dst), (ins I:$ptr),
- "disalignexcpt \\|\\| $dst = [$ptr];",
- [(set D:$dst, (int_bfin_loadbytes I:$ptr))]>;
-
// TODO: BYTEOP3P, BYTEOP16P, BYTEOP1P, BYTEOP2P, BYTEOP16M, SAA,
// BYTEPACK, BYTEUNPACK
diff --git a/test/CodeGen/Blackfin/load-intr.ll b/test/CodeGen/Blackfin/load-intr.ll
deleted file mode 100644
index 9ef8b97..0000000
--- a/test/CodeGen/Blackfin/load-intr.ll
+++ /dev/null
@@ -1,13 +0,0 @@
-; RUN: llvm-as < %s | llc -march=bfin -verify-machineinstrs | FileCheck %s
-
-define i16 @f(i32* %p) nounwind {
-entry:
- ; CHECK: disalignexcpt || r0 = [i0];
- %b = call i32 @llvm.bfin.loadbytes(i32* %p)
- ; CHECK: r0.l = ones r0;
- %c = call i16 @llvm.bfin.ones(i32 %b)
- ret i16 %c
-}
-
-declare void @llvm.bfin.ones() nounwind
-declare void @llvm.bfin.loadbytes() nounwind