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