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

    <tr>
        <th>Summary</th>
        <td>
            [MLIR] Methods in `VectorEmulateNarrowTypes` should support atomic semantics
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            mlir
      </td>
    </tr>

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

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

<pre>
    #115922 implements the first atomic semantic in emulating narrow types for vector stores. Further discussions in the same thread suggests that atomicity is actually needed for emulating other narrow types as well because `vector` dialect is virtual and hence do not guarantee any inherent atomicity.

We should implement atomicity for those patterns. #115922 implements a switch to turn on atomicity when the caller sees fit. We could follow this pattern to cover other ops.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxskkFr5DgQhX-NfCliZNnupA8-ZMk2LGz2sAyTc1mutjTIklGVuul_P9jpkAwzJ13E916995DZz5FoUP1fqn-psIhLeQgeA8ZqTNNtUKZtmv5oDPhlDbRQFAZxBGefWQAlLd4C04JRvAUfgZYSUHycIWLO6QpyW4nhnDJcyErKwJIycQ2nksVRhsmzLcw-Rd4AG51xIRCXCSfgMs_Euyx-KHq5gWdAKwVDuEEkmmjaRT71007_xQUyXCkEGMliYQJ10O-m1EHD5DGQlQ188XkjA8YJHEVLMCWISWAumDEKEWC8gY-OMsUvrmqln5V-fiNgl0qYPmP74nyzKS4xwYoilCPX8MegEfjqxTqQBFJyhBS_YK6O3tOyGAJlYNpy9lLDG4Hd1c8phO145_lDa2PZdKF8zyetXFfT0E7H9ogVDc1j2x6NMU1TuYFM17XHc6ebVhOZp3M36vFJU_9kaWq1rvxgtOka0zRNq9tW19iccTL98fHQdY_UjKrTtKAPdQiXpU55rjxzoaFpjn3fVgFHCrwP0Jgl-KyM2aaYh-3_w1hmVp0OnoU_CeIl7KN9_fef_1X_Aq8kLk37etRBf98b_XvfAf231_9ta3_r-N4Kl3VN-bf9clVyGJzIyqp9VuakzGn24spY27Qoc9os3J-HNacfZEWZ034RK3O6H3UZzM8AAAD__wUcKRM">