1# sh testcase for fsqrt 2# mach: sh 3# as(sh): -defsym sim_cpu=0 4 5 .include "testutils.inc" 6 7 start 8fsqrt_single: 9 set_grs_a5a5 10 set_fprs_a5a5 11 # sqrt(0.0) = 0.0. 12 fldi0 fr0 13 fsqrt fr0 14 fldi0 fr1 15 fcmp/eq fr0, fr1 16 bt .L0 17 fail 18.L0: 19 # sqrt(1.0) = 1.0. 20 fldi1 fr0 21 fsqrt fr0 22 fldi1 fr1 23 fcmp/eq fr0, fr1 24 bt .L1 25 fail 26.L1: 27 # sqrt(4.0) = 2.0 28 fldi1 fr0 29 # Double it. 30 fadd fr0, fr0 31 # Double it again. 32 fadd fr0, fr0 33 fsqrt fr0 34 fldi1 fr1 35 # Double it. 36 fadd fr1, fr1 37 fcmp/eq fr0, fr1 38 bt .L2 39 fail 40.L2: 41 test_grs_a5a5 42 assert_fpreg_i 2, fr0 43 assert_fpreg_i 2, fr1 44 test_fpr_a5a5 fr2 45 test_fpr_a5a5 fr3 46 test_fpr_a5a5 fr4 47 test_fpr_a5a5 fr5 48 test_fpr_a5a5 fr6 49 test_fpr_a5a5 fr7 50 test_fpr_a5a5 fr8 51 test_fpr_a5a5 fr9 52 test_fpr_a5a5 fr10 53 test_fpr_a5a5 fr11 54 test_fpr_a5a5 fr12 55 test_fpr_a5a5 fr13 56 test_fpr_a5a5 fr14 57 test_fpr_a5a5 fr15 58 59fsqrt_double: 60 double_prec 61 set_grs_a5a5 62 set_fprs_a5a5 63 # sqrt(0.0) = 0.0. 64 fldi0 fr0 65 _s2d fr0, dr0 66 fsqrt dr0 67 fldi0 fr2 68 _s2d fr2, dr2 69 fcmp/eq dr0, dr2 70 bt .L10 71 fail 72.L10: 73 # sqrt(1.0) = 1.0. 74 fldi1 fr0 75 _s2d fr0, dr0 76 fsqrt dr0 77 fldi1 fr2 78 _s2d fr2, dr2 79 fcmp/eq dr0, dr2 80 bt .L11 81 fail 82.L11: 83 # sqrt(4.0) = 2.0. 84 fldi1 fr0 85 # Double it. 86 single_prec 87 fadd fr0, fr0 88 # Double it again. 89 fadd fr0, fr0 90 double_prec 91 _s2d fr0, dr0 92 fsqrt dr0 93 fldi1 fr2 94 # Double it. 95 single_prec 96 fadd fr2, fr2 97 double_prec 98 _s2d fr2, dr2 99 fcmp/eq dr0, dr2 100 bt .L12 101 fail 102.L12: 103 test_grs_a5a5 104 assert_dpreg_i 2, dr0 105 assert_dpreg_i 2, dr2 106 test_fpr_a5a5 fr4 107 test_fpr_a5a5 fr5 108 test_fpr_a5a5 fr6 109 test_fpr_a5a5 fr7 110 test_fpr_a5a5 fr8 111 test_fpr_a5a5 fr9 112 test_fpr_a5a5 fr10 113 test_fpr_a5a5 fr11 114 test_fpr_a5a5 fr12 115 test_fpr_a5a5 fr13 116 test_fpr_a5a5 fr14 117 test_fpr_a5a5 fr15 118 119 pass 120 exit 0 121