On Tue, Jul 23, 2024 at 10:35 AM Andrew Pinski <pins...@gmail.com> wrote:
>
> 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 } */
Added in the attached version.

Thanks.
Kugan
>
> (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>
> > >

Attachment: 0001-abshalffloat-v3.patch
Description: Binary data

Reply via email to