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

    <tr>
        <th>Summary</th>
        <td>
            [RISC-V, RVV, Vector, Intrinsics] Vector floating-point moves -> Strided loads?
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          mp-17
      </td>
    </tr>
</table>

<pre>
    CLANG version: `15.0.0`
Target: `RISC-V V 1.0` (Vector ISA)
ISA: `-march=rv64gcv_zfh_zvfh0p1`

In my program, vector move instruction instrinsics, like `vfmv_v_f`, are translated to strided loads with `stride == 0`. 

Is there a way to tell (or force) the compiler to use scalar loads and then `scalar->vector` moves?

Example:
`vfloat64m1_t foo = vfmv_v_f_f64m1(1.389, VLMAX)`

Pseudo-ASM:
`fld f2, (@addr)`
`vfmv.v.f v2, f2`

Thanks a lot!
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxVUl1vozAQ_DXmxQJhO1B44CHXj1Ol9nRqqqhvkcEGfDUY2YZe--tvDWmvkUhYvLuzM7OujXivrh_2v37iRVqnzIjYHqM8JVmSJikEKL1B6f6Z2076c-7p_nAdH_ERk7UCI1ocZeONxfeHPaLl1hLirT4euG16xG7sku-6Zjl9tP3pY2n7dCJfE85NIx7e8WRNZ_mA6DWwWoEHs0isRuft3HhgucXwpxoXyrR6lWHU0g7LaTm1ARaOuZXYWz46zb0U2BscugSE2nDh8JvyfWjbTjFQhAcHUQm-oOWw7yWAcfzG3wOOl1oH4cCtNbaRIDuU4MYMk9LShprZSewarrk9j-OjCEXjOnJNxIjdbhKDkUGlQ-zu--jbv3yYtAQrz6dBJMD5fDeQk4fpJvDGn8pPbUgAM5KwogwmHB8e9y9hLZdW_3ZyFibeHx6_Y7da4JaGNoBAu5QLYS96N4-TJWnxstZB9SXwc8_HVxALoj2iJJIVyfOSsF3BaCQqJkpW8sgrr2WFsh_bbQpIT8f1td2lEN2PXzvObs7neBWvxi6ejBr95hkOPuLD992CjdFsddV7P7mgkN7B08HC5zqBLcGH1svnK4Yr9wfw4VM5N8MW6F0GnFnUV01b5mlRiLzY1TSjTZGXktR53mSEZo3IIs1rqV3Qgigd5RteISAG1pGqaEopIfDLGctgK-2Oiby-KlKWkppegcly4EongUdibBfZaqVUz52DpFbOu_9J7pzqRrlaF_D57Htjq2GKyVW0Dq5W4v8AVQcoKQ">