<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Okay.  LGTM. <div><br><div><div>On Mar 6, 2013, at 4:49 PM, Michael Liao <<a href="mailto:michael.liao@intel.com">michael.liao@intel.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;">Not sure, it's answer but vector promotion seems skipped on non-byte-sized elements.<br><br><pre>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());

<font color="#ff0000">  // While the definition of LLVM vectors is bitpacked, we don't support sizes</font>
<font color="#ff0000">  // that aren't byte sized.</font>
<font color="#ff0000">  if (ElementSize % 8)</font>
<font color="#ff0000">    return false;</font>
  assert((TD.getTypeSizeInBits(Ty) % 8) == 0 &&
         "vector size not a multiple of element size?");
  ElementSize /= 8;

  for (; I != E; ++I) {
    if (!I->U)
</pre><br>Chandler, could you confirm that?<br><br>Yours<br>- Michael<span class="Apple-converted-space"> </span>On Wed, 2013-03-06 at 18:41 -0600, Hal Finkel wrote:</div></blockquote></div><br></div></body></html>