From: Juzhe-Zhong Date: Tue, 10 Oct 2023 14:49:13 +0000 (+0800) Subject: RISC-V Regression: Fix FAIL of vect-multitypes-16.c for RVV X-Git-Tag: basepoints/gcc-15~5592 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cfe89942673aeb9ee58ab1a3ae9e60ddf1c698c7;p=thirdparty%2Fgcc.git RISC-V Regression: Fix FAIL of vect-multitypes-16.c for RVV As Richard suggested: https://gcc.gnu.org/pipermail/gcc-patches/2023-October/632288.html Add vect_ext_char_longlong to fix FAIL for RVV. gcc/testsuite/ChangeLog: * gcc.dg/vect/vect-multitypes-16.c: Adapt check for RVV. * lib/target-supports.exp: Add vect_ext_char_longlong property. --- diff --git a/gcc/testsuite/gcc.dg/vect/vect-multitypes-16.c b/gcc/testsuite/gcc.dg/vect/vect-multitypes-16.c index a61f1a9a2215..fd17ad7437ed 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-multitypes-16.c +++ b/gcc/testsuite/gcc.dg/vect/vect-multitypes-16.c @@ -35,6 +35,6 @@ int main (void) return 0; } -/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_unpack } } } */ -/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" { target { ! vect_unpack } } } } */ +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { { vect_unpack } || { vect_variable_length && vect_ext_char_longlong } } } } } */ +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" { target { { ! vect_unpack } && {! { vect_variable_length && vect_ext_char_longlong } } } } } } */ diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 95c489d7f76e..b454b07359a3 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -4215,6 +4215,15 @@ proc check_effective_target_vect_floatuint_cvt { } { && [check_effective_target_riscv_v]) }}] } +# Return 1 if the target supports vector integer char -> long long extend optab +# + +proc check_effective_target_vect_ext_char_longlong { } { + return [check_cached_effective_target_indexed vect_ext_char_longlong { + expr { ([istarget riscv*-*-*] + && [check_effective_target_riscv_v]) }}] +} + # Return 1 if peeling for alignment might be profitable on the target #