Hi, I checked in this patch to add testcases for PRs 48084/49504/49860.
H.J. Index: gcc.target/i386/pr49504.c =================================================================== --- gcc.target/i386/pr49504.c (revision 0) +++ gcc.target/i386/pr49504.c (revision 0) @@ -0,0 +1,18 @@ +/* PR target/49504 */ +/* { dg-do run { target { x32 } } } */ +/* { dg-options "-O" } */ + +unsigned long long +foo (const void* p, unsigned long long q) +{ + unsigned long long a = (((unsigned long long) ((unsigned long) p)) + q) >> 32; + return a; +} + +int +main () +{ + if (foo (foo, 0x100000000ULL) != 0x1) + __builtin_abort (); + return 0; +} Index: gcc.target/i386/pr48084-3.c =================================================================== --- gcc.target/i386/pr48084-3.c (revision 0) +++ gcc.target/i386/pr48084-3.c (revision 0) @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -msse3" } */ + +void +_mm_monitor (void const * __P, unsigned int __E, unsigned int __H) +{ + __builtin_ia32_monitor (__P, __E, __H); +} Index: gcc.target/i386/pr48084-5.c =================================================================== --- gcc.target/i386/pr48084-5.c (revision 0) +++ gcc.target/i386/pr48084-5.c (revision 0) @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-O0 -mrdrnd" } */ + +int +_rdrand16_step (unsigned short *__P) +{ + return __builtin_ia32_rdrand16_step (__P); +} Index: gcc.target/i386/pr48084-2.c =================================================================== --- gcc.target/i386/pr48084-2.c (revision 0) +++ gcc.target/i386/pr48084-2.c (revision 0) @@ -0,0 +1,10 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -msse2" } */ + +typedef int __m64 __attribute__ ((__vector_size__ (8), __may_alias__)); +typedef char __v8qi __attribute__ ((__vector_size__ (8))); +void +_mm_maskmove_si64 (__m64 __A, __m64 __N, char *__P) +{ + __builtin_ia32_maskmovq ((__v8qi)__A, (__v8qi)__N, __P); +} Index: gcc.target/i386/pr48084-4.c =================================================================== --- gcc.target/i386/pr48084-4.c (revision 0) +++ gcc.target/i386/pr48084-4.c (revision 0) @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-O0 -msse2" } */ + +void +_mm_clflush (void const *__A) +{ + __builtin_ia32_clflush (__A); +} Index: gcc.target/i386/pr48084-1.c =================================================================== --- gcc.target/i386/pr48084-1.c (revision 0) +++ gcc.target/i386/pr48084-1.c (revision 0) @@ -0,0 +1,12 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -msse2" } */ + +typedef int __m64 __attribute__ ((__vector_size__ (8), __may_alias__)); +typedef float __v2sf __attribute__ ((__vector_size__ (8))); +typedef float __m128 __attribute__ ((__vector_size__ (16), __may_alias__)); +typedef float __v4sf __attribute__ ((__vector_size__ (16))); +void +_mm_storeh_pi (__m64 *__P, __m128 __A) +{ + __builtin_ia32_storehps ((__v2sf *)__P, (__v4sf)__A); +} Index: gcc.dg/pr49860.c =================================================================== --- gcc.dg/pr49860.c (revision 0) +++ gcc.dg/pr49860.c (revision 0) @@ -0,0 +1,21 @@ +/* { dg-do assemble } */ +/* { dg-options "-O3 -funroll-all-loops" } */ + +extern char inbuf[]; +extern char outbuf[]; +extern unsigned insize; +extern unsigned inptr; +static int max_len; +static int peek_bits; +void build_tree() { + int len; + char *prefixp; + max_len = inbuf[inptr++]; + peek_bits = ((max_len) <= (12) ? (max_len) : (12)); + prefixp = &outbuf[1<<peek_bits]; + for (len = 1; + len <= peek_bits; + len++) { + } + while (prefixp > outbuf) *--prefixp = 0; +} Index: ChangeLog =================================================================== --- ChangeLog (revision 177508) +++ ChangeLog (working copy) @@ -1,3 +1,18 @@ +2011-08-06 H.J. Lu <hongjiu...@intel.com> + + PR target/48084 + * gcc.target/i386/pr48084-1.c: New. + * gcc.target/i386/pr48084-2.c: Likewise. + * gcc.target/i386/pr48084-3.c: Likewise. + * gcc.target/i386/pr48084-4.c: Likewise. + * gcc.target/i386/pr48084-5.c: Likewise. + + PR rtl-optimization/49504 + * gcc.target/i386/pr49504.c: New. + + PR target/49860 + * gcc.dg/pr49860.c: New. + 2011-08-06 Nicola Pero <nicola.p...@meta-innovation.com> PR libobjc/49882