https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65651

--- Comment #4 from Yuri Rumyantsev <ysrumyan at gmail dot com> ---
Jakub,

Thanks for your comments.

We will try to fix this issue ourselves.

Best regards.
Yuri.

P.S. Note that icc does not produce such redundant cmp with zero.

2015-04-01 16:10 GMT+03:00 jakub at gcc dot gnu.org <gcc-bugzi...@gcc.gnu.org>:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65651
>
> Jakub Jelinek <jakub at gcc dot gnu.org> changed:
>
>            What    |Removed                     |Added
> ----------------------------------------------------------------------------
>                  CC|                            |jakub at gcc dot gnu.org,
>                    |                            |uros at gcc dot gnu.org
>
> --- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
> Well, there is a significant difference between the two testcases, one uses 
> the
> result of the comparison just in == 0 test, thus CCZmode is appropriate, the
> other uses it in two comparisons, one == 0 test and one < 0 test.
> For combine to match *sub<mode>_2 insn, it has to match
> ix86_match_ccmode (insn, CCGOCmode)
> where CCGOCmode stands for:
>    Add CCGOC to indicate comparisons against zero that allows
>    unspecified garbage in the Carry and Overflow flag. This
>    mode is used to simulate comparisons of (a-b) and (a+b)
>    against zero using sub/cmp/add operations.
> But the jle instruction tests ZF || SF <> OF and thus it isn't appropriate.
> So the question is if the CCGOC test isn't too restrictive, say if CCGCmode
> would be sufficient (but then we'd still need to arrange for the CCGCmode to 
> be
> used, rather than CCmode), or if the optimization you are looking for is 
> simply
> not possible.
>
> --
> You are receiving this mail because:
> You reported the bug.

Reply via email to