RE: [PATCH 2/8] i386: Optimize ordered and nonequal

2024-09-03 Thread Hu, Lin1
> -Original Message- > From: Hu, Lin1 > Sent: Tuesday, September 3, 2024 2:05 PM > To: Jakub Jelinek ; Andrew Pinski ; > Liu, Hongtao > Cc: Jiang, Haochen ; Richard Biener > ; gcc-patches@gcc.gnu.org; ubiz...@gmail.com > Subject: RE: [PATCH 2/8] i386: Optim

RE: [PATCH 2/8] i386: Optimize ordered and nonequal

2024-09-02 Thread Hu, Lin1
> -Original Message- > From: Jakub Jelinek > Sent: Tuesday, September 3, 2024 2:56 AM > To: Andrew Pinski > Cc: Jiang, Haochen ; Richard Biener > ; gcc-patches@gcc.gnu.org; Liu, Hongtao > ; ubiz...@gmail.com; Hu, Lin1 > Subject: Re: [PATCH 2/8] i386: Optim

Re: [PATCH 2/8] i386: Optimize ordered and nonequal

2024-09-02 Thread Jakub Jelinek
On Mon, Sep 02, 2024 at 11:25:36AM -0700, Andrew Pinski wrote: > On Mon, Sep 2, 2024 at 11:20 AM Jakub Jelinek wrote: > > > > On Mon, Aug 26, 2024 at 02:42:31PM +0800, Haochen Jiang wrote: > > > * match.pd: Optimize (and ordered non-equal) to > > > (not (or unordered equal)) > > > > >

Re: [PATCH 2/8] i386: Optimize ordered and nonequal

2024-09-02 Thread Andrew Pinski
On Mon, Sep 2, 2024 at 11:20 AM Jakub Jelinek wrote: > > On Mon, Aug 26, 2024 at 02:42:31PM +0800, Haochen Jiang wrote: > > * match.pd: Optimize (and ordered non-equal) to > > (not (or unordered equal)) > > > > gcc/testsuite/ChangeLog: > > > > * gcc.target/i386/optimize_one.c: N

Re: [PATCH 2/8] i386: Optimize ordered and nonequal

2024-09-02 Thread Jakub Jelinek
On Mon, Aug 26, 2024 at 02:42:31PM +0800, Haochen Jiang wrote: > * match.pd: Optimize (and ordered non-equal) to > (not (or unordered equal)) > > gcc/testsuite/ChangeLog: > > * gcc.target/i386/optimize_one.c: New test. The testcase FAILs on i686-linux, because it uses -mfpmath

[PATCH 2/8] i386: Optimize ordered and nonequal

2024-08-25 Thread Haochen Jiang
From: "Hu, Lin1" Currently, when we input !__builtin_isunordered (a, b) && (a != b), gcc will emit ucomiss %xmm1, %xmm0 movl $1, %ecx setp %dl setnp %al cmovne %ecx, %edx andl %edx, %eax movzbl %al, %eax In fact, xorl %eax, %eax ucomiss %xmm1, %xmm0 setne %al is better. gcc/