[LLVMdev] Vector select/compare support in LLVM

David A. Greene greened at obbligato.org
Thu Mar 10 08:57:07 PST 2011


"Rotem, Nadav" <nadav.rotem at intel.com> writes:

> One of the arguments for packing masks is that it reduces
> vector-registers pressure.  Auto-vectorizing compilers maintain
> multiple masks for different execution paths (for each loop nesting,
> etc).  Saving masks in xmm registers may result in vector-register
> pressure which will cause spilling of these registers.  I agree with
> you that GP registers are also a precious resource.

GPRs are more precious than vector registers in my experience.  Spilling
a vector register isn't that painful.  Spilling a GPR holding an address
is disastrous.

> In my private branch, I added the [v4i1 .. v64i1] types. I also
> implemented a new type of target lowering: "PACK". This lowering packs

Is PACK in the X86 namespace?  It seems a pretty target-specific thing.

> I also plan to experiment with promoting <4 x i1> to <4 x i32>.  At
> this point I can't really say what needs to be done.  Implementing
> this kind of promotion also requires adding legalization support for
> strange vector types such as <4 x i65>.

How often do we see something like that?  Baby steps, baby steps...  :)

                                -Dave



More information about the llvm-dev mailing list