As https://godbolt.org/z/hPsqahEa5 shows. RVV failed dump check since "vectorizing stmts using SLP" shows 3 times instead of 2.
The root cause is this code in main: if (a[0] != 1 || a[1] != 2 || a[2] != 3 || a[3] != 4 || a[4] != 7 || a[5] != 0 || a[6] != 0 || a[7] != 0 || a[8] != 0) abort (); is vectorized. So add -fno-tree-vectorize avoid the confusing check. gcc/testsuite/ChangeLog: * gcc.dg/vect/bb-slp-33.c: Add -fno-tree-vectorize to main. --- gcc/testsuite/gcc.dg/vect/bb-slp-33.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gcc/testsuite/gcc.dg/vect/bb-slp-33.c b/gcc/testsuite/gcc.dg/vect/bb-slp-33.c index bbb13ef798e..f44cbdcfbcf 100644 --- a/gcc/testsuite/gcc.dg/vect/bb-slp-33.c +++ b/gcc/testsuite/gcc.dg/vect/bb-slp-33.c @@ -17,7 +17,8 @@ test(int *__restrict__ a, int *__restrict__ b) a[8] = 0; } -int main() +int __attribute__((optimize(("-fno-tree-vectorize")))) +main() { int a[9]; int b[4]; -- 2.36.3