--- #include <x86intrin.h> void f(__m128) { } void f(__m256) { } --- Build with the -mavx flag to enable 32-byte vectors.
z.s: Assembler messages: z.s:22: Error: symbol `_Z1fU8__vectorf' is already defined This because the vector mangling does not include the size of the vector, and thus __m128 and __m256 mangle to the same thing. -- Summary: Vector type name mangling is size ambiguous Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: blocker Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: rth at gcc dot gnu dot org GCC target triplet: i386-* x86_64-* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41959