https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65375
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- ;; _6 = __builtin_aarch64_get_qregoiv4sf (__o_5, 0); (insn 8 7 0 (set (reg:V4SF 74 [ D.16774 ]) (subreg:V4SF (reg/v:OI 73 [ __o ]) 0)) /data1/src/gcc-cavium/toolchain-thunder/thunderx-tools/lib/gcc/aarch64-thunderx-linux-gnu/5.0.0/include/arm_neon.h:15586 -1 (nil)) ;; _7 = __builtin_aarch64_get_qregoiv4sf (__o_5, 1); (insn 9 8 0 (set (reg:V4SF 75 [ D.16774 ]) (subreg:V4SF (reg/v:OI 73 [ __o ]) 16)) /data1/src/gcc-cavium/toolchain-thunder/thunderx-tools/lib/gcc/aarch64-thunderx-linux-gnu/5.0.0/include/arm_neon.h:15587 -1 (nil)) Actually maybe we should use POI here, the partial integer mode will cause splitting subreg not do anything.