]> git.ipfire.org Git - thirdparty/gcc.git/commit
middle-end/100672 - fix bogus right shift folding
authorRichard Biener <rguenther@suse.de>
Wed, 19 May 2021 11:35:07 +0000 (13:35 +0200)
committerRichard Biener <rguenther@suse.de>
Tue, 9 Nov 2021 12:31:24 +0000 (13:31 +0100)
commite8311f59c6e2fa1f5aacc3da5e95739886ebdee7
treee87bb5b6c3e0e02b9d3f6c56a1900ee9f1f54cd4
parent92ffe7c3b6ffee8fd6ef92a5b3b4cc09263b01ee
middle-end/100672 - fix bogus right shift folding

This fixes the bogus use of TYPE_PRECISION on vector types
from optimizing -((int)x >> 31) into (unsigned)x >> 31.

2021-05-19  Richard Biener  <rguenther@suse.de>

PR middle-end/100672
* fold-const.c (fold_negate_expr_1): Use element_precision.
(negate_expr_p): Likewise.

* gcc.dg/torture/pr100672.c: New testcase.

(cherry picked from commit 8d51039cb7c807ed84ff7df5416a1e3ba07a5e63)
gcc/fold-const.c
gcc/testsuite/gcc.dg/torture/pr100672.c [new file with mode: 0644]