~pali/+junk/llvm-toolchain-3.7

« back to all changes in this revision

Viewing changes to test/CodeGen/ARM/call.ll

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2015-07-15 17:51:08 UTC
  • Revision ID: package-import@ubuntu.com-20150715175108-l8mynwovkx4zx697
Tags: upstream-3.7~+rc2
ImportĀ upstreamĀ versionĀ 3.7~+rc2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
; RUN: llc -mtriple=arm-eabi -mattr=+v4t %s -o - \
 
2
; RUN:   | FileCheck %s -check-prefix=CHECKV4
 
3
 
 
4
; RUN: llc -mtriple=arm-eabi -mattr=+v5t %s -o - \
 
5
; RUN:   | FileCheck %s -check-prefix=CHECKV5
 
6
 
 
7
; RUN: llc -mtriple=armv6-linux-gnueabi -relocation-model=pic %s -o - \
 
8
; RUN:   | FileCheck %s -check-prefix=CHECKELF
 
9
 
 
10
@t = weak global i32 ()* null           ; <i32 ()**> [#uses=1]
 
11
 
 
12
declare void @g(i32, i32, i32, i32)
 
13
 
 
14
define void @f() {
 
15
; CHECKELF: PLT
 
16
        call void @g( i32 1, i32 2, i32 3, i32 4 )
 
17
        ret void
 
18
}
 
19
 
 
20
define void @g.upgrd.1() {
 
21
; CHECKV4: mov lr, pc
 
22
; CHECKV5: blx
 
23
        %tmp = load i32 ()*, i32 ()** @t         ; <i32 ()*> [#uses=1]
 
24
        %tmp.upgrd.2 = call i32 %tmp( )            ; <i32> [#uses=0]
 
25
        ret void
 
26
}
 
27
 
 
28
define i32* @m_231b(i32, i32, i32*, i32*, i32*) nounwind {
 
29
; CHECKV4: m_231b
 
30
; CHECKV4: bx r{{.*}}
 
31
BB0:
 
32
  %5 = inttoptr i32 %0 to i32*                    ; <i32*> [#uses=1]
 
33
  %t35 = load volatile i32, i32* %5                    ; <i32> [#uses=1]
 
34
  %6 = inttoptr i32 %t35 to i32**                 ; <i32**> [#uses=1]
 
35
  %7 = getelementptr i32*, i32** %6, i32 86             ; <i32**> [#uses=1]
 
36
  %8 = load i32*, i32** %7                              ; <i32*> [#uses=1]
 
37
  %9 = bitcast i32* %8 to i32* (i32, i32*, i32, i32*, i32*, i32*)* ; <i32* (i32, i32*, i32, i32*, i32*, i32*)*> [#uses=1]
 
38
  %10 = call i32* %9(i32 %0, i32* null, i32 %1, i32* %2, i32* %3, i32* %4) ; <i32*> [#uses=1]
 
39
  ret i32* %10
 
40
}