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

    <tr>
        <th>Summary</th>
        <td>
            LDAPR Instruction is not generated
        </td>
    </tr>

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

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

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

<pre>
    Older ldar+stlr gives something close to memory_order_seq_cst but the newer ldapr+stlr gives a more true memory_order_acquire + memory_order_release, the compiler does not seem to generate this instruction. https://godbolt.org/z/nes6e49sG

Our experience is ldapr+stlr results in better performance in some internal Google workloads. 

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxdkdtu2zAMhp_GvhFm2HLsRBe-SBesGDCgw14gkC3G1iaLqUi3655-tIOiSAGdCJIff1I9urfuKThIKjibMv1AHJIa_QuQIpyBJx9HNQQkUIxqhhnT2xmTZJwJns8DseoXVjyBivB641w_gaySLMlPC9wT7PC8ePFI-L0jQQBLkOmvG3nA-eqDwB0KLiIrAphXQSNESJYFPnlSPpIUGdhjLNTEfKWsPmb6m6wRXY-BC0yjWP9kR6AWdoYes_KUlcfb-bQkBX-vkDzEAZQw7_pJQEvgtZDqgVkUSegF02y36LjNTG7xRBvUI-IYQL1i-hPQOirUrUruutqZ2ticPQfofpyOP3-p7x_q18Jrm-_tuXxJofvUkedp6QuZjRghvLxfX64Jf8PAYnqiBUgeTdO0VT51pXWVNnDZ15f93timNIN2ZT3Yw6HtWzB5sD0E6rLmIdNaPlRtCHlnzSn3nS61LpvqULWy94XZCaRt62bvjAFTZbsSZutDsepYR52nbpPULyOJM3hi-nBaIj9GgK2c8O3CE6bOuuRtZIxjVepdvinotg7-A8yY6lw">