xref: /llvm-project/llvm/test/CodeGen/X86/clobber_frame_ptr2.ll (revision edbd9d10bfb2c716fd8c38133f4a20ca7138fc90)
1; RUN: not llc -mtriple=x86_64-pc-linux -stackrealign -verify-machineinstrs %s -o - 2>&1 | FileCheck %s
2
3declare cc 11 i64 @hipe2(i64, i64, i64, i64, i64, i64, i64)
4
5; Test with many arguments, so some of them are passed from stack. The spilling
6; of rbp should not disturb stack arguments.
7; fixme: current generated code is wrong because rbp is used to load passed in
8;        argument after rbp is assigned argument for function call, it is caused
9;        by x86-cf-opt.
10
11; CHECK: <unknown>:0: error: Interference usage of base pointer/frame pointer.
12; CHECK: <unknown>:0: error: Interference usage of base pointer/frame pointer.
13define i64 @test3(i64 %a0, i64 %a1, i64 %a2, i64 %a3, i64 %a4, i64 %a5, i64 %a6, i64 %a7) {
14  %x = call cc 11 i64 @hipe2(i64 %a0, i64 %a1, i64 %a2, i64 %a3, i64 %a4, i64 %a5, i64 %a6, i64 %a7)
15  ret i64 %x
16}
17