[llvm] [SimplifyCFG] Add loop metadata to the new branch when doing jump-threading (PR #157180)

via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 9 15:53:42 PDT 2025


================
@@ -0,0 +1,49 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
+; RUN: opt -passes='simplifycfg' -S < %s | FileCheck %s
+
+; CHECK: br i1 %2, label %loop2, label %loop1
+; CHECK-SAME: llvm.loop
+
+define void @test(i32 %1 ) {
+; CHECK-LABEL: define void @test(
+; CHECK-SAME: i32 [[TMP0:%.*]]) {
+; CHECK-NEXT:  [[_CRITEDGE:.*:]]
+; CHECK-NEXT:    br label %[[LOOP1:.*]]
+; CHECK:       [[LOOP1]]:
+; CHECK-NEXT:    [[TMP1:%.*]] = icmp eq i32 [[TMP0]], 0
+; CHECK-NEXT:    br i1 [[TMP1]], label %[[LOOP2:.*]], label %[[BB3:.*]]
+; CHECK:       [[LOOP2]]:
+; CHECK-NEXT:    [[TMP2:%.*]] = phi i1 [ true, %[[LOOP1]] ], [ false, %[[LOOP2]] ]
+; CHECK-NEXT:    br i1 [[TMP2]], label %[[LOOP2]], label %[[LOOP1]], !llvm.loop [[LOOP0:![0-9]+]]
+; CHECK:       [[BB3]]:
+; CHECK-NEXT:    ret void
+;
+.critedge:
+  br label %loop1
+
+loop1:                                              ; preds = %loop2, .critedge
+  %111 = icmp eq i32 %1, 0
----------------
asastry108 wrote:

Done


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


More information about the llvm-commits mailing list