On Mon, Jul 22, 2024 at 5:26 PM Kugan Vivekanandarajah
<kvivekana...@nvidia.com> wrote:
>
> Revised based on the comment and moved it into existing patterns as.
>
> gcc/ChangeLog:
>
> * match.pd: Extend A CMP 0 ? A : -A into (type)A CMP 0 ? A : -A.
> Extend A CMP 0 ? A : -A into (type) A CMP 0 ? A : -A.
>
> gcc/testsuite/ChangeLog:
>
> * gcc.dg/tree-ssa/absfloat16.c: New test.

The testcase needs to make sure it runs only for targets that support
float16 so like:

/* { dg-require-effective-target float16 } */
/* { dg-add-options float16 } */

(like what is in gcc.dg/c11-floatn-3.c and others).

Other than that it looks good but I can't approve it.

Thanks,
Andrew Pinski

>
> Signed-off-by: Kugan Vivekanandarajah <kvivekana...@nvidia.com>
>
> Bootstrapped and regression test on aarch64-linux-gnu. Is this OK for trunk?
> Thanks,
> Kugan
>
> ________________________________
> From: Andrew Pinski <pins...@gmail.com>
> Sent: Monday, 15 July 2024 5:30 AM
> To: Kugan Vivekanandarajah <kvivekana...@nvidia.com>
> Cc: gcc-patches@gcc.gnu.org <gcc-patches@gcc.gnu.org>; 
> richard.guent...@gmail.com <richard.guent...@gmail.com>
> Subject: Re: [PATCH] MATCH: add abs support for half float
>
> External email: Use caution opening links or attachments
>
>
> On Sun, Jul 14, 2024 at 1:12 AM Kugan Vivekanandarajah
> <kvivekana...@nvidia.com> wrote:
> >
> > This patch extends abs detection in matched for half float.
> >
> > Bootstrapped and regression test on aarch64-linux-gnu. Is this OK for trunk?
>
> This is basically this pattern:
> ```
>  /* A >=/> 0 ? A : -A    same as abs (A) */
>  (for cmp (ge gt)
>   (simplify
>    (cnd (cmp @0 zerop) @1 (negate @1))
>     (if (!HONOR_SIGNED_ZEROS (TREE_TYPE(@0))
>          && !TYPE_UNSIGNED (TREE_TYPE(@0))
>          && bitwise_equal_p (@0, @1))
>      (if (TYPE_UNSIGNED (type))
>       (absu:type @0)
>       (abs @0)))))
> ```
>
> except extended to handle an optional convert. Why didn't you just
> extend the above pattern to handle the convert instead? Also I think
> you have an issue with unsigned types with the comparison.
> Also you should extend the -abs(A) pattern right below it in a similar 
> fashion.
>
> Thanks,
> Andrew Pinski
>
>
> >
> > gcc/ChangeLog:
> >
> > * match.pd: Add pattern to convert (type)A >=/> 0 ? A : -A into abs (A) for 
> > half float.
> >
> > gcc/testsuite/ChangeLog:
> >
> > * gcc.dg/tree-ssa/absfloat16.c: New test.
> >
> > Signed-off-by: Kugan Vivekanandarajah <kvivekana...@nvidia.com>
> >

Reply via email to