search for: visitshufflevectorinst

Displaying 7 results from an estimated 7 matches for "visitshufflevectorinst".

2010 Feb 02
1
[LLVMdev] llvm::ShuffleVectorInst yields incorrect vector length in 2.6
...hat it should return a vector of type <2 x float>. %14 is a direct dump of the value returned from the statement "new ShuffleVectorInst(...)", and it says it returned a vector of type <3 x float>. This is later confirmed by an assertion in the DAG code (I believe in a function visitShuffleVectorInst), complaining an incorrect number of elements for some type. My question is whether I misunderstood the documentation, or that there is a bug in the code generation. Apparently I didn't misread the documentation, but I find it hard to believe that the code generation is buggy. Any suggestion w...
2018 Sep 04
2
LoopVectorizer: shufflevectors
...did not attempt to combine these shuffles, and unfortunately no later pass did so either. This seems to be an issue which is due to keeping instcombine simple and fast, as well as a conservativeness to not produce any new shuffles not already in the input program (see comment in InstCombiner::visitShuffleVectorInst). For some reason a bit unclear to me the backend will get into trouble then. Should improved optimization of shufflevector instructions handle all of them globally, or just the new ones produced by the vectorizers? At least in the code produced by the vectorizers, it seems fair to combine the...
2010 May 14
2
[LLVMdev] vector optimization
Hi! Is there a pass that optimizes vector operations? If I have for examle a sequence of shufflevector instructions that optimizes them? (in opencl notation e.g. a.xyzw.wzyx.xxxx -> a.wwww) -Jochen
2010 May 14
0
[LLVMdev] vector optimization
Instcombine does of this, late codegen also does some of it. -Chris On May 14, 2010, at 5:58 AM, Jochen Wilhelmy <j.wilhelmy at arcor.de> wrote: > Hi! > > Is there a pass that optimizes vector operations? > If I have for examle a sequence of shufflevector instructions > that optimizes them? > (in opencl notation e.g. a.xyzw.wzyx.xxxx -> a.wwww) > > -Jochen
2010 Feb 02
0
[LLVMdev] llvm::ShuffleVectorInst yields incorrect vector length in 2.6
On Feb 2, 2010, at 4:56 AM, Maarten Hoeben wrote: > > Hi, > > When I emit the llvm::ShuffleVectorInst instruction from my code generator > the result vector has the length of vector 1, instead of the element type of > vector 1 and the length of the mask vector; > > %13 = load <3 x float>* %w ; <<3 x float>> [#uses=0] > %14 =
2010 Feb 02
2
[LLVMdev] llvm::ShuffleVectorInst yields incorrect vector length in 2.6
Hi, When I emit the llvm::ShuffleVectorInst instruction from my code generator the result vector has the length of vector 1, instead of the element type of vector 1 and the length of the mask vector; %13 = load <3 x float>* %w ; <<3 x float>> [#uses=0] %14 = shufflevector <3 x float> %13, <3 x float> undef, <2 x i32> <i32 1, i32
2019 Nov 27
2
LangRef semantics for shufflevector with undef mask is incorrect
Ok, makes sense. My suggestion is that we patch the IR Verifier to ensure that the mask is indeed a vector of constants and/or undefs. Right now it only runs the standard checks for instructions. We will also run Alive2 on the test suite to make sure undef is never replaced in practice. Thanks, Nuno -----Original Message----- From: Eli Friedman <efriedma at quicinc.com> Sent: 27 de