================
@@ -12,13 +12,15 @@ define void @preserve_loop_header_branch(i1 %cond, ptr
%ptr) convergent {
; CHECK-NEXT: br i1 [[COND]], label %[[OUTER_THEN:.*]], label
%[[LOOP_BODY:.*]]
; CHECK: [[OUTER_THEN]]:
; CHECK-NEXT: store i32 1, ptr [[PTR]], align 4
-; CHECK-NEXT: br label %[[LOOP_THEN:.*]]
-; CHECK: [[LOOP_THEN]]:
-; CHECK-NEXT: store i32 2, ptr [[PTR]], align 4
; CHECK-NEXT: br label %[[LOOP_BODY]]
; CHECK: [[LOOP_BODY]]:
+; CHECK-NEXT: br i1 [[COND]], label %[[LOOP_THEN:.*]], label
%[[LOOP_BODY1:.*]]
+; CHECK: [[LOOP_THEN]]:
+; CHECK-NEXT: store i32 2, ptr [[PTR]], align 4
+; CHECK-NEXT: br label %[[LOOP_BODY1]]
+; CHECK: [[LOOP_BODY1]]:
----------------
ssahasra wrote:
The preserved cycle is isomorphic to the original cycle. It's a bit strange how
the transform discarded the original %loop.header, put %loop.body in its place,
and then created %loop.body1 to fill the latter's role!
https://github.com/llvm/llvm-project/pull/204958
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits