https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117562
--- Comment #8 from Hongtao Liu <liuhongt at gcc dot gnu.org> --- > vec_unpacks_hi_v4sf create an unintialized (reg:V4SF 853), I guess it may > confuse LRA to allocate a mem for it. For simple case void foo (double* a, float* b, int n) { for (int i = 0; i != n; i++) a[i] = b[i]; } RA works ok, there's no extra spill there.