This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH, i386]: Committed: Fix PR target/35496


H.J. Lu wrote:

Patch was bootstrapped and regression tested on x86_64-pc-linux-gnu
{,-m32}. Patch is committed to mainline, but I think that it should be
committed to 4.3 branch as well.

Can we add a few testcases for Linux/ia32?

Actually, I have a testcase (attached), that clearly shows the problem in the asm dump, but it looks that linker somehow fixed this alignment, so I was not able to fail it (-m32 -O2 -msse2):


       .section        .rodata
       .align 8
.LC0:
       .long   1
       .long   0
       .long   2
       .long   0

It looks that this fixup is the reason that the problem went undetected for so long.

Uros.

typedef long long __v2di __attribute__ ((__vector_size__ (16)));

typedef union
{
  __v2di _v;
  long long _a[2];
} __v2di_t;

void abort (void);

static __v2di x = { 1, 2 };

__v2di __attribute__((noinline))
test (void)
{
  return x;
}

int main()
{
  __v2di_t val;

  val._v = test ();

  if (val._a[0] + val._a[1] != 3)
    abort ();
}

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]