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

    <tr>
        <th>Summary</th>
        <td>
            [MachinePipeliner] Store-After-Store order dependency is not considered
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    See reproducer in: https://godbolt.org/z/vEv5r6Md7
We have 2 aliased stores in the loop that have order dependency:
`SU(5):   STBX8 %19:g8rc, %7:g8rc_and_g8rc_nox0, %18:g8rc :: (store (s8) into %ir.17)
  # preds left       : 1
  # succs left       : 1
  # rdefs left       : 0
  Latency            : 1
 Depth              : 6
  Height             : 0
  Predecessors:
 SU(4): Data Latency=2 Reg=%18
  Successors:
    SU(11): Ord  Latency=0 Memory` 
and
`SU(11):   STBX8 %25:g8rc, %8:g8rc_and_g8rc_nox0, %24:g8rc :: (store (s8) into %ir.18)
  # preds left       : 2
  # succs left : 0
  # rdefs left       : 0
  Latency            : 1
  Depth : 12
  Height             : 0
  Predecessors:
    SU(10): Data Latency=2 Reg=%24
    SU(5): Ord  Latency=0 Memory`
But the pipeliner schedules the two stores at different stages which is illegal:
`

Inst (5)   STBX8 %19:g8rc, %7:g8rc_and_g8rc_nox0, %18:g8rc :: (store (s8) into %ir.17)

        es:        6 ls: 7fffffff me: 7fffffff ms: 80000000
Trying to insert node between 6 and 9 II: 4
        insert at cycle 6   STBX8 %19:g8rc, %7:g8rc_and_g8rc_nox0, %18:g8rc :: (store (s8) into %ir.17)

Inst (11)   STBX8 %25:g8rc, %8:g8rc_and_g8rc_nox0, %24:g8rc :: (store (s8) into %ir.18)

        es: d ls: 7fffffff me: 7fffffff ms: 80000000
Trying to insert node between 13 and 16 II: 4
        insert at cycle 13   STBX8 %25:g8rc, %8:g8rc_and_g8rc_nox0, %24:g8rc :: (store (s8) into %ir.18)
`
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzElk1v4zYTxz8NfRnEEKn3gw7O48dogAZd1Fu0twVNjiW2NCmQVFL30xekZNdJ0E2LLXZ5kPky8-dwfh6J3HvVG8SOlPek3K74FAbrut_siWtr6Opg5bnbI4LD0Vk5CXSgDMk3MIQwepJvCNsRtuutPFgd1tb1hO3-IGz39P-n0lWPsibZlmSbnxEG_oTAgGvFPUrwwTr0oAyEAUFbO0IYeJjNrJPoQOKIRqIR57hR0iFVtv-JsKYkrI1hAOw_3v_SAGEljRN94wRh_4vjehl-4kZ-Sh1jf8-WRdosqxCl8w0Q1qSIUqchrAVlgo2myq1pHbdLAQAQlsPoUHrQeAwwtyhBby38JMTnLZzE4xuL7GLxPQ_x4HDTbhW2OIYB4PVydXH_DlU_hDfrV_kPDiUK9N46f00upNQWS2q3PPBLGCTfMvgRe5Jv5-QtMvtJvBGJTKIOpYvQD07CjVAGj3iy7kyqDGYXbuRLulfXG7ysfIm3-RxeVvwrvM0_wcv-Bu-LvH4x2IVsmmJfRvMKInuXKCte-ZTvspsd7qeQ6ndUI2pl0IEXA8pJo0_z4dleKp0HkOp4RIcmgA-8Rw_PgxIDKA9Ka-y5vq3zpZOeD8YHWML6-jV_ebbo5z9lahXoNKyPc4MTvhym1Sab26zx0Z2V6SFYUMajC2CsRDhgeEY0UAE3Elp4eIiexXXbxZYHEGehEapvlYILhlSfX784X3GQ_zkAmicCtHoXAc2_wfGrbCW7XLZ5y1fY0TrLaF7Tql4NXdvKqqZtyYqqEaw-VOWxyDErauSlkMhWqmMZyymlFWW0Zfmal-xIq7I65nlFmShIkeGJK73W-ukUP-Qr5f2EXc3KrFlpfkDt0zWBMYPPkBYJY_HW4Lroc3eYek-KTCsf_F8qQQWd7hePXAzK4IfLm4KUW9jHc99tjgHdXeq_-fLHl4OxAYQ1Xkl0KFeT092r64cKw3RYC3sibBd3Xn7uRmd_RREI26V4PWG7dJ4_AwAA__8WU30Z">