[llvm] [LV] Enable the exit value optimization via SCEV for tail folding. (PR #210928)
Mel Chen via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 24 01:17:45 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
+;
----------------
Mel-Chen wrote:
c481f507d78f36110e35690db54396aab3637334
https://github.com/llvm/llvm-project/pull/210928
More information about the llvm-commits
mailing list