This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH, i386]: Macroize lshr patterns.


Hello!

Merge together lshr3_* and lshr3_one_bit_* patterns and macroize lshr_* patterns in the same way as ashr_* patterns.

2010-04-11 Uros Bizjak <ubizjak@gmail.com>

    * config/i386/i386.md (lshr<mode>3): Macroize expander from
    lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
    (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
    pattern from *lshr{di,ti}3_1 and corresponding splitters using
    DWI mode iterator.
    (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
    from corresponding peephole2 patterns.
    (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
    *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
    and *lshrdi3_cmp_rex64 using SWI mode iterator.
    (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
    (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
    *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
    and *lshrdi3_cmp_rex64 using SWI mode iterator.
    (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
    (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
    *lshrdi3_one_bit_cconly_rex64. Macroize insn from
    *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
    SWI mode iterator.

Tested on x86_64-pc-linux-gnu {,-m32}, committed to mainline.

Uros.

Attachment: x86-lshrt.diff.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]