Michael Collison wrote:
>
> The subtract instruction only reliably sets the N and Z flags. We convey this
> information in
> aarch64_seelct_cc_mode.
The SUBS and CMP set the N and Z flags identically - although they also set C
and V, they
are different if there is overflow. CC_NZmode is used af
On 02/06/17 00:54, Michael Collison wrote:
> This patch improves code generation for relational compares against zero that
> are not merged into a subtract instruction. This patch improves the >= and <
> cases.
>
> An example of the '<' case:
>
> int lt (int x, int y)
> {
> if ((x - y) < 0)
>
Cc: gcc-patches@gcc.gnu.org; nd
Subject: Re: [PATCH][Aarch64] Relational compare zero not merged into subtract
On Thu, Jun 01, 2017 at 11:54:33PM +, Michael Collison wrote:
> This patch improves code generation for relational compares against
> zero that are not merged into a su
On Thu, Jun 01, 2017 at 11:54:33PM +, Michael Collison wrote:
> This patch improves code generation for relational compares against zero that
> are not merged into a subtract instruction. This patch improves the >= and <
> cases.
>
> An example of the '<' case:
>
> int lt (int x, int y)
> {
>
Ping^3. Original patch posted here:
https://gcc.gnu.org/ml/gcc-patches/2017-06/msg00091.html
Ping^2. Original patch posted here:
https://gcc.gnu.org/ml/gcc-patches/2017-06/msg00091.html
Ping. Original patch posted here:
https://gcc.gnu.org/ml/gcc-patches/2017-06/msg00091.html
This patch improves code generation for relational compares against zero that
are not merged into a subtract instruction. This patch improves the >= and <
cases.
An example of the '<' case:
int lt (int x, int y)
{
if ((x - y) < 0)
return 10;
return 0;
}
Trunk generates:
lt:
s