https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115487
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
It looks like it's STV2 doing
28: r131:V4SI=[r102:SI]
30: r132:V4SI=[r102:SI+0x10]
33: r133:DI=vec_select(r131:V4SI#0,parallel)
- 34: [r103:SI]=r133:DI
+ 92: r143:DI#0=vec_merge(vec_duplicate(r133:DI#0),const_vector,0x1)
+ 93: r144:DI#0=vec_merge(vec_duplicate(r133:DI#4),const_vector,0x1)
+ 94: r143:DI#0=vec_select(vec_concat(r143:DI#0,r144:DI#0),parallel)
+ 89: r141:DI#0=vec_merge(vec_duplicate(r133:DI#0),const_vector,0x1)
+ 90: r142:DI#0=vec_merge(vec_duplicate(r133:DI#4),const_vector,0x1)
+ 91: r141:DI#0=vec_select(vec_concat(r141:DI#0,r142:DI#0),parallel)
+ 34: [r103:SI]=r141:DI
36: [r103:SI+0x8]=vec_select(r131:V4SI#0,parallel)
REG_DEAD r131:V4SI
- 38: [r103:SI+0x10]=r133:DI
- REG_DEAD r133:DI
+ 38: [r103:SI+0x10]=r143:DI
+ REG_DEAD r143:DI
for some weird reason and that later causes spilling.
I'll also note that STV2 doesn't seem to recog any of the created insns.