On Wed, Oct 16, 2013 at 6:06 PM, Kirill Yukhin <kirill.yuk...@gmail.com> wrote:

> It seems that gang of AVX* patterns were copy and
> pasted from SSE, however as far as they are NDD,
> we may remove corresponding expands which sort operands.

OTOH, I have some second thoughts on removing AVX2 expanders.

Please consider the situation, where we have *both* operands in
memory, and the insn is inside the loop. When reload comes around, it
will fixup one of the operands with a load from memory. However,
having insn in the loop, I suspect the load won't be moved out of
loop.

So, I guess even AVX/AVX2 insn patterns should call
ix86_fixup_binary_operands_*, and this fixup function should be
improved to load one of the operands into register, in case both
operands are in memory.

This also means, that you still need expanders for AVX512 commutative
multiplies.

Uros.

Reply via email to