re PR target/93141 (Missed optimization : Use of adc when checking overflow)
authorJakub Jelinek <jakub@redhat.com>
Sun, 5 Jan 2020 12:52:24 +0000 (13:52 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Sun, 5 Jan 2020 12:52:24 +0000 (13:52 +0100)
commitc57b4c2208960c3b57abe148a5e9767f8f27747c
tree5b659943a852824178a39ab979ab80ca656ab749
parent39bec8cd35fa035aa10ddb123eb8a5715d323457
re PR target/93141 (Missed optimization : Use of adc when checking overflow)

PR target/93141
* config/i386/i386.md (SWIDWI): New mode iterator.
(DWI, dwi): Add TImode variants.
(addv<mode>4): Use SWIDWI iterator instead of SWI.  Use
<general_hilo_operand> instead of <general_operand>.  Use
CONST_SCALAR_INT_P instead of CONST_INT_P.
(*addv<mode>4_1): Rename to ...
(addv<mode>4_1): ... this.
(QWI): New mode attribute.
(*addv<dwi>4_doubleword, *addv<dwi>4_doubleword_1): New
define_insn_and_split patterns.
(*addv<mode>4_overflow_1, *addv<mode>4_overflow_2): New define_insn
patterns.
(uaddv<mode>4): Use SWIDWI iterator instead of SWI.  Use
<general_hilo_operand> instead of <general_operand>.
(*addcarry<mode>_1): New define_insn.
(*add<dwi>3_doubleword_cc_overflow_1): New define_insn_and_split.

* gcc.target/i386/pr93141-1.c: New test.
* gcc.dg/pr67089-6.c: Expect 16 ADD_OVERFLOW calls even on ia32.

From-SVN: r279887
gcc/ChangeLog
gcc/config/i386/i386.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr67089-6.c
gcc/testsuite/gcc.target/i386/pr93141-1.c [new file with mode: 0644]