[PATCH] Fix PR15131

Nadav Rotem nrotem at apple.com
Wed Mar 6 16:50:10 PST 2013


Okay.  LGTM. 

On Mar 6, 2013, at 4:49 PM, Michael Liao <michael.liao at intel.com> wrote:

> Not sure, it's answer but vector promotion seems skipped on non-byte-sized elements.
> 
> static bool isVectorPromotionViable(const DataLayout &TD,
>                                     Type *AllocaTy,
>                                     AllocaPartitioning &P,
>                                     uint64_t PartitionBeginOffset,
>                                     uint64_t PartitionEndOffset,
>                                     AllocaPartitioning::const_use_iterator I,
>                                     AllocaPartitioning::const_use_iterator E) {
>   VectorType *Ty = dyn_cast<VectorType>(AllocaTy);
>   if (!Ty)
>     return false;
> 
>   uint64_t ElementSize = TD.getTypeSizeInBits(Ty->getScalarType());
> 
>   // While the definition of LLVM vectors is bitpacked, we don't support sizes
>   // that aren't byte sized.
>   if (ElementSize % 8)
>     return false;
>   assert((TD.getTypeSizeInBits(Ty) % 8) == 0 &&
>          "vector size not a multiple of element size?");
>   ElementSize /= 8;
> 
>   for (; I != E; ++I) {
>     if (!I->U)
> 
> Chandler, could you confirm that?
> 
> Yours
> - Michael On Wed, 2013-03-06 at 18:41 -0600, Hal Finkel wrote:

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130306/adc5edad/attachment.html>


More information about the llvm-commits mailing list