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

--- Comment #7 from uros at gcc dot gnu.org ---
Author: uros
Date: Thu Aug 27 18:29:37 2015
New Revision: 227271

URL: https://gcc.gnu.org/viewcvs?rev=227271&root=gcc&view=rev
Log:
        PR target/67317
        * config/i386/i386.md (*add<mode>3_cc): Remove insn pattern.
        (addqi3_cc): Ditto.
        (UNSPEC_ADD_CARRY): Remove.
        (addqi3_cconly_overflow): New expander.
        (*add<dwi>3_doubleword): Split to add<mode>3_cconly_overflow.
        Adjust for changed add<mode>3_carry.
        (*neg<dwi>2_doubleword): Adjust for changed add<mode>3_carry.
        (*sub<dwi>3_doubleword): Adjust for changed sub<mode>3_carry.
        (<plusminus_insn><mode>3_carry): Remove expander.
        (*<plusminus_insn><mode>3_carry): Split insn pattern to
        add<mode>3_carry and sub<mode>3_carry.
        (plusminus_carry_mnemonic): Remove code attribute.
        (add<mode>3_carry): Canonicalize insn pattern.
        (*addsi3_carry_zext): Ditto.
        (sub<mode>3_carry): Ditto.
        (*subsi3_carry_zext): Ditto.
        (adcx<mode>3): Remove insn pattern.
        (addcarry<mode>): New insn pattern.
        (subborrow<mode>): Ditto.
        * config/i386/i386.c (ix86_expand_strlensi_unroll_1): Use
        gen_addqi3_cconly_overflow instead of gen_addqi3_cc.
        (ix86_expand_builtin) <case IX86_BUILTIN_SBB32,
        case IX86_BUILTIN_SBB64, case IX86_BUILTIN_ADDCARRY32,
        case IX86_BUILTIN_ADDCARRY64>: Use CODE_FOR_subborrowsi,
        CODE_FOR_subborrowdi, CODE_FOR_addcarrysi and CODE_FOR_addcarrydi.
        Rewrite expander to not clobber carry flag chains.

testsuite/ChangeLog:

        PR target/67317
        * gcc.target/i386/pr67317-1.c: New test.
        * gcc.target/i386/pr67317-2.c: Ditto.
        * gcc.target/i386/pr67317-3.c: Ditto.
        * gcc.target/i386/pr67317-4.c: Ditto.
        * gcc.target/i386/adx-addcarryx32-1.c: Also scan for adcl.
        * gcc.target/i386/adx-addcarryx32-2.c: Also scan for adcq.


Added:
    trunk/gcc/testsuite/gcc.target/i386/pr67317-1.c
    trunk/gcc/testsuite/gcc.target/i386/pr67317-2.c
    trunk/gcc/testsuite/gcc.target/i386/pr67317-3.c
    trunk/gcc/testsuite/gcc.target/i386/pr67317-4.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/i386/i386.c
    trunk/gcc/config/i386/i386.md
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gcc.target/i386/adx-addcarryx32-1.c
    trunk/gcc/testsuite/gcc.target/i386/adx-addcarryx64-1.c

Reply via email to