[Bug target/88287] [9 Regression] aarch64/sve/vcond_1.C fails since r266620

2018-12-03 Thread clyon at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88287

Christophe Lyon  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED

--- Comment #12 from Christophe Lyon  ---
Yes, OK for me.

[Bug target/88287] [9 Regression] aarch64/sve/vcond_1.C fails since r266620

2018-12-03 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88287

--- Comment #11 from Jakub Jelinek  ---
So fixed?

[Bug target/88287] [9 Regression] aarch64/sve/vcond_1.C fails since r266620

2018-12-03 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88287

--- Comment #10 from Jakub Jelinek  ---
Author: jakub
Date: Mon Dec  3 13:04:57 2018
New Revision: 266736

URL: https://gcc.gnu.org/viewcvs?rev=266736=gcc=rev
Log:
PR target/88287
* g++.target/aarch64/sve/vcond_1.C: Adjust for comparison
canonicalization.

Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.target/aarch64/sve/vcond_1.C

[Bug target/88287] [9 Regression] aarch64/sve/vcond_1.C fails since r266620

2018-12-03 Thread clyon at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88287

--- Comment #9 from Christophe Lyon  ---
Yes, that works, thanks!

[Bug target/88287] [9 Regression] aarch64/sve/vcond_1.C fails since r266620

2018-12-03 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88287

Jakub Jelinek  changed:

   What|Removed |Added

  Attachment #45141|0   |1
is obsolete||

--- Comment #8 from Jakub Jelinek  ---
Created attachment 45142
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45142=edit
gcc9-pr88287.patch

Updated patch.  Can you please test this one then?

[Bug target/88287] [9 Regression] aarch64/sve/vcond_1.C fails since r266620

2018-12-03 Thread clyon at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88287

--- Comment #7 from Christophe Lyon  ---
Ha, yes the testcase checks whether the assembler supports .arch_extension sve,
that's why it's unsupported in your testcase.

Here is the full list of regressions I noticed:

g++.target/aarch64/sve/vcond_1.C -march=armv8.2-a+sve  scan-assembler
\\tcmpge\\tp[0-7]\\.b, p[0-7]/z, z[0-9]+\\.b, #15\\n
g++.target/aarch64/sve/vcond_1.C -march=armv8.2-a+sve  scan-assembler
\\tcmpge\\tp[0-7]\\.d, p[0-7]/z, z[0-9]+\\.d, #15\\n
g++.target/aarch64/sve/vcond_1.C -march=armv8.2-a+sve  scan-assembler
\\tcmpge\\tp[0-7]\\.h, p[0-7]/z, z[0-9]+\\.h, #15\\n
g++.target/aarch64/sve/vcond_1.C -march=armv8.2-a+sve  scan-assembler
\\tcmpge\\tp[0-7]\\.s, p[0-7]/z, z[0-9]+\\.s, #15\\n
g++.target/aarch64/sve/vcond_1.C -march=armv8.2-a+sve  scan-assembler
\\tcmpgt\\tp[0-7]\\.b, p[0-7]/z, z[0-9]+\\.b, #-16\\n
g++.target/aarch64/sve/vcond_1.C -march=armv8.2-a+sve  scan-assembler
\\tcmpgt\\tp[0-7]\\.d, p[0-7]/z, z[0-9]+\\.d, #-16\\n
g++.target/aarch64/sve/vcond_1.C -march=armv8.2-a+sve  scan-assembler
\\tcmpgt\\tp[0-7]\\.h, p[0-7]/z, z[0-9]+\\.h, #-16\\n
g++.target/aarch64/sve/vcond_1.C -march=armv8.2-a+sve  scan-assembler
\\tcmpgt\\tp[0-7]\\.s, p[0-7]/z, z[0-9]+\\.s, #-16\\n
g++.target/aarch64/sve/vcond_1.C -march=armv8.2-a+sve  scan-assembler
\\tcmphi\\tp[0-7]\\.b, p[0-7]/z, z[0-9]+\\.b, #0\\n
g++.target/aarch64/sve/vcond_1.C -march=armv8.2-a+sve  scan-assembler
\\tcmphi\\tp[0-7]\\.d, p[0-7]/z, z[0-9]+\\.d, #0\\n
g++.target/aarch64/sve/vcond_1.C -march=armv8.2-a+sve  scan-assembler
\\tcmphi\\tp[0-7]\\.h, p[0-7]/z, z[0-9]+\\.h, #0\\n
g++.target/aarch64/sve/vcond_1.C -march=armv8.2-a+sve  scan-assembler
\\tcmphi\\tp[0-7]\\.s, p[0-7]/z, z[0-9]+\\.s, #0\\n
g++.target/aarch64/sve/vcond_1.C -march=armv8.2-a+sve  scan-assembler
\\tcmphs\\tp[0-7]\\.b, p[0-7]/z, z[0-9]+\\.b, #31\\n
g++.target/aarch64/sve/vcond_1.C -march=armv8.2-a+sve  scan-assembler
\\tcmphs\\tp[0-7]\\.d, p[0-7]/z, z[0-9]+\\.d, #31\\n
g++.target/aarch64/sve/vcond_1.C -march=armv8.2-a+sve  scan-assembler
\\tcmphs\\tp[0-7]\\.h, p[0-7]/z, z[0-9]+\\.h, #31\\n
g++.target/aarch64/sve/vcond_1.C -march=armv8.2-a+sve  scan-assembler
\\tcmphs\\tp[0-7]\\.s, p[0-7]/z, z[0-9]+\\.s, #31\\n
g++.target/aarch64/sve/vcond_1.C -march=armv8.2-a+sve  scan-assembler
\\tcmple\\tp[0-7]\\.b, p[0-7]/z, z[0-9]+\\.b, #-16\\n
g++.target/aarch64/sve/vcond_1.C -march=armv8.2-a+sve  scan-assembler
\\tcmple\\tp[0-7]\\.d, p[0-7]/z, z[0-9]+\\.d, #-16\\n
g++.target/aarch64/sve/vcond_1.C -march=armv8.2-a+sve  scan-assembler
\\tcmple\\tp[0-7]\\.h, p[0-7]/z, z[0-9]+\\.h, #-16\\n
g++.target/aarch64/sve/vcond_1.C -march=armv8.2-a+sve  scan-assembler
\\tcmple\\tp[0-7]\\.s, p[0-7]/z, z[0-9]+\\.s, #-16\\n
g++.target/aarch64/sve/vcond_1.C -march=armv8.2-a+sve  scan-assembler
\\tcmplo\\tp[0-7]\\.b, p[0-7]/z, z[0-9]+\\.b, #31\\n
g++.target/aarch64/sve/vcond_1.C -march=armv8.2-a+sve  scan-assembler
\\tcmplo\\tp[0-7]\\.d, p[0-7]/z, z[0-9]+\\.d, #31\\n
g++.target/aarch64/sve/vcond_1.C -march=armv8.2-a+sve  scan-assembler
\\tcmplo\\tp[0-7]\\.h, p[0-7]/z, z[0-9]+\\.h, #31\\n
g++.target/aarch64/sve/vcond_1.C -march=armv8.2-a+sve  scan-assembler
\\tcmplo\\tp[0-7]\\.s, p[0-7]/z, z[0-9]+\\.s, #31\\n
g++.target/aarch64/sve/vcond_1.C -march=armv8.2-a+sve  scan-assembler
\\tcmpls\\tp[0-7]\\.b, p[0-7]/z, z[0-9]+\\.b, #0\\n
g++.target/aarch64/sve/vcond_1.C -march=armv8.2-a+sve  scan-assembler
\\tcmpls\\tp[0-7]\\.d, p[0-7]/z, z[0-9]+\\.d, #0\\n
g++.target/aarch64/sve/vcond_1.C -march=armv8.2-a+sve  scan-assembler
\\tcmpls\\tp[0-7]\\.h, p[0-7]/z, z[0-9]+\\.h, #0\\n
g++.target/aarch64/sve/vcond_1.C -march=armv8.2-a+sve  scan-assembler
\\tcmpls\\tp[0-7]\\.s, p[0-7]/z, z[0-9]+\\.s, #0\\n
g++.target/aarch64/sve/vcond_1.C -march=armv8.2-a+sve  scan-assembler
\\tcmplt\\tp[0-7]\\.b, p[0-7]/z, z[0-9]+\\.b, #15\\n
g++.target/aarch64/sve/vcond_1.C -march=armv8.2-a+sve  scan-assembler
\\tcmplt\\tp[0-7]\\.d, p[0-7]/z, z[0-9]+\\.d, #15\\n
g++.target/aarch64/sve/vcond_1.C -march=armv8.2-a+sve  scan-assembler
\\tcmplt\\tp[0-7]\\.h, p[0-7]/z, z[0-9]+\\.h, #15\\n
g++.target/aarch64/sve/vcond_1.C -march=armv8.2-a+sve  scan-assembler
\\tcmplt\\tp[0-7]\\.s, p[0-7]/z, z[0-9]+\\.s, #15\\n

[Bug target/88287] [9 Regression] aarch64/sve/vcond_1.C fails since r266620

2018-12-03 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88287

--- Comment #6 from Jakub Jelinek  ---
Created attachment 45141
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45141=edit
gcc9-pr88287.patch

Ok, reproduced in my incomplete cross with that option (no binutils), but can't
reproduce on gcc114 in gccfarm, all attempts to test with sve fail, the
testcase is still UNSUPPORTED.

So this is just a wild shot, if it doesn't fix everything, can you please
mention which exact scan-assembler patterns still FAIL?

[Bug target/88287] [9 Regression] aarch64/sve/vcond_1.C fails since r266620

2018-12-03 Thread clyon at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88287

--- Comment #4 from Christophe Lyon  ---
Created attachment 45139
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45139=edit
vcond_1.s.ok (before r266620)

[Bug target/88287] [9 Regression] aarch64/sve/vcond_1.C fails since r266620

2018-12-03 Thread clyon at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88287

--- Comment #5 from Christophe Lyon  ---
Created attachment 45140
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45140=edit
vcond_1.s.ko (after r266620)

[Bug target/88287] [9 Regression] aarch64/sve/vcond_1.C fails since r266620

2018-12-03 Thread clyon at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88287

--- Comment #3 from Christophe Lyon  ---
I do see different output with and without r266620 (attaching vcond_1.s.ok and
vcond_1.s.ko).

They are now checking different condition codes:
$ diff vcond_1.s.ok vcond_1.s.ko1014c1014
<   cmplt   p1.b, p0/z, z1.b, #5
---
>   cmple   p1.b, p0/z, z1.b, #4
1031c1031
<   cmplt   p1.h, p0/z, z1.h, #5
---
>   cmple   p1.h, p0/z, z1.h, #4
[...]

The testcase is compiled with -march=armv8.2-a+sve

[Bug target/88287] [9 Regression] aarch64/sve/vcond_1.C fails since r266620

2018-12-03 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88287

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |9.0

[Bug target/88287] [9 Regression] aarch64/sve/vcond_1.C fails since r266620

2018-11-30 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88287

--- Comment #2 from Jakub Jelinek  ---
BTW, it is unclear to me how to reproduce it, I've tried
./cc1plus -quiet -O -msve-vector-bits=256 vcond_1.C -o vcond_1.s -nostdinc
-march=armv8.4-a+simd
with the match.pd changes reverted and the same without the reversion and the
generated assembly is identical.

[Bug target/88287] [9 Regression] aarch64/sve/vcond_1.C fails since r266620

2018-11-30 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88287

--- Comment #1 from Jakub Jelinek  ---
FAILs just because it has too much scan-assembler in it and expects something
in particular, or do we generate worse code?
The patch certainly added some canonicalization that was previously done only
for scalar comparisons.