expand_opr might be required after shift_*