hw/arm: versal: Move misplaced comment
[qemu/ar7.git] / tests / tcg / xtensa / test_fp1.S
blob6e182e5964bd245ba7ea1b9ad623265bda62dd06
1 #include "macros.inc"
3 test_suite fp1
5 #if XCHAL_HAVE_FP
7 .macro movfp fr, v
8     movi    a2, \v
9     wfr     \fr, a2
10 .endm
12 .macro test_ord_ex op, br, fr0, fr1, v0, v1, r
13     movi    a2, 0
14     wur     a2, fsr
15     movfp   \fr0, \v0
16     movfp   \fr1, \v1
17     \op     \br, \fr0, \fr1
18     movi    a2, 0
19     movi    a3, 1
20     movt    a2, a3, \br
21     assert  eqi, a2, \r
22     rur     a2, fsr
23     assert  eqi, a2, 0
24 .endm
26 .macro test_ord op, br, fr0, fr1, v0, v1, r
27     movi    a2, 0
28     wur     a2, fcr
29     test_ord_ex \op, \br, \fr0, \fr1, \v0, \v1, \r
30     movi    a2, 0x7c
31     wur     a2, fcr
32     test_ord_ex \op, \br, \fr0, \fr1, \v0, \v1, \r
33 .endm
35 .macro test_ord_all op, aa, ab, ba, aPI, PIa, aN, Na, II, IN, NI
36     test_ord \op  b0,  f0,  f1, 0x3f800000, 0x3f800000, \aa
37     test_ord \op  b1,  f2,  f3, 0x3f800000, 0x3fc00000, \ab
38     test_ord \op  b2,  f4,  f5, 0x3fc00000, 0x3f800000, \ba
39     test_ord \op  b3,  f6,  f7, 0x3f800000, 0x7f800000, \aPI
40     test_ord \op  b4,  f8,  f9, 0x7f800000, 0x3f800000, \PIa
41     test_ord \op  b5, f10, f11, 0x3f800000, 0xffc00001, \aN
42     test_ord \op  b6, f12, f13, 0x3f800000, 0xff800001, \aN
43     test_ord \op  b7, f14, f15, 0x3f800000, 0x7f800001, \aN
44     test_ord \op  b8,  f0,  f1, 0x3f800000, 0x7fc00000, \aN
45     test_ord \op  b9,  f2,  f3, 0xffc00001, 0x3f800000, \Na
46     test_ord \op b10,  f4,  f5, 0xff800001, 0x3f800000, \Na
47     test_ord \op b11,  f6,  f7, 0x7f800001, 0x3f800000, \Na
48     test_ord \op b12,  f8,  f9, 0x7fc00000, 0x3f800000, \Na
49     test_ord \op b13, f10, f11, 0x7f800000, 0x7f800000, \II
50     test_ord \op b14, f12, f13, 0x7f800000, 0x7fc00000, \IN
51     test_ord \op b15, f14, f15, 0x7fc00000, 0x7f800000, \NI
52 .endm
54 test un_s
55     movi    a2, 1
56     wsr     a2, cpenable
57     test_ord_all un.s, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1
58 test_end
60 test oeq_s
61     test_ord_all oeq.s, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0
62 test_end
64 test ueq_s
65     test_ord_all ueq.s, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1
66 test_end
68 test olt_s
69     test_ord_all olt.s, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0
70 test_end
72 test ult_s
73     test_ord_all ult.s, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1
74 test_end
76 test ole_s
77     test_ord_all ole.s, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0
78 test_end
80 test ule_s
81     test_ord_all ule.s, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1
82 test_end
84 .macro test_cond op, fr0, fr1, cr, v0, v1, r
85     movfp   \fr0, \v0
86     movfp   \fr1, \v1
87     \op     \fr0, \fr1, \cr
88     rfr     a2, \fr0
89     movi    a3, \r
90     assert  eq, a2, a3
91 .endm
93 test moveqz_s
94     movi    a3, 0
95     test_cond moveqz.s, f0, f1, a3, 0, 0x3f800000, 0x3f800000
96     movi    a3, 1
97     test_cond moveqz.s, f0, f1, a3, 0, 0x3f800000, 0
98 test_end
100 test movnez_s
101     movi    a3, 0
102     test_cond movnez.s, f0, f1, a3, 0, 0x3f800000, 0
103     movi    a3, 1
104     test_cond movnez.s, f0, f1, a3, 0, 0x3f800000, 0x3f800000
105 test_end
107 test movltz_s
108     movi    a3, -1
109     test_cond movltz.s, f0, f1, a3, 0, 0x3f800000, 0x3f800000
110     movi    a3, 0
111     test_cond movltz.s, f0, f1, a3, 0, 0x3f800000, 0
112     movi    a3, 1
113     test_cond movltz.s, f0, f1, a3, 0, 0x3f800000, 0
114 test_end
116 test movgez_s
117     movi    a3, -1
118     test_cond movgez.s, f0, f1, a3, 0, 0x3f800000, 0
119     movi    a3, 0
120     test_cond movgez.s, f0, f1, a3, 0, 0x3f800000, 0x3f800000
121     movi    a3, 1
122     test_cond movgez.s, f0, f1, a3, 0, 0x3f800000, 0x3f800000
123 test_end
125 test movf_s
126     olt.s   b0, f0, f0
127     test_cond movf.s, f0, f1, b0, 0, 0x3f800000, 0x3f800000
128     ueq.s   b0, f0, f0
129     test_cond movf.s, f0, f1, b0, 0, 0x3f800000, 0
130 test_end
132 test movt_s
133     ueq.s   b0, f0, f0
134     test_cond movt.s, f0, f1, b0, 0, 0x3f800000, 0x3f800000
135     olt.s   b0, f0, f0
136     test_cond movt.s, f0, f1, b0, 0, 0x3f800000, 0
137 test_end
139 #endif
141 test_suite_end