[PATCH, i386]: Implement SImode/DImode setcc insn patterns
Uros Bizjak
ubizjak@gmail.com
Sun Oct 11 20:49:00 GMT 2009
On 10/11/2009 09:47 PM, H.J. Lu wrote:
>> 2009-10-10 �Uros Bizjak<ubizjak@gmail.com>
>>
>> � �* config/i386/i386.md (*setcc_di_1): New insn_and_split pattern.
>> � �(*setcc_si_1): Ditto.
>> � �(*setcc_<mode>_2): Ditto.
>> � �(*setcc_qi): Rename from *setcc_1.
>> � �(*setcc_qi_slp): Rename from *setcc_2.
>>
>> � �* config/i386/i386.c (ix86_expand_clear): Remove reload_completed from
>> � �"if" condition, there is already assert with reload_completed present.
>>
>> Patch was bootstrapped and regression tested on x86_64-pc-linux-gnu {,-m32}.
>>
>>
> This caused:
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41677
>
You could just reopen PR 33555.
Anyway, I did mess up my patch queue a bit. The missing pattern was in
the patch that macroized cmove insns, it was just cut-away for patch
submission.
This is the missing part:
(define_insn "*x86_mov<mode>cc_0_m1_neg"
[(set (match_operand:SWI48 0 "register_operand" "=r")
(neg:SWI48 (match_operand 1 "ix86_carry_flag_operator" "")))]
""
"sbb{<imodesuffix>}\t%0, %0"
[(set_attr "type" "alu")
(set_attr "use_carry" "1")
(set_attr "pent_pair" "pu")
(set_attr "memory" "none")
(set_attr "imm_disp" "false")
(set_attr "mode" "<MODE>")
(set_attr "length_immediate" "0")])
Please note that these patterns are now much saner than what used to
match sbb...
Uros
More information about the Gcc-patches
mailing list