[llvm] [LV] Check loop-preheader for loop-legality when pass-remarks enabled (PR #166310)
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Thu Nov 6 03:22:30 PST 2025
================
@@ -0,0 +1,33 @@
+; RUN: opt < %s -passes=loop-vectorize -pass-remarks=loop-vectorize -debug -disable-output 2>&1 | FileCheck %s
+; REQUIRES: asserts
+
+; Make sure LV legal bails out when the loop doesn't have a legal pre-header.
+; CHECK-LABEL: 'not_exist_preheader'
+; CHECK: LV: Not vectorizing: Loop doesn't have a legal pre-header.
+define void @not_exist_preheader(ptr %currMB, i1 %arg, ptr %arg2) nounwind uwtable {
+entry:
+ br i1 %arg, label %start.exit, label %if.then.i
+
+if.then.i:
+ unreachable
+
+start.exit:
+ indirectbr ptr %arg2, [label %0, label %for.bodyprime]
+
+0:
+ unreachable
+
+for.bodyprime:
+ %i.057375 = phi i32 [0, %start.exit], [%1, %for.bodyprime]
+ %arrayidx8prime = getelementptr inbounds i32, ptr %currMB, i32 %i.057375
+ store i32 0, ptr %arrayidx8prime, align 4
+ %1 = add i32 %i.057375, 1
+ %cmp5prime = icmp slt i32 %1, 4
+ br i1 %cmp5prime, label %for.bodyprime, label %for.endprime
+
+for.endprime:
+ br label %for.body23prime
+
+for.body23prime:
+ br label %for.body23prime
----------------
fhahn wrote:
Can do something like below?
```suggestion
exit:
ret void
```
https://github.com/llvm/llvm-project/pull/166310
More information about the llvm-commits
mailing list