Commit 21e5076a by Uros Bizjak Committed by Uros Bizjak

re PR middle-end/17767 (MMX intrinsics cause internal compiler error)

	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.

testsuite:

	* gcc.dg/i386-mmx-6.c: New test case.

From-SVN: r92896
parent 8ea9d0c7
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
......
......@@ -3865,6 +3865,10 @@ fold_rtx (rtx x, rtx insn)
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;
......
......@@ -2757,7 +2757,7 @@ simplify_relational_operation (enum rtx_code code, enum machine_mode mode,
#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
......
/* 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;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment