[llvm] [LV] Use shl for (VFxUF * vscale) when creating minimum iter check. (PR #153495)

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 14 02:21:48 PDT 2025


================
@@ -2298,7 +2304,10 @@ Value *InnerLoopVectorizer::createIterationCountCheck(ElementCount VF,
   // Reuse existing vector loop preheader for TC checks.
   // Note that new preheader block is generated for vector loop.
   BasicBlock *const TCCheckBlock = LoopVectorPreHeader;
-  IRBuilder<> Builder(TCCheckBlock->getTerminator());
+  IRBuilder<InstSimplifyFolder> Builder(
+      TCCheckBlock->getContext(),
+      InstSimplifyFolder(TCCheckBlock->getDataLayout()));
+  Builder.SetInsertPoint(TCCheckBlock->getTerminator());
----------------
fhahn wrote:

note: this helps to remove some redundant `shl x, 0` instructions

https://github.com/llvm/llvm-project/pull/153495


More information about the llvm-commits mailing list