[InstCombine] Signed saturation patterns
[llvm-core.git] / test / Transforms / GlobalOpt / coldcc_stress_test.ll
blob80c9366af6f8a3eb92df98015f918627e50cf6fd
1 ; RUN: opt < %s -globalopt -S -enable-coldcc-stress-test -mtriple=powerpc64le-unknown-linux-gnu | FileCheck %s -check-prefix=COLDCC
2 ; RUN: opt < %s -globalopt -S | FileCheck %s -check-prefix=CHECK
4 define internal i32 @callee_default(i32* %m) {
5 ; COLDCC-LABEL: define internal coldcc i32 @callee_default
6 ; CHECK-LABEL: define internal fastcc i32 @callee_default
7   %v = load i32, i32* %m
8   ret i32 %v
11 define internal fastcc i32 @callee_fastcc(i32* %m) {
12 ; COLDCC-LABEL: define internal fastcc i32 @callee_fastcc
13 ; CHECK-LABEL: define internal fastcc i32 @callee_fastcc
14   %v = load i32, i32* %m
15   ret i32 %v
18 define internal coldcc i32 @callee_coldcc(i32* %m) {
19 ; COLDCC-LABEL: define internal coldcc i32 @callee_coldcc
20 ; CHECK-LABEL: define internal coldcc i32 @callee_coldcc
21   %v = load i32, i32* %m
22   ret i32 %v
25 define i32 @callee(i32* %m) {
26   %v = load i32, i32* %m
27   ret i32 %v
30 define void @caller() {
31   %m = alloca i32
32   call i32 @callee_default(i32* %m)
33   call fastcc i32 @callee_fastcc(i32* %m)
34   call coldcc i32 @callee_coldcc(i32* %m)
35   call i32 @callee(i32* %m)
36   ret void
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