https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110193
--- Comment #3 from ibuclaw at gcc dot gnu.org --- (In reply to ibuclaw from comment #2) > 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; > } I've just realized that I wasn't reading this code dump properly. Everything looks correct here. I've a look again and picked at random vector E_V8HImode, that has a precision of 3. Whereas a cent has a precision of 128.