blob: e3325b6bf6e6c9bbcd0849c486e75c413fb7aa8b [file] [log] [blame]
Tim Northover5cc3dc82012-12-07 16:50:23 +00001;; RUN: llc -O0 -mtriple=armv7-linux-gnueabi -filetype=obj %s -o - | \
Nico Rieckba848e32013-04-12 04:06:46 +00002;; RUN: llvm-readobj -t | FileCheck -check-prefix=ARM %s
Tim Northover5cc3dc82012-12-07 16:50:23 +00003
4;; RUN: llc -O0 -mtriple=thumbv7-linux-gnueabi -filetype=obj %s -o - | \
Nico Rieckba848e32013-04-12 04:06:46 +00005;; RUN: llvm-readobj -t | FileCheck -check-prefix=TMB %s
Tim Northover5cc3dc82012-12-07 16:50:23 +00006
7;; Ensure that if a jump table is generated that it has Mapping Symbols
8;; marking the data-in-code region.
9
10define void @foo(i32* %ptr) nounwind ssp {
11 %tmp = load i32* %ptr, align 4
12 switch i32 %tmp, label %default [
13 i32 11, label %bb0
14 i32 10, label %bb1
15 i32 8, label %bb2
16 i32 4, label %bb3
17 i32 2, label %bb4
18 i32 6, label %bb5
19 i32 9, label %bb6
20 i32 15, label %bb7
21 i32 1, label %bb8
22 i32 3, label %bb9
23 i32 5, label %bb10
24 i32 30, label %bb11
25 i32 31, label %bb12
26 i32 13, label %bb13
27 i32 14, label %bb14
28 i32 20, label %bb15
29 i32 19, label %bb16
30 i32 17, label %bb17
31 i32 18, label %bb18
32 i32 21, label %bb19
33 i32 22, label %bb20
34 i32 16, label %bb21
35 i32 24, label %bb22
36 i32 25, label %bb23
37 i32 26, label %bb24
38 i32 27, label %bb25
39 i32 28, label %bb26
40 i32 23, label %bb27
41 i32 12, label %bb28
42 ]
43
44default:
45 br label %exit
46bb0:
47 br label %exit
48bb1:
49 br label %exit
50bb2:
51 br label %exit
52bb3:
53 br label %exit
54bb4:
55 br label %exit
56bb5:
57 br label %exit
58bb6:
59 br label %exit
60bb7:
61 br label %exit
62bb8:
63 br label %exit
64bb9:
65 br label %exit
66bb10:
67 br label %exit
68bb11:
69 br label %exit
70bb12:
71 br label %exit
72bb13:
73 br label %exit
74bb14:
75 br label %exit
76bb15:
77 br label %exit
78bb16:
79 br label %exit
80bb17:
81 br label %exit
82bb18:
83 br label %exit
84bb19:
85 br label %exit
86bb20:
87 br label %exit
88bb21:
89 br label %exit
90bb22:
91 br label %exit
92bb23:
93 br label %exit
94bb24:
95 br label %exit
96bb25:
97 br label %exit
98bb26:
99 br label %exit
100bb27:
101 br label %exit
102bb28:
103 br label %exit
104
105
106exit:
107
108 ret void
109}
110
Nico Rieckba848e32013-04-12 04:06:46 +0000111;; ARM: Symbol {
112;; ARM: Name: $a
113;; ARM-NEXT: Value: 0x0
114;; ARM-NEXT: Size: 0
115;; ARM-NEXT: Binding: Local
116;; ARM-NEXT: Type: None
117;; ARM-NEXT: Other:
118;; ARM-NEXT: Section: [[MIXED_SECT:[^ ]+]]
Tim Northover5cc3dc82012-12-07 16:50:23 +0000119
Nico Rieckba848e32013-04-12 04:06:46 +0000120;; ARM: Symbol {
121;; ARM: Name: $a
122;; ARM-NEXT: Value: 0xAC
123;; ARM-NEXT: Size: 0
124;; ARM-NEXT: Binding: Local
125;; ARM-NEXT: Type: None
126;; ARM-NEXT: Other:
127;; ARM-NEXT: Section: [[MIXED_SECT]]
Tim Northover5cc3dc82012-12-07 16:50:23 +0000128
Nico Rieckba848e32013-04-12 04:06:46 +0000129;; ARM: Symbol {
130;; ARM: Name: $d
131;; ARM-NEXT: Value: 0
132;; ARM-NEXT: Size: 0
133;; ARM-NEXT: Binding: Local
134;; ARM-NEXT: Type: None
Tim Northover5cc3dc82012-12-07 16:50:23 +0000135
Nico Rieckba848e32013-04-12 04:06:46 +0000136;; ARM: Symbol {
137;; ARM: Name: $d
138;; ARM-NEXT: Value: 0x30
139;; ARM-NEXT: Size: 0
140;; ARM-NEXT: Binding: Local
141;; ARM-NEXT: Type: None
142;; ARM-NEXT: Other:
143;; ARM-NEXT: Section: [[MIXED_SECT]]
Tim Northover5cc3dc82012-12-07 16:50:23 +0000144
145;; ARM-NOT: ${{[atd]}}
146
Nico Rieckba848e32013-04-12 04:06:46 +0000147;; TMB: Symbol {
148;; TMB: Name: $d.2
149;; TMB-NEXT: Value: 0x16
150;; TMB-NEXT: Size: 0
151;; TMB-NEXT: Binding: Local
152;; TMB-NEXT: Type: None
153;; TMB-NEXT: Other:
154;; TMB-NEXT: Section: [[MIXED_SECT:[^ ]+]]
Tim Northover5cc3dc82012-12-07 16:50:23 +0000155
Nico Rieckba848e32013-04-12 04:06:46 +0000156;; TMB: Symbol {
157;; TMB: Name: $t
158;; TMB-NEXT: Value: 0x0
159;; TMB-NEXT: Size: 0
160;; TMB-NEXT: Binding: Local
161;; TMB-NEXT: Type: None
162;; TMB-NEXT: Other:
163;; TMB-NEXT: Section: [[MIXED_SECT]]
Tim Northover5cc3dc82012-12-07 16:50:23 +0000164
Nico Rieckba848e32013-04-12 04:06:46 +0000165;; TMB: Symbol {
166;; TMB: Name: $t
167;; TMB-NEXT: Value: 0x36
168;; TMB-NEXT: Size: 0
169;; TMB-NEXT: Binding: Local
170;; TMB-NEXT: Type: None
171;; TMB-NEXT: Other:
172;; TMB-NEXT: Section: [[MIXED_SECT]]
Tim Northover5cc3dc82012-12-07 16:50:23 +0000173
174
175;; TMB-NOT: ${{[atd]}}
176