re PR target/31245 (SSE2 generation bug with 4.1.2 and -O3)

PR target/31245
        * config/i386/emmintrin.h (__m128i, __m128d): Mark may_alias.
        * config/i386/mmintrin.h (__m64): Likewise.
        * config/i386/xmmintrin.h (__m128): Likewise.

From-SVN: r123112
This commit is contained in:
Richard Henderson 2007-03-21 08:52:23 -07:00 committed by Richard Henderson
parent cb717c4098
commit b5cf27d7ec
4 changed files with 18 additions and 7 deletions

View File

@ -1,3 +1,10 @@
2007-03-21 Richard Henderson <rth@redhat.com>
PR target/31245
* config/i386/emmintrin.h (__m128i, __m128d): Mark may_alias.
* config/i386/mmintrin.h (__m64): Likewise.
* config/i386/xmmintrin.h (__m128): Likewise.
2007-03-21 Richard Sandiford <richard@codesourcery.com>
* config/vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC): Remove -D options.

View File

@ -44,8 +44,10 @@ typedef int __v4si __attribute__ ((__vector_size__ (16)));
typedef short __v8hi __attribute__ ((__vector_size__ (16)));
typedef char __v16qi __attribute__ ((__vector_size__ (16)));
typedef __v2di __m128i;
typedef __v2df __m128d;
/* The Intel API is flexible enough that we must allow aliasing with other
vector types, and their scalar components. */
typedef long long __m128i __attribute__ ((__vector_size__ (16), __may_alias__));
typedef double __m128d __attribute__ ((__vector_size__ (16), __may_alias__));
/* Create a selector for use with the SHUFPD instruction. */
#define _MM_SHUFFLE2(fp1,fp0) \

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2002, 2003, 2004, 2005, 2006
/* Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007
Free Software Foundation, Inc.
This file is part of GCC.
@ -34,8 +34,9 @@
#ifndef __MMX__
# error "MMX instruction set not enabled"
#else
/* The data type intended for user use. */
typedef int __m64 __attribute__ ((__vector_size__ (8)));
/* The Intel API is flexible enough that we must allow aliasing with other
vector types, and their scalar components. */
typedef int __m64 __attribute__ ((__vector_size__ (8), __may_alias__));
/* Internal data types for implementing the intrinsics. */
typedef int __v2si __attribute__ ((__vector_size__ (8)));

View File

@ -41,8 +41,9 @@
/* Get _mm_malloc () and _mm_free (). */
#include <mm_malloc.h>
/* The data type intended for user use. */
typedef float __m128 __attribute__ ((__vector_size__ (16)));
/* The Intel API is flexible enough that we must allow aliasing with other
vector types, and their scalar components. */
typedef float __m128 __attribute__ ((__vector_size__ (16), __may_alias__));
/* Internal data types for implementing the intrinsics. */
typedef float __v4sf __attribute__ ((__vector_size__ (16)));