[AArch64][7/14] ARMv8.2-A FP16 one operand scalar intrinsics
James Greenhalgh
james.greenhalgh@arm.com
Mon Jul 25 11:14:00 GMT 2016
On Wed, Jul 20, 2016 at 06:00:53PM +0100, Jiong Wang wrote:
> On 07/07/16 17:17, Jiong Wang wrote:
> >This patch add ARMv8.2-A FP16 one operand scalar intrinsics
> >
> >Scalar intrinsics are kept in arm_fp16.h instead of arm_neon.h.
>
> The updated patch resolve the conflict with
>
> https://gcc.gnu.org/ml/gcc-patches/2016-06/msg00308.html
>
> The change is to let aarch64_emit_approx_sqrt return false for HFmode.
OK, but...
> diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
> index a7437c04eb936a5e3ebd0bc77eb4afd8c052df28..27866ccd605abec6ea7c9110022f329c9b172ee0 100644
> --- a/gcc/config/aarch64/aarch64.c
> +++ b/gcc/config/aarch64/aarch64.c
> @@ -7599,7 +7599,7 @@ aarch64_emit_approx_sqrt (rtx dst, rtx src, bool recp)
> {
> machine_mode mode = GET_MODE (dst);
>
> - if (mode == V4HFmode || mode == V8HFmode)
> + if (mode == HFmode || mode == V4HFmode || mode == V8HFmode)
> return false;
...if you take my advice on patch 2/14, you won't need this change.
Otherwise, OK.
Thanks,
James
> gcc/
> 2016-07-20 Jiong Wang<jiong.wang@arm.com>
>
> * config.gcc (aarch64*-*-*): Install arm_fp16.h.
> * config/aarch64/aarch64-builtins.c (hi_UP): New.
> * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
> * config/aarch64/aarch64-simd.md (aarch64_frsqrte<mode>): Extend to HF mode.
> (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise.
> (aarch64_cm<optab><mode>): Likewise.
> * config/aarch64/aarch64.md (<frint_pattern><mode>2): Likewise.
> (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Likewise.
> (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
> (sqrt<mode>2): Likewise.
> (*sqrt<mode>2): Likewise.
> (abs<mode>2): Likewise.
> (<optab><mode>hf2): New pattern for HF mode.
> (<optab>hihf2): Likewise.
> * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Return
> for HF mode.
> * config/aarch64/arm_neon.h: Include arm_fp16.h.
> * config/aarch64/iterators.md (GPF_F16): New.
> (GPI_F16): Likewise.
> (VHSDF_HSDF): Likewise.
> (w1): Support HF mode.
> (w2): Likewise.
> (v): Likewise.
> (s): Likewise.
> (q): Likewise.
> (Vmtype): Likewise.
> (V_cmp_result): Likewise.
> (fcvt_iesize): Likewise.
> (FCVT_IESIZE): Likewise.
> * config/aarch64/arm_fp16.h: New file.
> (vabsh_f16): New.
> (vceqzh_f16): Likewise.
> (vcgezh_f16): Likewise.
> (vcgtzh_f16): Likewise.
> (vclezh_f16): Likewise.
> (vcltzh_f16): Likewise.
> (vcvth_f16_s16): Likewise.
> (vcvth_f16_s32): Likewise.
> (vcvth_f16_s64): Likewise.
> (vcvth_f16_u16): Likewise.
> (vcvth_f16_u32): Likewise.
> (vcvth_f16_u64): Likewise.
> (vcvth_s16_f16): Likewise.
> (vcvth_s32_f16): Likewise.
> (vcvth_s64_f16): Likewise.
> (vcvth_u16_f16): Likewise.
> (vcvth_u32_f16): Likewise.
> (vcvth_u64_f16): Likewise.
> (vcvtah_s16_f16): Likewise.
> (vcvtah_s32_f16): Likewise.
> (vcvtah_s64_f16): Likewise.
> (vcvtah_u16_f16): Likewise.
> (vcvtah_u32_f16): Likewise.
> (vcvtah_u64_f16): Likewise.
> (vcvtmh_s16_f16): Likewise.
> (vcvtmh_s32_f16): Likewise.
> (vcvtmh_s64_f16): Likewise.
> (vcvtmh_u16_f16): Likewise.
> (vcvtmh_u32_f16): Likewise.
> (vcvtmh_u64_f16): Likewise.
> (vcvtnh_s16_f16): Likewise.
> (vcvtnh_s32_f16): Likewise.
> (vcvtnh_s64_f16): Likewise.
> (vcvtnh_u16_f16): Likewise.
> (vcvtnh_u32_f16): Likewise.
> (vcvtnh_u64_f16): Likewise.
> (vcvtph_s16_f16): Likewise.
> (vcvtph_s32_f16): Likewise.
> (vcvtph_s64_f16): Likewise.
> (vcvtph_u16_f16): Likewise.
> (vcvtph_u32_f16): Likewise.
> (vcvtph_u64_f16): Likewise.
> (vnegh_f16): Likewise.
> (vrecpeh_f16): Likewise.
> (vrecpxh_f16): Likewise.
> (vrndh_f16): Likewise.
> (vrndah_f16): Likewise.
> (vrndih_f16): Likewise.
> (vrndmh_f16): Likewise.
> (vrndnh_f16): Likewise.
> (vrndph_f16): Likewise.
> (vrndxh_f16): Likewise.
> (vrsqrteh_f16): Likewise.
> (vsqrth_f16): Likewise.
More information about the Gcc-patches
mailing list