https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58416
--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> --- Access trees for x (UID: 2479): access { base = (2479)'x', offset = 0, size = 128, expr = x.d, type = long double, reverse = 0, grp_read = 1, grp_write = 1, grp_assignment_read = 1, grp_assignment_write = 1, grp_scalar_read = 0, grp_scalar_write = 1, grp_total_scalarization = 1, grp_hint = 0, grp_covered = 1, grp_unscalarizable_region = 0, grp_unscalarized_data = 0, grp_same_access_path = 0, grp_partial_lhs = 0, grp_to_be_replaced = 1, grp_to_be_debug_replaced = 0} so it's odd to not see x.s.s access here. I guess we merge them and somehow the FP type "prevails" over the array type? IMO when merging "bad" types we have to pun to a bitwise type.