What we could do there is remove the first of those two splitters, remove the
&& !dead_or_set_p (insn, operands[1])
test from the second, and add peephole2 that would transform
   (set (access part 1) (subreg:SI (match_dup 1) low))
   (set (match_dup 1) (rotate:DI (match_dup 1) (const_int 32)))
   (set (access part 2) (subreg:SI (match_dup 1) low))
with a lshiftrt instead of rotate if reg 1 is dead after the third insn 
(assuming rotate is more expensive as right shift, if it is the same 
expensive/same size, then having the two splitters makes no sense).  The last 
rotate should have been removed by DCE already if it was truly dead (though, of 
course, if it for some reason isn't yet, you could have another peephole2 for 
that too).

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1811798

Title:
  gcc 8 miscompiles scipy/optimize/minpack/qrsolv.f

To manage notifications about this bug go to:
https://bugs.launchpad.net/gcc/+bug/1811798/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to