[LLVMdev] Merging AVX
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.
> 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.
> 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.
> 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?
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
More information about the llvm-dev