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]

Re: [PATCH, testsuite, i386] BMI2 support for GCC


On Sat, Aug 20, 2011 at 2:52 PM, Richard Henderson <rth@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?


-- 
H.J.


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