1 extern int g, h;
2
f00u(int * s)3 void f00u(int *s)
4 {
5 g = *s;
6 h = *s;
7 }
8
f00r(int * restrict s)9 void f00r(int *restrict s)
10 {
11 g = *s;
12 h = *s;
13 }
14
15
f01u(int * a,int * b,int * s)16 void f01u(int *a, int *b, int *s)
17 {
18 *a = *s;
19 *b = *s;
20 }
21
f01r(int * restrict a,int * restrict b,int * restrict s)22 void f01r(int *restrict a, int *restrict b, int *restrict s)
23 {
24 *a = *s;
25 *b = *s;
26 }
27
28 /*
29 * check-name: optim/restrict
30 * check-command: test-linearize -Wno-decl $file
31 * check-known-to-fail
32 *
33 * check-output-start
34 f00u:
35 .L0:
36 <entry-point>
37 load.32 %r2 <- 0[%arg1]
38 store.32 %r2 -> 0[g]
39 load.32 %r4 <- 0[%arg1]
40 store.32 %r4 -> 0[h]
41 ret
42
43
44 f00r:
45 .L2:
46 <entry-point>
47 load.32 %r6 <- 0[%arg1]
48 store.32 %r6 -> 0[g]
49 store.32 %r6 -> 0[h]
50 ret
51
52
53 f01u:
54 .L4:
55 <entry-point>
56 load.32 %r10 <- 0[%arg3]
57 store.32 %r10 -> 0[%arg1]
58 load.32 %r13 <- 0[%arg3]
59 store.32 %r13 -> 0[%arg2]
60 ret
61
62
63 f01r:
64 .L6:
65 <entry-point>
66 load.32 %r16 <- 0[%arg3]
67 store.32 %r16 -> 0[%arg1]
68 store.32 %r16 -> 0[%arg2]
69 ret
70
71
72 * check-output-end
73 */
74