xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/ret-addr.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -disable-fp-elim -march=x86 | not grep xor
2*9880d681SAndroid Build Coastguard Worker; RUN: llc < %s -disable-fp-elim -march=x86-64 | not grep xor
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Workerdefine i8* @h() nounwind readnone optsize {
5*9880d681SAndroid Build Coastguard Workerentry:
6*9880d681SAndroid Build Coastguard Worker	%0 = tail call i8* @llvm.returnaddress(i32 2)		; <i8*> [#uses=1]
7*9880d681SAndroid Build Coastguard Worker	ret i8* %0
8*9880d681SAndroid Build Coastguard Worker}
9*9880d681SAndroid Build Coastguard Worker
10*9880d681SAndroid Build Coastguard Workerdeclare i8* @llvm.returnaddress(i32) nounwind readnone
11*9880d681SAndroid Build Coastguard Worker
12*9880d681SAndroid Build Coastguard Workerdefine i8* @g() nounwind readnone optsize {
13*9880d681SAndroid Build Coastguard Workerentry:
14*9880d681SAndroid Build Coastguard Worker	%0 = tail call i8* @llvm.returnaddress(i32 1)		; <i8*> [#uses=1]
15*9880d681SAndroid Build Coastguard Worker	ret i8* %0
16*9880d681SAndroid Build Coastguard Worker}
17*9880d681SAndroid Build Coastguard Worker
18*9880d681SAndroid Build Coastguard Workerdefine i8* @f() nounwind readnone optsize {
19*9880d681SAndroid Build Coastguard Workerentry:
20*9880d681SAndroid Build Coastguard Worker	%0 = tail call i8* @llvm.returnaddress(i32 0)		; <i8*> [#uses=1]
21*9880d681SAndroid Build Coastguard Worker	ret i8* %0
22*9880d681SAndroid Build Coastguard Worker}
23