diff options
Diffstat (limited to 'gcc/testsuite/gcc.dg/vect')
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/bb-slp-10.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/bb-slp-11.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/bb-slp-13.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/bb-slp-14.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/bb-slp-15.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/bb-slp-17.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/bb-slp-18.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/bb-slp-19.c | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/bb-slp-20.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/bb-slp-21.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/bb-slp-22.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/bb-slp-23.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/bb-slp-3.c | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/bb-slp-4.c | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/pr44507.c | 55 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/slp-perm-5.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/slp-perm-6.c | 3 |
17 files changed, 102 insertions, 7 deletions
diff --git a/gcc/testsuite/gcc.dg/vect/bb-slp-10.c b/gcc/testsuite/gcc.dg/vect/bb-slp-10.c index 1a678ca3677..d31ffb47c34 100644 --- a/gcc/testsuite/gcc.dg/vect/bb-slp-10.c +++ b/gcc/testsuite/gcc.dg/vect/bb-slp-10.c @@ -28,6 +28,9 @@ main1 (unsigned int x, unsigned int y) *pout++ = a2 * x; *pout++ = a3 * y; + if (x) + __asm__ volatile ("" : : : "memory"); + /* Check results. */ if (out[1] != (in[0] + 23) * x || out[2] != (in[1] + 142) * y diff --git a/gcc/testsuite/gcc.dg/vect/bb-slp-11.c b/gcc/testsuite/gcc.dg/vect/bb-slp-11.c index 92a86cd242a..14c4f3a82c6 100644 --- a/gcc/testsuite/gcc.dg/vect/bb-slp-11.c +++ b/gcc/testsuite/gcc.dg/vect/bb-slp-11.c @@ -27,6 +27,9 @@ main1 (unsigned int x, unsigned int y) *pout++ = a2 * x; *pout++ = a3 * y; + if (x) + __asm__ volatile ("" : : : "memory"); + /* Check results. */ if (out[0] != (in[0] + 23) * x || out[1] != (in[1] + 142) * y diff --git a/gcc/testsuite/gcc.dg/vect/bb-slp-13.c b/gcc/testsuite/gcc.dg/vect/bb-slp-13.c index 5005ae5019f..7e1d3ff798b 100644 --- a/gcc/testsuite/gcc.dg/vect/bb-slp-13.c +++ b/gcc/testsuite/gcc.dg/vect/bb-slp-13.c @@ -25,6 +25,9 @@ main1 (unsigned int x, unsigned int y) out[2] = a2 * x; out[3] = a3 * y; + if (x) + __asm__ volatile ("" : : : "memory"); + /* Check results. */ if (out[0] != (in[0] + 23) * x || out[1] != (in[1] + 142) * y diff --git a/gcc/testsuite/gcc.dg/vect/bb-slp-14.c b/gcc/testsuite/gcc.dg/vect/bb-slp-14.c index 673a163c92f..6ffbe28741a 100644 --- a/gcc/testsuite/gcc.dg/vect/bb-slp-14.c +++ b/gcc/testsuite/gcc.dg/vect/bb-slp-14.c @@ -26,6 +26,9 @@ main1 (unsigned int x, unsigned int y) out[2] = a2 * x; out[3] = a3 * y; + if (x) + __asm__ volatile ("" : : : "memory"); + /* Check results. */ if (out[0] != (in[0] + 23) * x || out[1] != (in[1] + 142) * y diff --git a/gcc/testsuite/gcc.dg/vect/bb-slp-15.c b/gcc/testsuite/gcc.dg/vect/bb-slp-15.c index ba8bc757e86..b927348c810 100644 --- a/gcc/testsuite/gcc.dg/vect/bb-slp-15.c +++ b/gcc/testsuite/gcc.dg/vect/bb-slp-15.c @@ -30,6 +30,9 @@ main1 (unsigned int x, unsigned int y) out[2] = a2 * x; out[3] = a3 * y; + if (x) + __asm__ volatile ("" : : : "memory"); + /* Check results. */ if (out[0] != (in[0] + 23) * x || out[1] != (in[1] + 142) * y diff --git a/gcc/testsuite/gcc.dg/vect/bb-slp-17.c b/gcc/testsuite/gcc.dg/vect/bb-slp-17.c index 36227391d2e..bb4bd5d8bc5 100644 --- a/gcc/testsuite/gcc.dg/vect/bb-slp-17.c +++ b/gcc/testsuite/gcc.dg/vect/bb-slp-17.c @@ -34,6 +34,9 @@ main1 (unsigned int x, unsigned int y) out[2] = a2 * x; out[3] = a3 * y; + if (x) + __asm__ volatile ("" : : : "memory"); + /* Check results. */ if (out[0] != (in[0] + 23) * x || out[1] != (in[1] + 142) * y diff --git a/gcc/testsuite/gcc.dg/vect/bb-slp-18.c b/gcc/testsuite/gcc.dg/vect/bb-slp-18.c index ab99f822aff..c5da3516c46 100644 --- a/gcc/testsuite/gcc.dg/vect/bb-slp-18.c +++ b/gcc/testsuite/gcc.dg/vect/bb-slp-18.c @@ -25,6 +25,9 @@ main1 (unsigned int x, unsigned int y) out[2] = a2 * x; out[3] = a3 * y; + if (x) + __asm__ volatile ("" : : : "memory"); + /* Check results. */ if (out[0] != a0 * x || out[1] != a1 * y diff --git a/gcc/testsuite/gcc.dg/vect/bb-slp-19.c b/gcc/testsuite/gcc.dg/vect/bb-slp-19.c index 5ee83a1945e..2cb1568488a 100644 --- a/gcc/testsuite/gcc.dg/vect/bb-slp-19.c +++ b/gcc/testsuite/gcc.dg/vect/bb-slp-19.c @@ -9,10 +9,10 @@ unsigned short out[N]; unsigned short in[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; +int i; __attribute__ ((noinline)) int main1 () { - int i; unsigned short *pin = &in[0]; unsigned short *pout = &out[0]; @@ -27,6 +27,9 @@ main1 () *pout++ = *pin++; *pout++ = *pin++; + if (i) + __asm__ volatile ("" : : : "memory"); + /* Check results. */ if (out[0] != in[0] || out[1] != in[1] diff --git a/gcc/testsuite/gcc.dg/vect/bb-slp-20.c b/gcc/testsuite/gcc.dg/vect/bb-slp-20.c index 910eae5baff..ec12051e00a 100644 --- a/gcc/testsuite/gcc.dg/vect/bb-slp-20.c +++ b/gcc/testsuite/gcc.dg/vect/bb-slp-20.c @@ -37,6 +37,9 @@ main1 (unsigned int x, unsigned int y) out[2] = a2 * x; out[3] = a3 * y; + if (x) + __asm__ volatile ("" : : : "memory"); + /* Check results. */ if (out[0] != (in[0] + 23) * x || out[1] != (in[1] + 142) * y diff --git a/gcc/testsuite/gcc.dg/vect/bb-slp-21.c b/gcc/testsuite/gcc.dg/vect/bb-slp-21.c index f0b4f6b1ac8..697914ab053 100644 --- a/gcc/testsuite/gcc.dg/vect/bb-slp-21.c +++ b/gcc/testsuite/gcc.dg/vect/bb-slp-21.c @@ -37,6 +37,9 @@ main1 (unsigned int x, unsigned int y) out[2] = a2 * x; out[3] = a3 * y; + if (x) + __asm__ volatile ("" : : : "memory"); + /* Check results. */ if (out[0] != (in[0] + 23) * x || out[1] != (in[1] + 142) * y diff --git a/gcc/testsuite/gcc.dg/vect/bb-slp-22.c b/gcc/testsuite/gcc.dg/vect/bb-slp-22.c index 3e6e685f118..7463bc653d9 100644 --- a/gcc/testsuite/gcc.dg/vect/bb-slp-22.c +++ b/gcc/testsuite/gcc.dg/vect/bb-slp-22.c @@ -36,6 +36,9 @@ main1 (unsigned int x, unsigned int y) out[3] = a3 * y; } + if (x) + __asm__ volatile ("" : : : "memory"); + /* Check results. */ if ((x <= y && (out[0] != (in[0] + 23) * x diff --git a/gcc/testsuite/gcc.dg/vect/bb-slp-23.c b/gcc/testsuite/gcc.dg/vect/bb-slp-23.c index 640d81a2560..d125f9d7115 100644 --- a/gcc/testsuite/gcc.dg/vect/bb-slp-23.c +++ b/gcc/testsuite/gcc.dg/vect/bb-slp-23.c @@ -30,6 +30,9 @@ main1 (unsigned int x, unsigned int y) out[2] = a2 * x; out[3] = a3 * y; + if (x) + __asm__ volatile ("" : : : "memory"); + /* Check results. */ if (out[0] != (in[0] + 23) * x || out[1] != (in[1] + 142) * y diff --git a/gcc/testsuite/gcc.dg/vect/bb-slp-3.c b/gcc/testsuite/gcc.dg/vect/bb-slp-3.c index 07ad7129ad7..c35f035e0f2 100644 --- a/gcc/testsuite/gcc.dg/vect/bb-slp-3.c +++ b/gcc/testsuite/gcc.dg/vect/bb-slp-3.c @@ -9,10 +9,10 @@ unsigned int out[N]; unsigned int in[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; +int i; __attribute__ ((noinline)) int main1 () { - int i; unsigned int *pin = &in[0]; unsigned int *pout = &out[0]; @@ -21,6 +21,9 @@ main1 () *pout++ = *pin++; *pout++ = *pin++; + if (i) + __asm__ volatile ("" : : : "memory"); + /* Check results. */ if (out[0] != in[0] || out[1] != in[1] diff --git a/gcc/testsuite/gcc.dg/vect/bb-slp-4.c b/gcc/testsuite/gcc.dg/vect/bb-slp-4.c index 4ed8d7c6b39..faa90f3dfde 100644 --- a/gcc/testsuite/gcc.dg/vect/bb-slp-4.c +++ b/gcc/testsuite/gcc.dg/vect/bb-slp-4.c @@ -9,16 +9,19 @@ unsigned short out[N]; unsigned short in[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; +int i; __attribute__ ((noinline)) int main1 () { - int i; unsigned short *pin = &in[0]; unsigned short *pout = &out[0]; *pout++ = *pin++; *pout++ = *pin++; + if (i) + __asm__ volatile ("" : : : "memory"); + /* Check results. */ if (out[0] != in[0] || out[1] != in[1]) diff --git a/gcc/testsuite/gcc.dg/vect/pr44507.c b/gcc/testsuite/gcc.dg/vect/pr44507.c new file mode 100644 index 00000000000..50c485399a4 --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/pr44507.c @@ -0,0 +1,55 @@ +/* { dg-require-effective-target vect_int } */ + +#include <stdlib.h> +#include "tree-vect.h" + +int seeIf256ByteArrayIsConstant( + unsigned char *pArray) +{ + int index; + unsigned int curVal, orVal, andVal; + int bytesAreEqual = 0; + + if (pArray != 0) + { + for (index = 0, orVal = 0, andVal = 0xFFFFFFFF; + index < 64; + index += (int)sizeof(unsigned int)) + { + curVal = *((unsigned int *)(&pArray[index])); + orVal = orVal | curVal; + andVal = andVal & curVal; + } + + if (!((orVal == andVal) + && ((orVal >> 8) == (andVal & 0x00FFFFFF)))) + abort (); + } + + return 0; +} + + +int main(int argc, char** argv) +{ + unsigned char array1[64] = { + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + }; + + argv = argv; + argc = argc; + + check_vect (); + + return seeIf256ByteArrayIsConstant(&array1[0]); +} + +/* { dg-final { cleanup-tree-dump "vect" } } */ + diff --git a/gcc/testsuite/gcc.dg/vect/slp-perm-5.c b/gcc/testsuite/gcc.dg/vect/slp-perm-5.c index e7c9f7feaa8..4e0c145ef1f 100644 --- a/gcc/testsuite/gcc.dg/vect/slp-perm-5.c +++ b/gcc/testsuite/gcc.dg/vect/slp-perm-5.c @@ -61,8 +61,7 @@ int main (int argc, const char* argv[]) input2[i] = i%256; output[i] = 0; output2[i] = 0; - if (input[i] > 256) - abort (); + __asm__ volatile (""); } foo (input, output, input2, output2); diff --git a/gcc/testsuite/gcc.dg/vect/slp-perm-6.c b/gcc/testsuite/gcc.dg/vect/slp-perm-6.c index 430415c5a33..27e60369c6c 100644 --- a/gcc/testsuite/gcc.dg/vect/slp-perm-6.c +++ b/gcc/testsuite/gcc.dg/vect/slp-perm-6.c @@ -60,8 +60,7 @@ int main (int argc, const char* argv[]) input2[i] = i%256; output[i] = 0; output2[i] = 0; - if (input[i] > 256) - abort (); + __asm__ volatile (""); } foo (input, output, input2, output2); |