+2005-01-04 Uros Bizjak <uros@kss-loka.si>
+
+ PR middle-end/17767
+ * cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
+ any simplifications of vector mode comparison operators.
+ * simplify-rtx.c (simplify_relational_operation): Fix variable name.
+
2005-01-04 Paolo Bonzini <bonzini@gnu.org>
Devang Patel <dpatel@apple.com>
PR tree-optimization/18308
-
* tree-if-conv.c (add_to_dst_predicate_list): Gimplify
the operands before creating a new expression.
* dojump.c (do_jump): Make drop_through_label available
constant, set CONST_ARG0 and CONST_ARG1 appropriately. We needn't
do anything if both operands are already known to be constant. */
+ /* ??? Vector mode comparisons are not supported yet. */
+ if (VECTOR_MODE_P (mode))
+ break;
+
if (const_arg0 == 0 || const_arg1 == 0)
{
struct table_elt *p0, *p1;
#ifdef VECTOR_STORE_FLAG_VALUE
{
int i, units;
- rtvec c;
+ rtvec v;
rtx val = VECTOR_STORE_FLAG_VALUE (mode);
if (val == NULL_RTX)
+2005-01-04 Uros Bizjak <uros@kss-loka.si>
+
+ PR middle-end/17767
+ * gcc.dg/i386-mmx-6.c: New test case.
+
2005-01-04 Paolo Bonzini <bonzini@gnu.org>
PR tree-optimization/18308
--- /dev/null
+/* PR middle-end/17767 */
+/* Contributed by Volker Reichelt <reichelt@igpm.rwth-aachen.de> */
+/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+/* { dg-options "-O -mmmx" } */
+typedef int __m64 __attribute__ ((vector_size (8)));
+typedef short __v4hi __attribute__ ((vector_size (8)));
+
+__m64 foo ()
+{
+ int i;
+ __m64 m;
+
+ for (i = 0; i < 2; i++)
+ m = (__m64) __builtin_ia32_pcmpeqw ((__v4hi) m, (__v4hi) m);
+
+ return m;
+}