This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
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 ();
}