aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/ChangeLog46
-rw-r--r--gcc/testsuite/g++.dg/cpp1y/func_constexpr3.C6
-rw-r--r--gcc/testsuite/g++.dg/other/i386-2.C2
-rw-r--r--gcc/testsuite/g++.dg/other/i386-3.C2
-rw-r--r--gcc/testsuite/g++.dg/template/dependent-base6.C4
-rw-r--r--gcc/testsuite/g++.dg/tree-ssa/cselim-1.C37
-rw-r--r--gcc/testsuite/gcc.dg/cpp/cpp.exp8
-rw-r--r--gcc/testsuite/gcc.dg/cpp/escape-3.i16
-rw-r--r--gcc/testsuite/gcc.dg/cpp/pr36674.i2
-rw-r--r--gcc/testsuite/gcc.dg/vect/pr120687-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/pr120687-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/pr120687-3.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/pr121949_1.c45
-rw-r--r--gcc/testsuite/gcc.dg/vect/pr121949_2.c45
-rw-r--r--gcc/testsuite/gcc.dg/vect/pr121949_3.c45
-rw-r--r--gcc/testsuite/gcc.target/i386/amx-check.h3
-rw-r--r--gcc/testsuite/gcc.target/i386/amxmovrs-2rpntlvwrs-2.c58
-rw-r--r--gcc/testsuite/gcc.target/i386/amxmovrs-asmatt-1.c10
-rw-r--r--gcc/testsuite/gcc.target/i386/amxmovrs-asmintel-1.c10
-rw-r--r--gcc/testsuite/gcc.target/i386/amxtranspose-2rpntlvw-2.c54
-rw-r--r--gcc/testsuite/gcc.target/i386/amxtranspose-asmatt-1.c39
-rw-r--r--gcc/testsuite/gcc.target/i386/amxtranspose-asmintel-1.c35
-rw-r--r--gcc/testsuite/gcc.target/i386/amxtranspose-conjtcmmimfp16ps-2.c55
-rw-r--r--gcc/testsuite/gcc.target/i386/amxtranspose-conjtfp16-2.c48
-rw-r--r--gcc/testsuite/gcc.target/i386/amxtranspose-tcmmimfp16ps-2.c55
-rw-r--r--gcc/testsuite/gcc.target/i386/amxtranspose-tcmmrlfp16ps-2.c55
-rw-r--r--gcc/testsuite/gcc.target/i386/amxtranspose-tdpbf16ps-2.c53
-rw-r--r--gcc/testsuite/gcc.target/i386/amxtranspose-tdpfp16ps-2.c55
-rw-r--r--gcc/testsuite/gcc.target/i386/amxtranspose-tmmultf32ps-2.c51
-rw-r--r--gcc/testsuite/gcc.target/i386/amxtranspose-transposed-2.c39
-rw-r--r--gcc/testsuite/gcc.target/i386/funcspec-56.inc2
-rw-r--r--gcc/testsuite/gcc.target/i386/sse-12.c2
-rw-r--r--gcc/testsuite/gcc.target/i386/sse-13.c2
-rw-r--r--gcc/testsuite/gcc.target/i386/sse-14.c2
-rw-r--r--gcc/testsuite/gcc.target/i386/sse-22.c4
-rw-r--r--gcc/testsuite/gcc.target/i386/sse-23.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/add-synthesis-1.c2
-rw-r--r--gcc/testsuite/gcc.target/riscv/pr120674.c6
-rw-r--r--gcc/testsuite/gcc.target/riscv/pr120811.c3
-rw-r--r--gcc/testsuite/gcc.target/riscv/predef-profiles-1.c11
-rw-r--r--gcc/testsuite/gcc.target/riscv/predef-profiles-2.c11
-rw-r--r--gcc/testsuite/gcc.target/riscv/predef-profiles-3.c11
-rw-r--r--gcc/testsuite/gcc.target/riscv/predef-profiles-4.c11
-rw-r--r--gcc/testsuite/gcc.target/riscv/predef-profiles-5.c11
-rw-r--r--gcc/testsuite/gcc.target/riscv/predef-profiles-6.c11
-rw-r--r--gcc/testsuite/gcc.target/riscv/predef-profiles-7.c11
-rw-r--r--gcc/testsuite/gcc.target/riscv/predef-profiles-8.c11
-rw-r--r--gcc/testsuite/gcc.target/riscv/sum-of-two-s12-const-1.c2
-rw-r--r--gcc/testsuite/gm2/iso/fail/badconst.mod9
-rw-r--r--gcc/testsuite/gm2/iso/fail/badtype.mod11
-rw-r--r--gcc/testsuite/gm2/iso/fail/badvar.mod7
-rw-r--r--gcc/testsuite/lib/target-supports.exp11
52 files changed, 385 insertions, 652 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index dd5ccac..7b857ec 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,49 @@
+2025-10-13 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc.dg/cpp/cpp.exp: Process .i files.
+ * gcc.dg/cpp/pr36674.i: Pass -Wno-implicit-int.
+ * gcc.dg/cpp/escape-3.i: New test.
+
+2025-10-13 Shreya Munnangi <smunnangi1@ventanamicro.com>
+
+ PR target/120811
+ * gcc.target/riscv/add-synthesis-1.c: Adjust const to fit in range.
+ * gcc.target/riscv/pr120811.c: Add new test case.
+ * gcc.target/riscv/sum-of-two-s12-const-1.c: Adjust const to fit in range.
+
+2025-10-13 Jeff Law <jlaw@ventanamicro.com>
+
+ PR target/120674
+ * gcc.target/riscv/pr120674.c: New test.
+
+2025-10-13 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/122228
+ * g++.dg/cpp1y/func_constexpr3.C: New test.
+
+2025-10-13 Gaius Mulley <gaiusmod2@gmail.com>
+
+ PR modula2/122241
+ * gm2/iso/fail/badconst.mod: New test.
+ * gm2/iso/fail/badtype.mod: New test.
+ * gm2/iso/fail/badvar.mod: New test.
+
+2025-10-13 Alex Coplan <alex.coplan@arm.com>
+
+ PR tree-optimization/121772
+ * gcc.target/aarch64/torture/pr121772.c: Add -fchecking to
+ dg-options.
+
+2025-10-13 Robin Dapp <rdapp@ventanamicro.com>
+
+ PR target/118019
+ * gcc.target/riscv/rvv/autovec/pr118019-2.c: New test.
+
+2025-10-13 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/121191
+ * gfortran.dg/pdt_59.f03: New test.
+
2025-10-12 Nathaniel Shead <nathanieloshead@gmail.com>
PR c++/122163
diff --git a/gcc/testsuite/g++.dg/cpp1y/func_constexpr3.C b/gcc/testsuite/g++.dg/cpp1y/func_constexpr3.C
new file mode 100644
index 0000000..f2963f1
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp1y/func_constexpr3.C
@@ -0,0 +1,6 @@
+// PR c++/122228
+// { dg-do compile { target c++11 } }
+// { dg-require-iconv "IBM1047" }
+// { dg-options "-fexec-charset=IBM1047 -std=c++11" }
+
+#include "func_constexpr.C"
diff --git a/gcc/testsuite/g++.dg/other/i386-2.C b/gcc/testsuite/g++.dg/other/i386-2.C
index 88252ad..d4c73f5 100644
--- a/gcc/testsuite/g++.dg/other/i386-2.C
+++ b/gcc/testsuite/g++.dg/other/i386-2.C
@@ -1,5 +1,5 @@
/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
-/* { dg-options "-O -pedantic-errors -march=k8 -msse4a -m3dnow -mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -mabm -mlzcnt -mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -mfma -mrtm -mrdseed -mprfchw -madx -mfxsr -mxsaveopt -msha -mxsavec -mxsaves -mclflushopt -mclwb -mmwaitx -mclzero -mpku -msgx -mrdpid -mgfni -mpconfig -mwbnoinvd -menqcmd -mavx512vp2intersect -mserialize -mtsxldtrk -mamx-tile -mamx-int8 -mamx-bf16 -mkl -mwidekl -mavxvnni -mavxifma -mavxvnniint8 -mavxneconvert -mcmpccxadd -mamx-fp16 -mprefetchi -mraoint -mamx-complex -mavxvnniint16 -msm3 -msha512 -msm4 -mavx10.2 -mamx-avx512 -mamx-tf32 -mamx-transpose -mamx-fp8 -mmovrs -mamx-movrs" } */
+/* { dg-options "-O -pedantic-errors -march=k8 -msse4a -m3dnow -mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -mabm -mlzcnt -mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -mfma -mrtm -mrdseed -mprfchw -madx -mfxsr -mxsaveopt -msha -mxsavec -mxsaves -mclflushopt -mclwb -mmwaitx -mclzero -mpku -msgx -mrdpid -mgfni -mpconfig -mwbnoinvd -menqcmd -mavx512vp2intersect -mserialize -mtsxldtrk -mamx-tile -mamx-int8 -mamx-bf16 -mkl -mwidekl -mavxvnni -mavxifma -mavxvnniint8 -mavxneconvert -mcmpccxadd -mamx-fp16 -mprefetchi -mraoint -mamx-complex -mavxvnniint16 -msm3 -msha512 -msm4 -mavx10.2 -mamx-avx512 -mamx-tf32 -mamx-fp8 -mmovrs -mamx-movrs" } */
/* { dg-skip-if "requires hosted libstdc++ for cstdlib malloc" { ! hostedlib } } */
/* Test that {,x,e,p,t,s,w,a,b,i}mmintrin.h, mm3dnow.h, fma4intrin.h,
diff --git a/gcc/testsuite/g++.dg/other/i386-3.C b/gcc/testsuite/g++.dg/other/i386-3.C
index a234e4f..e925607 100644
--- a/gcc/testsuite/g++.dg/other/i386-3.C
+++ b/gcc/testsuite/g++.dg/other/i386-3.C
@@ -1,5 +1,5 @@
/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
-/* { dg-options "-O -fkeep-inline-functions -march=k8 -msse4a -m3dnow -mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -mabm -mlzcnt -mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -mfma -mrtm -mrdseed -mprfchw -madx -mfxsr -mxsaveopt -msha -mxsavec -mxsaves -mclflushopt -mclwb -mmwaitx -mclzero -mpku -msgx -mrdpid -mgfni -mpconfig -mwbnoinvd -menqcmd -mavx512vp2intersect -mserialize -mtsxldtrk -mamx-tile -mamx-int8 -mamx-bf16 -mkl -mwidekl -mavxvnni -mavxifma -mavxvnniint8 -mavxneconvert -mcmpccxadd -mamx-fp16 -mprefetchi -mraoint -mamx-complex -mavxvnniint16 -msm3 -msha512 -msm4 -mavx10.2 -mamx-avx512 -mamx-tf32 -mamx-transpose -mamx-fp8 -mmovrs -mamx-movrs" } */
+/* { dg-options "-O -fkeep-inline-functions -march=k8 -msse4a -m3dnow -mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -mabm -mlzcnt -mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -mfma -mrtm -mrdseed -mprfchw -madx -mfxsr -mxsaveopt -msha -mxsavec -mxsaves -mclflushopt -mclwb -mmwaitx -mclzero -mpku -msgx -mrdpid -mgfni -mpconfig -mwbnoinvd -menqcmd -mavx512vp2intersect -mserialize -mtsxldtrk -mamx-tile -mamx-int8 -mamx-bf16 -mkl -mwidekl -mavxvnni -mavxifma -mavxvnniint8 -mavxneconvert -mcmpccxadd -mamx-fp16 -mprefetchi -mraoint -mamx-complex -mavxvnniint16 -msm3 -msha512 -msm4 -mavx10.2 -mamx-avx512 -mamx-tf32 -mamx-fp8 -mmovrs -mamx-movrs" } */
/* { dg-skip-if "requires hosted libstdc++ for cstdlib malloc" { ! hostedlib } } */
/* Test that {,x,e,p,t,s,w,a,b,i}mmintrin.h, mm3dnow.h, fma4intrin.h,
diff --git a/gcc/testsuite/g++.dg/template/dependent-base6.C b/gcc/testsuite/g++.dg/template/dependent-base6.C
index b4bc5c2..9f2a7a2 100644
--- a/gcc/testsuite/g++.dg/template/dependent-base6.C
+++ b/gcc/testsuite/g++.dg/template/dependent-base6.C
@@ -8,5 +8,7 @@ struct A {
struct S1 : A::B { }; // OK
-template<class T> struct S2 : T::B { }; // OK, used to fail
+template<class T> struct S2 : T::B { // OK, used to fail
+ S2() : T::B() { } // Also OK
+};
template struct S2<A>;
diff --git a/gcc/testsuite/g++.dg/tree-ssa/cselim-1.C b/gcc/testsuite/g++.dg/tree-ssa/cselim-1.C
new file mode 100644
index 0000000..a621945
--- /dev/null
+++ b/gcc/testsuite/g++.dg/tree-ssa/cselim-1.C
@@ -0,0 +1,37 @@
+/* { dg-do compile { target c++11 } } */
+/* { dg-options "-O2 -fdump-tree-phiopt1-details -fdump-tree-optimized" } */
+/* PR tree-optimization/122178 */
+/* cselim/cselim-limited should be able to handle clobbers. */
+
+#include <new>
+
+struct s1
+{
+ bool t;
+};
+
+void f(s1 *a, bool b)
+{
+ if (b)
+ {
+ a = new(a)s1{1};
+ }
+ else
+ {
+ a = new(a)s1{0};
+ }
+}
+
+/*
+ The above should be optimized in phiopt1 to:
+ *a = {CLOBBER(bob)};
+ a->t = b;
+ */
+
+
+/* { dg-final { scan-tree-dump-times "factoring out stores" 1 "phiopt1" } } */
+/* { dg-final { scan-tree-dump-times "factoring out clobber" 1 "phiopt1" } } */
+/* { dg-final { scan-tree-dump-times " converted to straightline code" 1 "phiopt1" } } */
+/* { dg-final { scan-tree-dump-not "if " "phiopt1" } } */
+/* { dg-final { scan-tree-dump-not "if " "optimized" } } */
+
diff --git a/gcc/testsuite/gcc.dg/cpp/cpp.exp b/gcc/testsuite/gcc.dg/cpp/cpp.exp
index 7a359c0..754ffeb 100644
--- a/gcc/testsuite/gcc.dg/cpp/cpp.exp
+++ b/gcc/testsuite/gcc.dg/cpp/cpp.exp
@@ -4,12 +4,12 @@
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
-#
+#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-#
+#
# You should have received a copy of the GNU General Public License
# along with GCC; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>.
@@ -36,11 +36,11 @@ if ![info exists DEFAULT_CFLAGS] then {
dg-init
# Main loop.
-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.{c,S} ]] \
+dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.{c,S,i} ]] \
"" $DEFAULT_CFLAGS
# C/C++ common tests.
-dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cpp/*.{c,S} ]] \
+dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cpp/*.{c,S,i} ]] \
" -Wc++-compat " ""
diff --git a/gcc/testsuite/gcc.dg/cpp/escape-3.i b/gcc/testsuite/gcc.dg/cpp/escape-3.i
new file mode 100644
index 0000000..6eb7dc4
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/escape-3.i
@@ -0,0 +1,16 @@
+# 0 "escape-3.c"
+# 0 "/some\\directory//"
+# 0 "<built-in>"
+# 0 "<command-line>"
+# 1 "escape-3.c"
+
+/* { dg-do compile } */
+/* { dg-options "-g1" } */
+
+int foo (int a, int b)
+{
+ return a + b;
+}
+
+/* Test for "/some\\directory" instead of "/some\\\\directory" */
+/* { dg-final { scan-assembler { "/some\\\\directory" } } } */
diff --git a/gcc/testsuite/gcc.dg/cpp/pr36674.i b/gcc/testsuite/gcc.dg/cpp/pr36674.i
index 9362d5a..f436287 100644
--- a/gcc/testsuite/gcc.dg/cpp/pr36674.i
+++ b/gcc/testsuite/gcc.dg/cpp/pr36674.i
@@ -1,6 +1,6 @@
/* PR cpp/36674 #include location is offset by one row in errors from preprocessed files */
/* { dg-do compile } */
-/* { dg-options "-fshow-column" } */
+/* { dg-options "-fshow-column -Wno-implicit-int" } */
# 1 "gcc/testsuite/gcc.dg/pr36674.c"
# 1 "<built-in>"
# 1 "<command-line>"
diff --git a/gcc/testsuite/gcc.dg/vect/pr120687-1.c b/gcc/testsuite/gcc.dg/vect/pr120687-1.c
index ce9cf63..ac684c0 100644
--- a/gcc/testsuite/gcc.dg/vect/pr120687-1.c
+++ b/gcc/testsuite/gcc.dg/vect/pr120687-1.c
@@ -11,6 +11,6 @@ frd (unsigned *p, unsigned *lastone)
return sum;
}
-/* { dg-final { scan-tree-dump "reduction: detected reduction chain" "vect" } } */
+/* { dg-final { scan-tree-dump "Starting SLP discovery of reduction chain" "vect" } } */
/* { dg-final { scan-tree-dump-not "SLP discovery of reduction chain failed" "vect" } } */
/* { dg-final { scan-tree-dump "optimized: loop vectorized" "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/pr120687-2.c b/gcc/testsuite/gcc.dg/vect/pr120687-2.c
index dfc6dc7..25f0355 100644
--- a/gcc/testsuite/gcc.dg/vect/pr120687-2.c
+++ b/gcc/testsuite/gcc.dg/vect/pr120687-2.c
@@ -12,6 +12,6 @@ frd (float *p, float *lastone)
return sum;
}
-/* { dg-final { scan-tree-dump "reduction: detected reduction chain" "vect" } } */
+/* { dg-final { scan-tree-dump "Starting SLP discovery of reduction chain" "vect" } } */
/* { dg-final { scan-tree-dump-not "SLP discovery of reduction chain failed" "vect" } } */
/* { dg-final { scan-tree-dump "optimized: loop vectorized" "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/pr120687-3.c b/gcc/testsuite/gcc.dg/vect/pr120687-3.c
index f20a66a..31a6c94 100644
--- a/gcc/testsuite/gcc.dg/vect/pr120687-3.c
+++ b/gcc/testsuite/gcc.dg/vect/pr120687-3.c
@@ -11,6 +11,6 @@ frd (float *p, float *lastone)
return sum;
}
-/* { dg-final { scan-tree-dump "reduction: detected reduction chain" "vect" } } */
+/* { dg-final { scan-tree-dump "Starting SLP discovery of reduction chain" "vect" } } */
/* { dg-final { scan-tree-dump-not "SLP discovery of reduction chain failed" "vect" } } */
/* { dg-final { scan-tree-dump "optimized: loop vectorized" "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/pr121949_1.c b/gcc/testsuite/gcc.dg/vect/pr121949_1.c
new file mode 100644
index 0000000..9e8d41e
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/pr121949_1.c
@@ -0,0 +1,45 @@
+#ifndef TYPE
+#define TYPE short
+#define MAX 16
+#define IV_TYPE char
+#endif
+
+#include "tree-vect.h"
+
+__attribute__((noipa))
+void f(TYPE* acc)
+{
+ for (IV_TYPE row = 0; row < MAX; ++row)
+ acc[row] = acc[row] << row;
+}
+
+__attribute__((noipa))
+void g(TYPE* acc)
+{
+#pragma GCC novector
+ for (IV_TYPE row = 0; row < MAX; ++row)
+ acc[row] = acc[row] << row;
+}
+
+int main ()
+{
+
+ check_vect ();
+
+ TYPE acc1[MAX] = {};
+ TYPE acc2[MAX] = {};
+#pragma GCC novector
+ for (int i = 0; i < MAX; i++)
+ acc1[i] = acc2[i] = i;
+
+ f (acc1);
+ f (acc2);
+
+#pragma GCC novector
+ for (int i = 0; i < MAX; i++)
+ if (acc1[i] != acc2[i])
+ __builtin_abort ();
+}
+
+/* { dg-final { scan-tree-dump "LOOP VECTORIZED" "vect" { target { vect_var_shift && vect_int } } } } */
+/* { dg-final { scan-tree-dump "vect_recog_over_widening_pattern: detected" "vect" { target { vect_var_shift && vect_int } } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/pr121949_2.c b/gcc/testsuite/gcc.dg/vect/pr121949_2.c
new file mode 100644
index 0000000..f448eb6
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/pr121949_2.c
@@ -0,0 +1,45 @@
+#ifndef TYPE
+#define TYPE int
+#define MAX 32
+#define IV_TYPE short
+#endif
+
+#include "tree-vect.h"
+
+__attribute__((noipa))
+void f(TYPE* acc)
+{
+ for (IV_TYPE row = 0; row < MAX; ++row)
+ acc[row] = acc[row] << row;
+}
+
+__attribute__((noipa))
+void g(TYPE* acc)
+{
+#pragma GCC novector
+ for (IV_TYPE row = 0; row < MAX; ++row)
+ acc[row] = acc[row] << row;
+}
+
+int main ()
+{
+
+ check_vect ();
+
+ TYPE acc1[MAX] = {};
+ TYPE acc2[MAX] = {};
+#pragma GCC novector
+ for (int i = 0; i < MAX; i++)
+ acc1[i] = acc2[i] = i;
+
+ f (acc1);
+ f (acc2);
+
+#pragma GCC novector
+ for (int i = 0; i < MAX; i++)
+ if (acc1[i] != acc2[i])
+ __builtin_abort ();
+}
+
+/* { dg-final { scan-tree-dump "LOOP VECTORIZED" "vect" { target { vect_var_shift && vect_int } } } } */
+/* { dg-final { scan-tree-dump-not "vect_recog_over_widening_pattern: detected" "vect" { target { vect_var_shift && vect_int } } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/pr121949_3.c b/gcc/testsuite/gcc.dg/vect/pr121949_3.c
new file mode 100644
index 0000000..b7e6a3d
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/pr121949_3.c
@@ -0,0 +1,45 @@
+#ifndef TYPE
+#define TYPE long long
+#define MAX 64
+#define IV_TYPE int
+#endif
+
+#include "tree-vect.h"
+
+__attribute__((noipa))
+void f(TYPE* acc)
+{
+ for (IV_TYPE row = 0; row < MAX; ++row)
+ acc[row] = acc[row] << row;
+}
+
+__attribute__((noipa))
+void g(TYPE* acc)
+{
+#pragma GCC novector
+ for (IV_TYPE row = 0; row < MAX; ++row)
+ acc[row] = acc[row] << row;
+}
+
+int main ()
+{
+
+ check_vect ();
+
+ TYPE acc1[MAX] = {};
+ TYPE acc2[MAX] = {};
+#pragma GCC novector
+ for (int i = 0; i < MAX; i++)
+ acc1[i] = acc2[i] = i;
+
+ f (acc1);
+ f (acc2);
+
+#pragma GCC novector
+ for (int i = 0; i < MAX; i++)
+ if (acc1[i] != acc2[i])
+ __builtin_abort ();
+}
+
+/* { dg-final { scan-tree-dump "LOOP VECTORIZED" "vect" { target { vect_var_shift && vect_int } } } } */
+/* { dg-final { scan-tree-dump "vect_recog_vector_vector_shift_pattern: detected" "vect" { target { vect_var_shift && vect_int } } } } */
diff --git a/gcc/testsuite/gcc.target/i386/amx-check.h b/gcc/testsuite/gcc.target/i386/amx-check.h
index 0addb5b..c43a955 100644
--- a/gcc/testsuite/gcc.target/i386/amx-check.h
+++ b/gcc/testsuite/gcc.target/i386/amx-check.h
@@ -260,9 +260,6 @@ main ()
#ifdef AMX_TF32
&& __builtin_cpu_supports ("amx-tf32")
#endif
-#ifdef AMX_TRANSPOSE
- && __builtin_cpu_supports ("amx-transpose")
-#endif
#ifdef AMX_FP8
&& __builtin_cpu_supports ("amx-fp8")
#endif
diff --git a/gcc/testsuite/gcc.target/i386/amxmovrs-2rpntlvwrs-2.c b/gcc/testsuite/gcc.target/i386/amxmovrs-2rpntlvwrs-2.c
deleted file mode 100644
index 0093ef7..0000000
--- a/gcc/testsuite/gcc.target/i386/amxmovrs-2rpntlvwrs-2.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/* { dg-do run { target { ! ia32 } } } */
-/* { dg-require-effective-target amx_movrs } */
-/* { dg-require-effective-target amx_transpose } */
-/* { dg-require-effective-target avx512fp16 } */
-/* { dg-options "-O2 -mamx-movrs -mamx-transpose -mavx512fp16 -mavx512bf16" } */
-#define AMX_MOVRS
-#define AMX_TRANSPOSE
-#define DO_TEST test_amx_movrs_t2rpntlvwrs
-void test_amx_movrs_t2rpntlvwrs ();
-#include "amx-helper.h"
-
-#define init_pair_tile_reg_and_src_z_t(tmm_num, src, buffer, ztype, wtype) \
-{ \
- init_pair_tile_src (tmm_num, &src, buffer, ztype); \
- _tile_2rpntlvwz##ztype##rs##wtype (tmm_num, buffer, _STRIDE); \
-}
-
-void test_amx_movrs_t2rpntlvwrs ()
-{
- __tilecfg_u cfg;
- __tilepair src;
- __tile ref_0, ref_1;
- uint8_t buffer[2048];
- int i;
-
- init_tile_config (&cfg);
-
- for (i = 0; i < 2048; i++)
- buffer[i] = i % 256;
-
- /* Check t2rpntlvwz0rs. */
- init_pair_tile_reg_and_src_z_t (0, src, buffer, 0,);
- _tile_stored (0, ref_0.buf, _STRIDE);
- _tile_stored (1, ref_1.buf, _STRIDE);
- if (!check_pair_tile_register (&ref_0, &ref_1, &src))
- abort ();
-
- /* Check t2rpntlvwz1rs. */
- init_pair_tile_reg_and_src_z_t (0, src, buffer, 1,);
- _tile_stored (0, ref_0.buf, _STRIDE);
- _tile_stored (1, ref_1.buf, _STRIDE);
- if (!check_pair_tile_register (&ref_0, &ref_1, &src))
- abort ();
-
- /* Check t2rpntlvwz0t1rs. */
- init_pair_tile_reg_and_src_z_t (0, src, buffer, 0, t1);
- _tile_stored (0, ref_0.buf, _STRIDE);
- _tile_stored (1, ref_1.buf, _STRIDE);
- if (!check_pair_tile_register (&ref_0, &ref_1, &src))
- abort ();
-
- /* Check t2rpntlvwz1t1rs. */
- init_pair_tile_reg_and_src_z_t (0, src, buffer, 1, t1);
- _tile_stored (0, ref_0.buf, _STRIDE);
- _tile_stored (1, ref_1.buf, _STRIDE);
- if (!check_pair_tile_register (&ref_0, &ref_1, &src))
- abort ();
-}
diff --git a/gcc/testsuite/gcc.target/i386/amxmovrs-asmatt-1.c b/gcc/testsuite/gcc.target/i386/amxmovrs-asmatt-1.c
index d99a97f..339550b 100644
--- a/gcc/testsuite/gcc.target/i386/amxmovrs-asmatt-1.c
+++ b/gcc/testsuite/gcc.target/i386/amxmovrs-asmatt-1.c
@@ -1,11 +1,7 @@
/* { dg-do compile { target { ! ia32 } } } */
-/* { dg-options "-O2 -mamx-movrs -mamx-transpose" } */
+/* { dg-options "-O2 -mamx-movrs" } */
/* { dg-final { scan-assembler "tileloaddrs\[ \\t]+\[^\n\]*\(%\[a-z0-9\]*\,%\[a-z0-9\]*\,\[124\]\)+\[^\n\]*%tmm\[0-9\]" } } */
/* { dg-final { scan-assembler "tileloaddrst1\[ \\t]+\[^\n\]*\(%\[a-z0-9]*\,%\[a-z0-9\]*\,\[124\]\)+\[^\n\]*%tmm\[0-9\]" } } */
-/* { dg-final { scan-assembler "t2rpntlvwz0rs\[ \\t]+\[^\n\]*\(%\[a-z0-9\]*\,%\[a-z0-9\]*\,\[124\]\)+\[^\n\]*%tmm\[0-9\]" } } */
-/* { dg-final { scan-assembler "t2rpntlvwz0rst1\[ \\t]+\[^\n\]*\(%\[a-z0-9\]*\,%\[a-z0-9\]*\,\[124\]\)+\[^\n\]*%tmm\[0-9\]" } } */
-/* { dg-final { scan-assembler "t2rpntlvwz1rs\[ \\t]+\[^\n\]*\(%\[a-z0-9\]*\,%\[a-z0-9\]*\,\[124\]\)+\[^\n\]*%tmm\[0-9\]" } } */
-/* { dg-final { scan-assembler "t2rpntlvwz1rst1\[ \\t]+\[^\n\]*\(%\[a-z0-9\]*\,%\[a-z0-9\]*\,\[124\]\)+\[^\n\]*%tmm\[0-9\]" } } */
#include <immintrin.h>
extern const void* base;
@@ -20,8 +16,4 @@ void TEST()
{
_tile_loaddrs (TMM1, base, stride);
_tile_loaddrst1 (TMM1, base, stride);
- _tile_2rpntlvwz0rs (TMM0, base, stride);
- _tile_2rpntlvwz0rst1 (TMM1, base, stride);
- _tile_2rpntlvwz1rs (TMM2, base, stride);
- _tile_2rpntlvwz1rst1 (TMM3, base, stride);
}
diff --git a/gcc/testsuite/gcc.target/i386/amxmovrs-asmintel-1.c b/gcc/testsuite/gcc.target/i386/amxmovrs-asmintel-1.c
index 6a33986..6a522b5 100644
--- a/gcc/testsuite/gcc.target/i386/amxmovrs-asmintel-1.c
+++ b/gcc/testsuite/gcc.target/i386/amxmovrs-asmintel-1.c
@@ -1,12 +1,8 @@
/* { dg-do compile { target { ! ia32 } } } */
/* { dg-require-effective-target masm_intel } */
-/* { dg-options "-O2 -mamx-movrs -mamx-transpose -masm=intel" } */
+/* { dg-options "-O2 -mamx-movrs -masm=intel" } */
/* { dg-final { scan-assembler-times "tileloaddrs\[ \\t]%tmm\[0-9\]" 1 } } */
/* { dg-final { scan-assembler-times "tileloaddrst1\[ \\t]%tmm\[0-9\]" 1 } } */
-/* { dg-final { scan-assembler "t2rpntlvwz0rs\[ \\t]%tmm\[0-9\]" } } */
-/* { dg-final { scan-assembler "t2rpntlvwz0rst1\[ \\t]%tmm\[0-9\]" } } */
-/* { dg-final { scan-assembler "t2rpntlvwz1rs\[ \\t]%tmm\[0-9\]" } } */
-/* { dg-final { scan-assembler "t2rpntlvwz1rst1\[ \\t]%tmm\[0-9\]" } } */
#include <immintrin.h>
extern const void* base;
@@ -21,8 +17,4 @@ void TEST()
{
_tile_loaddrs (TMM1, base, stride);
_tile_loaddrst1 (TMM1, base, stride);
- _tile_2rpntlvwz0rs (TMM0, base, stride);
- _tile_2rpntlvwz0rst1 (TMM1, base, stride);
- _tile_2rpntlvwz1rs (TMM2, base, stride);
- _tile_2rpntlvwz1rst1 (TMM3, base, stride);
}
diff --git a/gcc/testsuite/gcc.target/i386/amxtranspose-2rpntlvw-2.c b/gcc/testsuite/gcc.target/i386/amxtranspose-2rpntlvw-2.c
deleted file mode 100644
index 2d01827..0000000
--- a/gcc/testsuite/gcc.target/i386/amxtranspose-2rpntlvw-2.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* { dg-do run { target { ! ia32 } } } */
-/* { dg-require-effective-target amx_transpose } */
-/* { dg-options "-O2 -mamx-transpose" } */
-#define AMX_TRANSPOSE
-#define DO_TEST test_amx_transpose_t2rpntlvw
-void test_amx_transpose_t2rpntlvw ();
-#include "amx-helper.h"
-#define init_pair_tile_reg_and_src_z_t(tmm_num, src, buffer, ztype, wtype) \
-{ \
- init_pair_tile_src (tmm_num, &src, buffer, ztype); \
- _tile_2rpntlvwz##ztype##wtype (tmm_num, buffer, _STRIDE); \
-}
-
-void test_amx_transpose_t2rpntlvw ()
-{
- __tilecfg_u cfg;
- __tilepair src;
- __tile ref_0, ref_1;
- uint8_t buffer[2048];
- int i;
-
- init_tile_config (&cfg);
-
- for (i = 0; i < 2048; i++)
- buffer[i] = i % 256;
-
- /* Check t2rpntlvwz0. */
- init_pair_tile_reg_and_src_z_t (0, src, buffer, 0,);
- _tile_stored (0, ref_0.buf, _STRIDE);
- _tile_stored (1, ref_1.buf, _STRIDE);
- if (!check_pair_tile_register (&ref_0, &ref_1, &src))
- abort ();
-
- /* Check t2rpntlvwz1. */
- init_pair_tile_reg_and_src_z_t (0, src, buffer, 1,);
- _tile_stored (0, ref_0.buf, _STRIDE);
- _tile_stored (1, ref_1.buf, _STRIDE);
- if (!check_pair_tile_register (&ref_0, &ref_1, &src))
- abort ();
-
- /* Check t2rpntlvwz0t1. */
- init_pair_tile_reg_and_src_z_t (0, src, buffer, 0, t1);
- _tile_stored (0, ref_0.buf, _STRIDE);
- _tile_stored (1, ref_1.buf, _STRIDE);
- if (!check_pair_tile_register (&ref_0, &ref_1, &src))
- abort ();
-
- /* Check t2rpntlvwz1t1. */
- init_pair_tile_reg_and_src_z_t (0, src, buffer, 1, t1);
- _tile_stored (0, ref_0.buf, _STRIDE);
- _tile_stored (1, ref_1.buf, _STRIDE);
- if (!check_pair_tile_register (&ref_0, &ref_1, &src))
- abort ();
-}
diff --git a/gcc/testsuite/gcc.target/i386/amxtranspose-asmatt-1.c b/gcc/testsuite/gcc.target/i386/amxtranspose-asmatt-1.c
deleted file mode 100644
index a970f5d..0000000
--- a/gcc/testsuite/gcc.target/i386/amxtranspose-asmatt-1.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* { dg-do compile { target { ! ia32 } } } */
-/* { dg-options "-O2 -mamx-transpose -mamx-bf16 -mamx-complex -mamx-fp16 -mamx-tf32" } */
-/* { dg-final { scan-assembler "ttdpbf16ps\[ \\t]+\[^\n\]*%tmm3+\[^\n\]*%tmm2+\[^\n\]*%tmm1" } } */
-/* { dg-final { scan-assembler "ttdpfp16ps\[ \\t]+\[^\n\]*%tmm3+\[^\n\]*%tmm2+\[^\n\]*%tmm1" } } */
-/* { dg-final { scan-assembler "ttransposed\[ \\t]+\[^\n\]*%tmm2+\[^\n\]*%tmm1" } } */
-/* { dg-final { scan-assembler "t2rpntlvwz0\[ \\t]+\[^\n\]*\\(%\[a-z0-9]*\,%\[a-z0-9\]*\,\[124\]\\)+\[^\n\]*%tmm\[0-9\]" } } */
-/* { dg-final { scan-assembler "t2rpntlvwz0t1\[ \\t]+\[^\n\]*\\(%\[a-z0-9]*\,%\[a-z0-9\]*\,\[124\]\\)+\[^\n\]*%tmm\[0-9\]" } } */
-/* { dg-final { scan-assembler "t2rpntlvwz1\[ \\t]+\[^\n\]*\\(%\[a-z0-9]*\,%\[a-z0-9\]*\,\[124\]\\)+\[^\n\]*%tmm\[0-9\]" } } */
-/* { dg-final { scan-assembler "t2rpntlvwz1t1\[ \\t]+\[^\n\]*\\(%\[a-z0-9]*\,%\[a-z0-9\]*\,\[124\]\\)+\[^\n\]*%tmm\[0-9\]" } } */
-/* { dg-final { scan-assembler "tconjtcmmimfp16ps\[ \\t]+\[^\n\]*%tmm3+\[^\n\]*%tmm2+\[^\n\]*%tmm1" } } */
-/* { dg-final { scan-assembler "tconjtfp16\[ \\t]+\[^\n\]*%tmm2+\[^\n\]*%tmm1" } } */
-/* { dg-final { scan-assembler "ttcmmimfp16ps\[ \\t]+\[^\n\]*%tmm3+\[^\n\]*%tmm2+\[^\n\]*%tmm1" } } */
-/* { dg-final { scan-assembler "ttcmmrlfp16ps\[ \\t]+\[^\n\]*%tmm3+\[^\n\]*%tmm2+\[^\n\]*%tmm1" } } */
-/* { dg-final { scan-assembler "ttmmultf32ps\[ \\t]+\[^\n\]*%tmm3+\[^\n\]*%tmm2+\[^\n\]*%tmm1" } } */
-#include <immintrin.h>
-
-extern const void* base;
-extern const int stride;
-
-#define TMM0 0
-#define TMM1 1
-#define TMM2 2
-#define TMM3 3
-
-void TEST()
-{
- _tile_tdpbf16ps (TMM1, TMM2, TMM3);
- _tile_tdpfp16ps (TMM1, TMM2, TMM3);
- _tile_transposed (TMM1, TMM2);
- _tile_2rpntlvwz0 (TMM0, base, stride);
- _tile_2rpntlvwz0t1 (TMM1, base, stride);
- _tile_2rpntlvwz1 (TMM2, base, stride);
- _tile_2rpntlvwz1t1 (TMM3, base, stride);
- _tile_conjtcmmimfp16ps (TMM1, TMM2, TMM3);
- _tile_conjtfp16 (TMM1, TMM2);
- _tile_tcmmimfp16ps (TMM1, TMM2, TMM3);
- _tile_tcmmrlfp16ps (TMM1, TMM2, TMM3);
- _tile_tmmultf32ps (TMM1, TMM2, TMM3);
-}
diff --git a/gcc/testsuite/gcc.target/i386/amxtranspose-asmintel-1.c b/gcc/testsuite/gcc.target/i386/amxtranspose-asmintel-1.c
deleted file mode 100644
index 2cf73ae..0000000
--- a/gcc/testsuite/gcc.target/i386/amxtranspose-asmintel-1.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* { dg-do compile { target { ! ia32 } } } */
-/* { dg-require-effective-target masm_intel } */
-/* { dg-options "-O2 -mamx-transpose -mamx-bf16 -mamx-complex -mamx-fp16 -mamx-tf32 -masm=intel" } */
-/* { dg-final { scan-assembler "ttdpbf16ps\[ \\t]+\[^\n\]*%tmm1+\[^\n\]*%tmm2+\[^\n\]*%tmm3" } } */
-/* { dg-final { scan-assembler "ttdpfp16ps\[ \\t]+\[^\n\]*%tmm1+\[^\n\]*%tmm2+\[^\n\]*%tmm3" } } */
-/* { dg-final { scan-assembler "ttransposed\[ \\t]+\[^\n\]*%tmm1+\[^\n\]*%tmm2" } } */
-/* { dg-final { scan-assembler "t2rpntlvwz0\[ \\t]%tmm\[0-9\]" } } */
-/* { dg-final { scan-assembler "t2rpntlvwz0t1\[ \\t]%tmm\[0-9\]" } } */
-/* { dg-final { scan-assembler "t2rpntlvwz1\[ \\t]%tmm\[0-9\]" } } */
-/* { dg-final { scan-assembler "t2rpntlvwz1t1\[ \\t]%tmm\[0-9\]" } } */
-/* { dg-final { scan-assembler "tconjtcmmimfp16ps\[ \\t]+\[^\n\]*%tmm1+\[^\n\]*%tmm2+\[^\n\]*%tmm3" } } */
-/* { dg-final { scan-assembler "tconjtfp16\[ \\t]+\[^\n\]*%tmm1+\[^\n\]*%tmm2" } } */
-/* { dg-final { scan-assembler "ttcmmimfp16ps\[ \\t]+\[^\n\]*%tmm1+\[^\n\]*%tmm2+\[^\n\]*%tmm3" } } */
-/* { dg-final { scan-assembler "ttcmmrlfp16ps\[ \\t]+\[^\n\]*%tmm1+\[^\n\]*%tmm2+\[^\n\]*%tmm3" } } */
-/* { dg-final { scan-assembler "ttmmultf32ps\[ \\t]+\[^\n\]*%tmm1+\[^\n\]*%tmm2+\[^\n\]*%tmm3" } } */
-#include <immintrin.h>
-
-extern const void* base;
-extern const int stride;
-
-void TEST()
-{
- _tile_tdpbf16ps (1, 2, 3);
- _tile_tdpfp16ps (1, 2, 3);
- _tile_transposed (1, 2);
- _tile_2rpntlvwz0 (5, base, stride);
- _tile_2rpntlvwz0t1 (4, base, stride);
- _tile_2rpntlvwz1 (3, base, stride);
- _tile_2rpntlvwz1t1 (2, base, stride);
- _tile_conjtcmmimfp16ps (1, 2, 3);
- _tile_conjtfp16 (1, 2);
- _tile_tcmmimfp16ps (1, 2, 3);
- _tile_tcmmrlfp16ps (1, 2, 3);
- _tile_tmmultf32ps (1, 2, 3);
-}
diff --git a/gcc/testsuite/gcc.target/i386/amxtranspose-conjtcmmimfp16ps-2.c b/gcc/testsuite/gcc.target/i386/amxtranspose-conjtcmmimfp16ps-2.c
deleted file mode 100644
index 159867d..0000000
--- a/gcc/testsuite/gcc.target/i386/amxtranspose-conjtcmmimfp16ps-2.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* { dg-do run { target { ! ia32 } } } */
-/* { dg-require-effective-target amx_transpose } */
-/* { dg-require-effective-target amx_complex } */
-/* { dg-require-effective-target avx512fp16 } */
-/* { dg-options "-O2 -mamx-transpose -mamx-complex -mavx512fp16" } */
-#define AMX_TRANSPOSE
-#define AMX_COMPLEX
-#define DO_TEST test_amx_transpose_conjtcmmimfp16ps
-void test_amx_transpose_conjtcmmimfp16ps ();
-#include "amx-helper.h"
-
-void calc_matrix_conjtcmmimfp16ps (__tile *dst, __tile *src1, __tile *src2)
-{
- uint16_t *src1_buf = (uint16_t *) src1->buf;
- uint16_t *src2_buf = (uint16_t *) src2->buf;
- float *dst_buf = (float *) dst->buf;
-
- int K = src1->rows;
- int M = src1->colsb / 4;
- int N = src2->colsb / 4;
- int m, k, n, t;
-
- for (m = 0; m < M; m++)
- for (k = 0; k < K; k++)
- for (n = 0; n < N; n++)
- for (t = 0; t < 2; t+=2)
- dst_buf[m * N + n] +=
- (make_fp16_f32(src1_buf[k * 2 * M + 2 * m + t]) *
- make_fp16_f32(src2_buf[k * 2 * N + 2 * n + t + 1])) -
- (make_fp16_f32(src1_buf[k * 2 * M + 2 * m + t + 1]) *
- make_fp16_f32(src2_buf[k * 2 * N + 2 * n + t]));
-}
-
-void test_amx_transpose_conjtcmmimfp16ps ()
-{
- __tilecfg_u cfg;
- __tile dst, dst_ref, src1, src2;
- uint8_t tmp_dst_buf[1024], tmp_dst_zero_buf[1024];
-
- init_fp16_max_tile_buffer (tmp_dst_buf);
- init_fp16_max_tile_zero_buffer (tmp_dst_zero_buf);
-
- init_tile_config (&cfg);
- init_tile_reg_and_src_with_buffer (1, dst, tmp_dst_zero_buf);
- init_tile_reg_and_src_with_buffer (2, src1, tmp_dst_buf);
- init_tile_reg_and_src_with_buffer (3, src2, tmp_dst_buf);
-
- calc_matrix_conjtcmmimfp16ps (&dst, &src1, &src2);
-
- _tile_conjtcmmimfp16ps (1, 2, 3);
- _tile_stored (1, dst_ref.buf, _STRIDE);
-
- if (!check_tile_register (&dst_ref, &dst))
- abort ();
-}
diff --git a/gcc/testsuite/gcc.target/i386/amxtranspose-conjtfp16-2.c b/gcc/testsuite/gcc.target/i386/amxtranspose-conjtfp16-2.c
deleted file mode 100644
index 710d76a..0000000
--- a/gcc/testsuite/gcc.target/i386/amxtranspose-conjtfp16-2.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* { dg-do run { target { ! ia32 } } } */
-/* { dg-require-effective-target amx_transpose } */
-/* { dg-require-effective-target amx_complex } */
-/* { dg-require-effective-target avx512fp16 } */
-/* { dg-options "-O2 -mamx-transpose -mamx-complex -mavx512fp16" } */
-#define AMX_TRANSPOSE
-#define AMX_COMPLEX
-#define DO_TEST test_amx_transpose_conjtfp16
-void test_amx_transpose_conjtfp16 ();
-#include "amx-helper.h"
-
-void calc_matrix_conjtfp16 (__tile *dst, __tile *src)
-{
- uint16_t *src_buf = (uint16_t *) src->buf;
- float *dst_buf = (float *) dst->buf;
-
- int M = dst->rows;
- int N = dst->colsb / 4;
- int i, j, t;
-
- for (i = 0; i < M; i++)
- for (j = 0; j < N; j++)
- for (t = 0; t < 2; t+=2)
- {
- dst_buf[i * 2 * N + 2 * j + t] = src_buf[j * 2 * M + 2 * i + t];
- dst_buf[i * 2 * N + 2 * j + t + 1] = -src_buf[j * 2 * M + 2 * i + t + 1];
- }
-}
-
-void test_amx_transpose_conjtfp16 ()
-{
- __tilecfg_u cfg;
- __tile src, dst, ref;
- uint8_t tmp_dst_buf[1024];
-
- init_fp16_max_tile_buffer (tmp_dst_buf);
- init_tile_config (&cfg);
- init_tile_reg_and_src_with_buffer (1, dst, tmp_dst_buf);
- init_tile_reg_and_src_with_buffer (2, src, tmp_dst_buf);
-
- /* Check tconjtfp16. */
- calc_matrix_conjtfp16 (&dst, &src);
- _tile_conjtfp16 (1, 2);
- _tile_stored (1, ref.buf, _STRIDE);
-
- if (!check_tile_register (&ref, &dst))
- abort ();
-}
diff --git a/gcc/testsuite/gcc.target/i386/amxtranspose-tcmmimfp16ps-2.c b/gcc/testsuite/gcc.target/i386/amxtranspose-tcmmimfp16ps-2.c
deleted file mode 100644
index e2a0f10..0000000
--- a/gcc/testsuite/gcc.target/i386/amxtranspose-tcmmimfp16ps-2.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* { dg-do run { target { ! ia32 } } } */
-/* { dg-require-effective-target amx_transpose } */
-/* { dg-require-effective-target amx_complex } */
-/* { dg-require-effective-target avx512fp16 } */
-/* { dg-options "-O2 -mamx-transpose -mamx-complex -mavx512fp16" } */
-#define AMX_TRANSPOSE
-#define AMX_COMPLEX
-#define DO_TEST test_amx_transpose_tcmmimfp16ps
-void test_amx_transpose_tcmmimfp16ps ();
-#include "amx-helper.h"
-
-void calc_matrix_tcmmimfp16ps (__tile *dst, __tile *src1, __tile *src2)
-{
- uint16_t *src1_buf = (uint16_t *) src1->buf;
- uint16_t *src2_buf = (uint16_t *) src2->buf;
- float *dst_buf = (float *) dst->buf;
-
- int K = src1->rows;
- int M = src1->colsb / 4;
- int N = src2->colsb / 4;
- int m, k, n, t;
-
- for (m = 0; m < M; m++)
- for (k = 0; k < K; k++)
- for (n = 0; n < N; n++)
- for (t = 0; t < 2; t+=2)
- dst_buf[m * N + n] +=
- (make_fp16_f32(src1_buf[k * 2 * M + 2 * m + t]) *
- make_fp16_f32(src2_buf[k * 2 * N + 2 * n + t + 1])) +
- (make_fp16_f32(src1_buf[k * 2 * M + 2 * m + t + 1]) *
- make_fp16_f32(src2_buf[k * 2 * N + 2 * n + t]));
-}
-
-void test_amx_transpose_tcmmimfp16ps ()
-{
- __tilecfg_u cfg;
- __tile dst, dst_ref, src1, src2;
- uint8_t tmp_dst_buf[1024], tmp_dst_zero_buf[1024];
-
- init_fp16_max_tile_buffer (tmp_dst_buf);
- init_fp16_max_tile_zero_buffer (tmp_dst_zero_buf);
-
- init_tile_config (&cfg);
- init_tile_reg_and_src_with_buffer (1, dst, tmp_dst_zero_buf);
- init_tile_reg_and_src_with_buffer (2, src1, tmp_dst_buf);
- init_tile_reg_and_src_with_buffer (3, src2, tmp_dst_buf);
-
- calc_matrix_tcmmimfp16ps (&dst, &src1, &src2);
-
- _tile_tcmmimfp16ps (1, 2, 3);
- _tile_stored (1, dst_ref.buf, _STRIDE);
-
- if (!check_tile_register (&dst_ref, &dst))
- abort ();
-}
diff --git a/gcc/testsuite/gcc.target/i386/amxtranspose-tcmmrlfp16ps-2.c b/gcc/testsuite/gcc.target/i386/amxtranspose-tcmmrlfp16ps-2.c
deleted file mode 100644
index b09186c..0000000
--- a/gcc/testsuite/gcc.target/i386/amxtranspose-tcmmrlfp16ps-2.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* { dg-do run { target { ! ia32 } } } */
-/* { dg-require-effective-target amx_transpose } */
-/* { dg-require-effective-target amx_complex } */
-/* { dg-require-effective-target avx512fp16 } */
-/* { dg-options "-O2 -mamx-transpose -mamx-complex -mavx512fp16" } */
-#define AMX_TRANSPOSE
-#define AMX_COMPLEX
-#define DO_TEST test_amx_transpose_tcmmrlfp16ps
-void test_amx_transpose_tcmmrlfp16ps ();
-#include "amx-helper.h"
-
-void calc_matrix_tcmmrlfp16ps (__tile *dst, __tile *src1, __tile *src2)
-{
- uint16_t *src1_buf = (uint16_t *) src1->buf;
- uint16_t *src2_buf = (uint16_t *) src2->buf;
- float *dst_buf = (float *) dst->buf;
-
- int K = src1->rows;
- int M = src1->colsb / 4;
- int N = src2->colsb / 4;
- int m, k, n, t;
-
- for (m = 0; m < M; m++)
- for (k = 0; k < K; k++)
- for (n = 0; n < N; n++)
- for (t = 0; t < 2; t+=2)
- dst_buf[m * N + n] +=
- (make_fp16_f32(src1_buf[k * 2 * M + 2 * m + t]) *
- make_fp16_f32(src2_buf[k * 2 * N + 2 * n + t])) -
- (make_fp16_f32(src1_buf[k * 2 * M + 2 * m + t + 1]) *
- make_fp16_f32(src2_buf[k * 2 * N + 2 * n + t + 1]));
-}
-
-void test_amx_transpose_tcmmrlfp16ps ()
-{
- __tilecfg_u cfg;
- __tile dst, dst_ref, src1, src2;
- uint8_t tmp_dst_buf[1024], tmp_dst_zero_buf[1024];
-
- init_fp16_max_tile_buffer (tmp_dst_buf);
- init_fp16_max_tile_zero_buffer (tmp_dst_zero_buf);
-
- init_tile_config (&cfg);
- init_tile_reg_and_src_with_buffer (1, dst, tmp_dst_zero_buf);
- init_tile_reg_and_src_with_buffer (2, src1, tmp_dst_buf);
- init_tile_reg_and_src_with_buffer (3, src2, tmp_dst_buf);
-
- calc_matrix_tcmmrlfp16ps (&dst, &src1, &src2);
-
- _tile_tcmmrlfp16ps (1, 2, 3);
- _tile_stored (1, dst_ref.buf, _STRIDE);
-
- if (!check_tile_register (&dst_ref, &dst))
- abort ();
-}
diff --git a/gcc/testsuite/gcc.target/i386/amxtranspose-tdpbf16ps-2.c b/gcc/testsuite/gcc.target/i386/amxtranspose-tdpbf16ps-2.c
deleted file mode 100644
index 6a3226b..0000000
--- a/gcc/testsuite/gcc.target/i386/amxtranspose-tdpbf16ps-2.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* { dg-do run { target { ! ia32 } } } */
-/* { dg-require-effective-target amx_transpose } */
-/* { dg-require-effective-target amx_bf16 } */
-/* { dg-options "-O2 -mamx-transpose -mamx-bf16 -mavx512bf16" } */
-#define AMX_TRANSPOSE
-#define AMX_BF16
-#define DO_TEST test_amx_transpose_tdpbf16ps
-void test_amx_transpose_tdpbf16ps ();
-#include "amx-helper.h"
-
-void calc_matrix_tdpbf16ps(__tile *dst, __tile *src1, __tile *src2)
-{
- uint16_t *src1_buf = (uint16_t *) src1->buf;
- uint16_t *src2_buf = (uint16_t *) src2->buf;
- float *dst_buf = (float *) dst->buf;
-
- int K = src1->rows;
- int M = src1->colsb / 4;
- int N = src2->colsb / 4;
- int m, k, n, t;
-
- for (m = 0; m < M; m++)
- for (k = 0; k < K; k++)
- for (n = 0; n < N; n++)
- for (t = 0; t < 2; t+=2)
- dst_buf[m * N + n] +=
- (make_bf16_f32 (src1_buf[k * 2 * M + 2 * m + t]) *
- make_bf16_f32 (src2_buf[k * 2 * N + 2 * n + t])) +
- (make_bf16_f32 (src1_buf[k * 2 * M + 2 * m + t + 1]) *
- make_bf16_f32 (src2_buf[k * 2 * N + 2 * n + t + 1]));
-}
-
-void test_amx_transpose_tdpbf16ps ()
-{
- __tilecfg_u cfg;
- __tile dst, dst_ref, src1, src2;
- uint8_t tmp_dst_buf[1024];
-
- init_bf16_max_tile_buffer (tmp_dst_buf);
-
- init_tile_config (&cfg);
- init_tile_reg_and_src_with_buffer (1, dst, tmp_dst_buf);
- init_tile_reg_and_src_with_buffer (2, src1, tmp_dst_buf);
- init_tile_reg_and_src_with_buffer (3, src2, tmp_dst_buf);
-
- calc_matrix_tdpbf16ps (&dst, &src1, &src2);
-
- _tile_tdpbf16ps (1, 2, 3);
- _tile_stored (1, dst_ref.buf, _STRIDE);
-
- if (!check_float_tile_register (&dst_ref, &dst))
- abort ();
-}
diff --git a/gcc/testsuite/gcc.target/i386/amxtranspose-tdpfp16ps-2.c b/gcc/testsuite/gcc.target/i386/amxtranspose-tdpfp16ps-2.c
deleted file mode 100644
index 83c3715..0000000
--- a/gcc/testsuite/gcc.target/i386/amxtranspose-tdpfp16ps-2.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* { dg-do run { target { ! ia32 } } } */
-/* { dg-require-effective-target amx_transpose } */
-/* { dg-require-effective-target amx_fp16 } */
-/* { dg-require-effective-target avx512fp16 } */
-/* { dg-options "-O2 -mamx-transpose -mamx-fp16 -mavx512fp16" } */
-#define AMX_TRANSPOSE
-#define AMX_FP16
-#define DO_TEST test_amx_transpose_tdpfp16ps
-void test_amx_transpose_tdpfp16ps ();
-#include "amx-helper.h"
-
-void calc_matrix_tdpfp16ps(__tile *dst, __tile *src1, __tile *src2)
-{
- uint16_t *src1_buf = (uint16_t *) src1->buf;
- uint16_t *src2_buf = (uint16_t *) src2->buf;
- float *dst_buf = (float *) dst->buf;
-
- int K = src1->rows;
- int M = src1->colsb / 4;
- int N = src2->colsb / 4;
- int m, k, n, t;
-
- for (m = 0; m < M; m++)
- for (k = 0; k < K; k++)
- for (n = 0; n < N; n++)
- for (t = 0; t < 2; t+=2)
- dst_buf[m * N + n] +=
- (make_fp16_f32 (src1_buf[k * 2 * M + 2 * m + t]) *
- make_fp16_f32 (src2_buf[k * 2 * N + 2 * n + t])) +
- (make_fp16_f32 (src1_buf[k * 2 * M + 2 * m + t + 1]) *
- make_fp16_f32 (src2_buf[k * 2 * N + 2 * n + t + 1]));
-}
-
-void test_amx_transpose_tdpfp16ps ()
-{
- __tilecfg_u cfg;
- __tile dst, dst_ref, src1, src2;
- uint8_t tmp_dst_buf[1024], tmp_dst_zero_buf[1024];
-
- init_fp16_max_tile_buffer (tmp_dst_buf);
- init_fp16_max_tile_zero_buffer(tmp_dst_zero_buf);
-
- init_tile_config (&cfg);
- init_tile_reg_and_src_with_buffer (1, dst, tmp_dst_zero_buf);
- init_tile_reg_and_src_with_buffer (2, src1, tmp_dst_buf);
- init_tile_reg_and_src_with_buffer (3, src2, tmp_dst_buf);
-
- calc_matrix_tdpfp16ps (&dst, &src1, &src2);
-
- _tile_tdpfp16ps (1, 2, 3);
- _tile_stored (1, dst_ref.buf, _STRIDE);
-
- if (!check_float_tile_register (&dst_ref, &dst))
- abort ();
-}
diff --git a/gcc/testsuite/gcc.target/i386/amxtranspose-tmmultf32ps-2.c b/gcc/testsuite/gcc.target/i386/amxtranspose-tmmultf32ps-2.c
deleted file mode 100644
index 44166c1..0000000
--- a/gcc/testsuite/gcc.target/i386/amxtranspose-tmmultf32ps-2.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* { dg-do run { target { ! ia32 } } } */
-/* { dg-require-effective-target amx_transpose } */
-/* { dg-require-effective-target amx_tf32 } */
-/* { dg-options "-O2 -mamx-transpose -mamx-tf32" } */
-#define AMX_TRANSPOSE
-#define AMX_TF32
-#define DO_TEST test_amx_transpose_tmmultf32ps
-void test_amx_transpose_tmmultf32ps();
-#include "amx-helper.h"
-
-void calc_matrix_tmmultf32ps(__tile *dst, __tile *src1, __tile *src2)
-{
- float *src1_buf = (float *) src1->buf;
- float *src2_buf = (float *) src2->buf;
- float *dst_buf = (float *) dst->buf;
-
- int K = src1->rows;
- int M = src1->colsb / 4;
- int N = src2->colsb / 4;
- int m, n, k;
-
- for (m = 0; m < M; m++)
- for (k = 0; k < K; k++)
- for (n = 0; n < N; n++)
- dst_buf[m * N + n] +=
- zero_lower_mantissa_bits_fp32 (silence_snan_fp32 (src1_buf[k * M + m])) *
- zero_lower_mantissa_bits_fp32 (silence_snan_fp32 (src2_buf[k * N + n]));
-
-}
-
-void test_amx_transpose_tmmultf32ps ()
-{
- __tilecfg_u cfg;
- __tile dst, dst_ref, src1, src2;
- uint8_t tmp_dst_buf[1024];
-
- init_fp32_max_tile_buffer (tmp_dst_buf);
-
- init_tile_config (&cfg);
- init_tile_reg_and_src_with_buffer (1, dst, tmp_dst_buf);
- init_tile_reg_and_src_with_buffer (2, src1, tmp_dst_buf);
- init_tile_reg_and_src_with_buffer (3, src2, tmp_dst_buf);
-
- calc_matrix_tmmultf32ps (&dst, &src1, &src2);
-
- _tile_tmmultf32ps (1, 2, 3);
- _tile_stored (1, dst_ref.buf, _STRIDE);
-
- if (!check_tile_register (&dst_ref, &dst))
- abort ();
-}
diff --git a/gcc/testsuite/gcc.target/i386/amxtranspose-transposed-2.c b/gcc/testsuite/gcc.target/i386/amxtranspose-transposed-2.c
deleted file mode 100644
index 73c709c..0000000
--- a/gcc/testsuite/gcc.target/i386/amxtranspose-transposed-2.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* { dg-do run { target { ! ia32 } } } */
-/* { dg-require-effective-target amx_transpose } */
-/* { dg-options "-O2 -mamx-transpose" } */
-#define AMX_TRANSPOSE
-#define DO_TEST test_amx_transpose_transposed
-void test_amx_transpose_transposed ();
-#include "amx-helper.h"
-
-void calc_matrix_ttransposed (__tile *dst, __tile *src)
-{
- uint32_t *src_buf = (uint32_t *) src->buf;
- uint32_t *dst_buf = (uint32_t *) dst->buf;
-
- int M = src->rows;
- int N = src->colsb / 4;
- int i, j;
-
- for (i = 0; i < M; i++)
- for (j = 0; j < N; j++)
- dst_buf[j * M + i] = (uint32_t) src_buf[i * N + j];
-}
-
-void test_amx_transpose_transposed ()
-{
- __tilecfg_u cfg;
- __tile src, dst, ref;
-
- init_tile_config (&cfg);
- init_tile_reg_and_src (1, dst);
- init_tile_reg_and_src (2, src);
-
- /* Check ttransposed. */
- calc_matrix_ttransposed (&dst, &src);
- _tile_transposed (1, 2);
- _tile_stored (1, ref.buf, _STRIDE);
-
- if (!check_tile_register (&ref, &dst))
- abort ();
-}
diff --git a/gcc/testsuite/gcc.target/i386/funcspec-56.inc b/gcc/testsuite/gcc.target/i386/funcspec-56.inc
index e462ead..3d9af7a 100644
--- a/gcc/testsuite/gcc.target/i386/funcspec-56.inc
+++ b/gcc/testsuite/gcc.target/i386/funcspec-56.inc
@@ -90,7 +90,6 @@ extern void test_user_msr (void) __attribute__((__target__("usermsr")));
extern void test_avx10_2 (void) __attribute__((__target__("avx10.2")));
extern void test_amx_avx512 (void) __attribute__((__target__("amx-avx512")));
extern void test_amx_tf32 (void) __attribute__((__target__("amx-tf32")));
-extern void test_amx_transpose (void) __attribute__((__target__("amx-transpose")));
extern void test_amx_fp8 (void) __attribute__((__target__("amx-fp8")));
extern void test_movrs (void) __attribute__((__target__("movrs")));
extern void test_amx_movrs (void) __attribute__((__target__("amx-movrs")));
@@ -185,7 +184,6 @@ extern void test_no_user_msr (void) __attribute__((__target__("no-usermsr")));
extern void test_no_avx10_2 (void) __attribute__((__target__("no-avx10.2")));
extern void test_no_amx_avx512 (void) __attribute__((__target__("no-amx-avx512")));
extern void test_no_amx_tf32 (void) __attribute__((__target__("no-amx-tf32")));
-extern void test_no_amx_transpose (void) __attribute__((__target__("no-amx-transpose")));
extern void test_no_amx_fp8 (void) __attribute__((__target__("no-amx-fp8")));
extern void test_no_movrs (void) __attribute__((__target__("no-movrs")));
extern void test_no_amx_movrs (void) __attribute__((__target__("no-amx-movrs")));
diff --git a/gcc/testsuite/gcc.target/i386/sse-12.c b/gcc/testsuite/gcc.target/i386/sse-12.c
index cabccb0..fc406b0 100644
--- a/gcc/testsuite/gcc.target/i386/sse-12.c
+++ b/gcc/testsuite/gcc.target/i386/sse-12.c
@@ -3,7 +3,7 @@
popcntintrin.h gfniintrin.h and mm_malloc.h are usable
with -O -std=c89 -pedantic-errors. */
/* { dg-do compile } */
-/* { dg-options "-O -std=c89 -pedantic-errors -march=k8 -msse4a -m3dnow -mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -mabm -mlzcnt -mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -mfma -mrtm -mrdseed -mprfchw -madx -mfxsr -mxsaveopt -msha -mxsavec -mxsaves -mclflushopt -mclwb -mmwaitx -mclzero -mpku -msgx -mrdpid -mgfni -mpconfig -mwbnoinvd -menqcmd -mavx512vp2intersect -mserialize -mtsxldtrk -mamx-tile -mamx-int8 -mamx-bf16 -mkl -mwidekl -mavxvnni -mavxifma -mavxvnniint8 -mavxneconvert -mamx-fp16 -mraoint -mamx-complex -mavxvnniint16 -msm3 -msha512 -msm4 -mavx10.2 -mamx-avx512 -mamx-tf32 -mamx-transpose -mamx-fp8 -mmovrs -mamx-movrs" } */
+/* { dg-options "-O -std=c89 -pedantic-errors -march=k8 -msse4a -m3dnow -mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -mabm -mlzcnt -mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -mfma -mrtm -mrdseed -mprfchw -madx -mfxsr -mxsaveopt -msha -mxsavec -mxsaves -mclflushopt -mclwb -mmwaitx -mclzero -mpku -msgx -mrdpid -mgfni -mpconfig -mwbnoinvd -menqcmd -mavx512vp2intersect -mserialize -mtsxldtrk -mamx-tile -mamx-int8 -mamx-bf16 -mkl -mwidekl -mavxvnni -mavxifma -mavxvnniint8 -mavxneconvert -mamx-fp16 -mraoint -mamx-complex -mavxvnniint16 -msm3 -msha512 -msm4 -mavx10.2 -mamx-avx512 -mamx-tf32 -mamx-fp8 -mmovrs -mamx-movrs" } */
#include <x86intrin.h>
diff --git a/gcc/testsuite/gcc.target/i386/sse-13.c b/gcc/testsuite/gcc.target/i386/sse-13.c
index 189e19e..7541956 100644
--- a/gcc/testsuite/gcc.target/i386/sse-13.c
+++ b/gcc/testsuite/gcc.target/i386/sse-13.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -Werror-implicit-function-declaration -march=k8 -msse4a -m3dnow -mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -mabm -mlzcnt -mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -mfma -mrtm -mrdseed -mprfchw -madx -mfxsr -mxsaveopt -msha -mxsavec -mxsaves -mclflushopt -mavx512vp2intersect -mclwb -mmwaitx -mclzero -mpku -msgx -mrdpid -mgfni -mpconfig -mwbnoinvd -menqcmd -mserialize -mtsxldtrk -mamx-tile -mamx-int8 -mamx-bf16 -mkl -mwidekl -mavxvnni -mavxifma -mavxvnniint8 -mavxneconvert -mcmpccxadd -mamx-fp16 -mprefetchi -mraoint -mamx-complex -mavxvnniint16 -msm3 -msha512 -msm4 -mavx10.2 -mamx-avx512 -mamx-tf32 -mamx-transpose -mamx-fp8 -mmovrs -mamx-movrs" } */
+/* { dg-options "-O2 -Werror-implicit-function-declaration -march=k8 -msse4a -m3dnow -mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -mabm -mlzcnt -mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -mfma -mrtm -mrdseed -mprfchw -madx -mfxsr -mxsaveopt -msha -mxsavec -mxsaves -mclflushopt -mavx512vp2intersect -mclwb -mmwaitx -mclzero -mpku -msgx -mrdpid -mgfni -mpconfig -mwbnoinvd -menqcmd -mserialize -mtsxldtrk -mamx-tile -mamx-int8 -mamx-bf16 -mkl -mwidekl -mavxvnni -mavxifma -mavxvnniint8 -mavxneconvert -mcmpccxadd -mamx-fp16 -mprefetchi -mraoint -mamx-complex -mavxvnniint16 -msm3 -msha512 -msm4 -mavx10.2 -mamx-avx512 -mamx-tf32 -mamx-fp8 -mmovrs -mamx-movrs" } */
/* { dg-add-options bind_pic_locally } */
#include <mm_malloc.h>
diff --git a/gcc/testsuite/gcc.target/i386/sse-14.c b/gcc/testsuite/gcc.target/i386/sse-14.c
index f3b7c112..1e86c75 100644
--- a/gcc/testsuite/gcc.target/i386/sse-14.c
+++ b/gcc/testsuite/gcc.target/i386/sse-14.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O0 -Werror-implicit-function-declaration -march=k8 -msse4a -m3dnow -mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -mabm -mlzcnt -mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -mfma -mrtm -mrdseed -mprfchw -madx -mfxsr -mxsaveopt -msha -mxsavec -mxsaves -mclflushopt -mclwb -mmwaitx -mclzero -mpku -msgx -mrdpid -mgfni -mpconfig -mwbnoinvd -menqcmd -mavx512vp2intersect -mserialize -mtsxldtrk -mamx-tile -mamx-int8 -mamx-bf16 -mkl -mwidekl -mavxvnni -mavxifma -mavxvnniint8 -mavxneconvert -mamx-fp16 -mraoint -mamx-complex -mavxvnniint16 -msm3 -msha512 -msm4 -mavx10.2 -mamx-avx512 -mamx-tf32 -mamx-transpose -mamx-fp8 -mmovrs -mamx-movrs" } */
+/* { dg-options "-O0 -Werror-implicit-function-declaration -march=k8 -msse4a -m3dnow -mavx -mavx2 -mfma4 -mxop -maes -mpclmul -mpopcnt -mabm -mlzcnt -mbmi -mbmi2 -mtbm -mlwp -mfsgsbase -mrdrnd -mf16c -mfma -mrtm -mrdseed -mprfchw -madx -mfxsr -mxsaveopt -msha -mxsavec -mxsaves -mclflushopt -mclwb -mmwaitx -mclzero -mpku -msgx -mrdpid -mgfni -mpconfig -mwbnoinvd -menqcmd -mavx512vp2intersect -mserialize -mtsxldtrk -mamx-tile -mamx-int8 -mamx-bf16 -mkl -mwidekl -mavxvnni -mavxifma -mavxvnniint8 -mavxneconvert -mamx-fp16 -mraoint -mamx-complex -mavxvnniint16 -msm3 -msha512 -msm4 -mavx10.2 -mamx-avx512 -mamx-tf32 -mamx-fp8 -mmovrs -mamx-movrs" } */
/* { dg-add-options bind_pic_locally } */
#include <mm_malloc.h>
diff --git a/gcc/testsuite/gcc.target/i386/sse-22.c b/gcc/testsuite/gcc.target/i386/sse-22.c
index 0cb0368..418fe23 100644
--- a/gcc/testsuite/gcc.target/i386/sse-22.c
+++ b/gcc/testsuite/gcc.target/i386/sse-22.c
@@ -103,7 +103,7 @@
#ifndef DIFFERENT_PRAGMAS
-#pragma GCC target ("sse4a,3dnow,avx,avx2,fma4,xop,aes,pclmul,popcnt,abm,lzcnt,bmi,bmi2,tbm,lwp,fsgsbase,rdrnd,f16c,rtm,rdseed,prfchw,adx,fxsr,xsaveopt,sha,gfni,avx512vp2intersect,serialize,tsxldtrk,amx-tile,amx-int8,amx-bf16,kl,widekl,avxvnni,avxifma,avxvnniint8,avxneconvert,amx-fp16,raoint,amx-complex,avxvnniint16,sm3,sha512,sm4,avx10.2,amx-avx512,amx-tf32,amx-transpose,amx-fp8,movrs,amx-movrs")
+#pragma GCC target ("sse4a,3dnow,avx,avx2,fma4,xop,aes,pclmul,popcnt,abm,lzcnt,bmi,bmi2,tbm,lwp,fsgsbase,rdrnd,f16c,rtm,rdseed,prfchw,adx,fxsr,xsaveopt,sha,gfni,avx512vp2intersect,serialize,tsxldtrk,amx-tile,amx-int8,amx-bf16,kl,widekl,avxvnni,avxifma,avxvnniint8,avxneconvert,amx-fp16,raoint,amx-complex,avxvnniint16,sm3,sha512,sm4,avx10.2,amx-avx512,amx-tf32,amx-fp8,movrs,amx-movrs")
#endif
/* Following intrinsics require immediate arguments. They
@@ -220,7 +220,7 @@ test_4 (_mm_cmpestrz, int, __m128i, int, __m128i, int, 1)
/* immintrin.h (AVX/AVX2/RDRND/FSGSBASE/F16C/RTM/AVX512F/SHA) */
#ifdef DIFFERENT_PRAGMAS
-#pragma GCC target ("avx,avx2,rdrnd,fsgsbase,f16c,rtm,sha,gfni,avx512vp2intersect,serialize,tsxldtrk,amx-tile,amx-int8,amx-bf16,kl,widekl,avxvnni,avxifma,avxvnniint8,avxneconvert,amx-fp16,raoint,amx-complex,avxvnniint16,sm3,sha512,sm4,avx10.2,amx-avx512,amx-tf32,amx-transpose,amx-fp8,movrs,amx-movrs")
+#pragma GCC target ("avx,avx2,rdrnd,fsgsbase,f16c,rtm,sha,gfni,avx512vp2intersect,serialize,tsxldtrk,amx-tile,amx-int8,amx-bf16,kl,widekl,avxvnni,avxifma,avxvnniint8,avxneconvert,amx-fp16,raoint,amx-complex,avxvnniint16,sm3,sha512,sm4,avx10.2,amx-avx512,amx-tf32,amx-fp8,movrs,amx-movrs")
#endif
#include <immintrin.h>
test_1 (_cvtss_sh, unsigned short, float, 1)
diff --git a/gcc/testsuite/gcc.target/i386/sse-23.c b/gcc/testsuite/gcc.target/i386/sse-23.c
index 95db1f7..f9b0613 100644
--- a/gcc/testsuite/gcc.target/i386/sse-23.c
+++ b/gcc/testsuite/gcc.target/i386/sse-23.c
@@ -895,6 +895,6 @@
#define __builtin_ia32_minmaxsh_mask_round(A, B, C, D, E, F) __builtin_ia32_minmaxsh_mask_round (A, B, 100, D, E, 4)
#define __builtin_ia32_minmaxss_mask_round(A, B, C, D, E, F) __builtin_ia32_minmaxss_mask_round (A, B, 100, D, E, 4)
-#pragma GCC target ("sse4a,3dnow,avx,avx2,fma4,xop,aes,pclmul,popcnt,abm,lzcnt,bmi,bmi2,tbm,lwp,fsgsbase,rdrnd,f16c,fma,rtm,rdseed,prfchw,adx,fxsr,xsaveopt,sha,xsavec,xsaves,clflushopt,clwb,mwaitx,clzero,pku,sgx,rdpid,gfni,vpclmulqdq,pconfig,wbnoinvd,enqcmd,avx512vp2intersect,serialize,tsxldtrk,amx-tile,amx-int8,amx-bf16,kl,widekl,avxvnni,avxifma,avxvnniint8,avxneconvert,cmpccxadd,amx-fp16,prefetchi,raoint,amx-complex,avxvnniint16,sm3,sha512,sm4,avx10.2,amx-avx512,amx-tf32,amx-transpose,amx-fp8,movrs,amx-movrs")
+#pragma GCC target ("sse4a,3dnow,avx,avx2,fma4,xop,aes,pclmul,popcnt,abm,lzcnt,bmi,bmi2,tbm,lwp,fsgsbase,rdrnd,f16c,fma,rtm,rdseed,prfchw,adx,fxsr,xsaveopt,sha,xsavec,xsaves,clflushopt,clwb,mwaitx,clzero,pku,sgx,rdpid,gfni,vpclmulqdq,pconfig,wbnoinvd,enqcmd,avx512vp2intersect,serialize,tsxldtrk,amx-tile,amx-int8,amx-bf16,kl,widekl,avxvnni,avxifma,avxvnniint8,avxneconvert,cmpccxadd,amx-fp16,prefetchi,raoint,amx-complex,avxvnniint16,sm3,sha512,sm4,avx10.2,amx-avx512,amx-tf32,amx-fp8,movrs,amx-movrs")
#include <x86intrin.h>
diff --git a/gcc/testsuite/gcc.target/riscv/add-synthesis-1.c b/gcc/testsuite/gcc.target/riscv/add-synthesis-1.c
index 247096c..982b2fa 100644
--- a/gcc/testsuite/gcc.target/riscv/add-synthesis-1.c
+++ b/gcc/testsuite/gcc.target/riscv/add-synthesis-1.c
@@ -25,7 +25,7 @@ T (4100)
T (8200)
TM (2049)
-TM (4096)
+TM (4094)
TM (4100)
TM (8200)
diff --git a/gcc/testsuite/gcc.target/riscv/pr120674.c b/gcc/testsuite/gcc.target/riscv/pr120674.c
new file mode 100644
index 0000000..ec8835f
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/pr120674.c
@@ -0,0 +1,6 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-g -w -march=rv32gcv -mabi=ilp32" { target rv32 } } */
+/* { dg-additional-options "-g -w -march=rv64gcv -mabi=lp64d" { target rv64 } } */
+
+#pragma riscv intrinsic "vector"
+void GB_AxB_saxpy5_unrolled_rvv() { vfloat64m8_t vc; }
diff --git a/gcc/testsuite/gcc.target/riscv/pr120811.c b/gcc/testsuite/gcc.target/riscv/pr120811.c
index c28e5ec..b8a7347d 100644
--- a/gcc/testsuite/gcc.target/riscv/pr120811.c
+++ b/gcc/testsuite/gcc.target/riscv/pr120811.c
@@ -38,5 +38,4 @@ void q() {
}
/* { dg-final { scan-rtl-dump-not "const_sum_of_two_s12" "reload" } } */
/* { dg-final { scan-rtl-dump-not "const_sum_of_two_s12" "late_combine2" } } */
-/* { dg-final { scan-assembler "addi.*sp,2047\n\tl\[dw\]\t.*,1\(.*\).*" } } */
-
+/* { dg-final { scan-assembler "addi.*\[ats\]\[0-9\]*,sp,\[0-9\]*\n\tld\t.*,2047\(.*\).*" } } */
diff --git a/gcc/testsuite/gcc.target/riscv/predef-profiles-1.c b/gcc/testsuite/gcc.target/riscv/predef-profiles-1.c
new file mode 100644
index 0000000..5fc17ab
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/predef-profiles-1.c
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rvi20u64 -mabi=lp64" } */
+
+int main () {
+
+#ifndef __riscv_rvi20u64
+#error "__riscv_rvi20u64"
+#endif
+
+ return 0;
+} \ No newline at end of file
diff --git a/gcc/testsuite/gcc.target/riscv/predef-profiles-2.c b/gcc/testsuite/gcc.target/riscv/predef-profiles-2.c
new file mode 100644
index 0000000..86f2771
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/predef-profiles-2.c
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rvi20u32 -mabi=ilp32" } */
+
+int main () {
+
+#ifndef __riscv_rvi20u32
+#error "__riscv_rvi20u32"
+#endif
+
+ return 0;
+} \ No newline at end of file
diff --git a/gcc/testsuite/gcc.target/riscv/predef-profiles-3.c b/gcc/testsuite/gcc.target/riscv/predef-profiles-3.c
new file mode 100644
index 0000000..7787549
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/predef-profiles-3.c
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rva20u64 -mabi=lp64d" } */
+
+int main () {
+
+#ifndef __riscv_rva20u64
+#error "__riscv_rva20u64"
+#endif
+
+ return 0;
+} \ No newline at end of file
diff --git a/gcc/testsuite/gcc.target/riscv/predef-profiles-4.c b/gcc/testsuite/gcc.target/riscv/predef-profiles-4.c
new file mode 100644
index 0000000..abb20b7
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/predef-profiles-4.c
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rva22u64 -mabi=lp64d" } */
+
+int main () {
+
+#ifndef __riscv_rva22u64
+#error "__riscv_rva22u64"
+#endif
+
+ return 0;
+} \ No newline at end of file
diff --git a/gcc/testsuite/gcc.target/riscv/predef-profiles-5.c b/gcc/testsuite/gcc.target/riscv/predef-profiles-5.c
new file mode 100644
index 0000000..0840cdc
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/predef-profiles-5.c
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rva23u64 -mabi=lp64d" } */
+
+int main () {
+
+#ifndef __riscv_rva23u64
+#error "__riscv_rva23u64"
+#endif
+
+ return 0;
+} \ No newline at end of file
diff --git a/gcc/testsuite/gcc.target/riscv/predef-profiles-6.c b/gcc/testsuite/gcc.target/riscv/predef-profiles-6.c
new file mode 100644
index 0000000..7159780
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/predef-profiles-6.c
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rva23s64 -mabi=lp64d" } */
+
+int main () {
+
+#ifndef __riscv_rva23s64
+#error "__riscv_rva23s64"
+#endif
+
+ return 0;
+} \ No newline at end of file
diff --git a/gcc/testsuite/gcc.target/riscv/predef-profiles-7.c b/gcc/testsuite/gcc.target/riscv/predef-profiles-7.c
new file mode 100644
index 0000000..1366159
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/predef-profiles-7.c
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rvb23u64 -mabi=lp64d" } */
+
+int main () {
+
+#ifndef __riscv_rvb23u64
+#error "__riscv_rvb23u64"
+#endif
+
+ return 0;
+} \ No newline at end of file
diff --git a/gcc/testsuite/gcc.target/riscv/predef-profiles-8.c b/gcc/testsuite/gcc.target/riscv/predef-profiles-8.c
new file mode 100644
index 0000000..c0c5003
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/predef-profiles-8.c
@@ -0,0 +1,11 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rvb23s64 -mabi=lp64d" } */
+
+int main () {
+
+#ifndef __riscv_rvb23s64
+#error "__riscv_rvb23s64"
+#endif
+
+ return 0;
+} \ No newline at end of file
diff --git a/gcc/testsuite/gcc.target/riscv/sum-of-two-s12-const-1.c b/gcc/testsuite/gcc.target/riscv/sum-of-two-s12-const-1.c
index 4d6d135..ac17ec2 100644
--- a/gcc/testsuite/gcc.target/riscv/sum-of-two-s12-const-1.c
+++ b/gcc/testsuite/gcc.target/riscv/sum-of-two-s12-const-1.c
@@ -26,7 +26,7 @@ plus3(unsigned long i)
long
minus1(unsigned long i)
{
- return i - 4096;
+ return i - 4094;
}
long
diff --git a/gcc/testsuite/gm2/iso/fail/badconst.mod b/gcc/testsuite/gm2/iso/fail/badconst.mod
new file mode 100644
index 0000000..0e58377
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/fail/badconst.mod
@@ -0,0 +1,9 @@
+MODULE badconst ;
+
+CONST
+ foo = 1 ;
+BEGIN
+ IF Foo = 1
+ THEN
+ END
+END badconst.
diff --git a/gcc/testsuite/gm2/iso/fail/badtype.mod b/gcc/testsuite/gm2/iso/fail/badtype.mod
new file mode 100644
index 0000000..9678339
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/fail/badtype.mod
@@ -0,0 +1,11 @@
+MODULE badtype ;
+
+FROM SYSTEM IMPORT TSIZE ;
+
+TYPE
+ foo = CARDINAL ;
+BEGIN
+ IF TSIZE (Foo) = 1
+ THEN
+ END
+END badtype.
diff --git a/gcc/testsuite/gm2/iso/fail/badvar.mod b/gcc/testsuite/gm2/iso/fail/badvar.mod
new file mode 100644
index 0000000..7a41706
--- /dev/null
+++ b/gcc/testsuite/gm2/iso/fail/badvar.mod
@@ -0,0 +1,7 @@
+MODULE badvar ;
+
+VAR
+ foo: CARDINAL ;
+BEGIN
+ Foo := 1
+END badvar.
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 1acfb37..4ee8d12 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -11238,17 +11238,6 @@ proc check_effective_target_amx_tf32 { } {
} "-mamx-tf32" ]
}
-# Return 1 if amx-transpose instructions can be compiled.
-proc check_effective_target_amx_transpose { } {
- return [check_no_compiler_messages amx_transpose object {
- void
- foo ()
- {
- __asm__ volatile ("ttransposed\t%%tmm1, %%tmm2" ::);
- }
- } "-mamx-transpose" ]
-}
-
# Return 1 if amx-fp8 instructions can be compiled.
proc check_effective_target_amx_fp8 { } {
return [check_no_compiler_messages amx_fp8 object {