fsrra.s 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. # sh testcase for fsrra
  2. # mach: sh
  3. # as(sh): -defsym sim_cpu=0
  4. # xerror: test hasn't been run in a long time
  5. .include "testutils.inc"
  6. start
  7. fsrra_single:
  8. set_grs_a5a5
  9. set_fprs_a5a5
  10. # 1/sqrt(0.0) = +infinity.
  11. fldi0 fr0
  12. fsrra fr0
  13. assert_fpreg_x 0x7f800000, fr0
  14. # 1/sqrt(1.0) = 1.0.
  15. fldi1 fr0
  16. fsrra fr0
  17. assert_fpreg_i 1, fr0
  18. # 1/sqrt(4.0) = 1/2.0
  19. fldi1 fr0
  20. # Double it.
  21. fadd fr0, fr0
  22. # Double it again.
  23. fadd fr0, fr0
  24. fsrra fr0
  25. fldi1 fr2
  26. # Double it.
  27. fadd fr2, fr2
  28. fldi1 fr1
  29. # Divide
  30. fdiv fr2, fr1
  31. fcmp/eq fr0, fr1
  32. bt .L2
  33. fail
  34. .L2:
  35. # Double-check (pun intended)
  36. fadd fr0, fr0
  37. assert_fpreg_i 1, fr0
  38. fadd fr1, fr1
  39. assert_fpreg_i 1, fr1
  40. # And make sure the rest of the regs are un-affected.
  41. assert_fpreg_i 2, fr2
  42. test_fpr_a5a5 fr3
  43. test_fpr_a5a5 fr4
  44. test_fpr_a5a5 fr5
  45. test_fpr_a5a5 fr6
  46. test_fpr_a5a5 fr7
  47. test_fpr_a5a5 fr8
  48. test_fpr_a5a5 fr9
  49. test_fpr_a5a5 fr10
  50. test_fpr_a5a5 fr11
  51. test_fpr_a5a5 fr12
  52. test_fpr_a5a5 fr13
  53. test_fpr_a5a5 fr14
  54. test_fpr_a5a5 fr15
  55. test_grs_a5a5
  56. pass
  57. exit 0