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 4 .endr 5 .endm 6 7 .macro f16_ss_arithmetic reg0, reg1 8 .irp op, vabs.f16, vadd.f16, vsqrt.f16, vneg.f16 9 \op s\reg0, s\reg1 10 .endr 11 .endm 12 13 .macro f16_si_cmp reg0, imm 14 .irp op, vcmp.f16, vcmpe.f16 15 \op s\reg0, \imm 16 .endr 17 .endm 18 19 .macro f16_ss_cmp reg0, reg1 20 .irp op, vcmp.f16, vcmpe.f16 21 \op s\reg0, s\reg1 22 .endr 23 .endm 24 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 28 .endr 29 .endm 30 31 .macro f16_ss_cvt reg0, reg1 32 .irp op, vcvt.s32.f16, vcvt.u32.f16, vcvt.f16.s32, vcvt.f16.u32 33 \op s\reg0, s\reg1 34 .endr 35 .endm 36 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 40 .endr 41 .endm 42 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 45 \op s\reg0, s\reg1 46 .endr 47 .endm 48 49 .macro f16_ss_vrint reg0, reg1 50 .irp op, vrinta.f16, vrintm.f16, vrintn.f16, vrintp.f16, vrintr.f16, vrintx.f16, vrintz.f16 51 \op s\reg0, s\reg1 52 .endr 53 .endm 54 55 .macro f16_ss_mov reg0, reg1 56 .irp op, vins.f16, vmovx.f16 57 \op s\reg0, s\reg1 58 .endr 59 .endm 60 61 .text 62 63 vmov.f16 s0, r1 64 vmov.f16 r0, s1 65 vmov.f16 s0, #2.0 66 label: 67 .word 0xffe 68 vldr.16 s3, label 69 70 vldr.16 s6, [pc, #-4] 71 vldr.16 s3, [pc, #4] 72 vldr.16 s1, [r0, #4] 73 vldr.16 s2, [r0, #-4] 74 vstr.16 s6 , [r0, #4] 75 vstr.16 s11 , [r0, #-4] 76 77 f16_sss_arithmetic 5, 13, 24 78 f16_ss_arithmetic 5, 12 79 f16_si_cmp 2, #0.0 80 f16_ss_cmp 5, 13 81 f16_sss_vsel 5, 13, 23 82 f16_ss_cvt 3, 8 83 f16_ssi_cvt_imm32 7, 7, #29 84 f16_ss_cvt_amnpr 5, 10 85 f16_ss_vrint 3, 11 86 f16_ss_mov 5, 9 87