2011-08-06 H.J. Lu <hongjiu.lu@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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177509
138bc75d-0d04-0410-961f-
82ee72b054a4
+2011-08-06 H.J. Lu <hongjiu.lu@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.pero@meta-innovation.com>
PR libobjc/49882
--- /dev/null
+/* { 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;
+}
--- /dev/null
+/* { 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);
+}
--- /dev/null
+/* { 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);
+}
--- /dev/null
+/* { 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);
+}
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-O0 -msse2" } */
+
+void
+_mm_clflush (void const *__A)
+{
+ __builtin_ia32_clflush (__A);
+}
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-O0 -mrdrnd" } */
+
+int
+_rdrand16_step (unsigned short *__P)
+{
+ return __builtin_ia32_rdrand16_step (__P);
+}
--- /dev/null
+/* 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;
+}