1#include "macros.inc" 2 3test_suite fp1 4 5#if XCHAL_HAVE_FP 6 7.macro movfp fr, v 8 movi a2, \v 9 wfr \fr, a2 10.endm 11 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 25 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 34 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 53 54test 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 58test_end 59 60test oeq_s 61 test_ord_all oeq.s, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0 62test_end 63 64test ueq_s 65 test_ord_all ueq.s, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1 66test_end 67 68test olt_s 69 test_ord_all olt.s, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0 70test_end 71 72test ult_s 73 test_ord_all ult.s, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1 74test_end 75 76test ole_s 77 test_ord_all ole.s, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0 78test_end 79 80test ule_s 81 test_ord_all ule.s, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1 82test_end 83 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 92 93test 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 98test_end 99 100test 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 105test_end 106 107test 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 114test_end 115 116test 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 123test_end 124 125test 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 130test_end 131 132test 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 137test_end 138 139#endif 140 141test_suite_end 142