summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/vect
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gcc.dg/vect')
-rw-r--r--gcc/testsuite/gcc.dg/vect/bb-slp-10.c3
-rw-r--r--gcc/testsuite/gcc.dg/vect/bb-slp-11.c3
-rw-r--r--gcc/testsuite/gcc.dg/vect/bb-slp-13.c3
-rw-r--r--gcc/testsuite/gcc.dg/vect/bb-slp-14.c3
-rw-r--r--gcc/testsuite/gcc.dg/vect/bb-slp-15.c3
-rw-r--r--gcc/testsuite/gcc.dg/vect/bb-slp-17.c3
-rw-r--r--gcc/testsuite/gcc.dg/vect/bb-slp-18.c3
-rw-r--r--gcc/testsuite/gcc.dg/vect/bb-slp-19.c5
-rw-r--r--gcc/testsuite/gcc.dg/vect/bb-slp-20.c3
-rw-r--r--gcc/testsuite/gcc.dg/vect/bb-slp-21.c3
-rw-r--r--gcc/testsuite/gcc.dg/vect/bb-slp-22.c3
-rw-r--r--gcc/testsuite/gcc.dg/vect/bb-slp-23.c3
-rw-r--r--gcc/testsuite/gcc.dg/vect/bb-slp-3.c5
-rw-r--r--gcc/testsuite/gcc.dg/vect/bb-slp-4.c5
-rw-r--r--gcc/testsuite/gcc.dg/vect/pr44507.c55
-rw-r--r--gcc/testsuite/gcc.dg/vect/slp-perm-5.c3
-rw-r--r--gcc/testsuite/gcc.dg/vect/slp-perm-6.c3
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);