http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57572
Bug ID: 57572 Summary: vector operators don't participate in overload resolution Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: glisse at gcc dot gnu.org typedef int vec __attribute__((vector_size(4*sizeof(int)))); struct A{ operator vec()const; }; vec f(vec x, A y){ return x<y; } e.cc: In function 'vec f(vec, A)': e.cc:6:11: error: no match for 'operator<' (operand types are 'vec {aka __vector(4) int}' and 'A') return x<y; ^ I think this happens around add_builtin_candidate(s) for scalars.