[Bug target/34435] New: SSE2 intrinsics - emmintrin with optimisations off and type conversion error
lo at meep dot co dot uk
gcc-bugzilla@gcc.gnu.org
Tue Dec 11 17:35:00 GMT 2007
Using snapshot: gcc-4.3-20071109
Problem code follows:
///////
#include <emmintrin.h>
class Vec {
__m128i vec;
public:
Vec(int mm) {
vec = _mm_set1_epi16(mm);
}
operator __m128i() const {
return vec;
}
};
int main() {
_mm_shuffle_epi32(Vec(5), _MM_SHUFFLE(3,3,3,3)); // error
}
///////
This compiles fine with e.g. -O2, but with optimisations off, gcc reports
"error: can't convert value to a vector".
This seems to be because a macro version of _mm_shuffle_epi32 is used when
optimisations are off, and the type conversion from Vec to __mm128i can't
happen for the first parameter.
--
Summary: SSE2 intrinsics - emmintrin with optimisations off and
type conversion error
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: lo at meep dot co dot uk
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34435
More information about the Gcc-bugs
mailing list