aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2006-12-05 17:57:23 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2006-12-05 17:57:23 +0000
commit97815c6b9c789ba741106d300f94f0c10ba6d978 (patch)
tree4f044251c1c19be95245065a108dc304d0269c55
parent875fd8fd10172655921aa2e6b6aceb131b04d530 (diff)
downloadexternal_llvm-97815c6b9c789ba741106d300f94f0c10ba6d978.zip
external_llvm-97815c6b9c789ba741106d300f94f0c10ba6d978.tar.gz
external_llvm-97815c6b9c789ba741106d300f94f0c10ba6d978.tar.bz2
expand memmove and memcpy
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32226 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/ARM/ARMISelDAGToDAG.cpp2
-rw-r--r--test/CodeGen/ARM/memfunc.ll13
2 files changed, 15 insertions, 0 deletions
diff --git a/lib/Target/ARM/ARMISelDAGToDAG.cpp b/lib/Target/ARM/ARMISelDAGToDAG.cpp
index 7f5e35a..cf02b8b 100644
--- a/lib/Target/ARM/ARMISelDAGToDAG.cpp
+++ b/lib/Target/ARM/ARMISelDAGToDAG.cpp
@@ -75,7 +75,9 @@ ARMTargetLowering::ARMTargetLowering(TargetMachine &TM)
setOperationAction(ISD::SELECT_CC, MVT::i32, Custom);
+ setOperationAction(ISD::MEMMOVE, MVT::Other, Expand);
setOperationAction(ISD::MEMSET, MVT::Other, Expand);
+ setOperationAction(ISD::MEMCPY, MVT::Other, Expand);
setOperationAction(ISD::BR_JT, MVT::Other, Expand);
setOperationAction(ISD::BRIND, MVT::Other, Expand);
diff --git a/test/CodeGen/ARM/memfunc.ll b/test/CodeGen/ARM/memfunc.ll
new file mode 100644
index 0000000..1b41010
--- /dev/null
+++ b/test/CodeGen/ARM/memfunc.ll
@@ -0,0 +1,13 @@
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm
+
+void %f() {
+entry:
+ call void %llvm.memmove.i32( sbyte* null, sbyte* null, uint 64, uint 0 )
+ call void %llvm.memcpy.i32( sbyte* null, sbyte* null, uint 64, uint 0 )
+ call void %llvm.memset.i32( sbyte* null, ubyte 64, uint 0, uint 0 )
+ unreachable
+}
+
+declare void %llvm.memmove.i32(sbyte*, sbyte*, uint, uint)
+declare void %llvm.memcpy.i32(sbyte*, sbyte*, uint, uint)
+declare void %llvm.memset.i32(sbyte*, ubyte, uint, uint)