[Bug target/43122] g++ does not allow overloading operators for sse types (__m128, __m128d)
pinskia at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Fri Feb 19 18:39:00 GMT 2010
------- Comment #3 from pinskia at gcc dot gnu dot org 2010-02-19 18:39 -------
(In reply to comment #2)
> I'm assuming you are referring to <fvec.h> and F32vec4. While I will apply this
> workaround (one of many many workarounds to get fancy C++ code to work with
> g++) it still doesn't solve the underlying problem, and affects portability
> performance-wise, something lethal for HPC code.
What I was trying to say is that __m128 is defined as:
typedef float __m128 __attribute__ ((__vector_size__ (16), __may_alias__));
Which means there is already an operator+ defined which is done using the
generic GNU vector support. If you remove your definition of operator+, it
works without it.
--
pinskia at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Component|c++ |target
GCC target triplet| |i?86-*-* x86_64-*-*
Resolution| |INVALID
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43122
More information about the Gcc-bugs
mailing list