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/vect/pr51581-3.c | 118 ++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 gcc-4.9/gcc/testsuite/gcc.dg/vect/pr51581-3.c (limited to 'gcc-4.9/gcc/testsuite/gcc.dg/vect/pr51581-3.c') diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr51581-3.c b/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr51581-3.c new file mode 100644 index 000000000..a47813617 --- /dev/null +++ b/gcc-4.9/gcc/testsuite/gcc.dg/vect/pr51581-3.c @@ -0,0 +1,118 @@ +/* PR tree-optimization/51581 */ + +#include "tree-vect.h" + +int a[8], b[8]; +unsigned int c[8], d[8]; + +void +f1 (void) +{ + a[0] = b[0] / 8; + a[1] = b[1] / 8; + a[2] = b[2] / 8; + a[3] = b[3] / 8; + a[4] = b[4] / 8; + a[5] = b[5] / 8; + a[6] = b[6] / 8; + a[7] = b[7] / 8; +} + +void +f2 (void) +{ + c[0] = d[0] / 3; + c[1] = d[1] / 3; + c[2] = d[2] / 3; + c[3] = d[3] / 3; + c[4] = d[4] / 3; + c[5] = d[5] / 3; + c[6] = d[6] / 3; + c[7] = d[7] / 3; +} + +void +f3 (void) +{ + a[0] = b[0] / 8; + a[1] = b[1] / 4; + a[2] = b[2] / 8; + a[3] = b[3] / 4; + a[4] = b[4] / 8; + a[5] = b[5] / 4; + a[6] = b[6] / 8; + a[7] = b[7] / 4; +} + +void +f4 (void) +{ + c[0] = d[0] / 3; + c[1] = d[1] / 5; + c[2] = d[2] / 3; + c[3] = d[3] / 5; + c[4] = d[4] / 3; + c[5] = d[5] / 5; + c[6] = d[6] / 3; + c[7] = d[7] / 5; +} + +void +f5 (void) +{ + a[0] = b[0] / 14; + a[1] = b[1] / 15; + a[2] = b[2] / 14; + a[3] = b[3] / 15; + a[4] = b[4] / 14; + a[5] = b[5] / 15; + a[6] = b[6] / 14; + a[7] = b[7] / 15; +} + +void +f6 (void) +{ + c[0] = d[0] / 6; + c[1] = d[1] / 5; + c[2] = d[2] / 6; + c[3] = d[3] / 5; + c[4] = d[4] / 6; + c[5] = d[5] / 5; + c[6] = d[6] / 13; + c[7] = d[7] / 5; +} + +int +main () +{ + int i; + check_vect (); + asm (""); + for (i = 0; i < 8; i++) + { + asm (""); + b[i] = i - 4; + d[i] = i - 4; + } + f1 (); + f2 (); + for (i = 0; i < 8; i++) + if (a[i] != b[i] / 8 || c[i] != d[i] / 3) + abort (); + f3 (); + f4 (); + for (i = 0; i < 8; i+= 2) + if (a[i] != b[i] / 8 || a[i + 1] != b[i + 1] / 4 + || c[i] != d[i] / 3 || c[i + 1] != d[i + 1] / 5) + abort (); + f5 (); + f6 (); + for (i = 0; i < 8; i+= 2) + if (a[i] != b[i] / 14 || a[i + 1] != b[i + 1] / 15 + || c[i] != d[i] / (i == 6 ? 13 : 6) || c[i + 1] != d[i + 1] / 5) + abort (); + return 0; +} + +/* { dg-final { cleanup-tree-dump "vect" } } */ -- cgit v1.2.3