https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88240
--- Comment #17 from CVS Commits ---
The master branch has been updated by Richard Biener :
https://gcc.gnu.org/g:1af5cdd77985daf76130f527deac425c43df9f49
commit r11-2545-g1af5cdd77985daf76130f527deac425c43df9f49
Author: Richard Biener
Date: Tue Aug 4 14:10:45 2020 +0200
tree-optimization/88240 - stopgap for floating point code-hoisting issues
This adds a stopgap measure to avoid performing code-hoisting
on mixed type loads when the load we'd insert in the hoisting
position would be a floating point one. This is because certain
targets (hello x87) cannot perform floating point loads without
possibly altering the bit representation and thus cannot be used
in place of integral loads.
2020-08-04 Richard Biener
PR tree-optimization/88240
* tree-ssa-sccvn.h (vn_reference_s::punned): New flag.
* tree-ssa-sccvn.c (vn_reference_insert): Initialize punned.
(vn_reference_insert_pieces): Likewise.
(visit_reference_op_call): Likewise.
(visit_reference_op_load): Track whether a ref was punned.
* tree-ssa-pre.c (do_hoist_insertion): Refuse to perform hoist
insertion on punned floating point loads.
* gcc.target/i386/pr88240.c: New testcase.