On Sat, Aug 20, 2011 at 3:02 PM, H.J. Lu <hjl.to...@gmail.com> wrote:
> On Sat, Aug 20, 2011 at 2:52 PM, Richard Henderson <r...@redhat.com> wrote:
>> On 08/20/2011 02:16 PM, Uros Bizjak wrote:
>>> +(define_insn "bmi2_umul<mode><dwi>3_1"
>>> +  [(set (match_operand:<DWI> 0 "register_operand" "=r")
>>> +     (mult:<DWI>
>>> +       (zero_extend:<DWI>
>>> +         (match_operand:DWIH 1 "nonimmediate_operand" "%d"))
>>> +       (zero_extend:<DWI>
>>> +         (match_operand:DWIH 2 "nonimmediate_operand" "rm"))))]
>>> +  "TARGET_BMI
>>> +   && !(MEM_P (operands[1]) && MEM_P (operands[2]))"
>>> +  "mulx\t{%2, %M0, %N0|%N0, %M0, %2}"
>>> +  [(set_attr "type" "imul")
>>> +   (set_attr "prefix" "vex")
>>> +   (set_attr "mode" "<MODE>")])
>>
>> You can do better than this, and avoid the %M %N specifiers.
>> The outputs are truly independent and do not need to be a pair.
>>
>
> Since RA use register pairs for TImode/DImode, should requiring
> TI/DI registers in pairs generate better does?
                                                          ^^^^^^ codes.

Without register pairs, we are generating very strange codes.

-- 
H.J.

Reply via email to