expand memmove and memcpy
authorRafael Espindola <rafael.espindola@gmail.com>
Tue, 5 Dec 2006 17:57:23 +0000 (17:57 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Tue, 5 Dec 2006 17:57:23 +0000 (17:57 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32226 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMISelDAGToDAG.cpp
test/CodeGen/ARM/memfunc.ll [new file with mode: 0644]

index 7f5e35a99374c2c2efda3a6408c1b2e9c1207ebc..cf02b8b3e4a0cf2be61c9598a4e7fa20bfedb59c 100644 (file)
@@ -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 (file)
index 0000000..1b41010
--- /dev/null
@@ -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)