3dd66ae71df86863acb9876afbec0111cd55bf0f
[oota-llvm.git] / test / CodeGen / ARM / call.ll
1 ; RUN: llc < %s -march=arm | FileCheck %s -check-prefix=CHECKV4
2 ; RUN: llc < %s -march=arm -mattr=+v5t | FileCheck %s -check-prefix=CHECKV5
3 ; RUN: llc < %s -march=arm -mtriple=arm-linux-gnueabi\
4 ; RUN:   -relocation-model=pic | FileCheck %s -check-prefix=CHECKELF
5
6 @t = weak global i32 ()* null           ; <i32 ()**> [#uses=1]
7
8 declare void @g(i32, i32, i32, i32)
9
10 define void @f() {
11 ; CHECKV4: mov lr, pc
12 ; CHECKV5: blx
13 ; CHECKELF: PLT
14         call void @g( i32 1, i32 2, i32 3, i32 4 )
15         ret void
16 }
17
18 define void @g.upgrd.1() {
19         %tmp = load i32 ()** @t         ; <i32 ()*> [#uses=1]
20         %tmp.upgrd.2 = tail call i32 %tmp( )            ; <i32> [#uses=0]
21         ret void
22 }