[PATCH] D32737: [Constants][SVE] Represent the runtime length of a scalable vector

Sanjoy Das via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat May 20 16:22:32 PDT 2017


sanjoy added a comment.

In https://reviews.llvm.org/D32737#760289, @lattner wrote:

> What are the semantics of select when the two vectors have different width?  Does store do a memory allocation?


Maybe I misunderstood, but won't those selects be ill-typed?



================
Comment at: lib/IR/Constants.cpp:812
+  // Free the constant and any dangling references to it.
+  getContext().pImpl->VSVConstants.erase(getType());
+}
----------------
rengolin wrote:
> aemerson wrote:
> > rengolin wrote:
> > > So, in theory, you can have vscale constans of different integer types, and this would only clear the ones that are the same as this one? 
> > > 
> > > This sounds confusing.
> > Yes, in the same way you can have i32 undef, i64 undef etc.
> Right, makes sense.
Is there a minimum width, or is (say) an `i1 vscale` allowed?  If there isn't a minimum, I presume the semantics is that the runtime value of `vscale` will be truncated to the type width?


https://reviews.llvm.org/D32737





More information about the llvm-commits mailing list