https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91201
--- Comment #5 from Marc Glisse <glisse at gcc dot gnu.org> --- It looks like a convoluted way to write: unsigned char sum() { unsigned char res=0; unsigned char*p=(unsigned char*)bytes; for(int n=0;n<sizeof(bytes);++n) res+=p[n]; return res; } which gcc easily recognizes as a reduction. Except that I am not convinced the testcase actually computes the "horizontal sum of all bytes in an array" as claimed. Yes, the i386 backend seems to be missing reduc_plus_scal_V*QI using (v)psadbw, that should be a separate bug report.