[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