diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2009-08-02 21:49:05 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2009-08-02 21:49:05 +0000 |
commit | 5741c61864ff6092e600a71a93f23ba45b20ed36 (patch) | |
tree | 2ebeae1d9be6583afb05eef5c78fccd803af40e8 /test/CodeGen/Blackfin | |
parent | bfd1696a72cabc0f2fe757a51997b839d8ce7355 (diff) | |
download | external_llvm-5741c61864ff6092e600a71a93f23ba45b20ed36.zip external_llvm-5741c61864ff6092e600a71a93f23ba45b20ed36.tar.gz external_llvm-5741c61864ff6092e600a71a93f23ba45b20ed36.tar.bz2 |
Remove unneeded intrinsics from Blackfin backend.
__builtin_bfin_ones does the same as ctpop, so it can be implemented in the front-end.
__builtin_bfin_loadbytes loads from an unaligned pointer with the disalignexcpt instruction. It does the same as loading from a pointer with the low bits masked. It is better if the front-end creates a masked load. We can always instruction select the masked to disalignexcpt+load.
We keep csync/ssync/idle. These intrinsics represent instructions that need workarounds for some silicon revisions. We may even want to convert inline assembler to intrinsics to enable the workarounds.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77917 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/Blackfin')
-rw-r--r-- | test/CodeGen/Blackfin/load-intr.ll | 13 |
1 files changed, 0 insertions, 13 deletions
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 |