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
This commit is contained in:
parent
8ea9d0c7c9
commit
21e5076a0b
|
@ -1,8 +1,14 @@
|
|||
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)
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
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
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
/* 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;
|
||||
}
|
Loading…
Reference in New Issue