123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- # sh testcase for fsub
- # mach: sh
- # as(sh): -defsym sim_cpu=0
- .include "testutils.inc"
- start
- fsub_single:
- set_grs_a5a5
- set_fprs_a5a5
- # 0.0 - 0.0 = 0.0.
- fldi0 fr0
- fldi0 fr1
- fsub fr0, fr1
- fldi0 fr2
- fcmp/eq fr1, fr2
- bt .L0
- fail
- .L0:
- # 1.0 - 0.0 = 1.0.
- fldi0 fr0
- fldi1 fr1
- fsub fr0, fr1
- fldi1 fr2
- fcmp/eq fr1, fr2
- bt .L1
- fail
- .L1:
- # 1.0 - 1.0 = 0.0.
- fldi1 fr0
- fldi1 fr1
- fsub fr0, fr1
- fldi0 fr2
- fcmp/eq fr1, fr2
- bt .L2
- fail
- .L2:
- # 0.0 - 1.0 = -1.0.
- fldi1 fr0
- fldi0 fr1
- fsub fr0, fr1
- fldi1 fr2
- fneg fr2
- fcmp/eq fr1, fr2
- bt .L3
- fail
- .L3:
- test_grs_a5a5
- assert_fpreg_i 1, fr0
- assert_fpreg_i -1, fr1
- assert_fpreg_i -1, fr2
- test_fpr_a5a5 fr3
- test_fpr_a5a5 fr4
- test_fpr_a5a5 fr5
- test_fpr_a5a5 fr6
- test_fpr_a5a5 fr7
- test_fpr_a5a5 fr8
- test_fpr_a5a5 fr9
- test_fpr_a5a5 fr10
- test_fpr_a5a5 fr11
- test_fpr_a5a5 fr12
- test_fpr_a5a5 fr13
- test_fpr_a5a5 fr14
- test_fpr_a5a5 fr15
- fsub_double:
- set_grs_a5a5
- set_fprs_a5a5
- double_prec
- # 0.0 - 0.0 = 0.0.
- fldi0 fr0
- fldi0 fr2
- _s2d fr0, dr0
- _s2d fr2, dr2
- fsub dr0, dr2
- fldi0 fr4
- _s2d fr4, dr4
- fcmp/eq dr2, dr4
- bt .L10
- fail
- .L10:
- # 1.0 - 0.0 = 1.0.
- fldi0 fr0
- fldi1 fr2
- _s2d fr0, dr0
- _s2d fr2, dr2
- fsub dr0, dr2
- fldi1 fr4
- _s2d fr4, dr4
- fcmp/eq dr2, dr4
- bt .L11
- fail
- .L11:
- # 1.0 - 1.0 = 0.0.
- fldi1 fr0
- fldi1 fr2
- _s2d fr0, dr0
- _s2d fr2, dr2
- fsub dr0, dr2
- fldi0 fr4
- _s2d fr4, dr4
- fcmp/eq dr2, dr4
- bt .L12
- fail
- .L12:
- # 0.0 - 1.0 = -1.0.
- fldi1 fr0
- fldi0 fr2
- _s2d fr0, dr0
- _s2d fr2, dr2
- fsub dr0, dr2
- fldi1 fr4
- single_prec
- fneg fr4
- double_prec
- _s2d fr4, dr4
- fcmp/eq dr2, dr4
- bt .L13
- fail
- .L13:
- test_grs_a5a5
- assert_dpreg_i 1, dr0
- assert_dpreg_i -1, dr2
- assert_dpreg_i -1, dr4
- test_fpr_a5a5 fr6
- test_fpr_a5a5 fr7
- test_fpr_a5a5 fr8
- test_fpr_a5a5 fr9
- test_fpr_a5a5 fr10
- test_fpr_a5a5 fr11
- test_fpr_a5a5 fr12
- test_fpr_a5a5 fr13
- test_fpr_a5a5 fr14
- test_fpr_a5a5 fr15
- pass
- exit 0
|