Displaying 4 results from an estimated 4 matches for "extractvector".
2008 Dec 30
2
[LLVMdev] Folding vector instructions
...ot;, the conversion involves in 'extract' the vector, create
less-than-compare, create 'select' instruction, and create 'insert-element'
instruction.
<code>
llvm::Value * Instructions::min(llvm::Value *in1, llvm::Value *in2)
{
std::vector<llvm::Value*> vec1 = extractVector(in1); // generate LLVM
extract element
std::vector<llvm::Value*> vec2 = extractVector(in2);
Value *xcmp = m_builder.CreateFCmpOLT(vec1[0], vec2[0], name("xcmp"));
Value *selx = m_builder.CreateSelect(xcmp, vec1[0], vec2[0],
name(&qu...
2014 Aug 07
3
[LLVMdev] How to broaden the SLP vectorizer's search
...be
packed. There's no interleaved data dependency that would prevent
vectorizing. I am almost certain that's the vectorizer must have a
maximum distance set somewhere or indirectly through dependent analysis
passes.
I tried the BB vectorizer, but for whatever reason it starts emitting
extractvector/shufflevector instructions which I am sure aren't
necessary. So, until further investigation I'd like to stick to SLP.
Ideally, I'd like the maximum distance to be infinite, thus removing
this restriction. I am aware of the consequent search time growth.
Anyone any insights?
Frank
2007 Sep 27
3
[LLVMdev] Vector swizzling and write masks code generation
Hey,
as some of you may know we're in process of experimenting with LLVM in
Gallium3D (Mesa's new driver model), where LLVM would be used both in the
software only (by just JIT executing shaders) and hardware (drivers will
implement LLVM code-generators) cases.
While the software only case is pretty straight forward I just realized I
missed something in my initial evaluation.
That
2008 Dec 30
2
[LLVMdev] [Mesa3d-dev] Folding vector instructions
...9;extract' the vector, create
> less-than-compare, create 'select' instruction, and create 'insert-element'
> instruction.
>
> <code>
> llvm::Value * Instructions::min(llvm::Value *in1, llvm::Value *in2)
> {
> std::vector<llvm::Value*> vec1 = extractVector(in1); // generate LLVM
> extract element
> std::vector<llvm::Value*> vec2 = extractVector(in2);
>
> Value *xcmp = m_builder.CreateFCmpOLT(vec1[0], vec2[0], name("xcmp"));
> Value *selx = m_builder.CreateSelect(xcmp, vec1[0], vec2[0],
>...