[LLVMdev] RFC: AVX Pattern Specification [LONG]

mon p wang natebegeman at me.com
Fri May 1 10:25:41 PDT 2009

On Apr 30, 2009, at 3:59 PM, David Greene wrote:

> Here's the big RFC.
> Of course we would not transition away from X86InstrSSE.td until
> X86InstrSIMD.td is proven to cover all current uses of  SSE correctly.
> The pros of the scheme:
> * Unify all "important" x86 SIMD instructions into one framework and  
> provide
>  consistency

While almost all of this sounds pretty great to me, since I'm also in  
the process of cleaning up how x86 vector shuffles and shifts are  
implemented, I'm a little worried by what "important" means.  Aren't  
*all* the instructions important?  Was the goal to convert 50% of the  
instructions over to the new class hierarchy and leave 50% as they  
currently are?

> * Specify patterns and asm strings *once* per instruction type /  
> family
>  rather than the current scheme of multiple patterns for essentially  
> the
>  same instruction

Sounds great; you'll probably need some kind of custom lowering to go  
with this to make sure instructions end up in whatever canonicalized  
form you've chosen.

> * Bugfixes / optimizations / new patterns instantly apply to all SSE  
> levels
>  and AVX
> The cons:
> * Transition from X86InstrSSE.td

What's the timeline look like for this?


More information about the llvm-dev mailing list