master
c 28 lines 624 Bytes
Raw
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /* WHILEWR / WHILERW regression test */
3
4 #include <sys/prctl.h>
5 #include <assert.h>
6
7 int main(int argc, char **argv)
8 {
9 unsigned short p;
10 int set_vl_ret;
11
12 set_vl_ret = prctl(PR_SVE_SET_VL, 16, 0, 0, 0, 0);
13 assert(set_vl_ret == 16);
14
15 p = 0xdead;
16 asm("whilewr p0.s, %0, %1\n\t"
17 "str p0, [%2]"
18 : : "r"(8), "r"(11), "r"(&p) : "memory", "p0");
19 assert(p == 0x1111);
20
21 p = 0xdead;
22 asm("whilerw p0.s, %0, %1\n\t"
23 "str p0, [%2]"
24 : : "r"(8), "r"(11), "r"(&p) : "memory", "p0");
25 assert(p == 0x1111);
26
27 return 0;
28 }