From 1bc5aee63eb72b341f506ad058502cd0361f0d10 Mon Sep 17 00:00:00 2001 From: Ben Cheng Date: Tue, 25 Mar 2014 22:37:19 -0700 Subject: Initial checkin of GCC 4.9.0 from trunk (r208799). Change-Id: I48a3c08bb98542aa215912a75f03c0890e497dba --- gcc-4.9/gcc/testsuite/gcc.dg/torture/pr50067-4.c | 25 ++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 gcc-4.9/gcc/testsuite/gcc.dg/torture/pr50067-4.c (limited to 'gcc-4.9/gcc/testsuite/gcc.dg/torture/pr50067-4.c') diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr50067-4.c b/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr50067-4.c new file mode 100644 index 000000000..1571d72f1 --- /dev/null +++ b/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr50067-4.c @@ -0,0 +1,25 @@ +/* { dg-do run } */ + +/* Verify we do not get a bogus access function with 0B vs. 1B which + disambiguates both accesses and leads to vectorization. */ + +extern int memcmp(const void *, const void *, __SIZE_TYPE__); +extern void abort (void); +short a[33] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 }; +short b[33] = { 0, }; +int main() +{ +#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ + int i; + if (sizeof (short) == 2) + { + for (i = 0; i < 64; ++i) + { + (*((char(*)[])&a[1]))[i] = (*((char(*)[])&a[0]))[i+1]; + } + if (memcmp (&a, &b, sizeof (a)) != 0) + abort (); + } +#endif + return 0; +} -- cgit v1.2.3