issues with rtl vector operators

James E Wilson wilson@specifixinc.com
Wed Aug 18 20:36:00 GMT 2004


On Wed, 2004-08-18 at 12:01, Devang Patel wrote:
> vector merge of "CDAB" "WXYZ" 1100 should be WXAB. But I still don't 
> understand how it gets the right answer, that is "AWBX".

This is because we currently have no RTL optimizer support for vector
operations.  You could write the pattern any way you like, and it will
still work, because the only thing that matters is that the expander
generates unique RTL that exactly matches the one recognizer pattern
that emits the vmrghw instruction.  This is also why UNSPEC works.

However, when we do start adding RTL optimizer support for vector
operations, then the RTL optimizer will start rewriting patterns based
on what the RTL means, and if the RTL doesn't mean what the instruction
it represents means, then you will be in trouble.

It would be better to fix the RTL in the altivec.md file now before we
get to that point.
-- 
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com




More information about the Gcc mailing list