================
@@ -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

Reply via email to