summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/X86/addr-of-ret-addr.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/CodeGen/X86/addr-of-ret-addr.ll')
-rw-r--r--llvm/test/CodeGen/X86/addr-of-ret-addr.ll19
1 files changed, 19 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/addr-of-ret-addr.ll b/llvm/test/CodeGen/X86/addr-of-ret-addr.ll
new file mode 100644
index 00000000000..0d4a3e38fc6
--- /dev/null
+++ b/llvm/test/CodeGen/X86/addr-of-ret-addr.ll
@@ -0,0 +1,19 @@
+; RUN: llc < %s -disable-fp-elim -march=x86 | FileCheck %s --check-prefix=CHECK-X86
+; RUN: llc < %s -disable-fp-elim -march=x86-64 | FileCheck %s --check-prefix=CHECK-X64
+
+define i8* @f() nounwind readnone optsize {
+entry:
+ %0 = tail call i8* @llvm.addressofreturnaddress() ; <i8*> [#uses=1]
+ ret i8* %0
+ ; CHECK-X86-LABEL: _f:
+ ; CHECK-X86: pushl %ebp
+ ; CHECK-X86: movl %esp, %ebp
+ ; CHECK-X86: leal 4(%ebp), %eax
+
+ ; CHECK-X64-LABEL: f:
+ ; CHECK-X64: pushq %rbp
+ ; CHECK-X64: movq %rsp, %rbp
+ ; CHECK-X64: leaq 8(%rbp), %rax
+}
+
+declare i8* @llvm.addressofreturnaddress() nounwind readnone
OpenPOWER on IntegriCloud