[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