test_fp_ph.s 1.93 KB
# test all added instructions for packed half FP data

.section .text
.global test_half

test_half:
		la          a0, packhalf_a
		flph        ft0, 0(a0)
		la          a0, packhalf_y
		fsph        ft0, 0(a0)

		fmv.x.ph     t0, ft0                       # move ft1->t0
		fmv.ph.x     ft0, t0

		fmv.ph       ft0, ft1
		fneg.ph      ft0, ft1
		fabs.ph      ft0, ft1
		fsgnj.ph     ft0, ft1, ft2
		fsgnjn.ph    ft0, ft1, ft2
		fsgnjx.ph    ft0, ft1, ft2
		fclass.ph    t0, ft1
		feq.ph       t0, ft0, ft1
		flt.ph       t0, ft0, ft1
		fle.ph       t0, ft0, ft1
		fgt.ph       t0, ft0, ft1
		fge.ph       t0, ft0, ft1

		fadd.ph      ft0, ft1, ft2
		fadd.ph      ft0, ft1, ft2,    rtz
		fsub.ph      ft0, ft1, ft2
		fsub.ph      ft0, ft1, ft2,    rtz
		fmul.ph      ft0, ft1, ft2
		fmul.ph      ft0, ft1, ft2,    rtz
		fdiv.ph      ft0, ft1, ft2
		fdiv.ph      ft0, ft1, ft2,    rtz
		fsqrt.ph     ft0, ft1
		fsqrt.ph     ft0, ft1,     rtz
		fmin.ph      ft0, ft1, ft2
		fmax.ph      ft0, ft1, ft2

		faddx.ph     ft0, ft1, ft2
		faddx.ph     ft0, ft1, ft2,    rtz
		fsubx.ph     ft0, ft1, ft2
		fsubx.ph     ft0, ft1, ft2,    rtz
		fmulx.ph     ft0, ft1, ft2
		fmulx.ph     ft0, ft1, ft2,    rtz
		fdivx.ph     ft0, ft1, ft2
		fdivx.ph     ft0, ft1, ft2,    rtz

		faddr.ph     ft0, ft1, ft2
		faddr.ph     ft0, ft1, ft2,    rtz
		fsubr.ph     ft0, ft1, ft2
		fsubr.ph     ft0, ft1, ft2,    rtz
		fmulr.ph     ft0, ft1, ft2
		fmulr.ph     ft0, ft1, ft2,    rtz
		fdivr.ph     ft0, ft1, ft2
		fdivr.ph     ft0, ft1, ft2,    rtz

		faddsubr.ph     ft0, ft1, ft2
		faddsubr.ph     ft0, ft1, ft2,    rtz
		fsubaddr.ph     ft0, ft1, ft2
		fsubaddr.ph     ft0, ft1, ft2,    rtz

		fmvuu.ph        ft0, ft1, ft2
		fmvll.ph        ft0, ft1, ft2
		fmvul.ph        ft0, ft1, ft2
		fmvlu.ph        ft0, ft1, ft2

		fmvzu.ph        ft0, ft1
		fmvzl.ph        ft0, ft1
		fswap.ph        ft0, ft1


.section .rodata
packhalf_a:
     .word  0x12345678

.section .data
packhalf_y:
    .word   0