diff options
Diffstat (limited to 'gcc/testsuite')
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 { |