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

    <tr>
        <th>Summary</th>
        <td>
            [GlobalOpt] Incorrect change of atomic type
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            llvm:crash,
            llvm:optimizations
      </td>
    </tr>

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

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

<pre>
    ```llvm
; RUN: opt -S -passes=globalopt
@g = internal global ptr null, align 8

define void @init() {
  %alloc = call ptr @malloc(i64 48)
  store atomic ptr %alloc, ptr @g seq_cst, align 8
  ret void


define i1 @check() {
  %val = load atomic ptr, ptr @g seq_cst, align 8
  %cmp = icmp eq ptr %val, null
  ret i1 %cmp
}

declare ptr @malloc(i64) allockind("alloc,uninitialized") allocsize(0)
```
Results in:
```
atomic memory access' size must be byte-sized
 i1  store atomic i1 true, ptr @g.init seq_cst, align 1
atomic memory access' size must be byte-sized
 i1  %g.init.val = load atomic i1, ptr @g.init seq_cst, align 1
LLVM ERROR: Broken module found, compilation aborted!
```

</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyclM-vozYQx_-a4TJKZAwEOHAgL01VaduVUrXXypgJcWMwa5tIeX99ZZN09-2-w9NKSIA9Pz7z9XiEc2qYiBoo9sD5pK5KAudQHBKx-IuxTVxKOtPfG9ix9dH6NgJrIdvj6a8_IGvRzB43f-JmFs6Rg-wwaNMJbWYf7HI2IGQHVJMnOwmN6y7O3uK0aA38BYVWw4RVMGdtT2c1Ed6M6hFypiblgVfAa4RyD6xFBF4IrY2McaXQazDI2RiXgVdql2MefKK988YSCm9GJVfTR4CQ--E6oKMv_0jn3_IgWvKRJcCVB3zDqNLgKi8krz8i3oSOgNqI_pvkH8kJvJDjvMoWPujLE_smomBRuCddoIgOK-KTUGph6T1lAmf8vaqpj9z8qcYyBbmV0OqV-tALT1OnXgl4xVZJ_28GYO2J3KK9QzVB1n6396h6pNHYOwopyTngJYZoOC7OY0fY3T1tXEzI2lDM2_NSKXq70LeybQPkj9qlP58ReLFG3b53air9YPZPn_7-HX85nT6fwr3YW3OlCUfTL5rwbJag9gtKM85KC6_MhKIz1gel0--US_om6-usFgk1aZkXeZ3uqiy5NIzXsi77NC06WeRVlbOurHlWS8p4fWZpohrOeMFynqcsr1i2TXcZia5Md9W56xnPIWc0CqW34SZvjR0S5dxCTZqVacETLTrS7jET4mXPWmmFu8R2ePm6aGavRvUaC3GPuWGbsLnplsFBzrRy3n1N45XXcdj8GifA59lDccDfJmmsJelRXsQ0EJrzU3d_nylZrG4u3s8utBc_Aj8Oyl-WbivNCPwYYdbXZrbmX5Ie-DFW5IAfH0XdGv5fAAAA__9jtYNq">