https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109885
Bug ID: 109885 Summary: gcc does not generate movmskps and testps instructions (clang does) Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: vincenzo.innocente at cern dot ch Target Milestone: --- in this simple code (on avx2) int sum(float const * x) { int ret = 0; for (int i=0; i<8; ++i) ret +=(0==x[i]); return ret; } int one(float const * x) { int ret = 0; for (int i=0; i<8; ++i) ret |=(0==x[i]); return ret; } int all(float const * x) { int ret = 1; for (int i=0; i<8; ++i) ret &=(0==x[i]); return ret; } clang uses movmskps and testps instructions, gcc does not see for instance https://godbolt.org/z/r11r8xoYz