diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2c4a8b6096d..3e8055136f8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2016-02-08 Richard Biener + + PR rtl-optimization/69274 + * ira.c (ira_setup_alts): Do not change recog_data.operand + order. + 2016-02-08 Jeff Law PR tree-optimization/65917 diff --git a/gcc/ira.c b/gcc/ira.c index 249e2fffae7..81d1d339947 100644 --- a/gcc/ira.c +++ b/gcc/ira.c @@ -1889,10 +1889,11 @@ ira_setup_alts (rtx_insn *insn, HARD_REG_SET &alts) } if (commutative < 0) break; - if (curr_swapped) - break; + /* Swap forth and back to avoid changing recog_data. */ std::swap (recog_data.operand[commutative], recog_data.operand[commutative + 1]); + if (curr_swapped) + break; } } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 6aa927d05de..e0e68af43ca 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2016-02-08 Richard Biener + + PR rtl-optimization/69274 + * gcc.target/i386/addr-sel-1.c: XFAIL. + 2016-02-08 Jeff Law PR tree-optimization/68541 diff --git a/gcc/testsuite/gcc.target/i386/addr-sel-1.c b/gcc/testsuite/gcc.target/i386/addr-sel-1.c index 27623ffd96c..8b1b4d42c73 100644 --- a/gcc/testsuite/gcc.target/i386/addr-sel-1.c +++ b/gcc/testsuite/gcc.target/i386/addr-sel-1.c @@ -14,4 +14,4 @@ int f(int i) } /* { dg-final { scan-assembler "a\\+1" } } */ -/* { dg-final { scan-assembler "b\\+1" } } */ +/* { dg-final { scan-assembler "b\\+1" { xfail *-*-* } } } */