1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /* See https://gitlab.com/qemu-project/qemu/-/issues/2248 */
3
4 #include <assert.h>
5
6 __attribute__((noinline))
test(long x,long y,long sh)7 long test(long x, long y, long sh)
8 {
9 long r;
10 asm("cmp %1, %2\n\t"
11 "cset x12, lt\n\t"
12 "and w11, w12, #0xff\n\t"
13 "cmp w11, #0\n\t"
14 "csetm x14, ne\n\t"
15 "lsr x13, x14, %3\n\t"
16 "sxtb %0, w13"
17 : "=r"(r)
18 : "r"(x), "r"(y), "r"(sh)
19 : "x11", "x12", "x13", "x14");
20 return r;
21 }
22
main()23 int main()
24 {
25 long r = test(0, 1, 2);
26 assert(r == -1);
27 return 0;
28 }
29