xref: /qemu/tests/tcg/aarch64/test-2375.c (revision c80a339587fe4148292c260716482dd2f86d4476)
1*7619129fSRichard Henderson /* SPDX-License-Identifier: GPL-2.0-or-later */
2*7619129fSRichard Henderson /* Copyright (c) 2024 Linaro Ltd */
3*7619129fSRichard Henderson /* See https://gitlab.com/qemu-project/qemu/-/issues/2375 */
4*7619129fSRichard Henderson 
5*7619129fSRichard Henderson #include <assert.h>
6*7619129fSRichard Henderson 
main(void)7*7619129fSRichard Henderson int main(void)
8*7619129fSRichard Henderson {
9*7619129fSRichard Henderson    int r, z;
10*7619129fSRichard Henderson 
11*7619129fSRichard Henderson    asm("msr fpcr, %2\n\t"
12*7619129fSRichard Henderson        "fjcvtzs %w0, %d3\n\t"
13*7619129fSRichard Henderson        "cset %1, eq"
14*7619129fSRichard Henderson        : "=r"(r), "=r"(z)
15*7619129fSRichard Henderson        : "r"(0x01000000L),      /* FZ = 1 */
16*7619129fSRichard Henderson          "w"(0xfcff00L));       /* denormal */
17*7619129fSRichard Henderson 
18*7619129fSRichard Henderson     assert(r == 0);
19*7619129fSRichard Henderson     assert(z == 0);
20*7619129fSRichard Henderson     return 0;
21*7619129fSRichard Henderson }
22