Add a small missed optimization: turn X == C ? X : Y into X == C ? C : Y. This
[llvm/stm8.git] / test / Feature / callingconventions.ll
blobd2e9de404fba7fdb348f6f59a24e4373cd9ce8e9
1 ; RUN: llvm-as < %s | llvm-dis > %t1.ll
2 ; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll
3 ; RUN: diff %t1.ll %t2.ll
5 define fastcc void @foo() {
6         ret void
9 define coldcc void @bar() {
10         call fastcc void @foo( )
11         ret void
14 define void @structret({ i8 }* sret  %P) {
15         call void @structret( { i8 }* sret  %P )
16         ret void
19 define void @foo2() {
20         ret void
23 define coldcc void @bar2() {
24         call fastcc void @foo( )
25         ret void
28 define cc42 void @bar3() {
29         invoke fastcc void @foo( )
30                         to label %Ok unwind label %U
32 Ok:             ; preds = %0
33         ret void
35 U:              ; preds = %0
36         unwind
39 define void @bar4() {
40         call cc42 void @bar( )
41         invoke cc42 void @bar3( )
42                         to label %Ok unwind label %U
44 Ok:             ; preds = %0
45         ret void
47 U:              ; preds = %0
48         unwind