When GCC is able to detect vectorized test cases in the common layer, FAIL entries appear in some test cases after regression testing. The cause of the error is that the vectorization option was not set when testing the program, and the vectorization code could not be generated, so additional support for the "-mlsx" option needed to be added back on the LoongArch architecture.
gcc/testsuite/ChangeLog: * gcc.dg/signbit-2.c:Added additional "-mlsx" compilation options. * gcc.dg/tree-ssa/scev-16.c:Dito. * gfortran.dg/graphite/vect-pr40979.f90:Dito. * gfortran.dg/vect/fast-math-mgrid-resid.f:Dito. --- gcc/testsuite/gcc.dg/signbit-2.c | 1 + gcc/testsuite/gcc.dg/tree-ssa/scev-16.c | 1 + gcc/testsuite/gfortran.dg/graphite/vect-pr40979.f90 | 1 + gcc/testsuite/gfortran.dg/vect/fast-math-mgrid-resid.f | 1 + 4 files changed, 4 insertions(+) diff --git a/gcc/testsuite/gcc.dg/signbit-2.c b/gcc/testsuite/gcc.dg/signbit-2.c index 62bb4047d74..2f65df16e43 100644 --- a/gcc/testsuite/gcc.dg/signbit-2.c +++ b/gcc/testsuite/gcc.dg/signbit-2.c @@ -5,6 +5,7 @@ /* { dg-additional-options "-msse2 -mno-avx512f" { target { i?86-*-* x86_64-*-* } } } */ /* { dg-additional-options "-march=armv8-a" { target aarch64_sve } } */ /* { dg-additional-options "-maltivec" { target powerpc_altivec_ok } } */ +/* { dg-additional-options "-mlsx" { target loongarch*-*-* } } */ /* { dg-skip-if "no fallback for MVE" { arm_mve } } */ #include <stdint.h> diff --git a/gcc/testsuite/gcc.dg/tree-ssa/scev-16.c b/gcc/testsuite/gcc.dg/tree-ssa/scev-16.c index 120f40c0b6c..acaa1156419 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/scev-16.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/scev-16.c @@ -1,6 +1,7 @@ /* { dg-do compile } */ /* { dg-require-effective-target vect_int } */ /* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-details" } */ +/* { dg-additional-options "-mlsx" { target loongarch*-*-* } } */ int A[1024 * 2]; diff --git a/gcc/testsuite/gfortran.dg/graphite/vect-pr40979.f90 b/gcc/testsuite/gfortran.dg/graphite/vect-pr40979.f90 index a42290948c4..4c251aacbe3 100644 --- a/gcc/testsuite/gfortran.dg/graphite/vect-pr40979.f90 +++ b/gcc/testsuite/gfortran.dg/graphite/vect-pr40979.f90 @@ -1,6 +1,7 @@ ! { dg-do compile } ! { dg-require-effective-target vect_double } ! { dg-additional-options "-msse2" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } +! { dg-additional-options "-mlsx" { target loongarch*-*-* } } module mqc_m integer, parameter, private :: longreal = selected_real_kind(15,90) diff --git a/gcc/testsuite/gfortran.dg/vect/fast-math-mgrid-resid.f b/gcc/testsuite/gfortran.dg/vect/fast-math-mgrid-resid.f index 08965cc5e20..97b88821731 100644 --- a/gcc/testsuite/gfortran.dg/vect/fast-math-mgrid-resid.f +++ b/gcc/testsuite/gfortran.dg/vect/fast-math-mgrid-resid.f @@ -2,6 +2,7 @@ ! { dg-require-effective-target vect_double } ! { dg-options "-O3 --param vect-max-peeling-for-alignment=0 -fpredictive-commoning -fdump-tree-pcom-details -std=legacy" } ! { dg-additional-options "-mprefer-avx128" { target { i?86-*-* x86_64-*-* } } } +! { dg-additional-options "-mlsx" { target { loongarch*-*-* } } } ! { dg-additional-options "-mzarch" { target { s390*-*-* } } } ******* RESID COMPUTES THE RESIDUAL: R = V - AU -- 2.20.1