aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorTamar Christina <tamar.christina@arm.com>2020-12-14 15:20:05 +0000
committerTamar Christina <tamar.christina@arm.com>2020-12-14 15:20:11 +0000
commit159b0bd9ce263dfb791eff5133b0ca0207201c84 (patch)
treeb001f9064efae2eb5665b19470366439076c9669 /gcc/testsuite
parent470a25b638fedcaa37ce0c4101f11b87e1fa7d79 (diff)
downloadgcc-159b0bd9ce263dfb791eff5133b0ca0207201c84.zip
gcc-159b0bd9ce263dfb791eff5133b0ca0207201c84.tar.gz
gcc-159b0bd9ce263dfb791eff5133b0ca0207201c84.tar.bz2
middle-end: Exclude TOP permute from blend considerations
Similarly to UNKNOWN permutes, TOP needs to be excluded from being considered for blends because it produces no permute to check. gcc/ChangeLog: PR middle-end/98264 * tree-vect-slp-patterns.c (linear_loads_p): Exclude TOP permute. gcc/testsuite/ChangeLog: PR middle-end/98264 * gcc.target/i386/pr98264.c: New test.
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/gcc.target/i386/pr98264.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/i386/pr98264.c b/gcc/testsuite/gcc.target/i386/pr98264.c
new file mode 100644
index 0000000..ea23527
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr98264.c
@@ -0,0 +1,22 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-O3 -w" } */
+
+a[], g[], h[];
+double b, c;
+double j[];
+i;
+l() {
+ int e = 0;
+ for (; e < 80; e += 4) {
+ a[0] = h[e];
+ a[1] = h[e + 1];
+ j[0] = a[0] - c;
+ j[1] = a[1] + b;
+ __attribute__(()) k = *(double *)a, e, f = e = 0;
+ *g = k;
+ double *d = j;
+ for (; e < 2; e++)
+ if (d[e])
+ i = f;
+ }
+}