diff options
author | Dan Gohman <gohman@apple.com> | 2007-07-05 20:12:34 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2007-07-05 20:12:34 +0000 |
commit | 6183f78cf8c6f56cc436f19120acf2a7856cb9db (patch) | |
tree | 236171724a02205f960ae4b8c4aa6a8bfaf05379 /test/CodeGen | |
parent | 1bfb8b7333f2656c25aac4399a487d9a1ca986bf (diff) | |
download | external_llvm-6183f78cf8c6f56cc436f19120acf2a7856cb9db.zip external_llvm-6183f78cf8c6f56cc436f19120acf2a7856cb9db.tar.gz external_llvm-6183f78cf8c6f56cc436f19120acf2a7856cb9db.tar.bz2 |
Add a parameter to getCopyToParts and getCopyFromParts to specify whether
endian swapping should be done, and update the code to use it. This fixes
some register ordering issues on big-endian systems, such as PowerPC,
introduced by the recent illegal by-val arguments changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37921 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen')
-rw-r--r-- | test/CodeGen/PowerPC/big-endian-actual-args.ll | 7 | ||||
-rw-r--r-- | test/CodeGen/PowerPC/big-endian-formal-args.ll | 11 |
2 files changed, 18 insertions, 0 deletions
diff --git a/test/CodeGen/PowerPC/big-endian-actual-args.ll b/test/CodeGen/PowerPC/big-endian-actual-args.ll new file mode 100644 index 0000000..1a31b9e --- /dev/null +++ b/test/CodeGen/PowerPC/big-endian-actual-args.ll @@ -0,0 +1,7 @@ +; RUN: llvm-as < %s | llc -march=ppc32 | grep {addc 4, 4, 6} +; RUN: llvm-as < %s | llc -march=ppc32 | grep {adde 3, 3, 5} + +define i64 @foo(i64 %x, i64 %y) { + %z = add i64 %x, %y + ret i64 %z +} diff --git a/test/CodeGen/PowerPC/big-endian-formal-args.ll b/test/CodeGen/PowerPC/big-endian-formal-args.ll new file mode 100644 index 0000000..1e19f5f --- /dev/null +++ b/test/CodeGen/PowerPC/big-endian-formal-args.ll @@ -0,0 +1,11 @@ +; RUN: llvm-as < %s | llc -march=ppc32 | grep {li 6, 3} +; RUN: llvm-as < %s | llc -march=ppc32 | grep {li 4, 2} +; RUN: llvm-as < %s | llc -march=ppc32 | grep {li 3, 0} +; RUN: llvm-as < %s | llc -march=ppc32 | grep {mr 5, 3} + +declare void @bar(i64 %x, i64 %y) + +define void @foo() { + call void @bar(i64 2, i64 3) + ret void +} |