blob: 10657a3fed390e238f80bc4e19f92ec81079ae07 [file] [log] [blame]
Hans Wennborg0867b152015-04-23 16:45:24 +00001;; RUN: llc -verify-machineinstrs \
Derek Schuffbd7c6e52013-05-14 16:26:38 +00002;; 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
Hans Wennborg0867b152015-04-23 16:45:24 +00005;; RUN: llc -verify-machineinstrs \
Derek Schuffbd7c6e52013-05-14 16:26:38 +00006;; 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
James Molloy76c9d422016-08-31 13:16:45 +000012define void @foo(i32* %ptr) nounwind ssp {
David Blaikiea79ac142015-02-27 21:17:42 +000013 %tmp = load i32, i32* %ptr, align 4
Hans Wennborg0867b152015-04-23 16:45:24 +000014 switch i32 %tmp, label %exit [
15 i32 0, label %bb0
16 i32 1, label %bb1
17 i32 2, label %bb2
18 i32 3, label %bb3
Tim Northover5cc3dc82012-12-07 16:50:23 +000019 ]
Tim Northover5cc3dc82012-12-07 16:50:23 +000020bb0:
James Molloy76c9d422016-08-31 13:16:45 +000021 store i32 0, i32* %ptr, align 4
Tim Northover5cc3dc82012-12-07 16:50:23 +000022 br label %exit
23bb1:
Hans Wennborg0867b152015-04-23 16:45:24 +000024 store i32 1, i32* %ptr, align 4
Tim Northover5cc3dc82012-12-07 16:50:23 +000025 br label %exit
26bb2:
Hans Wennborg0867b152015-04-23 16:45:24 +000027 store i32 2, i32* %ptr, align 4
Tim Northover5cc3dc82012-12-07 16:50:23 +000028 br label %exit
29bb3:
Hans Wennborg0867b152015-04-23 16:45:24 +000030 store i32 3, i32* %ptr, align 4
Tim Northover5cc3dc82012-12-07 16:50:23 +000031 br label %exit
Tim Northover5cc3dc82012-12-07 16:50:23 +000032exit:
Tim Northover5cc3dc82012-12-07 16:50:23 +000033 ret void
34}
35
Nico Rieckba848e32013-04-12 04:06:46 +000036;; ARM: Symbol {
37;; ARM: Name: $a
38;; ARM-NEXT: Value: 0x0
39;; ARM-NEXT: Size: 0
40;; ARM-NEXT: Binding: Local
41;; ARM-NEXT: Type: None
42;; ARM-NEXT: Other:
43;; ARM-NEXT: Section: [[MIXED_SECT:[^ ]+]]
Tim Northover5cc3dc82012-12-07 16:50:23 +000044
Nico Rieckba848e32013-04-12 04:06:46 +000045;; ARM: Symbol {
46;; ARM: Name: $a
Derek Schuffbd7c6e52013-05-14 16:26:38 +000047;; ARM-NEXT: Value: 0x{{[0-9A-F]+}}
Nico Rieckba848e32013-04-12 04:06:46 +000048;; ARM-NEXT: Size: 0
49;; ARM-NEXT: Binding: Local
50;; ARM-NEXT: Type: None
51;; ARM-NEXT: Other:
52;; ARM-NEXT: Section: [[MIXED_SECT]]
Tim Northover5cc3dc82012-12-07 16:50:23 +000053
Nico Rieckba848e32013-04-12 04:06:46 +000054;; ARM: Symbol {
55;; ARM: Name: $d
Derek Schuffbd7c6e52013-05-14 16:26:38 +000056;; ARM-NEXT: Value: 0x{{[0-9A-F]+}}
Nico Rieckba848e32013-04-12 04:06:46 +000057;; ARM-NEXT: Size: 0
58;; ARM-NEXT: Binding: Local
59;; ARM-NEXT: Type: None
60;; ARM-NEXT: Other:
61;; ARM-NEXT: Section: [[MIXED_SECT]]
Tim Northover5cc3dc82012-12-07 16:50:23 +000062
Renato Golin78a6eba2014-02-07 20:12:49 +000063;; ARM: Symbol {
64;; ARM: Name: $d
65;; ARM-NEXT: Value: 0x0
66;; ARM-NEXT: Size: 0
67;; ARM-NEXT: Binding: Local (0x0)
68;; ARM-NEXT: Type: None (0x0)
69;; ARM-NEXT: Other: 0
70;; ARM-NEXT: Section: .ARM.exidx
71;; ARM-NEXT: }
72
Artyom Skrobove9b3fb82015-12-07 14:22:39 +000073;; ARM: Symbol {
74;; ARM: Name: $d
75;; ARM-NEXT: Value: 0
76;; ARM-NEXT: Size: 0
77;; ARM-NEXT: Binding: Local
78;; ARM-NEXT: Type: None
79
Tim Northover5cc3dc82012-12-07 16:50:23 +000080;; ARM-NOT: ${{[atd]}}
81
Nico Rieckba848e32013-04-12 04:06:46 +000082;; TMB: Symbol {
Artyom Skrobove9b3fb82015-12-07 14:22:39 +000083;; TMB: Name: $d.1
Derek Schuffbd7c6e52013-05-14 16:26:38 +000084;; TMB-NEXT: Value: 0x{{[0-9A-F]+}}
Nico Rieckba848e32013-04-12 04:06:46 +000085;; TMB-NEXT: Size: 0
86;; TMB-NEXT: Binding: Local
87;; TMB-NEXT: Type: None
88;; TMB-NEXT: Other:
89;; TMB-NEXT: Section: [[MIXED_SECT:[^ ]+]]
Tim Northover5cc3dc82012-12-07 16:50:23 +000090
Nico Rieckba848e32013-04-12 04:06:46 +000091;; TMB: Symbol {
92;; TMB: Name: $t
93;; TMB-NEXT: Value: 0x0
94;; TMB-NEXT: Size: 0
95;; TMB-NEXT: Binding: Local
96;; TMB-NEXT: Type: None
97;; TMB-NEXT: Other:
98;; TMB-NEXT: Section: [[MIXED_SECT]]
Tim Northover5cc3dc82012-12-07 16:50:23 +000099
Nico Rieckba848e32013-04-12 04:06:46 +0000100;; TMB: Symbol {
101;; TMB: Name: $t
Derek Schuffbd7c6e52013-05-14 16:26:38 +0000102;; TMB-NEXT: Value: 0x{{[0-9A-F]+}}
Nico Rieckba848e32013-04-12 04:06:46 +0000103;; TMB-NEXT: Size: 0
104;; TMB-NEXT: Binding: Local
105;; TMB-NEXT: Type: None
106;; TMB-NEXT: Other:
107;; TMB-NEXT: Section: [[MIXED_SECT]]
Tim Northover5cc3dc82012-12-07 16:50:23 +0000108
109
110;; TMB-NOT: ${{[atd]}}
111