1
+ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
1
2
; RUN: llc < %s -mtriple=armv7-apple-ios -mcpu=cortex-a8 | FileCheck %s -check-prefix=A8
2
3
; RUN: llc < %s -mtriple=armv7-apple-ios -mcpu=swift | FileCheck %s -check-prefix=SWIFT
3
4
; rdar://8402126
4
5
5
6
@x = external global i32* ; <i32**> [#uses=1]
6
7
7
8
define void @foo (i32 %a ) "frame-pointer" ="all" {
9
+ ; A8-LABEL: foo:
10
+ ; A8: @ %bb.0: @ %entry
11
+ ; A8-NEXT: movw r1, :lower16:(L_x$non_lazy_ptr-(LPC0_0+8))
12
+ ; A8-NEXT: movt r1, :upper16:(L_x$non_lazy_ptr-(LPC0_0+8))
13
+ ; A8-NEXT: LPC0_0:
14
+ ; A8-NEXT: ldr r1, [pc, r1]
15
+ ; A8-NEXT: ldr r1, [r1]
16
+ ; A8-NEXT: str r0, [r1]
17
+ ; A8-NEXT: bx lr
18
+ ;
19
+ ; SWIFT-LABEL: foo:
20
+ ; SWIFT: @ %bb.0: @ %entry
21
+ ; SWIFT-NEXT: movw r1, :lower16:(L_x$non_lazy_ptr-(LPC0_0+8))
22
+ ; SWIFT-NEXT: movt r1, :upper16:(L_x$non_lazy_ptr-(LPC0_0+8))
23
+ ; SWIFT-NEXT: LPC0_0:
24
+ ; SWIFT-NEXT: ldr r1, [pc, r1]
25
+ ; SWIFT-NEXT: ldr r1, [r1]
26
+ ; SWIFT-NEXT: str r0, [r1]
27
+ ; SWIFT-NEXT: bx lr
8
28
entry:
9
29
%tmp = load i32* , i32** @x ; <i32*> [#uses=1]
10
30
store i32 %a , i32* %tmp
@@ -13,11 +33,30 @@ entry:
13
33
14
34
define i32 @t1 (i32 %a , i32 %b ) "frame-pointer" ="all" {
15
35
; A8-LABEL: t1:
16
- ; A8: bxlt lr
17
-
36
+ ; A8: @ %bb.0: @ %entry
37
+ ; A8-NEXT: cmp r0, #11
38
+ ; A8-NEXT: movlt r0, #1
39
+ ; A8-NEXT: bxlt lr
40
+ ; A8-NEXT: LBB1_1: @ %cond_true
41
+ ; A8-NEXT: push {r7, lr}
42
+ ; A8-NEXT: mov r7, sp
43
+ ; A8-NEXT: mov r0, r1
44
+ ; A8-NEXT: bl _foo
45
+ ; A8-NEXT: mov r0, #0
46
+ ; A8-NEXT: pop {r7, pc}
47
+ ;
18
48
; SWIFT-LABEL: t1:
19
- ; SWIFT: bxlt lr
20
- ; SWIFT: pop {r7, pc}
49
+ ; SWIFT: @ %bb.0: @ %entry
50
+ ; SWIFT-NEXT: cmp r0, #11
51
+ ; SWIFT-NEXT: movlt r0, #1
52
+ ; SWIFT-NEXT: bxlt lr
53
+ ; SWIFT-NEXT: LBB1_1: @ %cond_true
54
+ ; SWIFT-NEXT: push {r7, lr}
55
+ ; SWIFT-NEXT: mov r7, sp
56
+ ; SWIFT-NEXT: mov r0, r1
57
+ ; SWIFT-NEXT: bl _foo
58
+ ; SWIFT-NEXT: mov r0, #0
59
+ ; SWIFT-NEXT: pop {r7, pc}
21
60
entry:
22
61
%tmp1 = icmp sgt i32 %a , 10 ; <i1> [#uses=1]
23
62
br i1 %tmp1 , label %cond_true , label %UnifiedReturnBlock
0 commit comments