Bug 103042 - gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-long.c etc. FAIL
Summary: gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-long.c etc. FAIL
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: testsuite (show other bugs)
Version: 12.0
: P3 normal
Target Milestone: 12.0
Assignee: Tamar Christina
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-11-02 10:00 UTC by Rainer Orth
Modified: 2021-11-11 13:10 UTC (History)
1 user (show)

See Also:
Host:
Target: sparc-sun-solaris2.11, arm-none-linux-gnueabihf
Build:
Known to work:
Known to fail:
Last reconfirmed: 2021-11-04 00:00:00


Attachments
32-bit sparc-sun-solaris2.11 bb-slp-complex-add-pattern-unsigned-long.c.175t.slp1 (5.19 KB, text/plain)
2021-11-02 10:02 UTC, Rainer Orth
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Rainer Orth 2021-11-02 10:00:37 UTC
Several of the testcases modified in

commit 4045d5fa42f2ee7b284977c8f2f0edc300a63e43
Author: Tamar Christina <tamar.christina@arm.com>
Date:   Fri Oct 29 12:47:39 2021 +0100

    middle-end: Add target independent tests for Arm complex numbers vectorization.

FAIL on Solaris/SPARC (32 and 64-bit) and ARM:

FAIL: gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-long.c -flto -ffat-lto-objects  scan-tree-dump slp1 "Found COMPLEX_ADD_ROT270"
FAIL: gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-long.c -flto -ffat-lto-objects  scan-tree-dump slp1 "Found COMPLEX_ADD_ROT90"
FAIL: gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-long.c scan-tree-dump slp1 "Found COMPLEX_ADD_ROT270"
FAIL: gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-long.c scan-tree-dump slp1 "Found COMPLEX_ADD_ROT90"
FAIL: gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-double.c scan-tree-dump slp1 "Found COMPLEX_ADD_ROT270"
FAIL: gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-double.c scan-tree-dump slp1 "Found COMPLEX_ADD_ROT90"
FAIL: gcc.dg/vect/complex/vect-complex-add-pattern-long.c -flto -ffat-lto-objects  scan-tree-dump vect "Found COMPLEX_ADD_ROT270"
FAIL: gcc.dg/vect/complex/vect-complex-add-pattern-long.c -flto -ffat-lto-objects  scan-tree-dump vect "Found COMPLEX_ADD_ROT90"
FAIL: gcc.dg/vect/complex/vect-complex-add-pattern-long.c scan-tree-dump vect "Found COMPLEX_ADD_ROT270"
FAIL: gcc.dg/vect/complex/vect-complex-add-pattern-long.c scan-tree-dump vect "Found COMPLEX_ADD_ROT90"
FAIL: gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-long.c -flto -ffat-lto-objects  scan-tree-dump vect "Found COMPLEX_ADD_ROT270"
FAIL: gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-long.c -flto -ffat-lto-objects  scan-tree-dump vect "Found COMPLEX_ADD_ROT90"
FAIL: gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-long.c scan-tree-dump vect "Found COMPLEX_ADD_ROT270"
FAIL: gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-long.c scan-tree-dump vect "Found COMPLEX_ADD_ROT90"

I'll attach one example dump for inspection.
Comment 1 Rainer Orth 2021-11-02 10:02:41 UTC
Created attachment 51721 [details]
32-bit sparc-sun-solaris2.11 bb-slp-complex-add-pattern-unsigned-long.c.175t.slp1
Comment 2 Tamar Christina 2021-11-02 10:04:49 UTC
Thanks, yeah, SLP discovery failed for all of them.

I think I should just unroll all these.
Comment 3 GCC Commits 2021-11-04 13:47:13 UTC
The master branch has been updated by Tamar Christina <tnfchris@gcc.gnu.org>:

https://gcc.gnu.org/g:5914a7b5c637c9007283226f200dcab8b745abc8

commit r12-4900-g5914a7b5c637c9007283226f200dcab8b745abc8
Author: Tamar Christina <tamar.christina@arm.com>
Date:   Thu Nov 4 13:43:36 2021 +0000

    testsuite: Add more guards to complex tests
    
    This test hopefully fixes all the remaining target specific test issues by
    
    1: Unrolling all add testcases by 16 using pragma GCC unroll
    2. On armhf use Adv.SIMD instead of MVE to test. MVE's autovec is too incomplete
       to be a general test target.
    3. Add appropriate vect_<type> and float<size> guards on testcases.
    
    gcc/testsuite/ChangeLog:
    
            PR testsuite/103042
            * gcc.dg/vect/complex/bb-slp-complex-add-pattern-int.c: Update guards.
            * gcc.dg/vect/complex/bb-slp-complex-add-pattern-long.c: Likewise.
            * gcc.dg/vect/complex/bb-slp-complex-add-pattern-short.c: Likewise.
            * gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-int.c:
            Likewise.
            * gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-long.c:
            Likewise.
            * gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-short.c:
            Likewise.
            * gcc.dg/vect/complex/complex-add-pattern-template.c: Likewise.
            * gcc.dg/vect/complex/complex-add-template.c: Likewise.
            * gcc.dg/vect/complex/complex-operations-run.c: Likewise.
            * gcc.dg/vect/complex/fast-math-bb-slp-complex-add-double.c: Likewise.
            * gcc.dg/vect/complex/fast-math-bb-slp-complex-add-float.c: Likewise.
            * gcc.dg/vect/complex/fast-math-bb-slp-complex-add-half-float.c:
            Likewise.
            * gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-double.c:
            Likewise.
            * gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-float.c:
            Likewise.
            * gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-half-float.c:
            Likewise.
            * gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-double.c: Likewise.
            * gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-float.c: Likewise.
            * gcc.dg/vect/complex/fast-math-bb-slp-complex-mla-half-float.c:
            Likewise.
            * gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-double.c: Likewise.
            * gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-float.c: Likewise.
            * gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-half-float.c:
            Likewise.
            * gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-double.c: Likewise.
            * gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-float.c: Likewise.
            * gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-half-float.c:
            Likewise.
            * gcc.dg/vect/complex/fast-math-complex-add-double.c: Likewise.
            * gcc.dg/vect/complex/fast-math-complex-add-float.c: Likewise.
            * gcc.dg/vect/complex/fast-math-complex-add-half-float.c: Likewise.
            * gcc.dg/vect/complex/fast-math-complex-add-pattern-double.c: Likewise.
            * gcc.dg/vect/complex/fast-math-complex-add-pattern-float.c: Likewise.
            * gcc.dg/vect/complex/fast-math-complex-add-pattern-half-float.c:
            Likewise.
            * gcc.dg/vect/complex/fast-math-complex-mla-double.c: Likewise.
            * gcc.dg/vect/complex/fast-math-complex-mla-float.c: Likewise.
            * gcc.dg/vect/complex/fast-math-complex-mla-half-float.c: Likewise.
            * gcc.dg/vect/complex/fast-math-complex-mls-double.c: Likewise.
            * gcc.dg/vect/complex/fast-math-complex-mls-float.c: Likewise.
            * gcc.dg/vect/complex/fast-math-complex-mls-half-float.c: Likewise.
            * gcc.dg/vect/complex/fast-math-complex-mul-double.c: Likewise.
            * gcc.dg/vect/complex/fast-math-complex-mul-float.c: Likewise.
            * gcc.dg/vect/complex/fast-math-complex-mul-half-float.c: Likewise.
            * gcc.dg/vect/complex/vect-complex-add-pattern-byte.c: Likewise.
            * gcc.dg/vect/complex/vect-complex-add-pattern-int.c: Likewise.
            * gcc.dg/vect/complex/vect-complex-add-pattern-long.c: Likewise.
            * gcc.dg/vect/complex/vect-complex-add-pattern-short.c: Likewise.
            * gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-byte.c:
            Likewise.
            * gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-int.c:
            Likewise.
            * gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-long.c:
            Likewise.
            * gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-short.c:
            Likewise.
Comment 4 Tamar Christina 2021-11-04 13:54:42 UTC
This should be fixed.
Comment 5 Rainer Orth 2021-11-05 09:33:10 UTC
Unfortunately not: while some tests were indeed fixed

* 32-bit sparc:

-FAIL: gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-double.c scan-tree-dump slp1 "Found COMPLEX_ADD_ROT270"
-FAIL: gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-double.c scan-tree-dump slp1 "Found COMPLEX_ADD_ROT90"

* 64-bit sparc:

-FAIL: gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-double.c scan-tree-dump slp1 "Found COMPLEX_ADD_ROT270"
-FAIL: gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-double.c scan-tree-dump slp1 "Found COMPLEX_ADD_ROT90"
-FAIL: gcc.dg/vect/complex/vect-complex-add-pattern-long.c -flto -ffat-lto-objects  scan-tree-dump vect "Found COMPLEX_ADD_ROT270"
-FAIL: gcc.dg/vect/complex/vect-complex-add-pattern-long.c -flto -ffat-lto-objects  scan-tree-dump vect "Found COMPLEX_ADD_ROT90"
-FAIL: gcc.dg/vect/complex/vect-complex-add-pattern-long.c scan-tree-dump vect "Found COMPLEX_ADD_ROT270"
-FAIL: gcc.dg/vect/complex/vect-complex-add-pattern-long.c scan-tree-dump vect "Found COMPLEX_ADD_ROT90"
-FAIL: gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-long.c -flto -ffat-lto-objects  scan-tree-dump vect "Found COMPLEX_ADD_ROT270"
-FAIL: gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-long.c -flto -ffat-lto-objects  scan-tree-dump vect "Found COMPLEX_ADD_ROT90"
-FAIL: gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-long.c scan-tree-dump vect "Found COMPLEX_ADD_ROT270"
-FAIL: gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-long.c scan-tree-dump vect "Found COMPLEX_ADD_ROT90"

a considerable number of failures still remains:

* 32-bit sparc:

FAIL: gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-long.c -flto -ffat-lto-objects  scan-tree-dump slp1 "Found COMPLEX_ADD_ROT270"
FAIL: gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-long.c -flto -ffat-lto-objects  scan-tree-dump slp1 "Found COMPLEX_ADD_ROT90"
FAIL: gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-long.c scan-tree-dump slp1 "Found COMPLEX_ADD_ROT270"
FAIL: gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-long.c scan-tree-dump slp1 "Found COMPLEX_ADD_ROT90"
FAIL: gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-double.c scan-tree-dump slp1 "Found COMPLEX_ADD_ROT270"
FAIL: gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-double.c scan-tree-dump slp1 "Found COMPLEX_ADD_ROT90"
FAIL: gcc.dg/vect/complex/vect-complex-add-pattern-long.c -flto -ffat-lto-objects  scan-tree-dump vect "Found COMPLEX_ADD_ROT270"
FAIL: gcc.dg/vect/complex/vect-complex-add-pattern-long.c -flto -ffat-lto-objects  scan-tree-dump vect "Found COMPLEX_ADD_ROT90"
FAIL: gcc.dg/vect/complex/vect-complex-add-pattern-long.c scan-tree-dump vect "Found COMPLEX_ADD_ROT270"
FAIL: gcc.dg/vect/complex/vect-complex-add-pattern-long.c scan-tree-dump vect "Found COMPLEX_ADD_ROT90"
FAIL: gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-long.c -flto -ffat-lto-objects  scan-tree-dump vect "Found COMPLEX_ADD_ROT270"
FAIL: gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-long.c -flto -ffat-lto-objects  scan-tree-dump vect "Found COMPLEX_ADD_ROT90"
FAIL: gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-long.c scan-tree-dump vect "Found COMPLEX_ADD_ROT270"
FAIL: gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-long.c scan-tree-dump vect "Found COMPLEX_ADD_ROT90"

* 64-bit sparc:

FAIL: gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-double.c scan-tree-dump slp1 "Found COMPLEX_ADD_ROT270"
FAIL: gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-double.c scan-tree-dump slp1 "Found COMPLEX_ADD_ROT90"
FAIL: gcc.dg/vect/complex/vect-complex-add-pattern-long.c -flto -ffat-lto-objects  scan-tree-dump vect "Found COMPLEX_ADD_ROT270"
FAIL: gcc.dg/vect/complex/vect-complex-add-pattern-long.c -flto -ffat-lto-objects  scan-tree-dump vect "Found COMPLEX_ADD_ROT90"
FAIL: gcc.dg/vect/complex/vect-complex-add-pattern-long.c scan-tree-dump vect "Found COMPLEX_ADD_ROT270"
FAIL: gcc.dg/vect/complex/vect-complex-add-pattern-long.c scan-tree-dump vect "Found COMPLEX_ADD_ROT90"
FAIL: gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-long.c -flto -ffat-lto-objects  scan-tree-dump vect "Found COMPLEX_ADD_ROT270"
FAIL: gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-long.c -flto -ffat-lto-objects  scan-tree-dump vect "Found COMPLEX_ADD_ROT90"
FAIL: gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-long.c scan-tree-dump vect "Found COMPLEX_ADD_ROT270"
FAIL: gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-long.c scan-tree-dump vect "Found COMPLEX_ADD_ROT90"
Comment 6 Tamar Christina 2021-11-05 09:37:04 UTC
ok, then I don't think sparc can vectorize these cases at all through SLP, so I will just skip them.
Comment 7 Tamar Christina 2021-11-09 10:02:26 UTC
> gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-double.c

This one running is odd, it's guarded by vect_double which doesn't match sparc-*-*-*.  That should be unresolved now.
Comment 8 GCC Commits 2021-11-10 12:06:44 UTC
The master branch has been updated by Tamar Christina <tnfchris@gcc.gnu.org>:

https://gcc.gnu.org/g:0cf6065ce4997774de66db4de83d461013e0f0e1

commit r12-5112-g0cf6065ce4997774de66db4de83d461013e0f0e1
Author: Tamar Christina <tamar.christina@arm.com>
Date:   Wed Nov 10 12:03:33 2021 +0000

    testsuite: change vect_long to vect_long_long in complex tests.
    
    These tests are still failing on SPARC and it looks like this is because I need
    to use vect_long_long instead of vect_long.
    
    gcc/testsuite/ChangeLog:
    
            PR testsuite/103042
            * gcc.dg/vect/complex/bb-slp-complex-add-pattern-long.c: Use
            vect_long_long instead of vect_long.
            * gcc.dg/vect/complex/bb-slp-complex-add-pattern-unsigned-long.c:
            Likewise.
            * gcc.dg/vect/complex/vect-complex-add-pattern-long.c: Likewise.
            * gcc.dg/vect/complex/vect-complex-add-pattern-unsigned-long.c:
            Likewise.
Comment 9 ro@CeBiTec.Uni-Bielefeld.DE 2021-11-11 12:24:45 UTC
> --- Comment #7 from Tamar Christina <tnfchris at gcc dot gnu.org> ---
>> gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-add-pattern-double.c
>
> This one running is odd, it's guarded by vect_double which doesn't match
> sparc-*-*-*.  That should be unresolved now.

Those failures existed until 20211103 and were gone by 20211105
(UNSUPPORTED; UNRESOLVED would also be bad).
Comment 10 ro@CeBiTec.Uni-Bielefeld.DE 2021-11-11 12:26:32 UTC
> --- Comment #8 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
[...]
>     testsuite: change vect_long to vect_long_long in complex tests.
>
>     These tests are still failing on SPARC and it looks like this is because I
> need
>     to use vect_long_long instead of vect_long.

Indeed: as of last night, all those tests are UNSUPPORTED on 32 and
64-bit SPARC.  Thanks.
Comment 11 Tamar Christina 2021-11-11 13:10:37 UTC
Cheers thanks for confirming