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 ashr patterns.


Hello!

Merge together ashr3_* and ashr3_one_bit_* patterns, so they finally look like ashl* patterns.

Otherwise fairly mechanical job to macroize merged patterns.

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

    * config/i386/i386.md (ashr<mode>3): Macroize expander from
    ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
    (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
    pattern from *ashr{di,ti}3_1 and corresponding splitters using
    DWI mode iterator.
    (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
    from corresponding peephole2 patterns.
    (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
    (ashrsi3_cvt): Rename from ashrsi3_31.
    (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
    (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
    and x86_64_shift_adj_3 using SWI48 mode iterator.
    (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
    *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
    and *ashrdi3_cmp_rex64 using SWI mode iterator.
    (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
    (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
    *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
    and *ashrdi3_cmp_rex64 using SWI mode iterator.
    (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
    (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
    *ashrdi3_one_bit_cconly_rex64. Macroize insn from
    *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
    SWI mode iterator.
    (sign_extend splitters): Update for renamed ashr{di,si}3_patterns.
    * config/i386/i386.c (ix86_split_ashr): Update for renamed
    x86_shift<mode>_adj_3 expander.

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

Uros.

Attachment: x86-ashrt.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]