[llvm-commits] CVS: llvm/test/Regression/CBackend/2004-02-15-PreexistingExternals.llx
Chris Lattner
lattner at cs.uiuc.edu
Sun Feb 15 16:15:01 PST 2004
Changes in directory llvm/test/Regression/CBackend:
2004-02-15-PreexistingExternals.llx added (r1.1)
---
Log message:
New testcase
---
Diffs of the changes: (+16 -0)
Index: llvm/test/Regression/CBackend/2004-02-15-PreexistingExternals.llx
diff -c /dev/null llvm/test/Regression/CBackend/2004-02-15-PreexistingExternals.llx:1.1
*** /dev/null Sun Feb 15 16:14:57 2004
--- llvm/test/Regression/CBackend/2004-02-15-PreexistingExternals.llx Sun Feb 15 16:14:46 2004
***************
*** 0 ****
--- 1,16 ----
+ ; The intrinsic lowering pass was lowering intrinsics like llvm.memcpy to
+ ; explicitly specified prototypes, inserting a new function if the old one
+ ; didn't exist. This caused there to be two external memcpy functions in
+ ; this testcase for example, which caused the CBE to mangle one, screwing
+ ; everything up. :( Test that this does not happen anymore.
+ ;
+ ; RUN: llvm-as < %s | llc -march=c | not grep _memcpy
+
+ declare void %llvm.memcpy(sbyte*, sbyte*, uint,uint)
+ declare float* %memcpy(int*, uint,int)
+
+ int %test(sbyte *%A, sbyte* %B, int* %C) {
+ call float* %memcpy(int* %C, uint 4, int 17)
+ call void %llvm.memcpy(sbyte* %A, sbyte* %B, uint 123, uint 14)
+ ret int 7
+ }
More information about the llvm-commits
mailing list