PR target/70442
* config/i386/i386.c (scalar_chain::convert_op): Fix
description.
(scalar_chain::convert_insn): Call convert_op for reg
moves to handle undefined registers.
gcc/testsuite/
PR target/70442
* gcc.dg/pr70442.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@234637
138bc75d-0d04-0410-961f-
82ee72b054a4
+2016-03-31 Ilya Enkovich <enkovich.gnu@gmail.com>
+
+ PR target/70442
+ * config/i386/i386.c (scalar_chain::convert_op): Fix
+ description.
+ (scalar_chain::convert_insn): Call convert_op for reg
+ moves to handle undefined registers.
+
2016-03-31 Nathan Sidwell <nathan@acm.org>
PR c++/70393
BITMAP_FREE (conv);
}
-/* Convert operand OP in INSN. All register uses
- are converted during registers conversion.
- Therefore we should just handle memory operands. */
+/* Convert operand OP in INSN. We should handle
+ memory operands and uninitialized registers.
+ All other register uses are converted during
+ registers conversion. */
void
scalar_chain::convert_op (rtx *op, rtx_insn *insn)
break;
case REG:
+ if (!MEM_P (dst))
+ convert_op (&src, insn);
break;
case SUBREG:
+2016-03-31 Ilya Enkovich <enkovich.gnu@gmail.com>
+
+ PR target/70442
+ * gcc.dg/pr70442.c: New test.
+
2016-03-31 Nathan Sidwell <nathan@acm.org>
PR c++/70393
--- /dev/null
+/* PR target/70442 */
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+/* { dg-additional-options "-msse2" { target ia32 } } */
+
+char a, c;
+void
+fn1 ()
+{
+ long long b;
+ long m;
+ int d;
+ switch (d)
+ {
+ case 5:
+ b = a;
+ }
+ b ^= m;
+ c = b >> b;
+}