[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