* config/i386/i386.c (ix86_expand_builtin): If target doesn't
satisfy operand 0 predicate for gathers, use a new pseudo as
subtarget.
* gcc.target/i386/pr59839.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@206684
138bc75d-0d04-0410-961f-
82ee72b054a4
-2014-01-16 Richard Henderson <rth@redhat.com>
+2014-01-16 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/59839
+ * config/i386/i386.c (ix86_expand_builtin): If target doesn't
+ satisfy operand 0 predicate for gathers, use a new pseudo as
+ subtarget.
+
+2014-01-16 Richard Henderson <rth@redhat.com>
PR debug/54694
* reginfo.c (global_regs_decl): Globalize.
mode4 = insn_data[icode].operand[5].mode;
if (target == NULL_RTX
- || GET_MODE (target) != insn_data[icode].operand[0].mode)
+ || GET_MODE (target) != insn_data[icode].operand[0].mode
+ || !insn_data[icode].operand[0].predicate (target,
+ GET_MODE (target)))
subtarget = gen_reg_rtx (insn_data[icode].operand[0].mode);
else
subtarget = target;
2014-01-16 Jakub Jelinek <jakub@redhat.com>
+ PR target/59839
+ * gcc.target/i386/pr59839.c: New test.
+
PR debug/54694
* gcc.target/i386/pr9771-1.c (main): Rename to...
(real_main): ... this. Add __asm name "main".
--- /dev/null
+/* PR target/59839 */
+/* { dg-do compile } */
+/* { dg-options "-O0 -mavx2" } */
+
+#include <x86intrin.h>
+
+void
+test (const float *x)
+{
+ __m256i i = _mm256_set1_epi32 (1);
+ __m256 d = _mm256_i32gather_ps (x, i, 1);
+}