mirror of git://gcc.gnu.org/git/gcc.git
re PR rtl-optimization/45739 (static evaluation of SSE intrinsics (pxor))
PR rtl-optimization/45739 * simplify-rtx.c (simplify_binary_operation_1): Optimize even vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode). * gcc.target/i386/pr45739.c: New test. From-SVN: r164501
This commit is contained in:
parent
29a80ea628
commit
a82e045dea
|
|
@ -1,3 +1,9 @@
|
|||
2010-09-22 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR rtl-optimization/45739
|
||||
* simplify-rtx.c (simplify_binary_operation_1): Optimize even
|
||||
vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
|
||||
|
||||
2010-09-21 Anatoly Sokolov <aesok@post.ru>
|
||||
|
||||
* config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
|
||||
|
|
|
|||
|
|
@ -2260,7 +2260,7 @@ simplify_binary_operation_1 (enum rtx_code code, enum machine_mode mode,
|
|||
break;
|
||||
|
||||
case IOR:
|
||||
if (trueop1 == const0_rtx)
|
||||
if (trueop1 == CONST0_RTX (mode))
|
||||
return op0;
|
||||
if (CONST_INT_P (trueop1)
|
||||
&& ((INTVAL (trueop1) & GET_MODE_MASK (mode))
|
||||
|
|
@ -2402,7 +2402,7 @@ simplify_binary_operation_1 (enum rtx_code code, enum machine_mode mode,
|
|||
break;
|
||||
|
||||
case XOR:
|
||||
if (trueop1 == const0_rtx)
|
||||
if (trueop1 == CONST0_RTX (mode))
|
||||
return op0;
|
||||
if (CONST_INT_P (trueop1)
|
||||
&& ((INTVAL (trueop1) & GET_MODE_MASK (mode))
|
||||
|
|
|
|||
|
|
@ -1,3 +1,8 @@
|
|||
2010-09-22 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR rtl-optimization/45739
|
||||
* gcc.target/i386/pr45739.c: New test.
|
||||
|
||||
2010-09-21 Mikael Morin <mikael@gcc.gnu.org>
|
||||
|
||||
PR fortran/45648
|
||||
|
|
|
|||
|
|
@ -0,0 +1,24 @@
|
|||
/* PR rtl-optimization/45739 */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -msse2" } */
|
||||
|
||||
#include <emmintrin.h>
|
||||
|
||||
__m128i var;
|
||||
|
||||
void
|
||||
foo (void)
|
||||
{
|
||||
__m128i zero = _mm_setzero_si128 ();
|
||||
var = _mm_xor_si128 (zero, var);
|
||||
}
|
||||
|
||||
void
|
||||
bar (void)
|
||||
{
|
||||
__m128i zero = _mm_setzero_si128 ();
|
||||
var = _mm_or_si128 (var, zero);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-not "pxor" } } */
|
||||
/* { dg-final { scan-assembler-not "por" } } */
|
||||
Loading…
Reference in New Issue