# 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