blob: 9a429f6e21f729bc3384b7bfab4ae0d247033777 [file] [log] [blame]
Meador Ingee17b69a2012-05-28 15:45:43 +00001; RUN: llvm-as < %s | llvm-dis | FileCheck %s
2; PR12696
3
4define void @f1(i8 zeroext)
5; CHECK: define void @f1(i8 zeroext)
6{
7 ret void;
8}
9
10define void @f2(i8 signext)
11; CHECK: define void @f2(i8 signext)
12{
13 ret void;
14}
15
16define void @f3() noreturn
Bill Wendling90bc19c2013-02-20 07:21:42 +000017; CHECK: define void @f3() #0
Meador Ingee17b69a2012-05-28 15:45:43 +000018{
19 ret void;
20}
21
22define void @f4(i8 inreg)
23; CHECK: define void @f4(i8 inreg)
24{
25 ret void;
26}
27
28define void @f5(i8* sret)
29; CHECK: define void @f5(i8* sret)
30{
31 ret void;
32}
33
34define void @f6() nounwind
Bill Wendling90bc19c2013-02-20 07:21:42 +000035; CHECK: define void @f6() #1
Meador Ingee17b69a2012-05-28 15:45:43 +000036{
37 ret void;
38}
39
40define void @f7(i8* noalias)
41; CHECK: define void @f7(i8* noalias)
42{
43 ret void;
44}
45
46define void @f8(i8* byval)
47; CHECK: define void @f8(i8* byval)
48{
49 ret void;
50}
51
52define void @f9(i8* nest)
53; CHECK: define void @f9(i8* nest)
54{
55 ret void;
56}
57
58define void @f10() readnone
Bill Wendling90bc19c2013-02-20 07:21:42 +000059; CHECK: define void @f10() #2
Meador Ingee17b69a2012-05-28 15:45:43 +000060{
61 ret void;
62}
63
64define void @f11() readonly
Bill Wendling90bc19c2013-02-20 07:21:42 +000065; CHECK: define void @f11() #3
Meador Ingee17b69a2012-05-28 15:45:43 +000066{
67 ret void;
68}
69
70define void @f12() noinline
Bill Wendling90bc19c2013-02-20 07:21:42 +000071; CHECK: define void @f12() #4
Meador Ingee17b69a2012-05-28 15:45:43 +000072{
73 ret void;
74}
75
76define void @f13() alwaysinline
Bill Wendling90bc19c2013-02-20 07:21:42 +000077; CHECK: define void @f13() #5
Meador Ingee17b69a2012-05-28 15:45:43 +000078{
79 ret void;
80}
81
82define void @f14() optsize
Bill Wendling90bc19c2013-02-20 07:21:42 +000083; CHECK: define void @f14() #6
Meador Ingee17b69a2012-05-28 15:45:43 +000084{
85 ret void;
86}
87
88define void @f15() ssp
Bill Wendling90bc19c2013-02-20 07:21:42 +000089; CHECK: define void @f15() #7
Meador Ingee17b69a2012-05-28 15:45:43 +000090{
91 ret void;
92}
93
94define void @f16() sspreq
Bill Wendling90bc19c2013-02-20 07:21:42 +000095; CHECK: define void @f16() #8
Meador Ingee17b69a2012-05-28 15:45:43 +000096{
97 ret void;
98}
99
100define void @f17(i8 align 4)
101; CHECK: define void @f17(i8 align 4)
102{
103 ret void;
104}
105
106define void @f18(i8* nocapture)
107; CHECK: define void @f18(i8* nocapture)
108{
109 ret void;
110}
111
112define void @f19() noredzone
Bill Wendling90bc19c2013-02-20 07:21:42 +0000113; CHECK: define void @f19() #9
Meador Ingee17b69a2012-05-28 15:45:43 +0000114{
115 ret void;
116}
117
118define void @f20() noimplicitfloat
Bill Wendling90bc19c2013-02-20 07:21:42 +0000119; CHECK: define void @f20() #10
Meador Ingee17b69a2012-05-28 15:45:43 +0000120{
121 ret void;
122}
123
124define void @f21() naked
Bill Wendling90bc19c2013-02-20 07:21:42 +0000125; CHECK: define void @f21() #11
Meador Ingee17b69a2012-05-28 15:45:43 +0000126{
127 ret void;
128}
129
130define void @f22() inlinehint
Bill Wendling90bc19c2013-02-20 07:21:42 +0000131; CHECK: define void @f22() #12
Meador Ingee17b69a2012-05-28 15:45:43 +0000132{
133 ret void;
134}
135
136define void @f23() alignstack(4)
Bill Wendling90bc19c2013-02-20 07:21:42 +0000137; CHECK: define void @f23() #13
Meador Ingee17b69a2012-05-28 15:45:43 +0000138{
139 ret void;
140}
141
142define void @f24() returns_twice
Bill Wendling90bc19c2013-02-20 07:21:42 +0000143; CHECK: define void @f24() #14
Meador Ingee17b69a2012-05-28 15:45:43 +0000144{
145 ret void;
146}
147
148define void @f25() uwtable
Bill Wendling90bc19c2013-02-20 07:21:42 +0000149; CHECK: define void @f25() #15
Meador Ingee17b69a2012-05-28 15:45:43 +0000150{
151 ret void;
152}
153
154define void @f26() nonlazybind
Bill Wendling90bc19c2013-02-20 07:21:42 +0000155; CHECK: define void @f26() #16
Meador Ingee17b69a2012-05-28 15:45:43 +0000156{
157 ret void;
158}
159
Kostya Serebryanycf880b92013-02-26 06:58:09 +0000160define void @f27() sanitize_address
Bill Wendling90bc19c2013-02-20 07:21:42 +0000161; CHECK: define void @f27() #17
Meador Ingee17b69a2012-05-28 15:45:43 +0000162{
163 ret void;
164}
Kostya Serebryanycf880b92013-02-26 06:58:09 +0000165define void @f28() sanitize_thread
Bill Wendling90bc19c2013-02-20 07:21:42 +0000166; CHECK: define void @f28() #18
Kostya Serebryanyd688bab2013-02-11 08:13:54 +0000167{
168 ret void;
169}
Kostya Serebryanycf880b92013-02-26 06:58:09 +0000170define void @f29() sanitize_memory
Bill Wendling90bc19c2013-02-20 07:21:42 +0000171; CHECK: define void @f29() #19
Kostya Serebryanyd688bab2013-02-11 08:13:54 +0000172{
173 ret void;
174}
Bill Wendling7321fec2013-02-12 09:14:20 +0000175
176define void @f30() "cpu"="cortex-a8"
Bill Wendling90bc19c2013-02-20 07:21:42 +0000177; CHECK: define void @f30() #20
Bill Wendling7321fec2013-02-12 09:14:20 +0000178{
179 ret void;
180}
181
Tobias Grosser00cf5352013-07-17 22:13:44 +0000182define i8 @f31(i8 returned %A)
183; CHECK: define i8 @f31(i8 returned %A)
184{
185 ret i8 %A;
186}
187
188define void @f32() sspstrong
189; CHECK: define void @f32() #21
190{
191 ret void;
192}
193
194define void @f33() minsize
195; CHECK: define void @f33() #22
196{
197 ret void;
198}
199
200declare void @nobuiltin()
201
202define void @f34()
203; CHECK: define void @f34()
204{
205 call void @nobuiltin() nobuiltin
Tom Roeder44cb65f2014-06-05 19:29:43 +0000206; CHECK: call void @nobuiltin() #25
Andrea Di Biagio377496b2013-08-23 11:53:55 +0000207 ret void;
208}
209
Paul Robinsondcbe35b2013-11-18 21:44:03 +0000210define void @f35() optnone noinline
Andrea Di Biagio377496b2013-08-23 11:53:55 +0000211; CHECK: define void @f35() #23
212{
Tobias Grosser00cf5352013-07-17 22:13:44 +0000213 ret void;
214}
215
Reid Klecknera534a382013-12-19 02:14:12 +0000216define void @f36(i8* inalloca) {
217; CHECK: define void @f36(i8* inalloca) {
218 ret void
219}
220
Nick Lewyckyd52b1522014-05-20 01:23:40 +0000221define nonnull i8* @f37(i8* nonnull %a) {
222; CHECK: define nonnull i8* @f37(i8* nonnull %a) {
223 ret i8* %a
224}
225
Tom Roeder44cb65f2014-06-05 19:29:43 +0000226define void @f38() unnamed_addr jumptable {
227; CHECK: define void @f38() unnamed_addr #24
228 call void bitcast (void (i8*)* @f36 to void ()*)()
229 unreachable
230}
231
Hal Finkelb0407ba2014-07-18 15:51:28 +0000232define dereferenceable(2) i8* @f39(i8* dereferenceable(1) %a) {
233; CHECK: define dereferenceable(2) i8* @f39(i8* dereferenceable(1) %a) {
234 ret i8* %a
235}
236
237define dereferenceable(18446744073709551606) i8* @f40(i8* dereferenceable(18446744073709551615) %a) {
238; CHECK: define dereferenceable(18446744073709551606) i8* @f40(i8* dereferenceable(18446744073709551615) %a) {
239 ret i8* %a
240}
241
Hal Finkelccc70902014-07-22 16:58:55 +0000242define void @f41(i8* align 32, double* align 64) {
243; CHECK: define void @f41(i8* align 32, double* align 64) {
244 ret void
245}
246
Bill Wendling7321fec2013-02-12 09:14:20 +0000247; CHECK: attributes #0 = { noreturn }
248; CHECK: attributes #1 = { nounwind }
249; CHECK: attributes #2 = { readnone }
250; CHECK: attributes #3 = { readonly }
251; CHECK: attributes #4 = { noinline }
252; CHECK: attributes #5 = { alwaysinline }
253; CHECK: attributes #6 = { optsize }
254; CHECK: attributes #7 = { ssp }
255; CHECK: attributes #8 = { sspreq }
256; CHECK: attributes #9 = { noredzone }
257; CHECK: attributes #10 = { noimplicitfloat }
258; CHECK: attributes #11 = { naked }
259; CHECK: attributes #12 = { inlinehint }
260; CHECK: attributes #13 = { alignstack=4 }
261; CHECK: attributes #14 = { returns_twice }
262; CHECK: attributes #15 = { uwtable }
263; CHECK: attributes #16 = { nonlazybind }
Kostya Serebryanycf880b92013-02-26 06:58:09 +0000264; CHECK: attributes #17 = { sanitize_address }
265; CHECK: attributes #18 = { sanitize_thread }
266; CHECK: attributes #19 = { sanitize_memory }
Bill Wendling7321fec2013-02-12 09:14:20 +0000267; CHECK: attributes #20 = { "cpu"="cortex-a8" }
Tobias Grosser00cf5352013-07-17 22:13:44 +0000268; CHECK: attributes #21 = { sspstrong }
269; CHECK: attributes #22 = { minsize }
Paul Robinsondcbe35b2013-11-18 21:44:03 +0000270; CHECK: attributes #23 = { noinline optnone }
Tom Roeder44cb65f2014-06-05 19:29:43 +0000271; CHECK: attributes #24 = { jumptable }
272; CHECK: attributes #25 = { nobuiltin }