1; Tests loop-simplify does not move the loop metadata, because 2; the loopexit block is not the latch of the loop _bb6. 3 4; FIXME(#55416): The metadata should not move. 5 6; RUN: opt < %s -passes=loop-simplify -S | FileCheck %s 7; CHECK-LABEL: loop.header.loopexit: 8; CHECK: br label %loop.header, !llvm.loop !0 9; CHECK-LABEL: loop.latch: 10; CHECK-NOT: br i1 %p, label %loop.latch, label %loop.header.loopexit, !llvm.loop !0 11 12define void @func(i1 %p) { 13entry: 14 br label %loop.header 15 16loop.header: 17 br i1 %p, label %bb1, label %exit 18 19bb1: 20 br i1 %p, label %bb2, label %bb3 21 22bb2: 23 br label %bb3 24 25bb3: 26 br label %loop.latch 27 28loop.latch: 29 br i1 %p, label %loop.latch, label %loop.header, !llvm.loop !0 30 31exit: 32 ret void 33} 34 35!0 = distinct !{!0, !1} 36!1 = !{!"llvm.loop.mustprogress"} 37