https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110915
Bug ID: 110915 Summary: vector version of `x == MIN & x > y` is not optimized Product: gcc Version: 14.0 Status: UNCONFIRMED Keywords: missed-optimization Severity: enhancement Priority: P3 Component: tree-optimization Assignee: pinskia at gcc dot gnu.org Reporter: pinskia at gcc dot gnu.org Target Milestone: --- Example: ``` #include <limits.h> #define vector __attribute__((vector_size(sizeof(unsigned)*2))) vector signed fs(vector signed x, vector signed y) { vector signed t = x == INT_MIN; vector signed t1 = x > y; return t & t1; } vector signed fu(vector unsigned x, vector unsigned y) { vector signed t = x == 0; vector signed t1 = x > y; return t & t1; } signed f2_1( signed x, signed y) { signed t = x == INT_MIN; signed t1 = x > y; return t & t1; } ``` I am filing this as I am fixing the pointer version (PR 96695) and don't want to lose track of this either.