* combine.c (simplify_shift_const_1): Disable nested shifts
optimization for vector shifts.
* gcc.target/i386/mmx-7.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111328
138bc75d-0d04-0410-961f-
82ee72b054a4
+2006-02-21 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/26379
+ * combine.c (simplify_shift_const_1): Disable nested shifts
+ optimization for vector shifts.
+
2006-02-20 Roger Sayle <roger@eyesopen.com>
PR tree-optimization/26361
&& INTVAL (XEXP (varop, 1)) >= 0
&& INTVAL (XEXP (varop, 1)) < GET_MODE_BITSIZE (GET_MODE (varop))
&& GET_MODE_BITSIZE (result_mode) <= HOST_BITS_PER_WIDE_INT
- && GET_MODE_BITSIZE (mode) <= HOST_BITS_PER_WIDE_INT)
+ && GET_MODE_BITSIZE (mode) <= HOST_BITS_PER_WIDE_INT
+ && !VECTOR_MODE_P (result_mode))
{
enum rtx_code first_code = GET_CODE (varop);
unsigned int first_count = INTVAL (XEXP (varop, 1));
+2006-02-21 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/26379
+ * gcc.target/i386/mmx-7.c: New test.
+
2006-02-20 Roger Sayle <roger@eyesopen.com>
PR tree-optimization/26361
--- /dev/null
+/* PR middle-end/26379 */
+/* { dg-do compile } */
+/* { dg-options "-O2 -mmmx" } */
+
+#include <mmintrin.h>
+
+void
+foo (__m64 *p)
+{
+ __m64 m;
+
+ m = p[0];
+ m = _mm_srli_pi16(m, 2);
+ m = _mm_slli_pi16(m, 8);
+
+ p[0] = m;
+ _mm_empty();
+}