[Bug target/49798] .quad instead of .long is used for address for x32

hjl.tools at gmail dot com gcc-bugzilla@gcc.gnu.org
Thu Jul 21 20:00:00 GMT 2011


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49798

--- Comment #16 from H.J. Lu <hjl.tools at gmail dot com> 2011-07-21 19:59:31 UTC ---
(In reply to comment #9)
> Please compare optimized tree dumps from i686 (a) compilation vs x32 (b):
> 
> (b)
> 
> foo (union U u)
> {
>   double D.2709;
>   _Bool D.2704;
>   double D.2702;
>   int D.2701;
> 
> <bb 2>:
>   D.2709_8 = VIEW_CONVERT_EXPR<double>(&xxxx);
>   D.2702_1 = u.d;
>   D.2704_3 = D.2702_1 == D.2709_8;
>   D.2701_4 = (int) D.2704_3;
>   return D.2701_4;
> 
> }
> 
> 

I didn't see it with -mx32. I got

1. -m64 -O

foo (union U u)
{
  double D.2709;
  _Bool D.2704;
  double D.2702;
  int D.2701;

  # BLOCK 2 freq:10000
  # PRED: ENTRY [100.0%]  (fallthru,exec)
  D.2709_8 = VIEW_CONVERT_EXPR<double>(&xxxx);
  D.2702_1 = u.d;
  D.2704_3 = D.2702_1 == D.2709_8;
  D.2701_4 = (int) D.2704_3;
  return D.2701_4;
  # SUCC: EXIT [100.0%] 

}

2. -mx32 -O:

foo (union U u)
{
  union U v;
  _Bool D.2704;
  double D.2703;
  double D.2702;
  int D.2701;

  # BLOCK 2 freq:10000
  # PRED: ENTRY [100.0%]  (fallthru,exec)
  v = {};
  v.m = &xxxx;
  D.2702_1 = u.d;
  D.2703_2 = v.d;
  D.2704_3 = D.2702_1 == D.2703_2;
  D.2701_4 = (int) D.2704_3;
  return D.2701_4;
  # SUCC: EXIT [100.0%] 

}

Did I miss anything?



More information about the Gcc-bugs mailing list