https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98730
--- Comment #4 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> --- Hmm, yeah, looks like it might be a cost issue then. arm_rtx_costs_internal seems to give CONST_VECTOR a cost of 1 or 4 instructions, whereas a zero CONST_VECTOR is free in this context. Although that should be fixed, another approach would be to lower vget_high_* and vget_low_* at the gimple level if the argument is a constant.