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

    <tr>
        <th>Summary</th>
        <td>
            [mlir:llvm] `LLVM::ConstantOp` allows mismatched constant value
        </td>
    </tr>

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

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

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

<pre>
    These are valid instances of `LLVM::ConstantOp` in MLIR:

```
%cst0 = llvm.mlir.constant(1 : i32) : f64
%cst1 = llvm.mlir.constant(1.0 : f64) : f32
```

But they both fail to export. The former triggers an assert `isa<FloatAttr>` and the latter fails to export due to mismatched float size.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx9UcGOmzAQ_RpzGRU5Nhg4cMhuGqlSokpV1buBAVyZOLKHbbdfX5tNujlUK42Mx8N7M-9N54bX9vuMAUF7hBdtzQDmEkhfegzgRmCKn04_zkzuYzy7rURfr_E5_gfn05dvqcQPjN9PxW_xloqyD8SByQNY-7LkizU-729ETNS7WNqDkYKJZruOqniE7j6A5vwf4g6OPP8dYzufVgKa8RU6RzOM2lggB_j76jzlEH2A0fkFPZA304Q-gL6ADgE9JSNM0Ew-H63TtCfyTH5ONujLkEjBaqIITazhnRaGFVO2mLBo6mccYEwEEMwfzDNsd6psqkLuapUNrRwa2eiMDFlsWfmUFEdZST0rDx8tQ1vrfoXHNnej0lZXzFZv25noGhJaHGNMhua1i4YuMdlavH0-Xb37iX10-GhCWDHES6kaJbK5lQXWXdX3uwqLoVed5lp0QtSj0nosijKzukMb0uxMiMfxhYgKMtMKLgSveSlkoUSRC64q1VS1rIay5yWyguMSLcy3jTs_Zb7dhurWKcSiNYHCezEux0wXxFvDs5u66MStmV5pdr69PWabmHZT8hcPHepP">