blob: 9fccf2e9f88041e1987831e3ad6e7d9781ad050d [file] [log] [blame]
Derek Schuffbd7c6e52013-05-14 16:26:38 +00001;; RUN: llc -O0 -verify-machineinstrs -fast-isel-abort \
2;; RUN: -mtriple=armv7-linux-gnueabi -filetype=obj %s -o - | \
Nico Rieckba848e32013-04-12 04:06:46 +00003;; RUN: llvm-readobj -t | FileCheck -check-prefix=ARM %s
Tim Northover5cc3dc82012-12-07 16:50:23 +00004
Derek Schuffbd7c6e52013-05-14 16:26:38 +00005;; RUN: llc -O0 -verify-machineinstrs -fast-isel-abort \
6;; RUN: -mtriple=thumbv7-linux-gnueabi -filetype=obj %s -o - | \
Nico Rieckba848e32013-04-12 04:06:46 +00007;; RUN: llvm-readobj -t | FileCheck -check-prefix=TMB %s
Tim Northover5cc3dc82012-12-07 16:50:23 +00008
9;; Ensure that if a jump table is generated that it has Mapping Symbols
10;; marking the data-in-code region.
11
12define void @foo(i32* %ptr) nounwind ssp {
13 %tmp = load i32* %ptr, align 4
14 switch i32 %tmp, label %default [
15 i32 11, label %bb0
16 i32 10, label %bb1
17 i32 8, label %bb2
18 i32 4, label %bb3
19 i32 2, label %bb4
20 i32 6, label %bb5
21 i32 9, label %bb6
22 i32 15, label %bb7
23 i32 1, label %bb8
24 i32 3, label %bb9
25 i32 5, label %bb10
26 i32 30, label %bb11
27 i32 31, label %bb12
28 i32 13, label %bb13
29 i32 14, label %bb14
30 i32 20, label %bb15
31 i32 19, label %bb16
32 i32 17, label %bb17
33 i32 18, label %bb18
34 i32 21, label %bb19
35 i32 22, label %bb20
36 i32 16, label %bb21
37 i32 24, label %bb22
38 i32 25, label %bb23
39 i32 26, label %bb24
40 i32 27, label %bb25
41 i32 28, label %bb26
42 i32 23, label %bb27
43 i32 12, label %bb28
44 ]
45
46default:
47 br label %exit
48bb0:
49 br label %exit
50bb1:
51 br label %exit
52bb2:
53 br label %exit
54bb3:
55 br label %exit
56bb4:
57 br label %exit
58bb5:
59 br label %exit
60bb6:
61 br label %exit
62bb7:
63 br label %exit
64bb8:
65 br label %exit
66bb9:
67 br label %exit
68bb10:
69 br label %exit
70bb11:
71 br label %exit
72bb12:
73 br label %exit
74bb13:
75 br label %exit
76bb14:
77 br label %exit
78bb15:
79 br label %exit
80bb16:
81 br label %exit
82bb17:
83 br label %exit
84bb18:
85 br label %exit
86bb19:
87 br label %exit
88bb20:
89 br label %exit
90bb21:
91 br label %exit
92bb22:
93 br label %exit
94bb23:
95 br label %exit
96bb24:
97 br label %exit
98bb25:
99 br label %exit
100bb26:
101 br label %exit
102bb27:
103 br label %exit
104bb28:
105 br label %exit
106
107
108exit:
109
110 ret void
111}
112
Nico Rieckba848e32013-04-12 04:06:46 +0000113;; ARM: Symbol {
114;; ARM: Name: $a
115;; ARM-NEXT: Value: 0x0
116;; ARM-NEXT: Size: 0
117;; ARM-NEXT: Binding: Local
118;; ARM-NEXT: Type: None
119;; ARM-NEXT: Other:
120;; ARM-NEXT: Section: [[MIXED_SECT:[^ ]+]]
Tim Northover5cc3dc82012-12-07 16:50:23 +0000121
Nico Rieckba848e32013-04-12 04:06:46 +0000122;; ARM: Symbol {
123;; ARM: Name: $a
Derek Schuffbd7c6e52013-05-14 16:26:38 +0000124;; ARM-NEXT: Value: 0x{{[0-9A-F]+}}
Nico Rieckba848e32013-04-12 04:06:46 +0000125;; ARM-NEXT: Size: 0
126;; ARM-NEXT: Binding: Local
127;; ARM-NEXT: Type: None
128;; ARM-NEXT: Other:
129;; ARM-NEXT: Section: [[MIXED_SECT]]
Tim Northover5cc3dc82012-12-07 16:50:23 +0000130
Nico Rieckba848e32013-04-12 04:06:46 +0000131;; ARM: Symbol {
132;; ARM: Name: $d
133;; ARM-NEXT: Value: 0
134;; ARM-NEXT: Size: 0
135;; ARM-NEXT: Binding: Local
136;; ARM-NEXT: Type: None
Tim Northover5cc3dc82012-12-07 16:50:23 +0000137
Nico Rieckba848e32013-04-12 04:06:46 +0000138;; ARM: Symbol {
139;; ARM: Name: $d
Derek Schuffbd7c6e52013-05-14 16:26:38 +0000140;; ARM-NEXT: Value: 0x{{[0-9A-F]+}}
Nico Rieckba848e32013-04-12 04:06:46 +0000141;; ARM-NEXT: Size: 0
142;; ARM-NEXT: Binding: Local
143;; ARM-NEXT: Type: None
144;; ARM-NEXT: Other:
145;; ARM-NEXT: Section: [[MIXED_SECT]]
Tim Northover5cc3dc82012-12-07 16:50:23 +0000146
147;; ARM-NOT: ${{[atd]}}
148
Nico Rieckba848e32013-04-12 04:06:46 +0000149;; TMB: Symbol {
150;; TMB: Name: $d.2
Derek Schuffbd7c6e52013-05-14 16:26:38 +0000151;; TMB-NEXT: Value: 0x{{[0-9A-F]+}}
Nico Rieckba848e32013-04-12 04:06:46 +0000152;; TMB-NEXT: Size: 0
153;; TMB-NEXT: Binding: Local
154;; TMB-NEXT: Type: None
155;; TMB-NEXT: Other:
156;; TMB-NEXT: Section: [[MIXED_SECT:[^ ]+]]
Tim Northover5cc3dc82012-12-07 16:50:23 +0000157
Nico Rieckba848e32013-04-12 04:06:46 +0000158;; TMB: Symbol {
159;; TMB: Name: $t
160;; TMB-NEXT: Value: 0x0
161;; TMB-NEXT: Size: 0
162;; TMB-NEXT: Binding: Local
163;; TMB-NEXT: Type: None
164;; TMB-NEXT: Other:
165;; TMB-NEXT: Section: [[MIXED_SECT]]
Tim Northover5cc3dc82012-12-07 16:50:23 +0000166
Nico Rieckba848e32013-04-12 04:06:46 +0000167;; TMB: Symbol {
168;; TMB: Name: $t
Derek Schuffbd7c6e52013-05-14 16:26:38 +0000169;; TMB-NEXT: Value: 0x{{[0-9A-F]+}}
Nico Rieckba848e32013-04-12 04:06:46 +0000170;; TMB-NEXT: Size: 0
171;; TMB-NEXT: Binding: Local
172;; TMB-NEXT: Type: None
173;; TMB-NEXT: Other:
174;; TMB-NEXT: Section: [[MIXED_SECT]]
Tim Northover5cc3dc82012-12-07 16:50:23 +0000175
176
177;; TMB-NOT: ${{[atd]}}
178