diff options
author | Richard Sandiford <rsandifo@linux.vnet.ibm.com> | 2013-06-27 09:42:10 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@linux.vnet.ibm.com> | 2013-06-27 09:42:10 +0000 |
commit | 7d884e4636fcd9572c5a00aec9bfcb97a0244172 (patch) | |
tree | 0599e107b1d9e950fdd5aad3845967054e86b154 /test/CodeGen/SystemZ/la-01.ll | |
parent | a6e12b575676875d9ff8f3c01e0cd44ab1210d3a (diff) | |
download | external_llvm-7d884e4636fcd9572c5a00aec9bfcb97a0244172.zip external_llvm-7d884e4636fcd9572c5a00aec9bfcb97a0244172.tar.gz external_llvm-7d884e4636fcd9572c5a00aec9bfcb97a0244172.tar.bz2 |
[SystemZ] Allow LA and LARL to be rematerialized
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185069 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/SystemZ/la-01.ll')
-rw-r--r-- | test/CodeGen/SystemZ/la-01.ll | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/test/CodeGen/SystemZ/la-01.ll b/test/CodeGen/SystemZ/la-01.ll index b43e3f8..1ebe109 100644 --- a/test/CodeGen/SystemZ/la-01.ll +++ b/test/CodeGen/SystemZ/la-01.ll @@ -15,6 +15,8 @@ define void @df() { ret void } +declare void @foo(i32 *) + ; Test a load of a fully-aligned external variable. define i32 *@f1() { ; CHECK: f1: @@ -78,3 +80,16 @@ define void() *@f8() { ; CHECK-NEXT: br %r14 ret void() *@df } + +; Test that LARL can be rematerialized. +define i32 @f9() { +; CHECK: f9: +; CHECK: larl %r2, d2 +; CHECK: brasl %r14, foo@PLT +; CHECK: larl %r2, d2 +; CHECK: brasl %r14, foo@PLT +; CHECK: br %r14 + call void @foo(i32 *@d2) + call void @foo(i32 *@d2) + ret i32 0 +} |