Bug 8289 - Errorneous prototypes of xmmintrin.h functions
Summary: Errorneous prototypes of xmmintrin.h functions
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: other (show other bugs)
Version: unknown
: P3 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2002-10-19 14:56 UTC by Zdenek Dvorak
Modified: 2003-07-25 17:33 UTC (History)
3 users (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Zdenek Dvorak 2002-10-19 14:56:00 UTC
The following functions have different prototypes in gcc and intel headers:

First intel, second gcc:

_mm_cvtps_pd:
__m128d _mm_cvtps_pd(__m128)
__m128d _mm_cvtps_pd(__m128d)

_mm_cvtss_sd:
__m128d _mm_cvtss_sd(__m128d, __m128)
__m128d _mm_cvtss_sd(__m128d , __m128d)

_mm_sqrt_sd:
__m128d _mm_sqrt_sd(__m128d, __m128d)
__m128d _mm_sqrt_sd(__m128d)

_mm_cvtpd_epi32:
__m128i _mm_cvtpd_epi32(__m128d)
__m128d _mm_cvtpd_epi32(__m128d)

_mm_cvtps_epi32:
__m128i _mm_cvtps_epi32(__m128)
__m128d _mm_cvtps_epi32(__m128d)

_mm_cvttpd_epi32:
__m128i _mm_cvttpd_epi32(__m128d)
__m128d _mm_cvttpd_epi32(__m128d)

_mm_cvttps_epi32:
__m128i _mm_cvttps_epi32(__m128)
__m128d _mm_cvttps_epi32(__m128d)

_mm_cvtepi32_ps:
__m128 _mm_cvtepi32_ps(__m128i)
__m128d _mm_cvtepi32_ps(__m128i)

_mm_cvtpd_ps:
__m128 _mm_cvtpd_ps(__m128d)
__m128d _mm_cvtpd_ps(__m128d)

_mm_cvtsd_ss:
__m128 _mm_cvtsd_ss(__m128, __m128d)
__m128d _mm_cvtsd_ss(__m128d , __m128d)

_mm_storeh_pd:
void _mm_storeh_pd(double *, __m128d)
void _mm_storeh_pd(__m128d *, double)

_mm_storel_pd:
void _mm_storel_pd(double *, __m128d)
void _mm_storel_pd(__m128d *, double)

_mm_stream_pd:
void _mm_stream_pd(double *, __m128d)
void _mm_stream_pd(__m128d *, __m128d)

Differing only in const attribute:

_mm_load1_pd:
__m128d _mm_load1_pd(double const*)
__m128d _mm_load1_pd(double *)

_mm_loadh_pd:
__m128d _mm_loadh_pd(__m128d, double const*)
__m128d _mm_loadh_pd(__m128d , double *)

_mm_loadl_pd:
__m128d _mm_loadl_pd(__m128d, double const*)
__m128d _mm_loadl_pd(__m128d , double *)

_mm_load_pd:
__m128d _mm_load_pd(double const*)
__m128d _mm_load_pd(double *)

_mm_loadr_pd:
__m128d _mm_loadr_pd(double const*)
__m128d _mm_loadr_pd(double *)

_mm_load_sd:
__m128d _mm_load_sd(double const*)
__m128d _mm_load_sd(double *)

_mm_loadu_pd:
__m128d _mm_loadu_pd(double const*)
__m128d _mm_loadu_pd(double *)

_mm_loadh_pi:
__m128 _mm_loadh_pi(__m128, __m64 const*)
__m128 _mm_loadh_pi(__m128 , __m64 *)

_mm_loadl_pi:
__m128 _mm_loadl_pi(__m128, __m64 const*)
__m128 _mm_loadl_pi(__m128 , __m64 *)

_mm_load_ps1:
__m128 _mm_load_ps1(float const*a)
__m128 _mm_load_ps1(float *)

_mm_load_ps:
__m128 _mm_load_ps(float const*a)
__m128 _mm_load_ps(float *)

_mm_loadr_ps:
__m128 _mm_loadr_ps(float const*a)
__m128 _mm_loadr_ps(float *)

_mm_load_ss:
__m128 _mm_load_ss(float const*a)
__m128 _mm_load_ss(float *)

_mm_loadu_ps:
__m128 _mm_loadu_ps(float const*a)
__m128 _mm_loadu_ps(float *)

_mm_clflush:
void _mm_clflush(void const*)
void _mm_clflush(void *)

Release:
unknown
Comment 1 Jan Hubicka 2002-10-22 23:54:48 UTC
From: hubicka@gcc.gnu.org
To: gcc-gnats@gcc.gnu.org
Cc:  
Subject: other/8289
Date: 22 Oct 2002 23:54:48 -0000

 CVSROOT:	/cvs/gcc
 Module name:	egcs
 Changes by:	hubicka@gcc.gnu.org	2002-10-22 16:54:48
 
 Modified files:
 	gcc            : ChangeLog 
 	gcc/config/i386: i386.md xmmintrin.h 
 
 Log message:
 	PR other/8289
 	* xmmintrin.h: Add const to the argument of loads.
 	
 	* i386.md (pushv2di): New pattern.
 	PR target/6890
 	* xmmintrin.h (_MM_TRANSPOSE4_PS): New.
 
 Patches:
 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/ChangeLog.diff?cvsroot=gcc&r1=1.15758&r2=1.15759
 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/config/i386/i386.md.diff?cvsroot=gcc&r1=1.397&r2=1.398
 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/egcs/gcc/config/i386/xmmintrin.h.diff?cvsroot=gcc&r1=1.17&r2=1.18
 
Comment 2 Jan Hubicka 2002-10-27 02:22:16 UTC
State-Changed-From-To: open->closed
State-Changed-Why: I believe I've fixed all the cases.  If you can check easilly, can you verify the current xmmintrin.h?
Comment 3 Zdenek Dvorak 2002-10-27 12:00:16 UTC
From: Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
To: hubicka@gcc.gnu.org, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org,
	jh@suse.cz, nobody@gcc.gnu.org, gcc-gnats@gcc.gnu.org
Cc:  
Subject: Re: other/8289: Errorneous prototypes of xmmintrin.h functions
Date: Sun, 27 Oct 2002 12:00:16 +0100

 Hello,
 
 > Synopsis: Errorneous prototypes of xmmintrin.h functions
 > 
 > State-Changed-From-To: open->closed
 > State-Changed-By: hubicka
 > State-Changed-When: Sun Oct 27 02:22:16 2002
 > State-Changed-Why:
 >     I believe I've fixed all the cases.  If you can check easilly, can
 >     you verify the current xmmintrin.h?
 
 yes, it seems OK.
 
 Zdenek