blob: 14664cfdb7158fc590db335e6472b9e7a610f635 [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 Molloy88cad7e2016-09-01 12:58:13 +000012define void @foo(i32* %ptr, i32 %b) 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 Molloy88cad7e2016-09-01 12:58:13 +000021 store i32 %b, 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:
Sanjay Patel94c0eb02017-10-17 16:54:56 +000030 store i32 4, 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
63;; ARM-NOT: ${{[atd]}}
64
Nico Rieckba848e32013-04-12 04:06:46 +000065;; TMB: Symbol {
Artyom Skrobove9b3fb82015-12-07 14:22:39 +000066;; TMB: Name: $d.1
Derek Schuffbd7c6e52013-05-14 16:26:38 +000067;; TMB-NEXT: Value: 0x{{[0-9A-F]+}}
Nico Rieckba848e32013-04-12 04:06:46 +000068;; TMB-NEXT: Size: 0
69;; TMB-NEXT: Binding: Local
70;; TMB-NEXT: Type: None
71;; TMB-NEXT: Other:
72;; TMB-NEXT: Section: [[MIXED_SECT:[^ ]+]]
Tim Northover5cc3dc82012-12-07 16:50:23 +000073
Nico Rieckba848e32013-04-12 04:06:46 +000074;; TMB: Symbol {
75;; TMB: Name: $t
76;; TMB-NEXT: Value: 0x0
77;; TMB-NEXT: Size: 0
78;; TMB-NEXT: Binding: Local
79;; TMB-NEXT: Type: None
80;; TMB-NEXT: Other:
81;; TMB-NEXT: Section: [[MIXED_SECT]]
Tim Northover5cc3dc82012-12-07 16:50:23 +000082
Nico Rieckba848e32013-04-12 04:06:46 +000083;; TMB: Symbol {
84;; TMB: Name: $t
Derek Schuffbd7c6e52013-05-14 16:26:38 +000085;; TMB-NEXT: Value: 0x{{[0-9A-F]+}}
Nico Rieckba848e32013-04-12 04:06:46 +000086;; TMB-NEXT: Size: 0
87;; TMB-NEXT: Binding: Local
88;; TMB-NEXT: Type: None
89;; TMB-NEXT: Other:
90;; TMB-NEXT: Section: [[MIXED_SECT]]
Tim Northover5cc3dc82012-12-07 16:50:23 +000091
92
93;; TMB-NOT: ${{[atd]}}
94