https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65077
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |wrong-code
Status|REOPENED |ASSIGNED
Component|c |tree-optimization
Known to work| |4.8.2
Target Milestone|--- |4.9.3
Summary|memcpy generates incorrect |[4.9/5 Regression] memcpy
|code with floating point |generates incorrect code
|numbers and -O1 |with floating point numbers
| |and -O1
--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
The
if (FLOAT_TYPE_P (TREE_TYPE (lhsop)))
/* If the operation produces a floating point result then
assume the value is not produced to transfer a pointer. */
;
case is new in 4.9 (4.8 didn't have it - doing this improves points-to
results for scientific benchmarks which have both pointers and FP values
in aggregates). Changed by r197158:
2013-03-27 Richard Biener <[email protected]>
PR tree-optimization/37021
* tree-vect-data-refs.c (vect_check_strided_load): Allow
REALPART/IMAGPART_EXPRs around the supported refs.
* tree-ssa-structalias.c (find_func_aliases): Assume that
floating-point values are not used to transfer pointers.