public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/114072] New: gcc.dg/vect/vect-pr111779.c FAILs
@ 2024-02-23  9:58 ro at gcc dot gnu.org
  2024-05-22  9:16 ` [Bug tree-optimization/114072] " ro at gcc dot gnu.org
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: ro at gcc dot gnu.org @ 2024-02-23  9:58 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114072

            Bug ID: 114072
           Summary: gcc.dg/vect/vect-pr111779.c FAILs
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: ro at gcc dot gnu.org
                CC: rguenth at gcc dot gnu.org
  Target Milestone: ---
            Target: sparc*-sun-solaris2.11

The gcc.dg/vect/vect-pr111779.c test FAILs on 32 and 64-bit Solaris/SPARC
since its introduction:

+FAIL: gcc.dg/vect/vect-pr111779.c -flto -ffat-lto-objects  scan-tree-dump vect
"LOOP VECTORIZED"
+FAIL: gcc.dg/vect/vect-pr111779.c scan-tree-dump vect "LOOP VECTORIZED"

The dump has

/vol/gcc/src/hg/master/local/gcc/testsuite/gcc.dg/vect/vect-pr111779.c:26:17:
note:   ==> examining statement: _4 = a$b4_6 >> 7;
/vol/gcc/src/hg/master/local/gcc/testsuite/gcc.dg/vect/vect-pr111779.c:26:17:
note:   vect_is_simple_use: operand BIT_FIELD_REF <*_3.b4, 8, 64>, type of def:
internal
/vol/gcc/src/hg/master/local/gcc/testsuite/gcc.dg/vect/vect-pr111779.c:26:17:
note:   vect_is_simple_use: vectype vector(8) unsigned char
/vol/gcc/src/hg/master/local/gcc/testsuite/gcc.dg/vect/vect-pr111779.c:26:17:
note:   vect_is_simple_use: operand 7, type of def: constant
/vol/gcc/src/hg/master/local/gcc/testsuite/gcc.dg/vect/vect-pr111779.c:26:17:
missed:   op not supported by target.
/vol/gcc/src/hg/master/local/gcc/testsuite/gcc.dg/vect/vect-pr111779.c:29:23:
missed:   not vectorized: relevant stmt not supported: _4 = a$b4_6 >> 7;

but I don't know which vect_* keyword would capture this.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug tree-optimization/114072] gcc.dg/vect/vect-pr111779.c FAILs
  2024-02-23  9:58 [Bug tree-optimization/114072] New: gcc.dg/vect/vect-pr111779.c FAILs ro at gcc dot gnu.org
@ 2024-05-22  9:16 ` ro at gcc dot gnu.org
  2024-05-22  9:36 ` rguenth at gcc dot gnu.org
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: ro at gcc dot gnu.org @ 2024-05-22  9:16 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114072

--- Comment #1 from Rainer Orth <ro at gcc dot gnu.org> ---
Richard, any suggestion on how to handle this?  There are 3 instances of
"not vectorized" in the dump:

/vol/gcc/src/hg/master/local/gcc/testsuite/gcc.dg/vect/vect-pr111779.c:29:23:
missed:   not vectorized: relevant stmt not supported: _4 = a$b4_6 >> 7;
/vol/gcc/src/hg/master/local/gcc/testsuite/gcc.dg/vect/vect-pr111779.c:36:1:
missed:   not vectorized: relevant stmt not supported: _ifc__32 =
x[i_15].D.2986;
/vol/gcc/src/hg/master/local/gcc/testsuite/gcc.dg/vect/vect-pr111779.c:45:17:
missed:  not vectorized: no grouped stores in basic block.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug tree-optimization/114072] gcc.dg/vect/vect-pr111779.c FAILs
  2024-02-23  9:58 [Bug tree-optimization/114072] New: gcc.dg/vect/vect-pr111779.c FAILs ro at gcc dot gnu.org
  2024-05-22  9:16 ` [Bug tree-optimization/114072] " ro at gcc dot gnu.org
@ 2024-05-22  9:36 ` rguenth at gcc dot gnu.org
  2024-05-22 11:30 ` ro at CeBiTec dot Uni-Bielefeld.DE
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: rguenth at gcc dot gnu.org @ 2024-05-22  9:36 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114072

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
Hmm, is solaris-sparc big-endian?  It seems so.  That makes the bitfield
access require a VnQImode logical right shift (but little-endian doesn't
require it - it's actually bitfield endianess that matters).

There is vect_shift_char you could use and somehow conditionalize that
on big-endianess.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug tree-optimization/114072] gcc.dg/vect/vect-pr111779.c FAILs
  2024-02-23  9:58 [Bug tree-optimization/114072] New: gcc.dg/vect/vect-pr111779.c FAILs ro at gcc dot gnu.org
  2024-05-22  9:16 ` [Bug tree-optimization/114072] " ro at gcc dot gnu.org
  2024-05-22  9:36 ` rguenth at gcc dot gnu.org
@ 2024-05-22 11:30 ` ro at CeBiTec dot Uni-Bielefeld.DE
  2024-05-22 12:01 ` rguenther at suse dot de
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: ro at CeBiTec dot Uni-Bielefeld.DE @ 2024-05-22 11:30 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114072

--- Comment #3 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> ---
> --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
> Hmm, is solaris-sparc big-endian?  It seems so.  That makes the bitfield

It is indeed.

> access require a VnQImode logical right shift (but little-endian doesn't
> require it - it's actually bitfield endianess that matters).
>
> There is vect_shift_char you could use and somehow conditionalize that
> on big-endianess.

I think the best we can do then is

/* { dg-skip-if "PR tree-optimization/114072" { be && { ! vect_shift_char } } }
*/

Lets the test become UNSUPPORTED on 32 and 64-bit SPARC, but still PASS
as before on 32 and 64-bit x86.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug tree-optimization/114072] gcc.dg/vect/vect-pr111779.c FAILs
  2024-02-23  9:58 [Bug tree-optimization/114072] New: gcc.dg/vect/vect-pr111779.c FAILs ro at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2024-05-22 11:30 ` ro at CeBiTec dot Uni-Bielefeld.DE
@ 2024-05-22 12:01 ` rguenther at suse dot de
  2024-05-22 12:14 ` ro at CeBiTec dot Uni-Bielefeld.DE
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: rguenther at suse dot de @ 2024-05-22 12:01 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114072

--- Comment #4 from rguenther at suse dot de <rguenther at suse dot de> ---
On Wed, 22 May 2024, ro at CeBiTec dot Uni-Bielefeld.DE wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114072
> 
> --- Comment #3 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> ---
> > --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
> > Hmm, is solaris-sparc big-endian?  It seems so.  That makes the bitfield
> 
> It is indeed.
> 
> > access require a VnQImode logical right shift (but little-endian doesn't
> > require it - it's actually bitfield endianess that matters).
> >
> > There is vect_shift_char you could use and somehow conditionalize that
> > on big-endianess.
> 
> I think the best we can do then is
> 
> /* { dg-skip-if "PR tree-optimization/114072" { be && { ! vect_shift_char } } }
> */
> 
> Lets the test become UNSUPPORTED on 32 and 64-bit SPARC, but still PASS
> as before on 32 and 64-bit x86.

Can we instead guard the scan-tree-dump?  This way the correctness
execute part still is exercised?

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug tree-optimization/114072] gcc.dg/vect/vect-pr111779.c FAILs
  2024-02-23  9:58 [Bug tree-optimization/114072] New: gcc.dg/vect/vect-pr111779.c FAILs ro at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2024-05-22 12:01 ` rguenther at suse dot de
@ 2024-05-22 12:14 ` ro at CeBiTec dot Uni-Bielefeld.DE
  2024-05-22 12:30 ` rguenther at suse dot de
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: ro at CeBiTec dot Uni-Bielefeld.DE @ 2024-05-22 12:14 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114072

--- Comment #5 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> ---
> --- Comment #4 from rguenther at suse dot de <rguenther at suse dot de> ---
[...]
>> I think the best we can do then is
>> 
>> /* { dg-skip-if "PR tree-optimization/114072" { be && { ! vect_shift_char } } }
>> */
>> 
>> Lets the test become UNSUPPORTED on 32 and 64-bit SPARC, but still PASS
>> as before on 32 and 64-bit x86.
>
> Can we instead guard the scan-tree-dump?  This way the correctness
> execute part still is exercised?

Sure, even if the result is somewhat hard to read with all those levels
of braces:

/* { dg-final { scan-tree-dump "LOOP VECTORIZED" "vect" { target { vect_int &&
{ le || { be && vect_shift_char } } } } } } */

This way, all of compile, execute, and scan are run on x86, while on
sparc it's only compile, execute.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug tree-optimization/114072] gcc.dg/vect/vect-pr111779.c FAILs
  2024-02-23  9:58 [Bug tree-optimization/114072] New: gcc.dg/vect/vect-pr111779.c FAILs ro at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2024-05-22 12:14 ` ro at CeBiTec dot Uni-Bielefeld.DE
@ 2024-05-22 12:30 ` rguenther at suse dot de
  2024-05-23  7:54 ` cvs-commit at gcc dot gnu.org
  2024-05-23  7:57 ` ro at gcc dot gnu.org
  7 siblings, 0 replies; 9+ messages in thread
From: rguenther at suse dot de @ 2024-05-22 12:30 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114072

--- Comment #6 from rguenther at suse dot de <rguenther at suse dot de> ---
On Wed, 22 May 2024, ro at CeBiTec dot Uni-Bielefeld.DE wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114072
> 
> --- Comment #5 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> ---
> > --- Comment #4 from rguenther at suse dot de <rguenther at suse dot de> ---
> [...]
> >> I think the best we can do then is
> >> 
> >> /* { dg-skip-if "PR tree-optimization/114072" { be && { ! vect_shift_char } } }
> >> */
> >> 
> >> Lets the test become UNSUPPORTED on 32 and 64-bit SPARC, but still PASS
> >> as before on 32 and 64-bit x86.
> >
> > Can we instead guard the scan-tree-dump?  This way the correctness
> > execute part still is exercised?
> 
> Sure, even if the result is somewhat hard to read with all those levels
> of braces:
> 
> /* { dg-final { scan-tree-dump "LOOP VECTORIZED" "vect" { target { vect_int &&
> { le || { be && vect_shift_char } } } } } } */
> 
> This way, all of compile, execute, and scan are run on x86, while on
> sparc it's only compile, execute.

Looks good, pre-approved.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug tree-optimization/114072] gcc.dg/vect/vect-pr111779.c FAILs
  2024-02-23  9:58 [Bug tree-optimization/114072] New: gcc.dg/vect/vect-pr111779.c FAILs ro at gcc dot gnu.org
                   ` (5 preceding siblings ...)
  2024-05-22 12:30 ` rguenther at suse dot de
@ 2024-05-23  7:54 ` cvs-commit at gcc dot gnu.org
  2024-05-23  7:57 ` ro at gcc dot gnu.org
  7 siblings, 0 replies; 9+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2024-05-23  7:54 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114072

--- Comment #7 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Rainer Orth <ro@gcc.gnu.org>:

https://gcc.gnu.org/g:fc5e109272977f0242a2ceee3a85765cdbed1993

commit r15-789-gfc5e109272977f0242a2ceee3a85765cdbed1993
Author: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Date:   Thu May 23 09:53:45 2024 +0200

    testsuite: vect: Fix gcc.dg/vect/vect-pr111779.c on SPARC [PR114072]

    gcc.dg/vect/vect-pr111779.c FAILs on 32 and 64-bit Solaris/SPARC:

    FAIL: gcc.dg/vect/vect-pr111779.c -flto -ffat-lto-objects  scan-tree-dump
vect "LOOP VECTORIZED"
    FAIL: gcc.dg/vect/vect-pr111779.c scan-tree-dump vect "LOOP VECTORIZED"

    This patch implements Richard's analysis from the PR, skipping the
    scan-tree-dump part for big-endian targets without vect_shift_char
    support.

    Tested on sparc-sun-solaris2.11 and i386-pc-solaris2.11 (32 and 64-bit
each).

    2024-05-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

            gcc/testsuite:
            PR tree-optimization/114072
            * gcc.dg/vect/vect-pr111779.c (scan-tree-dump): Require
            vect_shift_char on big-endian targets.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Bug tree-optimization/114072] gcc.dg/vect/vect-pr111779.c FAILs
  2024-02-23  9:58 [Bug tree-optimization/114072] New: gcc.dg/vect/vect-pr111779.c FAILs ro at gcc dot gnu.org
                   ` (6 preceding siblings ...)
  2024-05-23  7:54 ` cvs-commit at gcc dot gnu.org
@ 2024-05-23  7:57 ` ro at gcc dot gnu.org
  7 siblings, 0 replies; 9+ messages in thread
From: ro at gcc dot gnu.org @ 2024-05-23  7:57 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114072

Rainer Orth <ro at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
           Assignee|unassigned at gcc dot gnu.org      |ro at gcc dot gnu.org
         Resolution|---                         |FIXED
   Target Milestone|---                         |15.0

--- Comment #8 from Rainer Orth <ro at gcc dot gnu.org> ---
Fixed for GCC 15.0.

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2024-05-23  7:57 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-02-23  9:58 [Bug tree-optimization/114072] New: gcc.dg/vect/vect-pr111779.c FAILs ro at gcc dot gnu.org
2024-05-22  9:16 ` [Bug tree-optimization/114072] " ro at gcc dot gnu.org
2024-05-22  9:36 ` rguenth at gcc dot gnu.org
2024-05-22 11:30 ` ro at CeBiTec dot Uni-Bielefeld.DE
2024-05-22 12:01 ` rguenther at suse dot de
2024-05-22 12:14 ` ro at CeBiTec dot Uni-Bielefeld.DE
2024-05-22 12:30 ` rguenther at suse dot de
2024-05-23  7:54 ` cvs-commit at gcc dot gnu.org
2024-05-23  7:57 ` ro at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).