[clang] [llvm] [LLVM][IRBuilder] Use NUW arithmetic for Create{ElementCount,TypeSize}. (PR #143532)

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 17 14:31:42 PDT 2025


================
@@ -177,16 +177,16 @@ define void @add_unique_ind32(ptr noalias nocapture %a, i64 %n) {
 ; CHECK-LABEL: @add_unique_ind32(
 ; CHECK-NEXT:  entry:
 ; CHECK-NEXT:    [[TMP0:%.*]] = call i64 @llvm.vscale.i64()
-; CHECK-NEXT:    [[TMP1:%.*]] = shl i64 [[TMP0]], 2
+; CHECK-NEXT:    [[TMP1:%.*]] = shl nuw i64 [[TMP0]], 2
----------------
fhahn wrote:

Yep the current users assume it doesn't wrap, but I think it would probably be good to back that assumption with a adjustment to langref before relying even more on that assumption. One way to do so would be to add a cap on the possible value of `vscale`: https://github.com/llvm/llvm-project/pull/144607

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


More information about the llvm-commits mailing list