RISC-V Regression: Fix FAIL of vect-multitypes-16.c for RVV
Checks
Commit Message
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.
---
gcc/testsuite/gcc.dg/vect/vect-multitypes-16.c | 4 ++--
gcc/testsuite/lib/target-supports.exp | 9 +++++++++
2 files changed, 11 insertions(+), 2 deletions(-)
Comments
On 10/10/23 08:49, Juzhe-Zhong wrote:
> 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.
OK
jeff
Committed, thanks Jeff.
Pan
-----Original Message-----
From: Jeff Law <jeffreyalaw@gmail.com>
Sent: Tuesday, October 10, 2023 11:29 PM
To: Juzhe-Zhong <juzhe.zhong@rivai.ai>; gcc-patches@gcc.gnu.org
Cc: rguenther@suse.de
Subject: Re: [PATCH] RISC-V Regression: Fix FAIL of vect-multitypes-16.c for RVV
On 10/10/23 08:49, Juzhe-Zhong wrote:
> 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.
OK
jeff
@@ -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 } } } } } } */
@@ -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
#