search for: extractvector

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], >...