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

    <tr>
        <th>Summary</th>
        <td>
            [GlobalISel] MIR serialization issue with G_PTR_ADD instruction flags
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          5c4lar
      </td>
    </tr>
</table>

<pre>
    
## Description
When using `llc` with Global ISel, the MIR file generated by `-stop-after=irtranslator` contains `nuw nusw` flags on a `G_PTR_ADD` instruction, but these flags cannot be parsed when reading the MIR file back.

## Steps to Reproduce
1. Create a simple C file with a struct access:
    ```c
    typedef struct Point {
        int x;
        int y;
    } Point;
    
    int main() {
        Point p;
        p.x = 10;
        p.y = 20;
        return 0;
    }
    ```
2. Generate MIR using: `
    ```bash
    clang -O0 -S -emit-llvm test.c -o - | llc -x ir -o test.mir -stop-after=irtranslator -global-isel
    ```
3. Try to use the generated MIR:
    ```bash
    llc -global-isel -x mir test.mir
 ```
## Current Behavior
The command fails with:
```
error: test.mir:109:20: expected a machine instruction
    %6:_(p0) = nuw nusw G_PTR_ADD %1, %5(s64)
```
## Expected Behavior
The MIR file should be parseable by `llc`, since it was generated by LLVM's own toolchain.

## Environment
- LLVM version: 19.1.7 (Homebrew)
- Target: arm64-apple-macosx15.0.0
- OS: macOS

## Additional Notes
The problematic instruction appears to be a pointer arithmetic operation for struct field access. The `nuw nusw` flags are preserved from the LLVM IR getelementptr instruction, but the MIR parser doesn't seem to handle these flags for `G_PTR_ADD`.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJx0VU1v2zgQ_TX0ZSCBoizLPvigxk03QLstkmD3WIyoscVdihRIKo731y9IK4lttEEAGcPHmffmi-i9OhiiLas-sWq3wCn01m0rudToFq3tTlvGGyZKJkrYkZdOjUFZw3jzd08GJq_MAdiKay3ZisNRhR6-aNuihocn0kzcQegJvj08wl5pggMZchiog_YU72U-2DHDfSDHyp1ywaHxGoN10Z20JqAyPiLNdAQz-WO07zUePFgDGE--_Pzx_Piz2e3ikTI-uEkmkuIO2ilEAp7mOxKNsQFaghGdpw6OUYYj7KKQK6otyn_zqP49AU-BRg_BwiONznaTJMabIoc7RxgIELwaRk1wd3aQkoFw5gMoJXnPyugPACLx87-cDeE0Ukf7N_wPq0wAVn-aj-NftLyy8tZ0-jCxene-eWE6fyJwQGWYWDOxuXF8DjZeux7zV2DlDgp-az8lu7ixOwqTM8Cv2NyqZbwROXyZ2yBlOzURKxs4H1_BW_T9bJMazQGy7xyyJ8hoUCHT-mWAQD7kEjILGbD6DrSWkL2CctGUDof4-7eNBtkhNWymPOlf0C1zeHanWPbJU2qRjyb-9vD4i4pekE5kLvxHZpHOG68Iuww2d9rd5ByZAJ-oxxdlI-y5J5B2GNB0sEelfeqvc_RLD-ScdTGb7yHKpuAbVjaxXg3Q60gyckcYUPbK0NXMzFJEtWJl85OJ9chTu5Q7eJtAeB-4iCvimDFRVUys_WrJxOaG0Czp81vcG03v8-Z7O-nufTSxjTN4-lguMY5XRhKoAEf017vk69e_vjFRe7BHA8FaLXtU5np-P5sX5awZyATGmyzdgRdyPgovGyg2eZHXwMT6DztQ6-h4VpPBM7oDhYhBN6yWGY6jpmxAaf1rUeU85wn2_SlCBpTfn64CN12nYnZRw582kJ-lj862mgYMSl7WAHAcCV3aNG1cK2OcTnKAToV-oAi3Y5QewXvr3lbGXpHu5kWTQ4zwy72JLoYmT-6FOtg7O6SuTtl4eIQDBdIUkzQG95t9mqqWyuSgs-QNE3UATzRE0j2aTtPV3o0sb1Z1vui2ZbcpN7igbVGXm81KbNbVot92Qq6WdYElL1rRtqJYt0verla4pLbEzXqhtoKLiotiUxS85FXOl7Jr9-tW8qIua6zYktOASudxQ-TWHRbK-4m2hajrdbHQ2JL2b4-e20ZU1k4Hz5ZcKx_8x72ggk7P4_lVS49atUv6PTmFWv13rkMKMD-A7_NxWdWUiMXk9LYPYUwvgbhn4v6gQj-1ubQDE_cx7vzJRmf_IRmYuE--PRP3M_-Xrfg_AAD__yeAXOc">