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).