tree-optimization/94103 avoid CSE of loads with padding
authorRichard Biener <rguenther@suse.de>
Thu, 12 Mar 2020 13:18:35 +0000 (14:18 +0100)
committerRichard Biener <rguenther@suse.de>
Thu, 12 Mar 2020 13:19:36 +0000 (14:19 +0100)
commit1dc00a8ec9aeba86b74b16bff6f171824bb7b4a1
treeeadb3fa8164c3ad87d25d9a15f97b463e138cef6
parentfcc443b97e19d9c8a2d8ccdfa4cc20682165827e
tree-optimization/94103 avoid CSE of loads with padding

VN currently replaces a load of a 16 byte entity 128 bits of precision
(TImode) with the result of a load of a 16 byte entity with 80 bits of
mode precision (XFmode).  That will go downhill since if the padding
bits are not actually filled with memory contents those bits are
missing.

2020-03-12  Richard Biener  <rguenther@suse.de>

PR tree-optimization/94103
* tree-ssa-sccvn.c (visit_reference_op_load): Avoid type
punning when the mode precision is not sufficient.

* gcc.target/i386/pr94103.c: New testcase.
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr94103.c [new file with mode: 0644]
gcc/tree-ssa-sccvn.c