diff options
author | Roger Sayle <roger@nextmovesoftware.com> | 2020-08-25 10:50:48 +0100 |
---|---|---|
committer | Roger Sayle <roger@nextmovesoftware.com> | 2020-08-25 10:52:06 +0100 |
commit | a0b4e42af26a85da2698e573ac8e32fa0a5709d6 (patch) | |
tree | 596101b46ace339575d90d008a761964e7e71e1e /gcc/gimple.c | |
parent | 68e605c93d57c17f07edd50f7e1c80f9216befd2 (diff) | |
download | gcc-a0b4e42af26a85da2698e573ac8e32fa0a5709d6.zip gcc-a0b4e42af26a85da2698e573ac8e32fa0a5709d6.tar.gz gcc-a0b4e42af26a85da2698e573ac8e32fa0a5709d6.tar.bz2 |
middle-end: PR tree-optimization/21137: STRIP_NOPS avoids missed optimization.
PR tree-optimization/21137 is now an old enhancement request pointing out
that an optimization I added back in 2006, to optimize "((x>>31)&64) != 0"
as "x < 0", doesn't fire in the presence of unanticipated type conversions.
The fix is to call STRIP_NOPS at the appropriate point.
2020-08-25 Roger Sayle <roger@nextmovesoftware.com>
gcc/ChangeLog
PR tree-optimization/21137
* fold-const.c (fold_binary_loc) [NE_EXPR/EQ_EXPR]: Call
STRIP_NOPS when checking whether to simplify ((x>>C1)&C2) != 0.
gcc/testsuite/ChangeLog
PR tree-optimization/21137
* gcc.dg/pr21137.c: New test.
Diffstat (limited to 'gcc/gimple.c')
0 files changed, 0 insertions, 0 deletions