Anastasia added a comment.

In https://reviews.llvm.org/D30810#699827, @jaykang10 wrote:

> In https://reviews.llvm.org/D30810#699695, @bruno wrote:
>
> > Hi JinGu,
> >
> > I just read the discussion on cfe-dev, some comments:
> >
> > > My colleague and I are implementing a transformation pass between LLVM IR 
> > > and another IR and we want to keep the 3-component vector types in our 
> > > target IR
> >
> > Why can't you go back through the shuffle to find out that it comes from a 
> > vec3 -> vec4 transformation? Adding a flag here just for that seems very 
> > odd.
>
>
> Hi Bruno,
>
> Thanks for your comment. We have a pass to undo the vec4 to vec3. I wondered 
> why clang generates the vec4 for vec3 load/store. As you can see the comment 
> on clang's code, they are generated for better performance. I had a questions 
> at this point. clang should consider vector load/store aligned by 4 
> regardless of target??? llvm's codegen could handle vec3 according to 
> targets' vector load/store with their alignment. I agree the flag looks odd 
> but I was concerned some llvm's targets depend on the vec4 so I suggested to 
> add the flag. If I missed something, please let me know.


I think doing this transformation in a frontend was not the best choice because 
we are losing the source information too early. But some targets can offer a 
better support for vec3 natively than converting to vec4. Regarding the option, 
I am wondering whether adding this as a part of TargetInfo would be a better 
solution. Although, I don't think any currently available upstream targets 
support this.


https://reviews.llvm.org/D30810



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to