diff options
author | Juzhe-Zhong <juzhe.zhong@rivai.ai> | 2023-10-10 09:39:04 +0800 |
---|---|---|
committer | Lehua Ding <lehua.ding@rivai.ai> | 2023-10-10 18:23:40 +0800 |
commit | 4d230493f57dd11b8de9155b03088092f2ecea5c (patch) | |
tree | 5b0185d3544aa777f9aca0ac29ed93004d0a0f79 | |
parent | aaa5a5318adbefe87c1b781b8a3e5fc332e661ec (diff) | |
download | gcc-4d230493f57dd11b8de9155b03088092f2ecea5c.zip gcc-4d230493f57dd11b8de9155b03088092f2ecea5c.tar.gz gcc-4d230493f57dd11b8de9155b03088092f2ecea5c.tar.bz2 |
RISC-V Regression: Fix FAIL of bb-slp-pr65935.c for RVV
Here is the reference comparing dump IR between ARM SVE and RVV.
https://godbolt.org/z/zqess8Gss
We can see RVV has one more dump IR:
optimized: basic block part vectorized using 128 byte vectors
since RVV has 1024 bit vectors.
The codegen is reasonable good.
However, I saw GCN also has 1024 bit vector.
This patch may cause this case FAIL in GCN port ?
Hi, GCN folk, could you check this patch in GCN port for me ?
gcc/testsuite/ChangeLog:
* gcc.dg/vect/bb-slp-pr65935.c: Add vect1024 variant.
* lib/target-supports.exp: Ditto.
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/bb-slp-pr65935.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/lib/target-supports.exp | 6 |
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/testsuite/gcc.dg/vect/bb-slp-pr65935.c b/gcc/testsuite/gcc.dg/vect/bb-slp-pr65935.c index 8df3532..9ef1330 100644 --- a/gcc/testsuite/gcc.dg/vect/bb-slp-pr65935.c +++ b/gcc/testsuite/gcc.dg/vect/bb-slp-pr65935.c @@ -67,7 +67,8 @@ int main() /* We should also be able to use 2-lane SLP to initialize the real and imaginary components in the first loop of main. */ -/* { dg-final { scan-tree-dump-times "optimized: basic block" 10 "slp1" } } */ +/* { dg-final { scan-tree-dump-times "optimized: basic block" 10 "slp1" { target {! { vect1024 } } } } } */ +/* { dg-final { scan-tree-dump-times "optimized: basic block" 11 "slp1" { target { { vect1024 } } } } } */ /* We should see the s->phase[dir] operand splatted and no other operand built from scalars. See PR97334. */ /* { dg-final { scan-tree-dump "Using a splat" "slp1" } } */ diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index dc366d3..95c489d 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -8903,6 +8903,12 @@ proc check_effective_target_vect_variable_length { } { return [expr { [lindex [available_vector_sizes] 0] == 0 }] } +# Return 1 if the target supports vectors of 1024 bits. + +proc check_effective_target_vect1024 { } { + return [expr { [lsearch -exact [available_vector_sizes] 1024] >= 0 }] +} + # Return 1 if the target supports vectors of 512 bits. proc check_effective_target_vect512 { } { |