xref: /llvm-project/llvm/test/Transforms/GlobalOpt/coldcc_stress_test.ll (revision d586bd5ca231a6022f439d4c6e43cfeeb53eb1d6)
1; RUN: opt < %s -passes=globalopt -S -enable-coldcc-stress-test -mtriple=powerpc64le-unknown-linux-gnu | FileCheck %s -check-prefix=COLDCC
2; RUN: opt < %s -passes=globalopt -S | FileCheck %s -check-prefix=CHECK
3
4define internal i32 @callee_default(ptr %m) {
5; COLDCC-LABEL: define internal coldcc i32 @callee_default
6; CHECK-LABEL: define internal fastcc i32 @callee_default
7  %v = load i32, ptr %m
8  ret i32 %v
9}
10
11define internal fastcc i32 @callee_fastcc(ptr %m) {
12; COLDCC-LABEL: define internal fastcc i32 @callee_fastcc
13; CHECK-LABEL: define internal fastcc i32 @callee_fastcc
14  %v = load i32, ptr %m
15  ret i32 %v
16}
17
18define internal coldcc i32 @callee_coldcc(ptr %m) {
19; COLDCC-LABEL: define internal coldcc i32 @callee_coldcc
20; CHECK-LABEL: define internal coldcc i32 @callee_coldcc
21  %v = load i32, ptr %m
22  ret i32 %v
23}
24
25define i32 @callee(ptr %m) {
26  %v = load i32, ptr %m
27  ret i32 %v
28}
29
30define void @caller() {
31  %m = alloca i32
32  call i32 @callee_default(ptr %m)
33  call fastcc i32 @callee_fastcc(ptr %m)
34  call coldcc i32 @callee_coldcc(ptr %m)
35  call i32 @callee(ptr %m)
36  ret void
37}
38
39; COLDCC-LABEL: define void @caller()
40; COLDCC: call coldcc i32 @callee_default
41; COLDCC: call fastcc i32 @callee_fastcc
42; COLDCC: call coldcc i32 @callee_coldcc
43; COLDCC: call i32 @callee
44; CHECK-LABEL: define void @caller()
45; CHECK: call fastcc i32 @callee_default
46; CHECK: call fastcc i32 @callee_fastcc
47; CHECK: call coldcc i32 @callee_coldcc
48; CHECK: call i32 @callee
49