jayfoad wrote: In that pattern could you please try changing `(EXTRACT_SUBREG VGPR_32:$src1, hi16)` to `(EXTRACT_SUBREG (i32 (COPY_TO_REGCLASS $src1, VGPR_32)), hi16)`? That's what we do in other places. https://github.com/llvm/llvm-project/pull/218371