[llvm] [LV] Enable the exit value optimization via SCEV for tail folding. (PR #210928)
Ramkumar Ramachandra via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 13 02:09:33 PDT 2026
================
@@ -105,6 +145,21 @@ define i32 @constpre() {
; CHECK: [[FOR_END]]:
; CHECK-NEXT: ret i32 2
;
+; TAILFOLD-LABEL: define i32 @constpre() {
+; TAILFOLD-NEXT: [[ENTRY:.*:]]
+; TAILFOLD-NEXT: br label %[[VECTOR_PH:.*]]
+; TAILFOLD: [[VECTOR_PH]]:
+; TAILFOLD-NEXT: br label %[[VECTOR_BODY:.*]]
+; TAILFOLD: [[VECTOR_BODY]]:
+; TAILFOLD-NEXT: [[INDEX:%.*]] = phi i32 [ 0, %[[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], %[[VECTOR_BODY]] ]
+; TAILFOLD-NEXT: [[INDEX_NEXT]] = add nuw i32 [[INDEX]], 2
+; TAILFOLD-NEXT: [[TMP0:%.*]] = icmp eq i32 [[INDEX_NEXT]], 16
+; TAILFOLD-NEXT: br i1 [[TMP0]], label %[[MIDDLE_BLOCK:.*]], label %[[VECTOR_BODY]], {{!llvm.loop ![0-9]+}}
+; TAILFOLD: [[MIDDLE_BLOCK]]:
+; TAILFOLD-NEXT: br label %[[FOR_END:.*]]
+; TAILFOLD: [[FOR_END]]:
+; TAILFOLD-NEXT: ret i32 2
+;
----------------
artagnon wrote:
Could use COMMON prefix for these check lines?
https://github.com/llvm/llvm-project/pull/210928
More information about the llvm-commits
mailing list