[LLVMdev] vector type legalization

Nadav Rotem nrotem at apple.com
Mon Aug 12 09:59:34 PDT 2013


Hi Paul, 

You can read about it here:   http://blog.llvm.org/2011/12/llvm-31-vector-changes.html

> Hi,
> 
> I am trying to understand how vector type legalization works. In particular, I'm looking at i8 vector types on x86 (with sse42 features)
> 
> v3i8 gets widened to v4i8 and then operations get unrolled (scalarized) because v4i8 is not a legal type whereas v4i8 gets

This does not sound right.   v3i8 -> v4i8 is okay. But the next step should be v4i8 -> v4i32.  The operation nay be scalarized in the vector legalization phase.  

> promoted to v4i32. Why doesn't v3i8 (or even v4i8) get widened to v16i8? Alternatively, v3i8 could be widened to v4i8 then promoted to v4i32 but this doesn't happen either.
> 
> Can anyone provide some insight into why vector type legalization works the way it does?
> 
> Thanks,
> paul
> 
> _______________________________________________
> 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