target/8322: SSE2 intrinsics broken?
fdumas@ina.fr
fdumas@ina.fr
Wed Oct 23 10:15:00 GMT 2002
>Number: 8322
>Category: target
>Synopsis: SSE2 intrinsics broken?
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Oct 23 09:56:00 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator: Frederic Dumas
>Release: g++ (GCC) 3.3 20021021 (experimental)
>Organization:
>Environment:
linux-i686
>Description:
Errors when xmmintrin.h is included in a file (see compiler output in attachment).
>How-To-Repeat:
// main.cpp:
#include <xmmintrin.h>
int main() {};
-----
> g++ -mmmx -msse -msse2 main.cpp
In file included from main.cpp:1:
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3/include/xmmintrin.h: In function `
vector float _mm_loadh_pi(vector float, vector int*)':
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3/include/xmmintrin.h:653: error: cannot
convert `vector int*' to `vector long long int*' for argument `2' to `vector
float __builtin_ia32_loadhps(vector float, vector long long int*)'
...
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: text/plain; name="output.txt"
Content-Disposition: inline; filename="output.txt"
In file included from main.cpp:1:
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3/include/xmmintrin.h: In function `
vector float _mm_loadh_pi(vector float, vector int*)':
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3/include/xmmintrin.h:653: error: cannot
convert `vector int*' to `vector long long int*' for argument `2' to `vector
float __builtin_ia32_loadhps(vector float, vector long long int*)'
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3/include/xmmintrin.h: In function `
void _mm_storeh_pi(vector int*, vector float)':
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3/include/xmmintrin.h:660: error: cannot
convert `vector int*' to `vector long long int*' for argument `1' to `void
__builtin_ia32_storehps(vector long long int*, vector float)'
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3/include/xmmintrin.h: In function `
vector float _mm_loadl_pi(vector float, vector int*)':
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3/include/xmmintrin.h:682: error: cannot
convert `vector int*' to `vector long long int*' for argument `2' to `vector
float __builtin_ia32_loadlps(vector float, vector long long int*)'
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3/include/xmmintrin.h: In function `
void _mm_storel_pi(vector int*, vector float)':
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3/include/xmmintrin.h:689: error: cannot
convert `vector int*' to `vector long long int*' for argument `1' to `void
__builtin_ia32_storelps(vector long long int*, vector float)'
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3/include/xmmintrin.h: In function `
void _mm_stream_pi(vector int*, vector int)':
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3/include/xmmintrin.h:1040: error: cannot
convert `vector int*' to `long long unsigned int*' for argument `1' to `void
__builtin_ia32_movntq(long long unsigned int*, long long unsigned int)'
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3/include/xmmintrin.h: In function `
vector long long int _mm_load_si128(vector long long int*)':
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3/include/xmmintrin.h:1589: error: cannot
convert `vector long long int*' to `char*' for argument `1' to `vector
signed char __builtin_ia32_loaddqa(char*)'
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3/include/xmmintrin.h: In function `
vector long long int _mm_loadu_si128(vector long long int*)':
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3/include/xmmintrin.h:1595: error: cannot
convert `vector long long int*' to `char*' for argument `1' to `vector
signed char __builtin_ia32_loaddqu(char*)'
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3/include/xmmintrin.h: In function `
void _mm_store_si128(vector long long int*, vector long long int)':
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3/include/xmmintrin.h:1607: error: cannot
convert `vector long long int*' to `char*' for argument `1' to `void
__builtin_ia32_storedqa(char*, vector signed char)'
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3/include/xmmintrin.h: In function `
void _mm_storeu_si128(vector long long int*, vector long long int)':
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3/include/xmmintrin.h:1613: error: cannot
convert `vector long long int*' to `char*' for argument `1' to `void
__builtin_ia32_storedqu(char*, vector signed char)'
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3/include/xmmintrin.h: In function `
vector long long int _mm_set1_epi32(int)':
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3/include/xmmintrin.h:1723: error: cannot
convert `int*' to `char*' for argument `1' to `vector int
__builtin_ia32_loadd(char*)'
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3/include/xmmintrin.h: In function `
vector long long int _mm_set1_epi16(short int)':
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3/include/xmmintrin.h:1731: error: cannot
convert `int*' to `char*' for argument `1' to `vector int
__builtin_ia32_loadd(char*)'
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3/include/xmmintrin.h: In function `
vector long long int _mm_set1_epi8(char)':
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3/include/xmmintrin.h:1740: error: cannot
convert `int*' to `char*' for argument `1' to `vector int
__builtin_ia32_loadd(char*)'
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3/include/xmmintrin.h: In function `
void _mm_stream_pd(vector double*, vector double)':
/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3/include/xmmintrin.h:2405: error: cannot
convert `vector double*' to `double*' for argument `1' to `void
__builtin_ia32_movntpd(double*, vector double)'
More information about the Gcc-bugs
mailing list