1 .macro f16_sss_arithmetic reg0, reg1, reg2
2 .irp op, vdiv.f16, vfma.f16, vfms.f16, vfnma.f16, vfnms.f16, vmaxnm.f16, vminnm.f16, vmla.f16, vmls.f16, vmul.f16, vnmla.f16, vnmls.f16, vnmul.f16, vsub.f16
3 \op s\reg0, s\reg1, s\reg2
7 .macro f16_ss_arithmetic reg0, reg1
8 .irp op, vabs.f16, vadd.f16, vsqrt.f16, vneg.f16
13 .macro f16_si_cmp reg0, imm
14 .irp op, vcmp.f16, vcmpe.f16
19 .macro f16_ss_cmp reg0, reg1
20 .irp op, vcmp.f16, vcmpe.f16
25 .macro f16_sss_vsel reg0, reg1, reg2
26 .irp op, vseleq.f16 vselge.f16, vselvs.f16
27 \op s\reg0, s\reg1, s\reg2
31 .macro f16_ss_cvt reg0, reg1
32 .irp op, vcvt.s32.f16, vcvt.u32.f16, vcvt.f16.s32, vcvt.f16.u32
37 .macro f16_ssi_cvt_imm32 reg0, reg1, imm
38 .irp op, vcvt.f16.s32, vcvt.f16.u32, vcvt.s32.f16, vcvt.u32.f16
39 \op s\reg0, s\reg1, \imm
43 .macro f16_ss_cvt_amnpr reg0, reg1
44 .irp op, vcvta.s32.f16, vcvta.u32.f16, vcvtm.s32.f16, vcvtm.u32.f16, vcvtn.s32.f16, vcvtn.u32.f16, vcvtp.s32.f16, vcvtp.u32.f16, vcvtr.u32.f16, vcvtr.s32.f16
49 .macro f16_ss_vrint reg0, reg1
50 .irp op, vrinta.f16, vrintm.f16, vrintn.f16, vrintp.f16, vrintr.f16, vrintx.f16, vrintz.f16
55 .macro f16_ss_mov reg0, reg1
56 .irp op, vins.f16, vmovx.f16
75 vstr.16 s11 , [r0, #-4]
77 f16_sss_arithmetic 5, 13, 24
78 f16_ss_arithmetic 5, 12
81 f16_sss_vsel 5, 13, 23
83 f16_ssi_cvt_imm32 7, 7, #29
84 f16_ss_cvt_amnpr 5, 10