15e33b037SMax Filippov#include "macros.inc" 2*adbb3df0SMax Filippov#include "fpu.h" 35e33b037SMax Filippov 45e33b037SMax Filippovtest_suite lsc 55e33b037SMax Filippov 65e33b037SMax Filippov#if XCHAL_HAVE_FP 75e33b037SMax Filippov 85e33b037SMax Filippovtest lsi 95e33b037SMax Filippov movi a2, 1 105e33b037SMax Filippov wsr a2, cpenable 115e33b037SMax Filippov 125e33b037SMax Filippov movi a2, 1f 135e33b037SMax Filippov lsi f1, a2, 4 14*adbb3df0SMax Filippov#if DFPU 15*adbb3df0SMax Filippov lsi f2, a2, 8 16*adbb3df0SMax Filippov lsip f0, a2, 8 17*adbb3df0SMax Filippov#else 18*adbb3df0SMax Filippov lsi f0, a2, 0 195e33b037SMax Filippov lsiu f2, a2, 8 20*adbb3df0SMax Filippov#endif 215e33b037SMax Filippov movi a3, 1f + 8 225e33b037SMax Filippov assert eq, a2, a3 235e33b037SMax Filippov rfr a2, f0 245e33b037SMax Filippov movi a3, 0x3f800000 255e33b037SMax Filippov assert eq, a2, a3 265e33b037SMax Filippov rfr a2, f1 275e33b037SMax Filippov movi a3, 0x40000000 285e33b037SMax Filippov assert eq, a2, a3 295e33b037SMax Filippov rfr a2, f2 305e33b037SMax Filippov movi a3, 0x40400000 315e33b037SMax Filippov assert eq, a2, a3 325e33b037SMax Filippov.data 335e33b037SMax Filippov .align 4 345e33b037SMax Filippov1: 355e33b037SMax Filippov.float 1, 2, 3 365e33b037SMax Filippov.text 375e33b037SMax Filippovtest_end 385e33b037SMax Filippov 395e33b037SMax Filippovtest ssi 405e33b037SMax Filippov movi a2, 1f 415e33b037SMax Filippov movi a3, 0x40800000 425e33b037SMax Filippov wfr f3, a3 435e33b037SMax Filippov movi a3, 0x40a00000 445e33b037SMax Filippov wfr f4, a3 455e33b037SMax Filippov movi a3, 0x40c00000 465e33b037SMax Filippov wfr f5, a3 47*adbb3df0SMax Filippov ssi f4, a2, 4 48*adbb3df0SMax Filippov#if DFPU 49*adbb3df0SMax Filippov ssi f5, a2, 8 50*adbb3df0SMax Filippov ssip f3, a2, 8 51*adbb3df0SMax Filippov#else 52*adbb3df0SMax Filippov ssi f3, a2, 0 535e33b037SMax Filippov ssiu f5, a2, 8 54*adbb3df0SMax Filippov#endif 555e33b037SMax Filippov movi a3, 1f + 8 565e33b037SMax Filippov assert eq, a2, a3 575e33b037SMax Filippov l32i a4, a2, -8 585e33b037SMax Filippov movi a3, 0x40800000 595e33b037SMax Filippov assert eq, a4, a3 605e33b037SMax Filippov l32i a4, a2, -4 615e33b037SMax Filippov movi a3, 0x40a00000 625e33b037SMax Filippov assert eq, a4, a3 635e33b037SMax Filippov l32i a4, a2, 0 645e33b037SMax Filippov movi a3, 0x40c00000 655e33b037SMax Filippov assert eq, a4, a3 665e33b037SMax Filippov.data 675e33b037SMax Filippov .align 4 685e33b037SMax Filippov1: 695e33b037SMax Filippov.float 0, 0, 0 705e33b037SMax Filippov.text 715e33b037SMax Filippovtest_end 725e33b037SMax Filippov 735e33b037SMax Filippovtest lsx 745e33b037SMax Filippov movi a2, 1f 755e33b037SMax Filippov movi a3, 0 76*adbb3df0SMax Filippov movi a4, 4 77*adbb3df0SMax Filippov movi a5, 8 78*adbb3df0SMax Filippov lsx f7, a2, a4 79*adbb3df0SMax Filippov#if DFPU 80*adbb3df0SMax Filippov lsx f8, a2, a5 81*adbb3df0SMax Filippov lsxp f6, a2, a5 82*adbb3df0SMax Filippov#else 835e33b037SMax Filippov lsx f6, a2, a3 84*adbb3df0SMax Filippov lsxu f8, a2, a5 85*adbb3df0SMax Filippov#endif 865e33b037SMax Filippov movi a3, 1f + 8 875e33b037SMax Filippov assert eq, a2, a3 885e33b037SMax Filippov rfr a2, f6 895e33b037SMax Filippov movi a3, 0x40e00000 905e33b037SMax Filippov assert eq, a2, a3 915e33b037SMax Filippov rfr a2, f7 925e33b037SMax Filippov movi a3, 0x41000000 935e33b037SMax Filippov assert eq, a2, a3 945e33b037SMax Filippov rfr a2, f8 955e33b037SMax Filippov movi a3, 0x41100000 965e33b037SMax Filippov assert eq, a2, a3 975e33b037SMax Filippov.data 985e33b037SMax Filippov .align 4 995e33b037SMax Filippov1: 1005e33b037SMax Filippov.float 7, 8, 9 1015e33b037SMax Filippov.text 1025e33b037SMax Filippovtest_end 1035e33b037SMax Filippov 1045e33b037SMax Filippovtest ssx 1055e33b037SMax Filippov movi a2, 1f 1065e33b037SMax Filippov movi a4, 0x41200000 1075e33b037SMax Filippov wfr f9, a4 1085e33b037SMax Filippov movi a4, 0x41300000 1095e33b037SMax Filippov wfr f10, a4 1105e33b037SMax Filippov movi a4, 0x41400000 1115e33b037SMax Filippov wfr f11, a4 112*adbb3df0SMax Filippov movi a3, 0 113*adbb3df0SMax Filippov movi a4, 4 114*adbb3df0SMax Filippov movi a5, 8 115*adbb3df0SMax Filippov ssx f10, a2, a4 116*adbb3df0SMax Filippov#if DFPU 117*adbb3df0SMax Filippov ssx f11, a2, a5 118*adbb3df0SMax Filippov ssxp f9, a2, a5 119*adbb3df0SMax Filippov#else 120*adbb3df0SMax Filippov ssx f9, a2, a3 121*adbb3df0SMax Filippov ssxu f11, a2, a5 122*adbb3df0SMax Filippov#endif 1235e33b037SMax Filippov movi a3, 1f + 8 1245e33b037SMax Filippov assert eq, a2, a3 1255e33b037SMax Filippov l32i a4, a2, -8 1265e33b037SMax Filippov movi a3, 0x41200000 1275e33b037SMax Filippov assert eq, a4, a3 1285e33b037SMax Filippov l32i a4, a2, -4 1295e33b037SMax Filippov movi a3, 0x41300000 1305e33b037SMax Filippov assert eq, a4, a3 1315e33b037SMax Filippov l32i a4, a2, 0 1325e33b037SMax Filippov movi a3, 0x41400000 1335e33b037SMax Filippov assert eq, a4, a3 1345e33b037SMax Filippov.data 1355e33b037SMax Filippov .align 4 1365e33b037SMax Filippov1: 1375e33b037SMax Filippov.float 0, 0, 0 1385e33b037SMax Filippov.text 1395e33b037SMax Filippovtest_end 1405e33b037SMax Filippov 1415e33b037SMax Filippov#endif 1425e33b037SMax Filippov 1435e33b037SMax Filippovtest_suite_end 144