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

    <tr>
        <th>Summary</th>
        <td>
            [AVR] At least one of llc and llvm-mc's output is wrong
        </td>
    </tr>

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

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

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

<pre>
    I can take this LLVM IR file, and compile it into an object file in two possible ways:

1. Straight via `llc -filetype=obj`
2. Going via an assembly file with `llc -filetype=asm`, and then assembling that with `llvm-mc`

I would expect the two paths to yield the same object file; however, I get two object files that are different in very wild ways. In particular, there are lots of branches that are assembled differently:

```
colordiff -u worduino-avr.ll.o.dump worduino-avr.ll.s.o.dump
--- worduino-avr.ll.o.dump      2023-01-12 19:57:31.962629460 +0800
+++ worduino-avr.ll.s.o.dump    2023-01-12 19:57:32.022629930 +0800
@@ -83,7 +83,7 @@
       96:      45 91   lpm     r20, Z+
       98:      4d 93           st      X+, r20
       9a:      31 50   subi    r19, 0x01       ; 1
-      9c:      e1 f7           brne    .-8             ; 0x96 <_ZN15worduino_engine4draw11draw_sprite17hc7657142962e61a4E+0x96>
+ 9c:   01 f4           brne    .+0             ; 0x9e <_ZN15worduino_engine4draw11draw_sprite17hc7657142962e61a4E+0x9e>
 9e:    38 2f           mov     r19, r24
       a0:      32 0f           add     r19, r18
       a2:      a3 2f           mov     r26, r19
```

Surely at least one of these two outputs must be wrong.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVU2P3CgQ_TX0pWQL8Fdz6MN8ZFYjZfeQSNEqlwjbZZssNhbg7ul_vwJ7unsmkz3tyGLcUO_Vq4cppHOqnxAPpLgnxeNOLn4w9tCj7Q3aVu1q054Pz9DICbz8B8EPysHnz9_-hOcv0CmNhD-AnFpozDgrjaA8qMkbkBOY-ic2PkaBmsCfDMzGOVVrhJM8O5LdEfpI6DayFL56K1U_eDgqCaSkWjeQBLw_z0iyR1P_JCVdw3kKfxg19TFWTiCdw7HW5zXfSfnhIwbpxsCwifYDXoCByg_S30CPYzI2l4Tr-Awns-gW8GUOxfkB18KkHxx4A2eFOhKDkyPeekCyexjMCY9oQ_5n6NFH7E2MWyVIi9CqrkOLU_ATjmjPcFK6jcal8DzBLK1XzaJlZPMDWow4bbwD00Ft5dQMt4xbodheufX53SaEatcn_myMNjZEQ7LAydh2UZNJ5NGmWqcmbZdx_mXabQsrQ5IkvwESKjjlWUJZwjgwQbK7oiLZXcZSUfKSi7ykQPg93dPXHeD36_MfOX_DyVPKA6fI3nPmlOQUkn1G-EMV1l7f4sIaBOufKKNbIi9AMCBU6HkkVFgeP6jvQdub8P0W3oLItjlChfOEir9jIQ8QsG8wcsVkDAoao5dahRxMhHD6QhmhInxKbPN3wzUrDhl01TVXbSckVKTJ_jIVsPRFlECyhx_f_2LFq5c_cOrVhHlr5YmxMP5ws1UeWTU0VVlULOei5FgymX8KHr4EPz5dtuaigTLo8l81BMh7Ffh_qMCLCgjv0b498O4qYTTHq4eW528sl3TDcKA3GNm2Nxi2f4vhK0ZmH-Xh5YoRH56pdfy6WNRnkB40SufBTBhOrR_QrR3FLH5evINxcR5qhJM1U5_u2kPWikzIHR5YWWUFL2jFdsMBZVV1HPftnjPaUU4LylvsmqLImzovyp06hJNBGeOM0zxjaSWKnBYiy7q67ArekJziKJVOQ-NLje13yrkFD4UQJd9pWaN28Z7gfMITxEXCebg27CE2y3rpHcmpVs67K4tXXscL5u7bF1I8wt27kkOLDs34td_yym3Fg3Jr2bvF6sPg_RzvDP5E-FOv_LDUaWNGwp8CdPuXzNaEdkr4U1ToCH-KFfwbAAD__yWMAEA">