I am seeing an assert when I compile the attached program with clang:<br><div class="gmail_quote"><br>$ clang -fno-strict-aliasing -target mips64el-unknown-linux -O3 -fomit-frame-pointer -S test1.c -o test1.ll -emit-llvm<br>

<br>It asserts when LoopVectorize.cpp:506 is executed. It looks like it 
is complaining because it is trying to zero-extend an i64 (type 
Count->getType() returns i64) to an i32 (IdxTy).<br>


<br>if (Count->getType() != IdxTy) {<br>    // The exit count can be of pointer type. Convert it to the correct<br>    // integer type.<br>    if (ExitCount->getType()->isPointerTy())<br>      Count = CastInst::CreatePointerCast(Count, IdxTy, "<a href="http://ptrcnt.to.int" target="_blank">ptrcnt.to.int</a>", Loc);<br>




    else<br>      Count = CastInst::CreateZExtOrBitCast(Count, IdxTy, "zext.cnt", Loc); // <= this line<br>  }<br><br> <br>
</div>