https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71240
--- Comment #11 from Roger Orr ---
Thanks.
I can confirm this also successfully compiles the original code from which I
derived the simplified example.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71240
Richard Biener changed:
What|Removed |Added
Status|ASSIGNED|RESOLVED
Resolution|---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71240
--- Comment #10 from Richard Biener ---
Author: rguenth
Date: Tue May 24 14:40:35 2016
New Revision: 236644
URL: https://gcc.gnu.org/viewcvs?rev=236644&root=gcc&view=rev
Log:
2016-05-24 Richard Biener
PR tree-optimization/71240
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71240
--- Comment #8 from Richard Biener ---
I think the main issue is that init_symbolic_number doesn't constrain 'src's
type in any way (but blindly uses TYPE_PRECISION for example). That's not
going to work for vector types for example. It should
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71240
Richard Biener changed:
What|Removed |Added
Status|NEW |ASSIGNED
Assignee|unassigned
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71240
--- Comment #6 from Jakub Jelinek ---
Perhaps better testcase that also shows a missed optimization:
struct L { unsigned int l[2]; };
union U { double a; struct L l; } u;
void
foo (double a, struct L *p)
{
u.a = a;
struct L l = u.l, m;
m.l
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71240
--- Comment #5 from Jakub Jelinek ---
To be precise, it should instead force it into a temporary SSA_NAME.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71240
--- Comment #4 from Jakub Jelinek ---
For non-INTEGRAL_TYPE_P guess we need to first VIEW_CONVERT_EXPR it to
corresponding integral type. Though, even that looks wrong.
src_stmt in this case is
_4 = BIT_FIELD_REF ;
and bswap_type and load_type a
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71240
--- Comment #3 from Jakub Jelinek ---
Cleaned up testcase:
struct L { unsigned int l[2]; };
union U { double a; struct L l; } u;
void
foo (double a, struct L *p)
{
u.a = a;
struct L l = u.l, m;
m.l[0] = 0;
m.l[1] = (((l.l[0] & 0xff00
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71240
Jakub Jelinek changed:
What|Removed |Added
Status|UNCONFIRMED |NEW
Last reconfirmed|
10 matches
Mail list logo