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

    <tr>
        <th>Summary</th>
        <td>
            [bolt][relocation] In rewiteInstance, an error relocation is generated
        </td>
    </tr>

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

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

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

<pre>
    In the RISC V architecture, when rewirteInstance.cpp processes relocation, In the following code, the final value of the variable Value is 0x004006B7ffb08617, as shown in the following assembly, which is two consecutive instructions; but the auip and load instructions in this program are not two consecutive instructions, their correct values ​​should be 0x0044e63603ffb08617, so the relocation result is incorrect, which eventually leads to segmentation failure.

```
ErrorOr<uint64_t> Value =
      BC->getUnsignedValueAtAddress(Rel.getOffset(), RelSize);
```
  
```
**_7bde24: ffb08617             auipc   a2, 0xffb08_**
  7bde28: 004006b7      lui     a3, 0x400
  7bde2c: ffbc0597      auipc   a1, 0xffbc0
  7bde30: ff8c9717      auipc   a4, 0xff8c9
  7bde34: ff8c9797      auipc   a5, 0xff8c9
  7bde38: fd070713      addi    a4, a4, -0x30
  7bde3c: cdb87057      vsetivli        zero, 0x10, e64, m8, ta, ma
  7bde40: 02077407      vle64.v v8, (a4)
  7bde44: 5cc58593      addi    a1, a1, 0x5cc
  7bde48: 04c78713      addi    a4, a5, 0x4c
  7bde4c: 08058793      addi    a5, a1, 0x80
  7bde50: 0207f427      vse64.v v8, (a5)
  7bde54: 02077407      vle64.v v8, (a4)
  7bde58: ff8c9717      auipc   a4, 0xff8c9
  _**7bde5c: 44e63603           ld      a2, 0x44e(a2)**_
  7bde60: 10058793      addi    a5, a1, 0x100
  7bde64: 0207f427      vse64.v v8, (a5)
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJycVV2P4yYU_TXkBU2E-bDxgx-S-ZC2qrTSbLt9HGF87VAREwHOzOyvr8AZO52ZVt1GVkwI5557DheuCsEMI0CDxB6Ju42a4sH55g81Dr8AbFrXvTZfRhwPgB-_fLvF37Hy-mAi6Dh5QPQWPx9gxB6ejY_wZQxRjRq2-nTCJ-80hAABe7BOq2jcmACXcL2z1j2bccDadTlSnjWjsvis7ATY9XnqrLxRrQX8Pc-agMkLIZyQcl_1fUtkWVQJrgIOB_c8YvOeQIUAx9a-zukafUhB4rPD2o0B9BTNGbAZQ_STTlkGxPa4nWIOoyZzwmrssHWq-9uqmciEpHTw6oiVBzy6-O-hZ6HGY-28Bx1nsQGje4okQXK_DMLBTbbDLcyCOZSsJOxacnA5xdVf7CFMNiZ9ZrwQrKrhDGOclLWv2ILqAo4OBxiOMMYZ3StjJw9bRHbpKcnlIbt7753_6hG7ncwYS_4UEbu_7Ahid4jscP7sb28Qux8g_j7mwurykl3cdZ2HEBCVj2C3A8SvfR8gIioRrVOGj2C_mR-QfrH9O3KM300gmp6nqu2AcsR2-M2UnAMiddo0nd40xSYv-f-nGZYDZqhM0LmU2gVqJ5OAbAZyQtb1-kKliag_UhULlV4xjMwYqevqk_T4G0bqesXwFfMJj_gUk7X0HalIVbAF03VmoZm_b8gLu0ovS9JdKysiFqpzgGjONkF_gHczX0HSG8oc5ShzHas8Vks4ntUSSqqKkzWchZJvz2mUYYjKlMuaPM-ChdZCivpD8tnXN3eF1its3j-uK_mPmi9m8StUlkwkEbL6SCauyeRqlFiU9ZxeG_VBmbhWJvj_MkTIn6uaS2VnaJb3dlksRd1dHQbOITHSfPLyQVqIyyyzIP_BnOLqZJT8J91ZDvOma1hXs1ptoCkqXhDCiKw3h4aXda9U3fOCl7KuK61UXdV9SUrNStmzjWkooYIwwopCSFJvSU9YzajSVBMpKo44gaMydmvt-bh1ftiYECZoClqLot5Y1YINue9Ruv_662-I0tQBfZPW37TTEBAn1oQY1gjRRJt7ZetsROIOif1VcxN3qbmlXri2wmzZiCHdn9cXtQl4gBG8itBtJm-bQ4yngNgO0QdEHwYTD1O71e6I6EOiv7xuTt79mS_1h6wmIPpwEXRu6F8BAAD__yUEOYk">