<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/55416>55416</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Metadata incorrectly moved during "split block predecessor"
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            loopoptim
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          hgreving2304
      </td>
    </tr>
</table>

<pre>
    [loop.ll.txt](https://github.com/llvm/llvm-project/files/8683047/loop.ll.txt)
[cfg.dot.txt](https://github.com/llvm/llvm-project/files/8683048/cfg.dot.txt)

When compiling attached boiled down example of code

```
llc ~/loop.ll -o - -print-after-all
```

The loop simplify pass (Canonicalize natural loops (loop-simplify)) IMO moves loop metadata incorrectly: The llvm.loop metadata attached to _bb6's terminator is moved to the new loop exit. I think the reason for this is that the loop exit is a header for another outer loop (see attached dotty graph). I think the loop metadata in this case should stay with the branch of the inner loop.

Error:

br i1 %cmp, label %_bb6, label %.loopexit, !llvm.loop !0

=> (after loop-simplify)

br i1 %cmp, label %_bb6, label %.loopexit.loopexit
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJytVMlu2zAQ_RrqMrAgUZaXgw5pkgI5BL0U6LGgyLHEhiYFkkrifn2HdOKlzaVoAUHSrG_e49I7dehY-8k4N5XGlPE1svaO8c0Y4xRYc8P4Z3oGHce5L6Xbk2HM8_tnMXn3A2Ukc6cNBvpuVpumWq5TwkVPvmXVHatuCEruhlK5-N-gNvR32fMEld_fRrRAzSZttB1AxCjkiAp6R00UKPdiAV_FfjIIbkeZCi_L2ap6e7JpjAS2vj-Tg4WDBdBs2saF2EX0C2HMh7XH99cRIdVC0ISpdweYRAhAMtwK66yWwuifCFbE2QuTU3M0_SzeaxJHvoWHxy-wd88Yjh33GIUSUYC20nlPWpkDyQoZkhQsr7NOUkQH3_t-xfg6ABHYawJ3HnTIzXM8UguLL0ccfNWxhAdyavuUQx5FcBZ2VEXOkErjKGKOnUqSV8CIQqHPqcSXEjy4mVCPeUQ0IJ5HozWNBxi8mEYifA36O-cjtBQBIYxuNgpCFAd4of2U83svrBzTIidLW_sGWl4uz733zqe9eOHrSYuaRmvlfmL8Fozo0ST7qNqFIyucuCYv4_VZdTKutgFr7lhzn_jmTQN_LO-_4Z9-CtU1attsRRF1NNg9frBH3pZZzT6dEMZ5oCki9MbJJ5g8KpQYAsnCeTF70_31edUhzPnAtu2yXhUjjbSWCtcbJZd1L9qlqvt1peSqWsp6WdVNkRmFdDERaOLipqipM6cbo9Adrziv2przpqkbXjY7WXPRtFiJTcvbhi0r3Attyqy_80PhuzxSPw-BgkaHGM5BOn96sIgZjvqLOY7Od-Pg8ZkU4XTHFJlCl-f_BfKKrSs">