annotate gcc/testsuite/gcc.target/aarch64/sve/pcs/saves_1_be_nowrap.c @ 152:2b5abeee2509

update gcc11
author anatofuz
date Mon, 25 May 2020 07:50:57 +0900
parents 1830386684a0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
145
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
1 /* { dg-do compile } */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
2 /* { dg-options "-O -mbig-endian -fno-shrink-wrap -fno-stack-clash-protection -g" } */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
3 /* { dg-final { check-function-bodies "**" "" } } */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
4
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
5 #pragma GCC aarch64 "arm_sve.h"
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
6
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
7 /*
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
8 ** test_1:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
9 ** addvl sp, sp, #-17
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
10 ** str p4, \[sp\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
11 ** str p5, \[sp, #1, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
12 ** str p6, \[sp, #2, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
13 ** str p7, \[sp, #3, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
14 ** str p8, \[sp, #4, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
15 ** str p9, \[sp, #5, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
16 ** str p10, \[sp, #6, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
17 ** str p11, \[sp, #7, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
18 ** ptrue p1\.b, all
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
19 ** st1d z8\.d, p1, \[sp, #1, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
20 ** st1d z9\.d, p1, \[sp, #2, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
21 ** st1d z10\.d, p1, \[sp, #3, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
22 ** st1d z11\.d, p1, \[sp, #4, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
23 ** st1d z12\.d, p1, \[sp, #5, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
24 ** st1d z13\.d, p1, \[sp, #6, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
25 ** st1d z14\.d, p1, \[sp, #7, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
26 ** addvl x11, sp, #16
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
27 ** st1d z15\.d, p1, \[x11, #-8, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
28 ** str z16, \[sp, #9, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
29 ** str z17, \[sp, #10, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
30 ** str z18, \[sp, #11, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
31 ** str z19, \[sp, #12, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
32 ** str z20, \[sp, #13, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
33 ** str z21, \[sp, #14, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
34 ** str z22, \[sp, #15, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
35 ** str z23, \[sp, #16, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
36 ** ptrue p0\.b, all
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
37 ** ptrue p1\.b, all
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
38 ** ld1d z8\.d, p1/z, \[sp, #1, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
39 ** ld1d z9\.d, p1/z, \[sp, #2, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
40 ** ld1d z10\.d, p1/z, \[sp, #3, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
41 ** ld1d z11\.d, p1/z, \[sp, #4, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
42 ** ld1d z12\.d, p1/z, \[sp, #5, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
43 ** ld1d z13\.d, p1/z, \[sp, #6, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
44 ** ld1d z14\.d, p1/z, \[sp, #7, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
45 ** addvl x11, sp, #16
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
46 ** ld1d z15\.d, p1/z, \[x11, #-8, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
47 ** ldr z16, \[sp, #9, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
48 ** ldr z17, \[sp, #10, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
49 ** ldr z18, \[sp, #11, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
50 ** ldr z19, \[sp, #12, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
51 ** ldr z20, \[sp, #13, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
52 ** ldr z21, \[sp, #14, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
53 ** ldr z22, \[sp, #15, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
54 ** ldr z23, \[sp, #16, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
55 ** ldr p4, \[sp\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
56 ** ldr p5, \[sp, #1, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
57 ** ldr p6, \[sp, #2, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
58 ** ldr p7, \[sp, #3, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
59 ** ldr p8, \[sp, #4, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
60 ** ldr p9, \[sp, #5, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
61 ** ldr p10, \[sp, #6, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
62 ** ldr p11, \[sp, #7, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
63 ** addvl sp, sp, #17
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
64 ** ret
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
65 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
66 svbool_t
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
67 test_1 (void)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
68 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
69 asm volatile ("" :::
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
70 "z0", "z1", "z2", "z3", "z4", "z5", "z6", "z7",
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
71 "z8", "z9", "z10", "z11", "z12", "z13", "z14", "z15",
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
72 "z16", "z17", "z18", "z19", "z20", "z21", "z22", "z23",
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
73 "z24", "z25", "z26", "z27", "z28", "z29", "z30", "z31",
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
74 "p0", "p1", "p2", "p3", "p4", "p5", "p6", "p7",
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
75 "p8", "p9", "p10", "p11", "p12", "p13", "p14", "p15");
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
76 return svptrue_b8 ();
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
77 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
78
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
79 /*
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
80 ** test_2:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
81 ** ptrue p0\.b, all
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
82 ** ret
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
83 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
84 svbool_t
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
85 test_2 (void)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
86 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
87 asm volatile ("" :::
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
88 "z0", "z1", "z2", "z3", "z4", "z5", "z6", "z7",
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
89 "z24", "z25", "z26", "z27", "z28", "z29", "z30", "z31",
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
90 "p0", "p1", "p2", "p3", "p12", "p13", "p14", "p15");
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
91 return svptrue_b8 ();
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
92 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
93
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
94 /*
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
95 ** test_3:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
96 ** addvl sp, sp, #-6
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
97 ** str p5, \[sp\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
98 ** str p6, \[sp, #1, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
99 ** str p11, \[sp, #2, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
100 ** ptrue p1\.b, all
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
101 ** st1d z8\.d, p1, \[sp, #1, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
102 ** st1d z13\.d, p1, \[sp, #2, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
103 ** str z19, \[sp, #3, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
104 ** str z20, \[sp, #4, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
105 ** str z22, \[sp, #5, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
106 ** ptrue p0\.b, all
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
107 ** ptrue p1\.b, all
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
108 ** ld1d z8\.d, p1/z, \[sp, #1, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
109 ** ld1d z13\.d, p1/z, \[sp, #2, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
110 ** ldr z19, \[sp, #3, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
111 ** ldr z20, \[sp, #4, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
112 ** ldr z22, \[sp, #5, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
113 ** ldr p5, \[sp\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
114 ** ldr p6, \[sp, #1, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
115 ** ldr p11, \[sp, #2, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
116 ** addvl sp, sp, #6
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
117 ** ret
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
118 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
119 svbool_t
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
120 test_3 (void)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
121 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
122 asm volatile ("" :::
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
123 "z8", "z13", "z19", "z20", "z22",
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
124 "p5", "p6", "p11");
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
125 return svptrue_b8 ();
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
126 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
127
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
128 /*
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
129 ** test_4:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
130 ** addvl sp, sp, #-1
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
131 ** str p4, \[sp\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
132 ** ptrue p0\.b, all
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
133 ** ldr p4, \[sp\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
134 ** addvl sp, sp, #1
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
135 ** ret
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
136 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
137 svbool_t
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
138 test_4 (void)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
139 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
140 asm volatile ("" ::: "p4");
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
141 return svptrue_b8 ();
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
142 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
143
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
144 /*
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
145 ** test_5:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
146 ** addvl sp, sp, #-1
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
147 ** ptrue p1\.b, all
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
148 ** st1d z15\.d, p1, \[sp\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
149 ** ptrue p0\.b, all
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
150 ** ptrue p1\.b, all
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
151 ** ld1d z15\.d, p1/z, \[sp\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
152 ** addvl sp, sp, #1
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
153 ** ret
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
154 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
155 svbool_t
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
156 test_5 (void)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
157 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
158 asm volatile ("" ::: "z15");
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
159 return svptrue_b8 ();
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
160 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
161
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
162 /*
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
163 ** test_6:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
164 ** addvl sp, sp, #-2
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
165 ** str p4, \[sp\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
166 ** ptrue p4\.b, all
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
167 ** st1d z15\.d, p4, \[sp, #1, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
168 ** mov z0\.b, #1
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
169 ** ptrue p4\.b, all
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
170 ** ld1d z15\.d, p4/z, \[sp, #1, mul vl\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
171 ** ldr p4, \[sp\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
172 ** addvl sp, sp, #2
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
173 ** ret
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
174 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
175 svint8_t
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
176 test_6 (svbool_t p0, svbool_t p1, svbool_t p2, svbool_t p3)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
177 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
178 asm volatile ("" :: "Upa" (p0), "Upa" (p1), "Upa" (p2), "Upa" (p3) : "z15");
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
179 return svdup_s8 (1);
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
180 }
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
181
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
182 /*
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
183 ** test_7:
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
184 ** addvl sp, sp, #-1
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
185 ** str z16, \[sp\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
186 ** ptrue p0\.b, all
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
187 ** ldr z16, \[sp\]
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
188 ** addvl sp, sp, #1
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
189 ** ret
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
190 */
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
191 svbool_t
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
192 test_7 (void)
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
193 {
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
194 asm volatile ("" ::: "z16");
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
195 return svptrue_b8 ();
1830386684a0 gcc-9.2.0
anatofuz
parents:
diff changeset
196 }