From 07d77cc23953335c3539e2a86fc4a052d9845524 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Thu, 28 May 2020 09:44:32 +0200 Subject: [PATCH] testsuite/95363 - fix gcc.dg/vect/bb-slp-pr95271.c for ilp32 This fixes the testcase to avoid out of bound shifts on ilp32 targets. 2020-05-28 Richard Biener PR testsuite/95363 * gcc.dg/vect/bb-slp-pr95271.c: Fix on ilp32 targets. --- gcc/testsuite/gcc.dg/vect/bb-slp-pr95271.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/gcc/testsuite/gcc.dg/vect/bb-slp-pr95271.c b/gcc/testsuite/gcc.dg/vect/bb-slp-pr95271.c index 2f23598..f6e266c 100644 --- a/gcc/testsuite/gcc.dg/vect/bb-slp-pr95271.c +++ b/gcc/testsuite/gcc.dg/vect/bb-slp-pr95271.c @@ -1,19 +1,22 @@ /* { dg-do compile } */ +/* { dg-require-effective-target stdint_types } */ /* { dg-additional-options "-march=cooperlake" { target x86_64-*-* i?86-*-* } } */ +#include + int a; struct b c; -long d; +int64_t d; struct b { - unsigned long address; - unsigned long e; + uint64_t address; + uint64_t e; }; void f() { - d = (long)(&a)[0] << 56 | (long)((unsigned char *)&a)[1] << 48 | - (long)((unsigned char *)&a)[2] << 40 | - (long)((unsigned char *)&a)[3] << 32 | - (long)((unsigned char *)&a)[4] << 24 | ((unsigned char *)&a)[5] << 16 | + d = (int64_t)(&a)[0] << 56 | (int64_t)((unsigned char *)&a)[1] << 48 | + (int64_t)((unsigned char *)&a)[2] << 40 | + (int64_t)((unsigned char *)&a)[3] << 32 | + (int64_t)((unsigned char *)&a)[4] << 24 | ((unsigned char *)&a)[5] << 16 | ((unsigned char *)&a)[6] << 8 | ((unsigned char *)&a)[7]; c.address = c.e = d; } -- 2.7.4