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