re PR rtl-optimization/82628 (wrong code at -Os on x86_64-linux-gnu in the 32-bit...
authorJakub Jelinek <jakub@redhat.com>
Mon, 23 Oct 2017 14:58:23 +0000 (16:58 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Mon, 23 Oct 2017 14:58:23 +0000 (16:58 +0200)
commit47a6cc4e2932003063c2b56021f4b31bdeb5f746
tree0381d8addc68400ea5960b3dd777fcfb5c3d3da6
parent8008dd1c93cf12b8f6d8a23612e988d606281fdf
re PR rtl-optimization/82628 (wrong code at -Os on x86_64-linux-gnu in the 32-bit mode)

PR target/82628
* config/i386/predicates.md (x86_64_dwzext_immediate_operand): New.
* config/i386/constraints.md (Wf): New constraint.
* config/i386/i386.md (UNSPEC_SBB): New unspec.
(cmp<dwi>_doubleword): Removed.
(sub<mode>3_carry_ccc, *sub<mode>3_carry_ccc_1): New patterns.
(sub<mode>3_carry_ccgz): Use unspec instead of compare.
* config/i386/i386.c (ix86_expand_branch) <case E_TImode>: Don't
expand with cmp<dwi>_doubleword.  For LTU and GEU use
sub<mode>3_carry_ccc instead of sub<mode>3_carry_ccgz and use CCCmode.

From-SVN: r254011
gcc/ChangeLog
gcc/config/i386/constraints.md
gcc/config/i386/i386.c
gcc/config/i386/i386.md
gcc/config/i386/predicates.md