comparison test/CodeGen/ARM/ldm.ll @ 95:afa8332a0e37

LLVM 3.8
author Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
date Tue, 13 Oct 2015 17:48:58 +0900
parents 54457678186b
children
comparison
equal deleted inserted replaced
84:f3e34b893a5f 95:afa8332a0e37
6 define i32 @t1() { 6 define i32 @t1() {
7 ; CHECK-LABEL: t1: 7 ; CHECK-LABEL: t1:
8 ; CHECK: pop 8 ; CHECK: pop
9 ; V4T-LABEL: t1: 9 ; V4T-LABEL: t1:
10 ; V4T: pop 10 ; V4T: pop
11 %tmp = load i32* getelementptr ([0 x i32]* @X, i32 0, i32 0) ; <i32> [#uses=1] 11 %tmp = load i32, i32* getelementptr ([0 x i32], [0 x i32]* @X, i32 0, i32 0) ; <i32> [#uses=1]
12 %tmp3 = load i32* getelementptr ([0 x i32]* @X, i32 0, i32 1) ; <i32> [#uses=1] 12 %tmp3 = load i32, i32* getelementptr ([0 x i32], [0 x i32]* @X, i32 0, i32 1) ; <i32> [#uses=1]
13 %tmp4 = tail call i32 @f1( i32 %tmp, i32 %tmp3 ) ; <i32> [#uses=1] 13 %tmp4 = tail call i32 @f1( i32 %tmp, i32 %tmp3 ) ; <i32> [#uses=1]
14 ret i32 %tmp4 14 ret i32 %tmp4
15 } 15 }
16 16
17 define i32 @t2() { 17 define i32 @t2() {
18 ; CHECK-LABEL: t2: 18 ; CHECK-LABEL: t2:
19 ; CHECK: pop 19 ; CHECK: pop
20 ; V4T-LABEL: t2: 20 ; V4T-LABEL: t2:
21 ; V4T: pop 21 ; V4T: pop
22 %tmp = load i32* getelementptr ([0 x i32]* @X, i32 0, i32 2) ; <i32> [#uses=1] 22 %tmp = load i32, i32* getelementptr ([0 x i32], [0 x i32]* @X, i32 0, i32 2) ; <i32> [#uses=1]
23 %tmp3 = load i32* getelementptr ([0 x i32]* @X, i32 0, i32 3) ; <i32> [#uses=1] 23 %tmp3 = load i32, i32* getelementptr ([0 x i32], [0 x i32]* @X, i32 0, i32 3) ; <i32> [#uses=1]
24 %tmp5 = load i32* getelementptr ([0 x i32]* @X, i32 0, i32 4) ; <i32> [#uses=1] 24 %tmp5 = load i32, i32* getelementptr ([0 x i32], [0 x i32]* @X, i32 0, i32 4) ; <i32> [#uses=1]
25 %tmp6 = tail call i32 @f2( i32 %tmp, i32 %tmp3, i32 %tmp5 ) ; <i32> [#uses=1] 25 %tmp6 = tail call i32 @f2( i32 %tmp, i32 %tmp3, i32 %tmp5 ) ; <i32> [#uses=1]
26 ret i32 %tmp6 26 ret i32 %tmp6
27 } 27 }
28 28
29 define i32 @t3() { 29 define i32 @t3() {
32 ; CHECK: pop 32 ; CHECK: pop
33 ; V4T-LABEL: t3: 33 ; V4T-LABEL: t3:
34 ; V4T: ldmib 34 ; V4T: ldmib
35 ; V4T: pop 35 ; V4T: pop
36 ; V4T-NEXT: bx lr 36 ; V4T-NEXT: bx lr
37 %tmp = load i32* getelementptr ([0 x i32]* @X, i32 0, i32 1) ; <i32> [#uses=1] 37 %tmp = load i32, i32* getelementptr ([0 x i32], [0 x i32]* @X, i32 0, i32 1) ; <i32> [#uses=1]
38 %tmp3 = load i32* getelementptr ([0 x i32]* @X, i32 0, i32 2) ; <i32> [#uses=1] 38 %tmp3 = load i32, i32* getelementptr ([0 x i32], [0 x i32]* @X, i32 0, i32 2) ; <i32> [#uses=1]
39 %tmp5 = load i32* getelementptr ([0 x i32]* @X, i32 0, i32 3) ; <i32> [#uses=1] 39 %tmp5 = load i32, i32* getelementptr ([0 x i32], [0 x i32]* @X, i32 0, i32 3) ; <i32> [#uses=1]
40 %tmp6 = call i32 @f2( i32 %tmp, i32 %tmp3, i32 %tmp5 ) ; <i32> [#uses=1] 40 %tmp6 = call i32 @f2( i32 %tmp, i32 %tmp3, i32 %tmp5 ) ; <i32> [#uses=1]
41 ret i32 %tmp6 41 ret i32 %tmp6
42 } 42 }
43 43
44 declare i32 @f1(i32, i32) 44 declare i32 @f1(i32, i32)