diff options
author | Richard Biener <rguenther@suse.de> | 2021-01-13 09:43:52 +0100 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2021-01-13 11:13:33 +0100 |
commit | ffd28c265e6d611983cd27e9332dc799039a3f04 (patch) | |
tree | c4cc185c351fc1a6805b62c9ea3740ce1835b876 /gcc/gimple-if-to-switch.cc | |
parent | 5d057bfeff70e5b8d00e521844c476f62d51e22c (diff) | |
download | gcc-ffd28c265e6d611983cd27e9332dc799039a3f04.zip gcc-ffd28c265e6d611983cd27e9332dc799039a3f04.tar.gz gcc-ffd28c265e6d611983cd27e9332dc799039a3f04.tar.bz2 |
tree-optimization/98640 - fix bogus sign-extension with VN
VN tried to express a sign extension from int to long of
a trucated quantity with a plain conversion but that loses the
truncation. Since there's no single operand doing truncate plus
sign extend (there was a proposed SEXT_EXPR to do that at some
point mapping to RTL sign_extract) don't bother to appropriately
model this with two ops (which the VN insert machinery doesn't
handle and which is unlikely to CSE fully).
2021-01-13 Richard Biener <rguenther@suse.de>
PR tree-optimization/98640
* tree-ssa-sccvn.c (visit_nary_op): Do not try to
handle plus or minus from a truncated operand to be
sign-extended.
* gcc.dg/torture/pr98640.c: New testcase.
Diffstat (limited to 'gcc/gimple-if-to-switch.cc')
0 files changed, 0 insertions, 0 deletions