[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / SystemZ / frameaddr-01.ll
blob4dfdf308e8a63541238bd1c6bcb229732057d35e
1 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
3 ; The current function's frame address is the address of
4 ; the optional back chain slot.
5 define i8* @fp0() nounwind {
6 entry:
7 ; CHECK-LABEL: fp0:
8 ; CHECK: la   %r2, 0(%r15)
9 ; CHECK: br   %r14
10   %0 = tail call i8* @llvm.frameaddress(i32 0)
11   ret i8* %0
14 ; Check that the frame address is correct in a presence
15 ; of a stack frame.
16 define i8* @fp0f() nounwind {
17 entry:
18 ; CHECK-LABEL: fp0f:
19 ; CHECK: aghi %r15, -168
20 ; CHECK: la   %r2, 168(%r15)
21 ; CHECK: aghi %r15, 168
22 ; CHECK: br   %r14
23   %0 = alloca i64, align 8
24   %1 = tail call i8* @llvm.frameaddress(i32 0)
25   ret i8* %1
28 declare i8* @llvm.frameaddress(i32) nounwind readnone