[ARM] Better OR's for MVE compares
[llvm-core.git] / test / MC / ARM / ltorg.s
bloba19694c10ec23055177f77fb0132ea9950091d86
1 @ This test has a partner (ltorg-darwin.s) that contains matching
2 @ tests for the .ltorg on darwin targets. We need separate files
3 @ because the syntax for switching sections and temporary labels differs
4 @ between darwin and linux. Any tests added here should have a matching
5 @ test added there.
7 @RUN: llvm-mc -triple armv7-unknown-linux-gnueabi %s | FileCheck %s
8 @RUN: llvm-mc -triple thumbv5-unknown-linux-gnueabi %s | FileCheck %s
9 @RUN: llvm-mc -triple thumbv7-unknown-linux-gnueabi %s | FileCheck %s
11 @ check that ltorg dumps the constant pool at the current location
12 .section a,"ax",%progbits
13 @ CHECK-LABEL: f2:
14 f2:
15 ldr r0, =0x10002
16 @ CHECK: ldr r0, .Ltmp[[TMP0:[0-9+]]]
17 adds r0, r0, #1
18 adds r0, r0, #1
19 b f3
20 .ltorg
21 @ constant pool
22 @ CHECK: .p2align 2
23 @ CHECK: .Ltmp[[TMP0]]
24 @ CHECK: .long 65538
26 @ CHECK-LABEL: f3:
27 f3:
28 adds r0, r0, #1
29 adds r0, r0, #1
31 @ check that ltorg clears the constant pool after dumping it
32 .section b,"ax",%progbits
33 @ CHECK-LABEL: f4:
34 f4:
35 ldr r0, =0x10003
36 @ CHECK: ldr r0, .Ltmp[[TMP1:[0-9+]]]
37 adds r0, r0, #1
38 adds r0, r0, #1
39 b f5
40 .ltorg
41 @ constant pool
42 @ CHECK: .p2align 2
43 @ CHECK: .Ltmp[[TMP1]]
44 @ CHECK: .long 65539
46 @ CHECK-LABEL: f5:
47 f5:
48 adds r0, r0, #1
49 adds r0, r0, #1
50 ldr r0, =0x10004
51 @ CHECK: ldr r0, .Ltmp[[TMP2:[0-9+]]]
52 adds r0, r0, #1
53 b f6
54 .ltorg
55 @ constant pool
56 @ CHECK: .p2align 2
57 @ CHECK: .Ltmp[[TMP2]]
58 @ CHECK: .long 65540
60 @ CHECK-LABEL: f6:
61 f6:
62 adds r0, r0, #1
63 adds r0, r0, #1
65 @ check that ltorg does not issue an error if there is no constant pool
66 .section c,"ax",%progbits
67 @ CHECK-LABEL: f7:
68 f7:
69 adds r0, r0, #1
70 b f8
71 .ltorg
72 f8:
73 adds r0, r0, #1
75 @ check that ltorg works for labels
76 .section d,"ax",%progbits
77 @ CHECK-LABEL: f9:
78 f9:
79 adds r0, r0, #1
80 adds r0, r0, #1
81 ldr r0, =bar
82 @ CHECK: ldr r0, .Ltmp[[TMP3:[0-9+]]]
83 adds r0, r0, #1
84 adds r0, r0, #1
85 adds r0, r0, #1
86 b f10
87 .ltorg
88 @ constant pool
89 @ CHECK: .p2align 2
90 @ CHECK: .Ltmp[[TMP3]]
91 @ CHECK: .long bar
93 @ CHECK-LABEL: f10:
94 f10:
95 adds r0, r0, #1
96 adds r0, r0, #1
98 @ check that use of ltorg does not prevent dumping non-empty constant pools at end of section
99 .section e,"ax",%progbits
100 @ CHECK-LABEL: f11:
101 f11:
102 adds r0, r0, #1
103 adds r0, r0, #1
104 ldr r0, =0x10005
105 @ CHECK: ldr r0, .Ltmp[[TMP4:[0-9+]]]
106 b f12
107 .ltorg
108 @ constant pool
109 @ CHECK: .p2align 2
110 @ CHECK: .Ltmp[[TMP4]]
111 @ CHECK: .long 65541
112 @ CHECK-LABEL: f12:
113 f12:
114 adds r0, r0, #1
115 ldr r0, =0x10006
116 @ CHECK: ldr r0, .Ltmp[[TMP5:[0-9+]]]
118 .section f,"ax",%progbits
119 @ CHECK-LABEL: f13
120 f13:
121 adds r0, r0, #1
122 adds r0, r0, #1
124 @ should not have a constant pool at end of section with empty constant pools
125 @ CHECK-NOT: .section a,"ax",%progbits
126 @ CHECK-NOT: .section b,"ax",%progbits
127 @ CHECK-NOT: .section c,"ax",%progbits
128 @ CHECK-NOT: .section d,"ax",%progbits
130 @ should have a non-empty constant pool at end of this section
131 @ CHECK: .section e,"ax",%progbits
132 @ constant pool
133 @ CHECK: .p2align 2
134 @ CHECK: .Ltmp[[TMP5]]
135 @ CHECK: .long 65542
137 @ should not have a constant pool at end of section with empty constant pools
138 @ CHECK-NOT: .section f,"ax",%progbits