This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: How to implement efficiently builtins for dual-result instructions ?
Paolo Bonzini <bonzini@gnu.org> writes:
> > In the response of Paolo I also don't understand how the DI pseudo could be
> > mapped on two consecutive SI regs. I think gcc always will map a multiword
> > pseudo on consecutive word-size regs. Am I wrong here ?
>
> Oops, I forgot a part. In the RTL description don't write
>
> [(set (match_operand:DI 0 "register_operand")
> (unspec [...] SUPER_LD32))]
>
> but
>
> [(set (subreg:SI (match_operand:DI 0 "register_operand") 0)
> (unspec [...] SUPER_LD32_LO))
> (set (subreg:SI (match_operand:DI 0 "register_operand") 4)
> (unspec [...] SUPER_LD32_HI))]
And you have to be working with mainline gcc--the lower-subreg pass is
new with gcc 4.3.
Ian