On Wed, Jul 20, 2016 at 06:00:46PM +0100, Jiong Wang wrote:
> On 07/07/16 17:15, Jiong Wang wrote:
> >This patch add ARMv8.2-A FP16 two operands vector intrinsics.
> 
> The updated patch resolve the conflict with
> 
>    https://gcc.gnu.org/ml/gcc-patches/2016-06/msg00309.html
> 
> The change is to let aarch64_emit_approx_div return false for
> V4HFmode and V8HFmode.

As with patch 2/14, please rewrite this hunk:

> diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
> index 
> 5ed633542efe58763d68fd9bfbb478ae6ef569c3..a7437c04eb936a5e3ebd0bc77eb4afd8c052df28
>  100644
> --- a/gcc/config/aarch64/aarch64.c
> +++ b/gcc/config/aarch64/aarch64.c
> @@ -7717,6 +7717,10 @@ bool
>  aarch64_emit_approx_div (rtx quo, rtx num, rtx den)
>  {
>    machine_mode mode = GET_MODE (quo);
> +
> +  if (mode == V4HFmode || mode == V8HFmode)
> +    return false;
> +

 To:

  if (GET_MODE_INNER (mode) == HFmode)
    return false;

Otherwise, this patch is OK for trunk.

Thanks,
James

> gcc/
> 2016-07-20  Jiong Wang<jiong.w...@arm.com>
> 
>         * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
>         * config/aarch64/aarch64-simd.md
>         (aarch64_rsqrts<mode>): Extend to HF modes.
>         (fabd<mode>3): Likewise.
>         (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_SDF:mode>3): Likewise.
>         (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_SDI:mode>3): Likewise.
>         (aarch64_<maxmin_uns>p<mode>): Likewise.
>         (<su><maxmin><mode>3): Likewise.
>         (<maxmin_uns><mode>3): Likewise.
>         (<fmaxmin><mode>3): Likewise.
>         (aarch64_faddp<mode>): Likewise.
>         (aarch64_fmulx<mode>): Likewise.
>         (aarch64_frecps<mode>): Likewise.
>         (*aarch64_fac<optab><mode>): Rename to aarch64_fac<optab><mode>.
>         (add<mode>3): Extend to HF modes.
>         (sub<mode>3): Likewise.
>         (mul<mode>3): Likewise.
>         (div<mode>3): Likewise.
>         (*div<mode>3): Likewise.
>         * config/aarch64/aarch64.c (aarch64_emit_approx_div): Return
>         false for V4HF and V8HF.
>         * config/aarch64/iterators.md (VDQ_HSDI, VSDQ_HSDI): New mode
>         iterator.
>         * config/aarch64/arm_neon.h (vadd_f16): Likewise.
>         (vaddq_f16): Likewise.
>         (vabd_f16): Likewise.
>         (vabdq_f16): Likewise.
>         (vcage_f16): Likewise.
>         (vcageq_f16): Likewise.
>         (vcagt_f16): Likewise.
>         (vcagtq_f16): Likewise.
>         (vcale_f16): Likewise.
>         (vcaleq_f16): Likewise.
>         (vcalt_f16): Likewise.
>         (vcaltq_f16): Likewise.
>         (vceq_f16): Likewise.
>         (vceqq_f16): Likewise.
>         (vcge_f16): Likewise.
>         (vcgeq_f16): Likewise.
>         (vcgt_f16): Likewise.
>         (vcgtq_f16): Likewise.
>         (vcle_f16): Likewise.
>         (vcleq_f16): Likewise.
>         (vclt_f16): Likewise.
>         (vcltq_f16): Likewise.
>         (vcvt_n_f16_s16): Likewise.
>         (vcvtq_n_f16_s16): Likewise.
>         (vcvt_n_f16_u16): Likewise.
>         (vcvtq_n_f16_u16): Likewise.
>         (vcvt_n_s16_f16): Likewise.
>         (vcvtq_n_s16_f16): Likewise.
>         (vcvt_n_u16_f16): Likewise.
>         (vcvtq_n_u16_f16): Likewise.
>         (vdiv_f16): Likewise.
>         (vdivq_f16): Likewise.
>         (vdup_lane_f16): Likewise.
>         (vdup_laneq_f16): Likewise.
>         (vdupq_lane_f16): Likewise.
>         (vdupq_laneq_f16): Likewise.
>         (vdups_lane_f16): Likewise.
>         (vdups_laneq_f16): Likewise.
>         (vmax_f16): Likewise.
>         (vmaxq_f16): Likewise.
>         (vmaxnm_f16): Likewise.
>         (vmaxnmq_f16): Likewise.
>         (vmin_f16): Likewise.
>         (vminq_f16): Likewise.
>         (vminnm_f16): Likewise.
>         (vminnmq_f16): Likewise.
>         (vmul_f16): Likewise.
>         (vmulq_f16): Likewise.
>         (vmulx_f16): Likewise.
>         (vmulxq_f16): Likewise.
>         (vpadd_f16): Likewise.
>         (vpaddq_f16): Likewise.
>         (vpmax_f16): Likewise.
>         (vpmaxq_f16): Likewise.
>         (vpmaxnm_f16): Likewise.
>         (vpmaxnmq_f16): Likewise.
>         (vpmin_f16): Likewise.
>         (vpminq_f16): Likewise.
>         (vpminnm_f16): Likewise.
>         (vpminnmq_f16): Likewise.
>         (vrecps_f16): Likewise.
>         (vrecpsq_f16): Likewise.
>         (vrsqrts_f16): Likewise.
>         (vrsqrtsq_f16): Likewise.
>         (vsub_f16): Likewise.
>         (vsubq_f16): Likewise.

Reply via email to