https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110193
ibuclaw at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ibuclaw at gcc dot gnu.org --- Comment #2 from ibuclaw at gcc dot gnu.org --- Just having a cursory look, the only references to d_signed_or_unsigned_type is via d_unsigned_type and d_signed_type. The former is only called by d_gimplify_unsigned_rshift_expr. So I guess you must mean you've noticed this with something like. __vector(int[4]) unsigned_rshift(__vector(int[4]) v) { return v >>> 2; } It turns out that this accident doesn't affect the intent on x86. https://d.godbolt.org/z/99fK7fWaW Gimple dump: --- __vector(int[4]) rshift (__vector(int[4]) v) { __vector(int[4]) D.1795; _1 = VIEW_CONVERT_EXPR<vector(4) unsigned int>(v); _2 = _1 >> 2; D.1795 = VIEW_CONVERT_EXPR<__vector(int[4])>(_2); return D.1795; }