[LLVMdev] Merging AVX

Evan Cheng evan.cheng at apple.com
Fri Dec 18 10:33:36 PST 2009


On Dec 17, 2009, at 3:38 AM, David Greene wrote:

> I'd like to start moving some of our AVX work into trunk.
> 
> We've got quite a bit of it implemented already.  I wanted to make sure
> we got something that would work and remain relatively stable.

Ok.

> 
> Here's how I'd like to do this.  First, I have some more TableGen fixes
> and enhancements that are prereqs for AVX templates.  I'd like to get
> those in first.  Then there are a number of foundational templates
> that shouldn't affect anything else.  I'll put those in next.

Makes sense.

> 
> Then the fun begins.  The first step is to move some some of the
> templates from X86InstSSE.td out into a new file (I've called it
> X86InstrFragmentsSIMD.td in our tree).  These are things like memopv4f32,
> alignedload, etc.  These are foundational things we need for both
> AVX and SSE.  The goal is to eventually replace X86InstrSSE.td
> entirely with a set of patterns that covers all SIMD instructions.  But
> that's going to be gradual so we need to maintain both as we go along.
> So these foundational templates need to be somewhere accessible to
> both sets of patterns.

Sure.

> 
> Then I'll start with a simple instruction like ADDPS/D / VADDPS/D.  I will add
> all of the base templates needed to implement that and then add the
> pattern itself, replacing the various ADDPS/D patterns in X86InstrSSE..td
> We'll do instructions one by one until we're done.
> 
> When we get to things like shuffles where we've identified major rewrites
> that are necessary, we can do that incrementally as well.
> 
> Does this sound like a reasonable plan?

Yes!

Evan
> 
>                                    -Dave
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev





More information about the llvm-dev mailing list