Results for 15.0.0 20240531 (experimental) [remotes/origin/HEAD r15-932-g3a873c0a7b] (GCC) testsuite on powerpc64le-unknown-linux-gnu

2024-05-30 Thread Bill Seurer (POWER8) via Gcc-testresults


git commit g:3a873c0a7bc8183de95a6103b507101a25eed413
gcc-descr r15-932-g3a873c0a7bc818

power8
Linux 5.4.0-182-generic ppc64le
GNU Make 4.2.1

DejaGnu:
DejaGnu version 1.6.2
Expect version  5.45.4
Tcl version 8.6

64-bit

LAST_UPDATED: Fri May 31 03:59:28 UTC 2024 (revision r15-932-g3a873c0a7b)

Native configuration is powerpc64le-unknown-linux-gnu

=== gcc tests ===


Running target unix
XPASS: gcc.dg/Wtrampolines.c standard descriptors (test for warnings, line 32)
XPASS: gcc.dg/guality/example.c   -O0  execution test
XPASS: gcc.dg/guality/example.c   -O1  -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/example.c  -Og -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/guality.c   -O0  execution test
XPASS: gcc.dg/guality/guality.c   -O1  -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/guality.c   -O2  -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/guality.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION execution test
XPASS: gcc.dg/guality/guality.c   -O3 -g  -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/guality.c  -Og -DPREVENT_OPTIMIZATION  execution test
FAIL: gcc.dg/guality/inline-params-2.c   -O2  -DPREVENT_OPTIMIZATION  execution 
test
FAIL: gcc.dg/guality/inline-params-2.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION execution test
FAIL: gcc.dg/guality/inline-params-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION execution test
FAIL: gcc.dg/guality/inline-params-2.c   -O3 -g  -DPREVENT_OPTIMIZATION  
execution test
FAIL: gcc.dg/guality/inline-params-2.c   -Os  -DPREVENT_OPTIMIZATION  execution 
test
FAIL: gcc.dg/guality/loop-1.c   -O2  -DPREVENT_OPTIMIZATION  line 20 i == 1
FAIL: gcc.dg/guality/loop-1.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION line 20 i == 1
FAIL: gcc.dg/guality/loop-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 20 i == 1
FAIL: gcc.dg/guality/loop-1.c   -O3 -fomit-frame-pointer -funroll-loops 
-fpeel-loops -ftracer -finline-functions  -DPREVENT_OPTIMIZATION  line 20 i == 1
FAIL: gcc.dg/guality/loop-1.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 20 i == 1
FAIL: gcc.dg/guality/pr36728-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 18 *x == (char) 25
FAIL: gcc.dg/guality/pr36728-3.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 y == 2
FAIL: gcc.dg/guality/pr36728-3.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 16 y == 
2
FAIL: gcc.dg/guality/pr41353-1.c  -Og -DPREVENT_OPTIMIZATION  line 28 i == 37
FAIL: gcc.dg/guality/pr41353-1.c  -Og -DPREVENT_OPTIMIZATION  line 28 i1 == 2 * 
37
FAIL: gcc.dg/guality/pr41353-1.c  -Og -DPREVENT_OPTIMIZATION  line 28 i2 == 3 * 
37
XPASS: gcc.dg/guality/pr41353-1.c  -Og -DPREVENT_OPTIMIZATION  line 28 j == 28 
+ 37
FAIL: gcc.dg/guality/pr41447-1.c   -O2  -DPREVENT_OPTIMIZATION  execution test
FAIL: gcc.dg/guality/pr41447-1.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION execution test
FAIL: gcc.dg/guality/pr41447-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION execution test
FAIL: gcc.dg/guality/pr41447-1.c   -O3 -g  -DPREVENT_OPTIMIZATION  execution 
test
FAIL: gcc.dg/guality/pr41447-1.c   -Os  -DPREVENT_OPTIMIZATION  execution test
FAIL: gcc.dg/guality/pr41616-1.c   -O2  -DPREVENT_OPTIMIZATION  execution test
FAIL: gcc.dg/guality/pr41616-1.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION execution test
FAIL: gcc.dg/guality/pr41616-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION execution test
FAIL: gcc.dg/guality/pr41616-1.c   -O3 -g  -DPREVENT_OPTIMIZATION  execution 
test
FAIL: gcc.dg/guality/pr54200.c   -O1  -DPREVENT_OPTIMIZATION  line 20 z == 3
FAIL: gcc.dg/guality/pr54200.c   -O2  -DPREVENT_OPTIMIZATION  line 20 z == 3
FAIL: gcc.dg/guality/pr54200.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION line 20 z == 3
FAIL: gcc.dg/guality/pr54200.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 20 z == 3
FAIL: gcc.dg/guality/pr54200.c   -Os  -DPREVENT_OPTIMIZATION  line 20 z == 3
FAIL: gcc.dg/guality/pr54519-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 20 y == 25
FAIL: gcc.dg/guality/pr54519-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 20 z == 6
FAIL: gcc.dg/guality/pr54519-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 23 y == 117
FAIL: gcc.dg/guality/pr54519-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 23 z == 8
FAIL: gcc.dg/guality/pr54519-2.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION line 17 y == 25
FAIL: 

[Bug target/115282] [15 regression] gcc.dg/vect/costmodel/ppc/costmodel-slp-12.c fails after r15-812-gc71886f2ca2e46

2024-05-30 Thread rguenth at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115282

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |15.0
   Keywords||testsuite-fail
  Component|other   |target
Summary|15 regression]  |[15 regression]
   |gcc.dg/vect/costmodel/ppc/c |gcc.dg/vect/costmodel/ppc/c
   |ostmodel-slp-12.c fails |ostmodel-slp-12.c fails
   |after   |after
   |r15-812-gc71886f2ca2e46 |r15-812-gc71886f2ca2e46

--- Comment #1 from Richard Biener  ---
I don't see a good reason why, but I don't have a BE cross around to check
myself.  Does BE vect maybe not have unsigned integer vector multiplication
support?

[Bug target/115299] [14/15 regression] pr86722.c failed to eliminate branch.

2024-05-30 Thread liuhongt at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115299

--- Comment #2 from Hongtao Liu  ---
> Maybe r14-53-g675b1a7f113adb .

Probably, current cost model may need adjustment.

Regressions on native/releases/gcc-13 at commit r13-8811 vs commit r13-8806 on Linux/x86_64

2024-05-30 Thread Haochen Jiang via Gcc-regression
Regressions on releases/gcc-13 at commit r13-8811 vs commit r13-8806 on 
Linux/x86_64
New failures:

New passes:
FAIL: 30_threads/future/members/poll.cc execution test


[Bug target/115299] [14/15 regression] pr86722.c failed to eliminate branch.

2024-05-30 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115299

Andrew Pinski  changed:

   What|Removed |Added

   Target Milestone|--- |14.2
Summary|[14 regression] pr86722.c   |[14/15 regression]
   |failed to eliminate branch. |pr86722.c failed to
   ||eliminate branch.

[Bug target/115299] [14 regression] pr86722.c failed to eliminate branch.

2024-05-30 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115299

Andrew Pinski  changed:

   What|Removed |Added

   Last reconfirmed||2024-05-31
 Status|UNCONFIRMED |NEW
 Ever confirmed|0   |1

--- Comment #1 from Andrew Pinski  ---
ce differences:

13:
```
== Pass 2 ==

IF-THEN-JOIN block found, pass 2, test 4, then 6, join 7
scanning new insn with uid = 68.
scanning new insn with uid = 69.
scanning new insn with uid = 70.
scanning new insn with uid = 71.
scanning new insn with uid = 72.
scanning new insn with uid = 73.
Removing jump 14.
deleting insn with uid = 14.
deleting insn with uid = 5.
deleting block 6
Conversion succeeded on pass 2.

```


14/trunk:
```

IF-THEN-JOIN block found, pass 2, test 4, then 6, join 7


== no more changes

3 possible IF blocks searched.
1 IF blocks converted.
1 true changes made.

```

Maybe r14-53-g675b1a7f113adb .

Results for 14.1.1 20240531 [releases/gcc-14 r14-10262-gcd161b335c2] (GCC) testsuite on i686-pc-linux-gnu

2024-05-30 Thread haochenj via Gcc-testresults
LAST_UPDATED: Fri May 31 03:20:08 UTC 2024 (revision r14-10262-gcd161b335c2)

Native configuration is i686-pc-linux-gnu

=== gcc tests ===


Running target unix
UNRESOLVED: gcc.c-torture/compile/2009-1.c   -O0 
UNRESOLVED: gcc.c-torture/compile/2009-1.c   -O1 
UNRESOLVED: gcc.c-torture/compile/2009-1.c   -O2 
UNRESOLVED: gcc.c-torture/compile/2009-1.c   -O2 -flto 
-fno-use-linker-plugin -flto-partition=none 
UNRESOLVED: gcc.c-torture/compile/2009-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects 
UNRESOLVED: gcc.c-torture/compile/2009-1.c   -O3 -g 
UNRESOLVED: gcc.c-torture/compile/2009-1.c   -Os 
UNRESOLVED: gcc.c-torture/compile/2009-2.c   -O0 
UNRESOLVED: gcc.c-torture/compile/2009-2.c   -O1 
UNRESOLVED: gcc.c-torture/compile/2009-2.c   -O2 
UNRESOLVED: gcc.c-torture/compile/2009-2.c   -O2 -flto 
-fno-use-linker-plugin -flto-partition=none 
UNRESOLVED: gcc.c-torture/compile/2009-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects 
UNRESOLVED: gcc.c-torture/compile/2009-2.c   -O3 -g 
UNRESOLVED: gcc.c-torture/compile/2009-2.c   -Os 
UNRESOLVED: gcc.c-torture/compile/981001-2.c   -O0 
UNRESOLVED: gcc.c-torture/compile/981001-2.c   -O1 
UNRESOLVED: gcc.c-torture/compile/981001-2.c   -O2 
UNRESOLVED: gcc.c-torture/compile/981001-2.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none 
UNRESOLVED: gcc.c-torture/compile/981001-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects 
UNRESOLVED: gcc.c-torture/compile/981001-2.c   -O3 -g 
UNRESOLVED: gcc.c-torture/compile/981001-2.c   -Os 
UNRESOLVED: gcc.c-torture/compile/pr61159.c   -O0 
UNRESOLVED: gcc.c-torture/compile/pr61159.c   -O1 
UNRESOLVED: gcc.c-torture/compile/pr61159.c   -O2 
UNRESOLVED: gcc.c-torture/compile/pr61159.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none 
UNRESOLVED: gcc.c-torture/compile/pr61159.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects 
UNRESOLVED: gcc.c-torture/compile/pr61159.c   -O3 -g 
UNRESOLVED: gcc.c-torture/compile/pr61159.c   -Os 
UNRESOLVED: gcc.c-torture/execute/20030125-1.c   -O0 
UNRESOLVED: gcc.c-torture/execute/20030125-1.c   -O1 
UNRESOLVED: gcc.c-torture/execute/20030125-1.c   -O2 
UNRESOLVED: gcc.c-torture/execute/20030125-1.c   -O2 -flto 
-fno-use-linker-plugin -flto-partition=none 
UNRESOLVED: gcc.c-torture/execute/20030125-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects 
UNRESOLVED: gcc.c-torture/execute/20030125-1.c   -O3 -g 
UNRESOLVED: gcc.c-torture/execute/20030125-1.c   -Os 
FAIL: gcc.dg/debug/dwarf2/asm-line1.c scan-assembler is_stmt 1
FAIL: gcc.dg/debug/dwarf2/discriminator.c scan-assembler loc [0-9] 11 [0-9]( 
is_stmt [0-9])? discriminator 1\\n
FAIL: gcc.dg/debug/dwarf2/discriminator.c scan-assembler loc [0-9] 11 [0-9]( 
is_stmt [0-9])? discriminator 2\\n
FAIL: gcc.dg/debug/dwarf2/discriminator.c scan-assembler loc [0-9] 11 [0-9]( 
is_stmt [0-9])?\\n
UNRESOLVED: c-c++-common/Waddress-5.c  -Wc++-compat 
UNRESOLVED: gcc.dg/Walways-true-2.c
FAIL: gcc.dg/Wstringop-overflow-14.c (test for excess errors)
FAIL: gcc.dg/Wstringop-overflow-14.c pr102706 (test for warnings, line 40)
UNRESOLVED: gcc.dg/attr-copy-6.c
UNRESOLVED: gcc.dg/attr-weak-hidden-1.c
UNRESOLVED: gcc.dg/attr-weak-hidden-1a.c
UNRESOLVED: gcc.dg/attr-weakref-1-darwin.c
UNRESOLVED: gcc.dg/attr-weakref-1.c
UNRESOLVED: gcc.dg/attr-weakref-2.c
UNRESOLVED: gcc.dg/attr-weakref-3.c
UNRESOLVED: gcc.dg/attr-weakref-4.c
UNRESOLVED: gcc.dg/darwin-weakimport-1.c
UNRESOLVED: gcc.dg/darwin-weakimport-2.c
UNRESOLVED: gcc.dg/darwin-weakimport-3.c
UNRESOLVED: gcc.dg/darwin-weakref-1.c
UNRESOLVED: gcc.dg/pr77587.c
UNRESOLVED: gcc.dg/pr77587a.c
UNRESOLVED: gcc.dg/pr84739.c
FAIL: gcc.dg/pr90263.c scan-assembler mempcpy
FAIL: gcc.dg/pr96573.c scan-tree-dump optimized 
"__builtin_bswap|VEC_PERM_EXPR[^\\n\\r]*7, 6, 5, 4, 3, 2, 1, 0"
UNRESOLVED: gcc.dg/visibility-21.c
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: 

[gcc r15-934] C23: allow aliasing for types derived from structs with variable size

2024-05-30 Thread Martin Uecker via Gcc-cvs
https://gcc.gnu.org/g:d2cfe8a73b3c4195a25cde28e1641ef36ebb08c1

commit r15-934-gd2cfe8a73b3c4195a25cde28e1641ef36ebb08c1
Author: Martin Uecker 
Date:   Fri May 24 12:35:27 2024 +0200

C23: allow aliasing for types derived from structs with variable size

Previously, we set the aliasing set of structures with variable size

struct foo { int x[n]; char b; };

to zero. The reason is that such types can be compatible to diffrent
structure types which are incompatible.

struct foo { int x[2]; char b; };
struct foo { int x[3]; char b; };

But it is not enough to set the aliasing set to zero, because derived
types would then still end up in different equivalence classes even
though they might be compatible.  Instead those types should be set
to structural equivalency.  We also add checking assertions that
ensure that TYPE_CANONICAL is set correctly for all tagged types.

gcc/c/
* c-decl.cc (finish_struct): Do not set TYPE_CANONICAL for
structure or unions with variable size.
* c-objc-common.cc (c_get_alias_set): Do not set alias set to zero.
* c-typeck.cc (comptypes_verify): New function.
(comptypes,comptypes_same_p,comptypes_check_enum_int): Add 
assertion.
(comptypes_equiv_p): Add assertion that ensures that compatible
types have the same equivalence class.
(tagged_types_tu_compatible_p): Remove now unneeded special case.

gcc/testsuite/
* gcc.dg/gnu23-tag-alias-8.c: New test.

Diff:
---
 gcc/c/c-decl.cc  |  2 +-
 gcc/c/c-objc-common.cc   |  5 -
 gcc/c/c-typeck.cc| 37 +---
 gcc/testsuite/gcc.dg/gnu23-tag-alias-8.c | 24 +
 4 files changed, 59 insertions(+), 9 deletions(-)

diff --git a/gcc/c/c-decl.cc b/gcc/c/c-decl.cc
index 6e6606c9570..9f7d55c0b10 100644
--- a/gcc/c/c-decl.cc
+++ b/gcc/c/c-decl.cc
@@ -9749,7 +9749,7 @@ finish_struct (location_t loc, tree t, tree fieldlist, 
tree attributes,
   C_TYPE_BEING_DEFINED (t) = 0;
 
   /* Set type canonical based on equivalence class.  */
-  if (flag_isoc23)
+  if (flag_isoc23 && !C_TYPE_VARIABLE_SIZE (t))
 {
   if (c_struct_htab == NULL)
c_struct_htab = hash_table::create_ggc (61);
diff --git a/gcc/c/c-objc-common.cc b/gcc/c/c-objc-common.cc
index 283f6a8ae26..738e899a2a9 100644
--- a/gcc/c/c-objc-common.cc
+++ b/gcc/c/c-objc-common.cc
@@ -420,11 +420,6 @@ c_var_mod_p (tree x, tree fn ATTRIBUTE_UNUSED)
 alias_set_type
 c_get_alias_set (tree t)
 {
-  /* Structs with variable size can alias different incompatible
- structs.  Let them alias anything.   */
-  if (RECORD_OR_UNION_TYPE_P (t) && C_TYPE_VARIABLE_SIZE (t))
-return 0;
-
   return c_common_get_alias_set (t);
 }
 
diff --git a/gcc/c/c-typeck.cc b/gcc/c/c-typeck.cc
index 09b2c265a46..48934802148 100644
--- a/gcc/c/c-typeck.cc
+++ b/gcc/c/c-typeck.cc
@@ -1167,6 +1167,28 @@ common_type (tree t1, tree t2)
   return c_common_type (t1, t2);
 }
 
+
+
+/* Helper function for comptypes.  For two compatible types, return 1
+   if they pass consistency checks.  In particular we test that
+   TYPE_CANONICAL is set correctly, i.e. the two types can alias.  */
+
+static bool
+comptypes_verify (tree type1, tree type2)
+{
+  if (TYPE_CANONICAL (type1) != TYPE_CANONICAL (type2)
+  && !TYPE_STRUCTURAL_EQUALITY_P (type1)
+  && !TYPE_STRUCTURAL_EQUALITY_P (type2))
+{
+  /* FIXME: check other types. */
+  if (RECORD_OR_UNION_TYPE_P (type1)
+ || TREE_CODE (type1) == ENUMERAL_TYPE
+ || TREE_CODE (type2) == ENUMERAL_TYPE)
+   return false;
+}
+  return true;
+}
+
 struct comptypes_data {
   bool enum_and_int_p;
   bool different_types_p;
@@ -1188,6 +1210,8 @@ comptypes (tree type1, tree type2)
   struct comptypes_data data = { };
   bool ret = comptypes_internal (type1, type2, );
 
+  gcc_checking_assert (!ret || comptypes_verify (type1, type2));
+
   return ret ? (data.warning_needed ? 2 : 1) : 0;
 }
 
@@ -1201,6 +1225,8 @@ comptypes_same_p (tree type1, tree type2)
   struct comptypes_data data = { };
   bool ret = comptypes_internal (type1, type2, );
 
+  gcc_checking_assert (!ret || comptypes_verify (type1, type2));
+
   if (data.different_types_p)
 return false;
 
@@ -1218,6 +1244,8 @@ comptypes_check_enum_int (tree type1, tree type2, bool 
*enum_and_int_p)
   bool ret = comptypes_internal (type1, type2, );
   *enum_and_int_p = data.enum_and_int_p;
 
+  gcc_checking_assert (!ret || comptypes_verify (type1, type2));
+
   return ret ? (data.warning_needed ? 2 : 1) : 0;
 }
 
@@ -1232,6 +1260,8 @@ comptypes_check_different_types (tree type1, tree type2,
   bool ret = comptypes_internal (type1, type2, );
   *different_types_p = data.different_types_p;
 
+  gcc_checking_assert (!ret || comptypes_verify (type1, type2));
+
   return ret ? (data.warning_needed ? 2 : 

[Bug tree-optimization/115157] incorrect TBAA for derived types involving enum types

2024-05-30 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115157

--- Comment #3 from GCC Commits  ---
The master branch has been updated by Martin Uecker :

https://gcc.gnu.org/g:867d1264fe71d4291194373d1a1c409cac97a597

commit r15-933-g867d1264fe71d4291194373d1a1c409cac97a597
Author: Martin Uecker 
Date:   Sun May 19 23:13:22 2024 +0200

C: allow aliasing of compatible types derived from enumeral types
[PR115157]

Aliasing of enumeral types with the underlying integer is now allowed
by setting the aliasing set to zero.  But this does not allow aliasing
of derived types which are compatible as required by ISO C.  Instead,
initially set structural equality.  Then set TYPE_CANONICAL and update
pointers and main variants when the type is completed (as done for
structures and unions in C23).

PR tree-optimization/115157
PR tree-optimization/115177

gcc/c/
* c-decl.cc (shadow_tag-warned,parse_xref_tag,start_enum,
finish_enum): Set SET_TYPE_STRUCTURAL_EQUALITY / TYPE_CANONICAL.
* c-objc-common.cc (get_alias_set): Remove special case.
(get_aka_type): Add special case.

gcc/c-family/
* c-attribs.cc (handle_hardbool_attribute): Set TYPE_CANONICAL
for hardbools.

gcc/
* godump.cc (go_output_typedef): Use TYPE_MAIN_VARIANT instead
of TYPE_CANONICAL.

gcc/testsuite/
* gcc.dg/enum-alias-1.c: New test.
* gcc.dg/enum-alias-2.c: New test.
* gcc.dg/enum-alias-3.c: New test.
* gcc.dg/enum-alias-4.c: New test.

[Bug tree-optimization/115177] incorrect TBAA for derived types involving hardbool types

2024-05-30 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115177

--- Comment #3 from GCC Commits  ---
The master branch has been updated by Martin Uecker :

https://gcc.gnu.org/g:867d1264fe71d4291194373d1a1c409cac97a597

commit r15-933-g867d1264fe71d4291194373d1a1c409cac97a597
Author: Martin Uecker 
Date:   Sun May 19 23:13:22 2024 +0200

C: allow aliasing of compatible types derived from enumeral types
[PR115157]

Aliasing of enumeral types with the underlying integer is now allowed
by setting the aliasing set to zero.  But this does not allow aliasing
of derived types which are compatible as required by ISO C.  Instead,
initially set structural equality.  Then set TYPE_CANONICAL and update
pointers and main variants when the type is completed (as done for
structures and unions in C23).

PR tree-optimization/115157
PR tree-optimization/115177

gcc/c/
* c-decl.cc (shadow_tag-warned,parse_xref_tag,start_enum,
finish_enum): Set SET_TYPE_STRUCTURAL_EQUALITY / TYPE_CANONICAL.
* c-objc-common.cc (get_alias_set): Remove special case.
(get_aka_type): Add special case.

gcc/c-family/
* c-attribs.cc (handle_hardbool_attribute): Set TYPE_CANONICAL
for hardbools.

gcc/
* godump.cc (go_output_typedef): Use TYPE_MAIN_VARIANT instead
of TYPE_CANONICAL.

gcc/testsuite/
* gcc.dg/enum-alias-1.c: New test.
* gcc.dg/enum-alias-2.c: New test.
* gcc.dg/enum-alias-3.c: New test.
* gcc.dg/enum-alias-4.c: New test.

[gcc r15-933] C: allow aliasing of compatible types derived from enumeral types [PR115157]

2024-05-30 Thread Martin Uecker via Gcc-cvs
https://gcc.gnu.org/g:867d1264fe71d4291194373d1a1c409cac97a597

commit r15-933-g867d1264fe71d4291194373d1a1c409cac97a597
Author: Martin Uecker 
Date:   Sun May 19 23:13:22 2024 +0200

C: allow aliasing of compatible types derived from enumeral types [PR115157]

Aliasing of enumeral types with the underlying integer is now allowed
by setting the aliasing set to zero.  But this does not allow aliasing
of derived types which are compatible as required by ISO C.  Instead,
initially set structural equality.  Then set TYPE_CANONICAL and update
pointers and main variants when the type is completed (as done for
structures and unions in C23).

PR tree-optimization/115157
PR tree-optimization/115177

gcc/c/
* c-decl.cc (shadow_tag-warned,parse_xref_tag,start_enum,
finish_enum): Set SET_TYPE_STRUCTURAL_EQUALITY / TYPE_CANONICAL.
* c-objc-common.cc (get_alias_set): Remove special case.
(get_aka_type): Add special case.

gcc/c-family/
* c-attribs.cc (handle_hardbool_attribute): Set TYPE_CANONICAL
for hardbools.

gcc/
* godump.cc (go_output_typedef): Use TYPE_MAIN_VARIANT instead
of TYPE_CANONICAL.

gcc/testsuite/
* gcc.dg/enum-alias-1.c: New test.
* gcc.dg/enum-alias-2.c: New test.
* gcc.dg/enum-alias-3.c: New test.
* gcc.dg/enum-alias-4.c: New test.

Diff:
---
 gcc/c-family/c-attribs.cc   |  1 +
 gcc/c/c-decl.cc | 11 +--
 gcc/c/c-objc-common.cc  |  7 ++-
 gcc/godump.cc   | 10 +++---
 gcc/testsuite/gcc.dg/enum-alias-1.c | 24 
 gcc/testsuite/gcc.dg/enum-alias-2.c | 25 +
 gcc/testsuite/gcc.dg/enum-alias-3.c | 26 ++
 gcc/testsuite/gcc.dg/enum-alias-4.c | 22 ++
 8 files changed, 112 insertions(+), 14 deletions(-)

diff --git a/gcc/c-family/c-attribs.cc b/gcc/c-family/c-attribs.cc
index 605469dd7dd..e3833ed5f20 100644
--- a/gcc/c-family/c-attribs.cc
+++ b/gcc/c-family/c-attribs.cc
@@ -1074,6 +1074,7 @@ handle_hardbool_attribute (tree *node, tree name, tree 
args,
 
   TREE_SET_CODE (*node, ENUMERAL_TYPE);
   ENUM_UNDERLYING_TYPE (*node) = orig;
+  TYPE_CANONICAL (*node) = TYPE_CANONICAL (orig);
 
   tree false_value;
   if (args)
diff --git a/gcc/c/c-decl.cc b/gcc/c/c-decl.cc
index b691b91b3db..6e6606c9570 100644
--- a/gcc/c/c-decl.cc
+++ b/gcc/c/c-decl.cc
@@ -5051,7 +5051,7 @@ shadow_tag_warned (const struct c_declspecs *declspecs, 
int warned)
  if (t == NULL_TREE)
{
  t = make_node (code);
- if (flag_isoc23 && code != ENUMERAL_TYPE)
+ if (flag_isoc23 || code == ENUMERAL_TYPE)
SET_TYPE_STRUCTURAL_EQUALITY (t);
  pushtag (input_location, name, t);
}
@@ -8828,7 +8828,7 @@ parser_xref_tag (location_t loc, enum tree_code code, 
tree name,
  the forward-reference will be altered into a real type.  */
 
   ref = make_node (code);
-  if (flag_isoc23 && code != ENUMERAL_TYPE)
+  if (flag_isoc23 || code == ENUMERAL_TYPE)
 SET_TYPE_STRUCTURAL_EQUALITY (ref);
   if (code == ENUMERAL_TYPE)
 {
@@ -9919,6 +9919,7 @@ start_enum (location_t loc, struct c_enum_contents 
*the_enum, tree name,
 {
   enumtype = make_node (ENUMERAL_TYPE);
   TYPE_SIZE (enumtype) = NULL_TREE;
+  SET_TYPE_STRUCTURAL_EQUALITY (enumtype);
   pushtag (loc, name, enumtype);
   if (fixed_underlying_type != NULL_TREE)
{
@@ -9935,6 +9936,8 @@ start_enum (location_t loc, struct c_enum_contents 
*the_enum, tree name,
  TYPE_SIZE (enumtype) = NULL_TREE;
  TYPE_PRECISION (enumtype) = TYPE_PRECISION (fixed_underlying_type);
  ENUM_UNDERLYING_TYPE (enumtype) = fixed_underlying_type;
+ TYPE_CANONICAL (enumtype) = TYPE_CANONICAL (fixed_underlying_type);
+ c_update_type_canonical (enumtype);
  layout_type (enumtype);
}
 }
@@ -10094,6 +10097,10 @@ finish_enum (tree enumtype, tree values, tree 
attributes)
   ENUM_UNDERLYING_TYPE (enumtype) =
c_common_type_for_size (TYPE_PRECISION (tem), TYPE_UNSIGNED (tem));
 
+  TYPE_CANONICAL (enumtype) =
+   TYPE_CANONICAL (ENUM_UNDERLYING_TYPE (enumtype));
+  c_update_type_canonical (enumtype);
+
   layout_type (enumtype);
 }
 
diff --git a/gcc/c/c-objc-common.cc b/gcc/c/c-objc-common.cc
index 42a62c84fe7..283f6a8ae26 100644
--- a/gcc/c/c-objc-common.cc
+++ b/gcc/c/c-objc-common.cc
@@ -130,6 +130,8 @@ get_aka_type (tree type)
 
   result = get_aka_type (orig_type);
 }
+  else if (TREE_CODE (type) == ENUMERAL_TYPE)
+return type;
   else
 {
   tree canonical = TYPE_CANONICAL (type);
@@ -418,11 +420,6 @@ c_var_mod_p (tree x, tree fn ATTRIBUTE_UNUSED)
 alias_set_type
 

[Bug target/115299] New: [14 regression] pr86722.c failed to eliminate branch.

2024-05-30 Thread liuhongt at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115299

Bug ID: 115299
   Summary: [14 regression] pr86722.c failed to eliminate branch.
   Product: gcc
   Version: 15.0
Status: UNCONFIRMED
  Keywords: missed-optimization, needs-bisection
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: liuhongt at gcc dot gnu.org
  Target Milestone: ---
Target: x86_64-*-* i?86-*-*

void f(double*d,double*e){
  for(;d

Results for 13.3.1 20240531 [releases/gcc-13 r13-8811-g173f8763a66] (GCC) testsuite on i686-pc-linux-gnu

2024-05-30 Thread haochenj via Gcc-testresults
LAST_UPDATED: Fri May 31 03:15:08 UTC 2024 (revision r13-8811-g173f8763a66)

Native configuration is i686-pc-linux-gnu

=== gcc tests ===


Running target unix
UNRESOLVED: gcc.c-torture/compile/2009-1.c   -O0 
UNRESOLVED: gcc.c-torture/compile/2009-1.c   -O1 
UNRESOLVED: gcc.c-torture/compile/2009-1.c   -O2 
UNRESOLVED: gcc.c-torture/compile/2009-1.c   -O2 -flto 
-fno-use-linker-plugin -flto-partition=none 
UNRESOLVED: gcc.c-torture/compile/2009-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects 
UNRESOLVED: gcc.c-torture/compile/2009-1.c   -O3 -g 
UNRESOLVED: gcc.c-torture/compile/2009-1.c   -Os 
UNRESOLVED: gcc.c-torture/compile/2009-2.c   -O0 
UNRESOLVED: gcc.c-torture/compile/2009-2.c   -O1 
UNRESOLVED: gcc.c-torture/compile/2009-2.c   -O2 
UNRESOLVED: gcc.c-torture/compile/2009-2.c   -O2 -flto 
-fno-use-linker-plugin -flto-partition=none 
UNRESOLVED: gcc.c-torture/compile/2009-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects 
UNRESOLVED: gcc.c-torture/compile/2009-2.c   -O3 -g 
UNRESOLVED: gcc.c-torture/compile/2009-2.c   -Os 
UNRESOLVED: gcc.c-torture/compile/981001-2.c   -O0 
UNRESOLVED: gcc.c-torture/compile/981001-2.c   -O1 
UNRESOLVED: gcc.c-torture/compile/981001-2.c   -O2 
UNRESOLVED: gcc.c-torture/compile/981001-2.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none 
UNRESOLVED: gcc.c-torture/compile/981001-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects 
UNRESOLVED: gcc.c-torture/compile/981001-2.c   -O3 -g 
UNRESOLVED: gcc.c-torture/compile/981001-2.c   -Os 
UNRESOLVED: gcc.c-torture/compile/pr61159.c   -O0 
UNRESOLVED: gcc.c-torture/compile/pr61159.c   -O1 
UNRESOLVED: gcc.c-torture/compile/pr61159.c   -O2 
UNRESOLVED: gcc.c-torture/compile/pr61159.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none 
UNRESOLVED: gcc.c-torture/compile/pr61159.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects 
UNRESOLVED: gcc.c-torture/compile/pr61159.c   -O3 -g 
UNRESOLVED: gcc.c-torture/compile/pr61159.c   -Os 
UNRESOLVED: gcc.c-torture/execute/20030125-1.c   -O0 
UNRESOLVED: gcc.c-torture/execute/20030125-1.c   -O1 
UNRESOLVED: gcc.c-torture/execute/20030125-1.c   -O2 
UNRESOLVED: gcc.c-torture/execute/20030125-1.c   -O2 -flto 
-fno-use-linker-plugin -flto-partition=none 
UNRESOLVED: gcc.c-torture/execute/20030125-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects 
UNRESOLVED: gcc.c-torture/execute/20030125-1.c   -O3 -g 
UNRESOLVED: gcc.c-torture/execute/20030125-1.c   -Os 
FAIL: gcc.dg/analyzer/data-model-4.c (test for excess errors)
FAIL: gcc.dg/analyzer/torture/conftest-1.c   -O0  (test for excess errors)
FAIL: gcc.dg/analyzer/torture/conftest-1.c   -O1  (test for excess errors)
FAIL: gcc.dg/analyzer/torture/conftest-1.c   -O2  (test for excess errors)
FAIL: gcc.dg/analyzer/torture/conftest-1.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  (test for excess errors)
FAIL: gcc.dg/analyzer/torture/conftest-1.c   -O3 -g  (test for excess errors)
FAIL: gcc.dg/analyzer/torture/conftest-1.c   -Os  (test for excess errors)
FAIL: gcc.dg/debug/dwarf2/asm-line1.c scan-assembler is_stmt 1
FAIL: gcc.dg/debug/dwarf2/discriminator.c scan-assembler loc [0-9] 11 [0-9]( 
is_stmt [0-9])? discriminator 1\\n
FAIL: gcc.dg/debug/dwarf2/discriminator.c scan-assembler loc [0-9] 11 [0-9]( 
is_stmt [0-9])? discriminator 2\\n
FAIL: gcc.dg/debug/dwarf2/discriminator.c scan-assembler loc [0-9] 11 [0-9]( 
is_stmt [0-9])?\\n
UNRESOLVED: c-c++-common/Waddress-5.c  -Wc++-compat 
UNRESOLVED: gcc.dg/Walways-true-2.c
FAIL: gcc.dg/Wstringop-overflow-14.c (test for excess errors)
FAIL: gcc.dg/Wstringop-overflow-14.c pr102706 (test for warnings, line 40)
UNRESOLVED: gcc.dg/attr-copy-6.c
UNRESOLVED: gcc.dg/attr-weak-hidden-1.c
UNRESOLVED: gcc.dg/attr-weak-hidden-1a.c
UNRESOLVED: gcc.dg/attr-weakref-1-darwin.c
UNRESOLVED: gcc.dg/attr-weakref-1.c
UNRESOLVED: gcc.dg/attr-weakref-2.c
UNRESOLVED: gcc.dg/attr-weakref-3.c
UNRESOLVED: gcc.dg/attr-weakref-4.c
UNRESOLVED: gcc.dg/darwin-weakimport-1.c
UNRESOLVED: gcc.dg/darwin-weakimport-2.c
UNRESOLVED: gcc.dg/darwin-weakimport-3.c
UNRESOLVED: gcc.dg/darwin-weakref-1.c
UNRESOLVED: gcc.dg/pr77587.c
UNRESOLVED: gcc.dg/pr77587a.c
UNRESOLVED: gcc.dg/pr84739.c
FAIL: gcc.dg/pr90263.c scan-assembler mempcpy
FAIL: gcc.dg/pr96573.c scan-tree-dump optimized 
"__builtin_bswap|VEC_PERM_EXPR[^\\n\\r]*7, 6, 5, 4, 3, 2, 1, 0"
UNRESOLVED: gcc.dg/visibility-21.c
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c 

Results for 14.1.1 20240531 [releases/gcc-14 r14-10262-gcd161b335c2] (GCC) testsuite on x86_64-pc-linux-gnu

2024-05-30 Thread haochenj--- via Gcc-testresults
LAST_UPDATED: Fri May 31 03:20:09 UTC 2024 (revision r14-10262-gcd161b335c2)

Native configuration is x86_64-pc-linux-gnu

=== gcc tests ===


Running target unix
XPASS: gcc.dg/guality/example.c   -O0  execution test
XPASS: gcc.dg/guality/example.c   -O1  -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/example.c  -Og -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/guality.c   -O0  execution test
XPASS: gcc.dg/guality/guality.c   -O1  -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/guality.c   -O2  -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/guality.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION execution test
XPASS: gcc.dg/guality/guality.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION execution test
XPASS: gcc.dg/guality/guality.c   -O3 -g  -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/guality.c   -Os  -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/guality.c  -Og -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/inline-params.c   -O2  -DPREVENT_OPTIMIZATION  execution 
test
XPASS: gcc.dg/guality/inline-params.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION execution test
XPASS: gcc.dg/guality/inline-params.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION execution test
XPASS: gcc.dg/guality/inline-params.c   -O3 -g  -DPREVENT_OPTIMIZATION  
execution test
XPASS: gcc.dg/guality/inline-params.c   -Os  -DPREVENT_OPTIMIZATION  execution 
test
FAIL: gcc.dg/guality/loop-1.c   -O3 -fomit-frame-pointer -funroll-loops 
-fpeel-loops -ftracer -finline-functions  -DPREVENT_OPTIMIZATION  line 20 i == 1
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg1 == 1
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg2 == 2
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg3 == 3
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg4 == 4
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg5 == 5
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg6 == 6
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg7 == 30
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 18 arg1 == 1
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 18 arg2 == 2
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 18 arg3 == 3
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 18 arg4 == 4
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 18 arg5 == 5
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 18 arg6 == 6
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 18 arg7 == 30
FAIL: gcc.dg/guality/pr36728-2.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 16 arg1 
== 1
FAIL: gcc.dg/guality/pr36728-2.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 16 arg2 
== 2
FAIL: gcc.dg/guality/pr36728-2.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 16 arg3 
== 3
FAIL: gcc.dg/guality/pr36728-2.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 16 arg4 
== 4
FAIL: gcc.dg/guality/pr36728-2.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 16 arg5 
== 5
FAIL: gcc.dg/guality/pr36728-2.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 16 arg6 
== 6
FAIL: gcc.dg/guality/pr36728-2.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 16 arg7 
== 30
FAIL: gcc.dg/guality/pr36728-2.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 18 arg1 
== 1
FAIL: gcc.dg/guality/pr36728-2.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 18 arg2 
== 2
FAIL: gcc.dg/guality/pr36728-2.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 18 arg3 
== 3
FAIL: gcc.dg/guality/pr36728-2.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 18 arg4 
== 4
FAIL: gcc.dg/guality/pr36728-2.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 18 arg5 
== 5
FAIL: gcc.dg/guality/pr36728-2.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 18 arg6 
== 6
FAIL: gcc.dg/guality/pr36728-2.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 18 arg7 
== 30
FAIL: gcc.dg/guality/pr36728-4.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 14 y == 2
FAIL: gcc.dg/guality/pr36728-4.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  

Re: [PATCH 3/3] [APX CCMP] Support ccmp for float compare

2024-05-30 Thread Hongtao Liu
On Wed, May 15, 2024 at 4:21 PM Hongyu Wang  wrote:
>
> The ccmp insn itself doesn't support fp compare, but x86 has fp comi
> insn that changes EFLAG which can be the scc input to ccmp. Allow
> scalar fp compare in ix86_gen_ccmp_first except ORDERED/UNORDERD
> compare which can not be identified in ccmp.
Ok if the second patch(middle-end part) is approved.
>
> gcc/ChangeLog:
>
> * config/i386/i386-expand.cc (ix86_gen_ccmp_first): Add fp
> compare and check the allowed fp compare type.
> (ix86_gen_ccmp_next): Adjust compare_code input to ccmp for
> fp compare.
>
> gcc/testsuite/ChangeLog:
>
> * gcc.target/i386/apx-ccmp-1.c: Add test for fp compare.
> * gcc.target/i386/apx-ccmp-2.c: Likewise.
> ---
>  gcc/config/i386/i386-expand.cc | 53 --
>  gcc/testsuite/gcc.target/i386/apx-ccmp-1.c | 45 +-
>  gcc/testsuite/gcc.target/i386/apx-ccmp-2.c | 47 +++
>  3 files changed, 138 insertions(+), 7 deletions(-)
>
> diff --git a/gcc/config/i386/i386-expand.cc b/gcc/config/i386/i386-expand.cc
> index f00525e449f..7507034dc91 100644
> --- a/gcc/config/i386/i386-expand.cc
> +++ b/gcc/config/i386/i386-expand.cc
> @@ -25571,18 +25571,58 @@ ix86_gen_ccmp_first (rtx_insn **prep_seq, rtx_insn 
> **gen_seq,
>if (op_mode == VOIDmode)
>  op_mode = GET_MODE (op1);
>
> +  /* We only supports following scalar comparisons that use just 1
> + instruction: DI/SI/QI/HI/DF/SF/HF.
> + Unordered/Ordered compare cannot be corretly indentified by
> + ccmp so they are not supported.  */
>if (!(op_mode == DImode || op_mode == SImode || op_mode == HImode
> -   || op_mode == QImode))
> +   || op_mode == QImode || op_mode == DFmode || op_mode == SFmode
> +   || op_mode == HFmode)
> +  || code == ORDERED
> +  || code == UNORDERED)
>  {
>end_sequence ();
>return NULL_RTX;
>  }
>
>/* Canonicalize the operands according to mode.  */
> -  if (!nonimmediate_operand (op0, op_mode))
> -op0 = force_reg (op_mode, op0);
> -  if (!x86_64_general_operand (op1, op_mode))
> -op1 = force_reg (op_mode, op1);
> +  if (SCALAR_INT_MODE_P (op_mode))
> +{
> +  if (!nonimmediate_operand (op0, op_mode))
> +   op0 = force_reg (op_mode, op0);
> +  if (!x86_64_general_operand (op1, op_mode))
> +   op1 = force_reg (op_mode, op1);
> +}
> +  else
> +{
> +  /* op0/op1 can be canonicallized from expand_fp_compare, so
> +just adjust the code to make it generate supported fp
> +condition.  */
> +  if (ix86_fp_compare_code_to_integer (code) == UNKNOWN)
> +   {
> + /* First try to split condition if we don't need to honor
> +NaNs, as the ORDERED/UNORDERED check always fall
> +through.  */
> + if (!HONOR_NANS (op_mode))
> +   {
> + rtx_code first_code;
> + split_comparison (code, op_mode, _code, );
> +   }
> + /* Otherwise try to swap the operand order and check if
> +the comparison is supported.  */
> + else
> +   {
> + code = swap_condition (code);
> + std::swap (op0, op1);
> +   }
> +
> + if (ix86_fp_compare_code_to_integer (code) == UNKNOWN)
> +   {
> + end_sequence ();
> + return NULL_RTX;
> +   }
> +   }
> +}
>
>*prep_seq = get_insns ();
>end_sequence ();
> @@ -25647,6 +25687,9 @@ ix86_gen_ccmp_next (rtx_insn **prep_seq, rtx_insn 
> **gen_seq, rtx prev,
>dfv = ix86_get_flags_cc ((rtx_code) cmp_code);
>
>prev_code = GET_CODE (prev);
> +  /* Fixup FP compare code here.  */
> +  if (GET_MODE (XEXP (prev, 0)) == CCFPmode)
> +prev_code = ix86_fp_compare_code_to_integer (prev_code);
>
>if (bit_code != AND)
>  prev_code = reverse_condition (prev_code);
> diff --git a/gcc/testsuite/gcc.target/i386/apx-ccmp-1.c 
> b/gcc/testsuite/gcc.target/i386/apx-ccmp-1.c
> index 5a2dad89f1f..e4e112f07e0 100644
> --- a/gcc/testsuite/gcc.target/i386/apx-ccmp-1.c
> +++ b/gcc/testsuite/gcc.target/i386/apx-ccmp-1.c
> @@ -1,5 +1,5 @@
>  /* { dg-do compile { target { ! ia32 } } } */
> -/* { dg-options "-O2 -mapx-features=ccmp" } */
> +/* { dg-options "-O2 -ffast-math -mapx-features=ccmp" } */
>
>  int
>  f1 (int a)
> @@ -56,8 +56,49 @@ f9 (int a, int b)
>return a == 3 || a == 0;
>  }
>
> +int
> +f10 (float a, int b, float c)
> +{
> +  return a > c || b < 19;
> +}
> +
> +int
> +f11 (float a, int b)
> +{
> +  return a == 0.0 && b > 21;
> +}
> +
> +int
> +f12 (double a, int b)
> +{
> +  return a < 3.0 && b != 23;
> +}
> +
> +int
> +f13 (double a, double b, int c, int d)
> +{
> +  a += b;
> +  c += d;
> +  return a != b || c == d;
> +}
> +
> +int
> +f14 (double a, int b)
> +{
> +  return b != 0 && a < 1.5;
> +}
> +
> +int
> +f15 (double a, double b, int c, int d)
> +{
> +  return c != d || a <= b;
> +}
> +
>  /* { dg-final { 

Re: [PATCH 1/3] [APX CCMP] Support APX CCMP

2024-05-30 Thread Hongtao Liu
On Wed, May 15, 2024 at 4:24 PM Hongyu Wang  wrote:
>
> APX CCMP feature implements conditional compare which executes compare
> when EFLAGS matches certain condition.
>
> CCMP introduces default flags value (dfv), when conditional compare does
> not execute, it will directly set the flags according to dfv.
>
> The instruction goes like
>
> ccmpeq {dfv=sf,of,cf,zf}  %rax, %r16
>
> For this instruction, it will test EFLAGS regs if it matches conditional
> code EQ, if yes, compare %rax and %r16 like legacy cmp. If no, the
> EFLAGS will be updated according to dfv, which means SF,OF,CF,ZF are
> set. PF will be set according to CF in dfv, and AF will always be
> cleared.
>
> The dfv part can be a combination of sf,of,cf,zf, like {dfv=cf,zf} which
> sets CF and ZF only and clear others, or {dfv=} which clears all EFLAGS.
>
> To enable CCMP, we implemented the target hook TARGET_GEN_CCMP_FIRST and
> TARGET_GEN_CCMP_NEXT to reuse the current ccmp infrastructure. Also we
> extended the cstorem4 optab to support storing different CCmode to fit
> current ccmp infrasturcture.
Ok.
>
> gcc/ChangeLog:
>
> * config/i386/i386-expand.cc (ix86_gen_ccmp_first): New function
> that test if the first compare can be generated.
> (ix86_gen_ccmp_next): New function to emit a simgle compare and ccmp
> sequence.
> * config/i386/i386-opts.h (enum apx_features): Add apx_ccmp.
> * config/i386/i386-protos.h (ix86_gen_ccmp_first): New proto
> declare.
> (ix86_gen_ccmp_next): Likewise.
> (ix86_get_flags_cc): Likewise.
> * config/i386/i386.cc (ix86_flags_cc): New enum.
> (ix86_ccmp_dfv_mapping): New string array to map conditional
> code to dfv.
> (ix86_print_operand): Handle special dfv flag for CCMP.
> (ix86_get_flags_cc): New function to return x86 CC enum.
> (TARGET_GEN_CCMP_FIRST): Define.
> (TARGET_GEN_CCMP_NEXT): Likewise.
> * config/i386/i386.h (TARGET_APX_CCMP): Define.
> * config/i386/i386.md (@ccmp): New define_insn to support
> ccmp.
> (UNSPEC_APX_DFV): New unspec for ccmp dfv.
> (ALL_CC): New mode iterator.
> (cstorecc4): Change to ...
> (cstore4) ... this, use ALL_CC to loop through all
> available CCmodes.
> * config/i386/i386.opt (apx_ccmp): Add enum value for ccmp.
>
> gcc/testsuite/ChangeLog:
>
> * gcc.target/i386/apx-ccmp-1.c: New compile test.
> * gcc.target/i386/apx-ccmp-2.c: New runtime test.
> ---
>  gcc/config/i386/i386-expand.cc | 121 +
>  gcc/config/i386/i386-opts.h|   6 +-
>  gcc/config/i386/i386-protos.h  |   5 +
>  gcc/config/i386/i386.cc|  50 +
>  gcc/config/i386/i386.h |   1 +
>  gcc/config/i386/i386.md|  35 +-
>  gcc/config/i386/i386.opt   |   3 +
>  gcc/testsuite/gcc.target/i386/apx-ccmp-1.c |  63 +++
>  gcc/testsuite/gcc.target/i386/apx-ccmp-2.c |  57 ++
>  9 files changed, 337 insertions(+), 4 deletions(-)
>  create mode 100644 gcc/testsuite/gcc.target/i386/apx-ccmp-1.c
>  create mode 100644 gcc/testsuite/gcc.target/i386/apx-ccmp-2.c
>
> diff --git a/gcc/config/i386/i386-expand.cc b/gcc/config/i386/i386-expand.cc
> index 1ab22fe7973..f00525e449f 100644
> --- a/gcc/config/i386/i386-expand.cc
> +++ b/gcc/config/i386/i386-expand.cc
> @@ -25554,4 +25554,125 @@ ix86_expand_fast_convert_bf_to_sf (rtx val)
>return ret;
>  }
>
> +rtx
> +ix86_gen_ccmp_first (rtx_insn **prep_seq, rtx_insn **gen_seq,
> +   rtx_code code, tree treeop0, tree treeop1)
> +{
> +  if (!TARGET_APX_CCMP)
> +return NULL_RTX;
> +
> +  rtx op0, op1, res;
> +  machine_mode op_mode;
> +
> +  start_sequence ();
> +  expand_operands (treeop0, treeop1, NULL_RTX, , , EXPAND_NORMAL);
> +
> +  op_mode = GET_MODE (op0);
> +  if (op_mode == VOIDmode)
> +op_mode = GET_MODE (op1);
> +
> +  if (!(op_mode == DImode || op_mode == SImode || op_mode == HImode
> +   || op_mode == QImode))
> +{
> +  end_sequence ();
> +  return NULL_RTX;
> +}
> +
> +  /* Canonicalize the operands according to mode.  */
> +  if (!nonimmediate_operand (op0, op_mode))
> +op0 = force_reg (op_mode, op0);
> +  if (!x86_64_general_operand (op1, op_mode))
> +op1 = force_reg (op_mode, op1);
> +
> +  *prep_seq = get_insns ();
> +  end_sequence ();
> +
> +  start_sequence ();
> +
> +  res = ix86_expand_compare (code, op0, op1);
> +
> +  if (!res)
> +{
> +  end_sequence ();
> +  return NULL_RTX;
> +}
> +  *gen_seq = get_insns ();
> +  end_sequence ();
> +
> +  return res;
> +}
> +
> +rtx
> +ix86_gen_ccmp_next (rtx_insn **prep_seq, rtx_insn **gen_seq, rtx prev,
> +  rtx_code cmp_code, tree treeop0, tree treeop1,
> +  rtx_code bit_code)
> +{
> +  if (!TARGET_APX_CCMP)
> +return NULL_RTX;
> +
> +  rtx 

Re: [PATCH] i386: Optimize EQ/NE comparison between avx512 kmask and -1.

2024-05-30 Thread Hongtao Liu
On Tue, May 28, 2024 at 4:00 PM Hu, Lin1  wrote:
>
> Hi all,
>
> This patch aims to acheive EQ/NE comparison between avx512 kmask and -1
> by using kxortest with checking CF.
>
> Bootstrapped and regtested on x86_64-pc-linux-gnu{-m32,-m64}. Ok for trunk?
Ok.
>
> BRs,
> Lin
>
> gcc/ChangeLog:
>
> PR target/113609
> * config/i386/sse.md
> (*kortest_cmp_setcc): New define_insn_and_split.
> (*kortest_cmp_jcc): Ditto.
>
> gcc/testsuite/ChangeLog:
>
> PR target/113609
> * gcc.target/i386/pr113609-1.c: New test.
> * gcc.target/i386/pr113609-2.c: Ditto.
> ---
>  gcc/config/i386/sse.md |  67 +++
>  gcc/testsuite/gcc.target/i386/pr113609-1.c | 194 +
>  gcc/testsuite/gcc.target/i386/pr113609-2.c | 161 +
>  3 files changed, 422 insertions(+)
>  create mode 100644 gcc/testsuite/gcc.target/i386/pr113609-1.c
>  create mode 100644 gcc/testsuite/gcc.target/i386/pr113609-2.c
>
> diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
> index b59c988fc31..34fd2e4afac 100644
> --- a/gcc/config/i386/sse.md
> +++ b/gcc/config/i386/sse.md
> @@ -2201,6 +2201,73 @@ (define_expand "kortest"
>   UNSPEC_KORTEST))]
>"TARGET_AVX512F")
>
> +;; Optimize cmp + setcc with mask register by kortest + setcc.
> +(define_insn_and_split "*kortest_cmp_setcc"
> +   [(set (match_operand:QI 0 "nonimmediate_operand" "=qm, qm")
> +(match_operator:QI 1 "bt_comparison_operator"
> +   [(match_operand:SWI1248_AVX512BWDQ_64 2 "register_operand" "?k, 
> ")
> +(const_int -1)]))
> +  (clobber (reg:CC FLAGS_REG))]
> +  "TARGET_AVX512BW"
> +  "#"
> +  "&& reload_completed"
> +  [(const_int 0)]
> +{
> +  if (MASK_REGNO_P (REGNO (operands[2])))
> +{
> +  emit_insn (gen_kortest_ccc (operands[2], operands[2]));
> +  operands[4] = gen_rtx_REG (CCCmode, FLAGS_REG);
> +}
> +  else
> +{
> +  operands[4] = gen_rtx_REG (CCZmode, FLAGS_REG);
> +  emit_insn (gen_rtx_SET (operands[4],
> + gen_rtx_COMPARE (CCZmode,
> +  operands[2],
> +  constm1_rtx)));
> +}
> +  ix86_expand_setcc (operands[0],
> +GET_CODE (operands[1]),
> +operands[4],
> +const0_rtx);
> +  DONE;
> +})
> +
> +;; Optimize cmp + jcc with mask register by kortest + jcc.
> +(define_insn_and_split "*kortest_cmp_jcc"
> +   [(set (pc)
> +  (if_then_else
> +   (match_operator 0 "bt_comparison_operator"
> + [(match_operand:SWI1248_AVX512BWDQ_64 1 "register_operand" "?k, 
> ")
> +  (const_int -1)])
> + (label_ref (match_operand 2))
> +  (pc)))
> +  (clobber (reg:CC FLAGS_REG))]
> +  "TARGET_AVX512BW"
> +  "#"
> +  "&& reload_completed"
> +  [(const_int 0)]
> +{
> +  if (MASK_REGNO_P (REGNO (operands[1])))
> +{
> +  emit_insn (gen_kortest_ccc (operands[1], operands[1]));
> +  operands[4] = gen_rtx_REG (CCCmode, FLAGS_REG);
> +}
> +  else
> +{
> +  operands[4] = gen_rtx_REG (CCZmode, FLAGS_REG);
> +  emit_insn (gen_rtx_SET (operands[4],
> + gen_rtx_COMPARE (CCZmode,
> +  operands[1],
> +  constm1_rtx)));
> +}
> +  ix86_expand_branch (GET_CODE (operands[0]),
> + operands[4],
> + const0_rtx,
> + operands[2]);
> +  DONE;
> +})
> +
>  (define_insn "kunpckhi"
>[(set (match_operand:HI 0 "register_operand" "=k")
> (ior:HI
> diff --git a/gcc/testsuite/gcc.target/i386/pr113609-1.c 
> b/gcc/testsuite/gcc.target/i386/pr113609-1.c
> new file mode 100644
> index 000..f0639b8500a
> --- /dev/null
> +++ b/gcc/testsuite/gcc.target/i386/pr113609-1.c
> @@ -0,0 +1,194 @@
> +/* PR target/113609 */
> +/* { dg-do compile } */
> +/* { dg-options "-O2 -march=x86-64-v4" } */
> +/* { dg-final { scan-assembler-not "^cmp" } } */
> +/* { dg-final { scan-assembler-not "\[ \\t\]+sete" { target { ! ia32 } } } } 
> */
> +/* { dg-final { scan-assembler-not "\[ \\t\]+setne" { target { ! ia32 } } } 
> } */
> +/* { dg-final { scan-assembler-not "\[ \\t\]+je" { target { ! ia32 } } } } */
> +/* { dg-final { scan-assembler-not "\[ \\t\]+jne" { target { ! ia32 } } } } 
> */
> +/* { dg-final { scan-assembler-times "\[ \\t\]+sete" 1 { target { ia32 } } } 
> } */
> +/* { dg-final { scan-assembler-times "\[ \\t\]+setne" 1 { target { ia32 } } 
> } } */
> +/* { dg-final { scan-assembler-times "\[ \\t\]+je" 1 { target { ia32 } } } } 
> */
> +/* { dg-final { scan-assembler-times "\[ \\t\]+jne" 2 { target { ia32 } } } 
> } */
> +/* { dg-final { scan-assembler-times "kortest" 12 { target { ia32 } } } } */
> +/* { dg-final { scan-assembler-times "kortest" 17 { target { ! ia32 } } } } 
> */
> +
> +#include 
> +
> +unsigned int
> 

Re: Question about generating vpmovzxbd instruction without using the interfaces in immintrin.h

2024-05-30 Thread Hongtao Liu via Gcc
On Fri, May 31, 2024 at 10:58 AM Hanke Zhang via Gcc  wrote:
>
> Hi,
> I've recently been trying to hand-write code to trigger automatic
> vectorization optimizations in GCC on Intel x86 machines (without
> using the interfaces in immintrin.h), but I'm running into a problem
> where I can't seem to get the concise `vpmovzxbd` or similar
> instructions.
>
> My requirement is to convert 8 `uint8_t` elements to `int32_t` type
> and print the output. If I use the interface (_mm256_cvtepu8_epi32) in
> immintrin.h, the code is as follows:
>
> int immintrin () {
> int size = 1, offset = 3;
> uint8_t* a = malloc(sizeof(char) * size);
>
> __v8si b = (__v8si)_mm256_cvtepu8_epi32(*(__m128i *)(a + offset));
>
> for (int i = 0; i < 8; i++) {
> printf("%d\n", b[i]);
> }
> }
>
> After compiling with -mavx2 -O3, you can get concise and efficient
> instructions. (You can see it here: https://godbolt.org/z/8ojzdav47)
>
> But if I do not use this interface and instead use a for-loop or the
> `__builtin_convertvector` interface provided by GCC, I cannot achieve
> the above effect. The code is as follows:
>
> typedef uint8_t v8qiu __attribute__ ((__vector_size__ (8)));
> int forloop () {
> int size = 1, offset = 3;
> uint8_t* a = malloc(sizeof(char) * size);
>
> v8qiu av = *(v8qiu *)(a + offset);
> __v8si b = {};
> for (int i = 0; i < 8; i++) {
> b[i] = (a + offset)[i];
> }
>
> for (int i = 0; i < 8; i++) {
> printf("%d\n", b[i]);
> }
> }
>
> int builtin_cvt () {
> int size = 1, offset = 3;
> uint8_t* a = malloc(sizeof(char) * size);
>
> v8qiu av = *(v8qiu *)(a + offset);
> __v8si b = __builtin_convertvector(av, __v8si);
>
> for (int i = 0; i < 8; i++) {
> printf("%d\n", b[i]);
> }
> }
>
> The instructions generated by both functions are redundant and
> complex, and are quite difficult to read compared to calling
> `_mm256_cvtepu8_epi32` directly. (You can see it here as well:
> https://godbolt.org/z/8ojzdav47)
>
> What I want to ask is: How should I write the source code to get
> assembly instructions similar to directly calling
> _mm256_cvtepu8_epi32?
>
> Or would it be easier if I modified the GIMPLE directly? But it seems
> that there is no relevant expression or interface directly
> corresponding to `vpmovzxbd` in GIMPLE.
https://gcc.gnu.org/pipermail/gcc-patches/2024-May/652484.html
We're working on the patch to optimize __builtin_convertvector, after
that it can be as optimal as intel intrinsic.
>
> Thanks
> Hanke Zhang



-- 
BR,
Hongtao


[Bug tree-optimization/115298] New: [15 Regression] Various targets failing DSE tests after recent changes

2024-05-30 Thread law at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115298

Bug ID: 115298
   Summary: [15 Regression] Various targets failing DSE tests
after recent changes
   Product: gcc
   Version: 15.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: law at gcc dot gnu.org
  Target Milestone: ---

A few targets (nds32be-elf, nds32le-elf, avr-elf) have started failing a few
tests after recent aliasing changes:

Tests that now fail, but worked before (9 tests):

nds32-sim: gcc: gcc.c-torture/execute/strcpy-1.c   -O3 -g  (test for excess
errors)
nds32-sim: gcc: gcc.dg/tree-ssa/pr86061.c scan-tree-dump-times dse1 "Deleted
dead call" 1
nds32-sim: gcc: gcc.dg/tree-ssa/pr86061.c scan-tree-dump-times dse1 "Deleted
dead call" 1
nds32-sim: gcc: gcc.dg/tree-ssa/ssa-dse-37.c scan-tree-dump-times dse1 "Deleted
dead call" 2
nds32-sim: gcc: gcc.dg/tree-ssa/ssa-dse-37.c scan-tree-dump-times dse1 "Deleted
dead call" 2
nds32-sim: gcc: gcc.dg/tree-ssa/ssa-dse-37.c scan-tree-dump-times dse1
"Trimming statement " 4
nds32-sim: gcc: gcc.dg/tree-ssa/ssa-dse-37.c scan-tree-dump-times dse1
"Trimming statement " 4
nds32-sim: gcc: gcc.dg/tree-ssa/strncpy-1.c scan-tree-dump-not optimized
"memset"
nds32-sim: gcc: gcc.dg/tree-ssa/strncpy-1.c scan-tree-dump-not optimized
"memset"

This was bisected to:
commit c08b0d3f7b3539b26031de31d88dea6b94474577
Author: Richard Biener 
Date:   Mon May 27 10:41:02 2024 +0200

tree-optimization/115236 - more points-to *ANYTHING = x fixes

The stored-to ANYTHING handling has more holes, uncovered by treating
volatile accesses as ANYTHING.  We fail to properly build the
pred and succ graphs, in particular we may not elide direct nodes
from receiving from STOREDANYTHING.

PR tree-optimization/115236
* tree-ssa-structalias.cc (build_pred_graph): Properly
handle *ANYTHING = X.
(build_succ_graph): Likewise.  Do not elide direct nodes
from receiving from STOREDANYTHING.

* gcc.dg/pr115236.c: New testcase.


I haven't done any deeper analysis.

Results for 13.3.1 20240531 [releases/gcc-13 r13-8811-g173f8763a66] (GCC) testsuite on x86_64-pc-linux-gnu

2024-05-30 Thread haochenj--- via Gcc-testresults
LAST_UPDATED: Fri May 31 03:15:09 UTC 2024 (revision r13-8811-g173f8763a66)

Native configuration is x86_64-pc-linux-gnu

=== gcc tests ===


Running target unix
FAIL: gcc.dg/analyzer/data-model-4.c (test for excess errors)
FAIL: gcc.dg/analyzer/torture/conftest-1.c   -O0  (test for excess errors)
FAIL: gcc.dg/analyzer/torture/conftest-1.c   -O1  (test for excess errors)
FAIL: gcc.dg/analyzer/torture/conftest-1.c   -O2  (test for excess errors)
FAIL: gcc.dg/analyzer/torture/conftest-1.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  (test for excess errors)
FAIL: gcc.dg/analyzer/torture/conftest-1.c   -O3 -g  (test for excess errors)
FAIL: gcc.dg/analyzer/torture/conftest-1.c   -Os  (test for excess errors)
FAIL: gcc.dg/vect/slp-21.c -flto -ffat-lto-objects  scan-tree-dump-times vect 
"vectorizing stmts using SLP" 2
FAIL: gcc.dg/vect/slp-21.c scan-tree-dump-times vect "vectorizing stmts using 
SLP" 2
FAIL: gcc.dg/vect/slp-perm-9.c -flto -ffat-lto-objects  scan-tree-dump-times 
vect "vectorizing stmts using SLP" 1
FAIL: gcc.dg/vect/slp-perm-9.c scan-tree-dump-times vect "vectorizing stmts 
using SLP" 1
FAIL: gcc.target/i386/avx512bw-pr103750-2.c scan-assembler-not kmov
FAIL: gcc.target/i386/avx512bw-pr88465.c scan-assembler-times kxnor[dq][ \\t] 2
FAIL: gcc.target/i386/avx512dq-pr88465.c scan-assembler-times kxnorb[ \\t] 1
FAIL: gcc.target/i386/avx512f-pr103750-2.c scan-assembler-not kmov
FAIL: gcc.target/i386/avx512f-pr88465.c scan-assembler-times kxnorw[ \\t] 1
FAIL: gcc.target/i386/avx512fp16-13.c scan-assembler-times vmovdqu16[ 
t]*[^,]*,[^{\\n]*%xmm[0-9] 1
FAIL: gcc.target/i386/avx512fp16-13.c scan-assembler-times vmovdqu16[ 
t]*[^,]*,[^{\\n]*%ymm[0-9] 1
FAIL: gcc.target/i386/avx512fp16-13.c scan-assembler-times vmovdqu16[ 
t]*[^{\\n]*%xmm[0-9], *[^,]* 1
FAIL: gcc.target/i386/avx512fp16-13.c scan-assembler-times vmovdqu16[ 
t]*[^{\\n]*%ymm[0-9], *[^,]* 1
FAIL: gcc.target/i386/avx512fp16-pr103750-2.c scan-assembler-not kmov
XPASS: gcc.target/i386/bitwise_mask_op-3.c scan-assembler-times kmovb[\\t ] 4
XPASS: gcc.target/i386/bitwise_mask_op-3.c scan-assembler-times korb[\\t ] 1
XPASS: gcc.target/i386/bitwise_mask_op-3.c scan-assembler-times kxorb[\\t ] 1
FAIL: gcc.target/i386/minmax-10.c scan-assembler-not cmp
FAIL: gcc.target/i386/minmax-10.c scan-assembler-times test 6
FAIL: gcc.target/i386/minmax-9.c scan-assembler-times test 3
FAIL: gcc.target/i386/pieces-memset-11.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 2
FAIL: gcc.target/i386/pieces-memset-14.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 1
FAIL: gcc.target/i386/pieces-memset-2.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 2
FAIL: gcc.target/i386/pieces-memset-20.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 2
FAIL: gcc.target/i386/pieces-memset-23.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 1
FAIL: gcc.target/i386/pieces-memset-29.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 2
FAIL: gcc.target/i386/pieces-memset-30.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 2
FAIL: gcc.target/i386/pieces-memset-33.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 1
FAIL: gcc.target/i386/pieces-memset-34.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 1
FAIL: gcc.target/i386/pieces-memset-37.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 2
FAIL: gcc.target/i386/pieces-memset-44.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 1
FAIL: gcc.target/i386/pieces-memset-5.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 1
FAIL: gcc.target/i386/pr107548-1.c scan-assembler-not addl
FAIL: gcc.target/i386/pr107548-1.c scan-assembler-times \\tv?movd\\t 3
FAIL: gcc.target/i386/pr107548-1.c scan-assembler-times v?paddd 6
FAIL: gcc.target/i386/pr107548-2.c scan-assembler v?psrldq
FAIL: gcc.target/i386/pr107548-2.c scan-assembler-not \\taddq\\t
FAIL: gcc.target/i386/pr107548-2.c scan-assembler-times v?paddq 2
FAIL: gcc.target/i386/pr45685.c scan-assembler-times cmov 6
XPASS: gcc.target/i386/sse2-shiftqihi-constant-1.c scan-assembler-times 
pand[^\\n]*%xmm 3
XPASS: gcc.target/i386/sse2-shiftqihi-constant-1.c scan-assembler-times 
psllw[^\\n]*%xmm 1

=== gcc Summary for unix ===

# of expected passes186695
# of unexpected failures43
# of unexpected successes   5
# of expected failures  1431
# of unsupported tests  2446

Running target unix/-m32
FAIL: gcc.dg/analyzer/data-model-4.c (test for excess errors)
FAIL: gcc.dg/analyzer/torture/conftest-1.c   -O0  (test for excess errors)
FAIL: gcc.dg/analyzer/torture/conftest-1.c   -O1  (test for excess errors)
FAIL: gcc.dg/analyzer/torture/conftest-1.c   -O2  (test for excess errors)
FAIL: gcc.dg/analyzer/torture/conftest-1.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  (test for excess errors)
FAIL: gcc.dg/analyzer/torture/conftest-1.c   -O3 -g  (test for excess errors)
FAIL: gcc.dg/analyzer/torture/conftest-1.c   -Os  (test for excess errors)
FAIL: 

Re: Reverted recent patches to resource.cc

2024-05-30 Thread Jeff Law




On 5/30/24 8:09 PM, Hans-Peter Nilsson wrote:

Date: Wed, 29 May 2024 21:23:58 -0600
Cc: gcc-patches@gcc.gnu.org



I don't bother with qemu.exp at all.  I've set up binfmt handlers so
that I can execute foreign binaries.

So given a root filesystem, I can chroot into it and do whatever I need.
   As far as dejagnu is concerned it looks like the native system.


Interesting.  In a Docker setup (or similar container)?
I've got docker containers for some of these.  m68k, alpha, s390 for 
example.   They're based off debian base images.  I don't have anything 
for sparc and I don't see a base image to build from.  If there was a 
base image, then a Dockerfile like this would get you started:



FROM sparc64/debian:latest

# Basic environment variables so we can apt-get without interactive prompts
ENV LC_ALL C
ENV DEBIAN_FRONTEND noninteractive
ENV TZ=Etc/UTC

RUN apt-get update && apt-get -y install gcc dejagnu binutils 
default-jre-headless git build-essential autoconf bison flex gawk make 
texinfo help2man libncurses5-dev python3-dev python3-distutils libtool
libtool-bin unzip wget curl rsync texinfo g++ libmpc-dev libgmp-dev 
libmpfr-dev libgmp-dev python3 libisl-dev rsync vim automake autoconf 
autotools-dev unzip help2man libtool libtool-bin sudo curl wget pyt

hon3-dev bzip2 xz-utils gdb bc libssl-dev libelf-dev


With the lack of an existing docker image, you can probably use 
debootstrap to construct an initial chroot, the import that into docker, 
adding whatever bits you need to do the build (ie, compilers, dejagnu, 
make, texinfo, blah blah blah) via apt until it works.  It's been a 
while since I've done it, but I'm pretty sure that's how I got things 
going on the sh4 and sh4eb platforms.



The JRE bits are only needed because these get launched as a docker 
swarm service and thus need to connect to the Jenkins server using JNLP. 
 Some of the packages are only needed for kernel builds or glibc builds.



Jeff




Results for 15.0.0 20240531 (experimental) [master r15-932-g3a873c0a7b] (GCC) testsuite on powerpc64-unknown-linux-gnu

2024-05-30 Thread Bill Seurer (POWER9 BE) via Gcc-testresults


git commit g:3a873c0a7bc8183de95a6103b507101a25eed413
gcc-descr r15-932-g3a873c0a7bc818

power9 BE
Linux 6.7.12-powerpc64 ppc64
GNU Make 4.3

DejaGnu:
DejaGnu version 1.6.3
Expect version  5.45.4
Tcl version 8.6

64-bit

LAST_UPDATED: Fri May 31 03:14:26 UTC 2024 (revision r15-932-g3a873c0a7b)

Native configuration is powerpc64-unknown-linux-gnu

=== g++ tests ===


Running target unix/-m32
FAIL: c-c++-common/torture/strub-run3.c   -O0  execution test

=== g++ Summary for unix/-m32 ===

# of expected passes251911
# of unexpected failures1
# of expected failures  2618
# of unsupported tests  11565

Running target unix/-m64

=== g++ Summary for unix/-m64 ===

# of expected passes260933
# of expected failures  2623
# of unsupported tests  11738

=== g++ Summary ===

# of expected passes512844
# of unexpected failures1
# of expected failures  5241
# of unsupported tests  23303
/home/gccbuild/build/nightly/build-gcc-trunk/gcc/xg++  version 15.0.0 20240531 
(experimental) [master r15-932-g3a873c0a7b] (GCC) 

=== gcc tests ===


Running target unix/-m32
XPASS: gcc.dg/guality/example.c   -O0  execution test
XPASS: gcc.dg/guality/example.c   -O1  -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/example.c  -Og -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/guality.c   -O0  execution test
XPASS: gcc.dg/guality/guality.c   -O1  -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/guality.c   -O2  -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/guality.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION execution test
XPASS: gcc.dg/guality/guality.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION execution test
XPASS: gcc.dg/guality/guality.c   -O3 -g  -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/guality.c   -Os  -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/guality.c  -Og -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/inline-params.c   -O2  -DPREVENT_OPTIMIZATION  execution 
test
XPASS: gcc.dg/guality/inline-params.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION execution test
XPASS: gcc.dg/guality/inline-params.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION execution test
XPASS: gcc.dg/guality/inline-params.c   -O3 -g  -DPREVENT_OPTIMIZATION  
execution test
XPASS: gcc.dg/guality/inline-params.c   -Os  -DPREVENT_OPTIMIZATION  execution 
test
FAIL: gcc.dg/guality/loop-1.c   -O2  -DPREVENT_OPTIMIZATION  line 20 i == 1
FAIL: gcc.dg/guality/loop-1.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION line 20 i == 1
FAIL: gcc.dg/guality/loop-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 20 i == 1
FAIL: gcc.dg/guality/loop-1.c   -O3 -fomit-frame-pointer -funroll-loops 
-fpeel-loops -ftracer -finline-functions  -DPREVENT_OPTIMIZATION  line 20 i == 1
FAIL: gcc.dg/guality/loop-1.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 20 i == 1
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg1 == 1
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg2 == 2
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg3 == 3
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg4 == 4
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg5 == 5
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg6 == 6
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg7 == 30
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 18 arg1 == 1
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 18 arg2 == 2
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 18 arg3 == 3
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 18 arg4 == 4
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 18 arg5 == 5
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 18 arg6 == 6
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto 

[to-be-committed] [RISC-V] Use Zbkb for general 64 bit constants when profitable

2024-05-30 Thread Jeff Law
Basically this adds the ability to generate two independent constants 
during  synthesis, then bring them together with a pack instruction. 
Thus we never need to go out to the constant pool when zbkb is enabled. 
The worst sequence we ever generate is


lui+addi+lui+addi+pack

Obviously if either half can be synthesized with just a lui or just an 
addi, then we'll DTRT automagically.   So for example:


unsigned long foo_0xf857f2def857f2de(void) {
return 0x14252800;
}

The high and low halves are just a lui.  So the final synthesis is:



li  a5,671088640# 15[c=4 l=4]  *movdi_64bit/1
li  a0,337969152# 16[c=4 l=4]  *movdi_64bit/1
packa0,a5,a0# 17[c=12 l=4]  riscv_xpack_di_si_2


On the implementation side, I think the bits I've put in here likely can 
be used to handle the repeating constant case for !zbkb.  I think it 
likely could be used to help capture cases where the upper half can be 
derived from the lower half (say by turning a bit on or off, shifting or 
something similar).  The key in both of these cases is we need a 
temporary register holding an intermediate value.


Ventana's internal tester enables zbkb, but I don't think any of the 
other testers currently exercise zbkb.  We'll probably want to change 
that at some point, but I don't think it's super-critical yet.


While I can envision a few more cases where we could improve constant 
synthesis,   No immediate plans to work in this space, but if someone is 
interested, some thoughts are recorded here:




https://wiki.riseproject.dev/display/HOME/CT_00_031+--+Additional+Constant+Synthesis+Improvements




Jeffgcc/
* config/riscv/riscv.cc (riscv_integer_op): Add new field.
(riscv_build_integer_1): Initialize the new field.
(riscv_built_integer): Recognize more cases where Zbkb's
pack instruction is profitable.
(riscv_move_integer): Loop over all the codes.  If requested,
save the current constant into a temporary.  Generate pack
for more cases using the saved constant.


diff --git a/gcc/config/riscv/riscv.cc b/gcc/config/riscv/riscv.cc
index 91fefacee80..10af38a5a81 100644
--- a/gcc/config/riscv/riscv.cc
+++ b/gcc/config/riscv/riscv.cc
@@ -250,6 +250,7 @@ struct riscv_arg_info {
and each VALUE[i] is a constant integer.  CODE[0] is undefined.  */
 struct riscv_integer_op {
   bool use_uw;
+  bool save_temporary;
   enum rtx_code code;
   unsigned HOST_WIDE_INT value;
 };
@@ -759,6 +760,7 @@ riscv_build_integer_1 (struct riscv_integer_op 
codes[RISCV_MAX_INTEGER_OPS],
   codes[0].code = UNKNOWN;
   codes[0].value = value;
   codes[0].use_uw = false;
+  codes[0].save_temporary = false;
   return 1;
 }
   if (TARGET_ZBS && SINGLE_BIT_MASK_OPERAND (value))
@@ -767,6 +769,7 @@ riscv_build_integer_1 (struct riscv_integer_op 
codes[RISCV_MAX_INTEGER_OPS],
   codes[0].code = UNKNOWN;
   codes[0].value = value;
   codes[0].use_uw = false;
+  codes[0].save_temporary = false;
 
   /* RISC-V sign-extends all 32bit values that live in a 32bit
 register.  To avoid paradoxes, we thus need to use the
@@ -796,6 +799,7 @@ riscv_build_integer_1 (struct riscv_integer_op 
codes[RISCV_MAX_INTEGER_OPS],
  alt_codes[alt_cost-1].code = PLUS;
  alt_codes[alt_cost-1].value = low_part;
  alt_codes[alt_cost-1].use_uw = false;
+ alt_codes[alt_cost-1].save_temporary = false;
  memcpy (codes, alt_codes, sizeof (alt_codes));
  cost = alt_cost;
}
@@ -810,6 +814,7 @@ riscv_build_integer_1 (struct riscv_integer_op 
codes[RISCV_MAX_INTEGER_OPS],
  alt_codes[alt_cost-1].code = XOR;
  alt_codes[alt_cost-1].value = low_part;
  alt_codes[alt_cost-1].use_uw = false;
+ alt_codes[alt_cost-1].save_temporary = false;
  memcpy (codes, alt_codes, sizeof (alt_codes));
  cost = alt_cost;
}
@@ -852,6 +857,7 @@ riscv_build_integer_1 (struct riscv_integer_op 
codes[RISCV_MAX_INTEGER_OPS],
  alt_codes[alt_cost-1].code = ASHIFT;
  alt_codes[alt_cost-1].value = shift;
  alt_codes[alt_cost-1].use_uw = use_uw;
+ alt_codes[alt_cost-1].save_temporary = false;
  memcpy (codes, alt_codes, sizeof (alt_codes));
  cost = alt_cost;
}
@@ -873,9 +879,11 @@ riscv_build_integer_1 (struct riscv_integer_op 
codes[RISCV_MAX_INTEGER_OPS],
  codes[0].value = (((unsigned HOST_WIDE_INT) value >> trailing_ones)
| (value << (64 - trailing_ones)));
  codes[0].use_uw = false;
+ codes[0].save_temporary = false;
  codes[1].code = ROTATERT;
  codes[1].value = 64 - trailing_ones;
  codes[1].use_uw = false;
+ codes[1].save_temporary = false;
  cost = 2;
}
   /* Handle the case where the 11 bit range of zero bits wraps around.  */
@@ -888,9 +896,11 @@ 

Results for 12.3.1 20240531 [remotes/origin/releases/gcc-12 r12-10481-gb5291b7034] (GCC) testsuite on powerpc64le-unknown-linux-gnu

2024-05-30 Thread Bill Seurer (POWER8) via Gcc-testresults


git commit g:b5291b7034513ac6ac78289405f40853b7d51393
gcc-descr r12-10481-gb5291b7034513a

power8
Linux 5.4.0-182-generic ppc64le
GNU Make 4.2.1

DejaGnu:
DejaGnu version 1.6.2
Expect version  5.45.4
Tcl version 8.6

64-bit

LAST_UPDATED: Fri May 31 02:30:19 UTC 2024 (revision r12-10481-gb5291b7034)

Native configuration is powerpc64le-unknown-linux-gnu

=== gcc tests ===


Running target unix
XPASS: gcc.dg/Wtrampolines.c standard descriptors (test for warnings, line 29)
XPASS: gcc.dg/uninit-pred-7_a.c bogus warning (test for bogus messages, line 26)
XPASS: gcc.dg/guality/example.c   -O0  execution test
XPASS: gcc.dg/guality/example.c   -O1  -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/example.c  -Og -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/guality.c   -O0  execution test
XPASS: gcc.dg/guality/guality.c   -O1  -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/guality.c  -Og -DPREVENT_OPTIMIZATION  execution test
FAIL: gcc.dg/guality/inline-params-2.c   -O2  -DPREVENT_OPTIMIZATION  execution 
test
FAIL: gcc.dg/guality/inline-params-2.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION execution test
FAIL: gcc.dg/guality/inline-params-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION execution test
FAIL: gcc.dg/guality/inline-params-2.c   -O3 -g  -DPREVENT_OPTIMIZATION  
execution test
FAIL: gcc.dg/guality/inline-params-2.c   -Os  -DPREVENT_OPTIMIZATION  execution 
test
XPASS: gcc.dg/guality/ipa-sra-1.c   -O0  line 15 k == 3
XPASS: gcc.dg/guality/ipa-sra-1.c   -O1  -DPREVENT_OPTIMIZATION  line 15 k == 3
XPASS: gcc.dg/guality/ipa-sra-1.c  -Og -DPREVENT_OPTIMIZATION  line 15 k == 3
FAIL: gcc.dg/guality/loop-1.c   -O2  -DPREVENT_OPTIMIZATION  line 20 i == 1
FAIL: gcc.dg/guality/loop-1.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION line 20 i == 1
FAIL: gcc.dg/guality/loop-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 20 i == 1
FAIL: gcc.dg/guality/loop-1.c   -O3 -fomit-frame-pointer -funroll-loops 
-fpeel-loops -ftracer -finline-functions  -DPREVENT_OPTIMIZATION  line 20 i == 1
FAIL: gcc.dg/guality/loop-1.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 20 i == 1
FAIL: gcc.dg/guality/pr36728-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 18 y == 2
FAIL: gcc.dg/guality/pr36728-1.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 18 y == 
2
FAIL: gcc.dg/guality/pr36728-3.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 y == 2
FAIL: gcc.dg/guality/pr36728-3.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 16 y == 
2
FAIL: gcc.dg/guality/pr41353-1.c  -Og -DPREVENT_OPTIMIZATION  line 28 i == 37
FAIL: gcc.dg/guality/pr41353-1.c  -Og -DPREVENT_OPTIMIZATION  line 28 i1 == 2 * 
37
FAIL: gcc.dg/guality/pr41353-1.c  -Og -DPREVENT_OPTIMIZATION  line 28 i2 == 3 * 
37
XPASS: gcc.dg/guality/pr41353-1.c  -Og -DPREVENT_OPTIMIZATION  line 28 j == 28 
+ 37
FAIL: gcc.dg/guality/pr41447-1.c   -O2  -DPREVENT_OPTIMIZATION  execution test
FAIL: gcc.dg/guality/pr41447-1.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION execution test
FAIL: gcc.dg/guality/pr41447-1.c   -O3 -g  -DPREVENT_OPTIMIZATION  execution 
test
FAIL: gcc.dg/guality/pr41447-1.c   -Os  -DPREVENT_OPTIMIZATION  execution test
FAIL: gcc.dg/guality/pr41616-1.c   -O2  -DPREVENT_OPTIMIZATION  execution test
FAIL: gcc.dg/guality/pr41616-1.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION execution test
FAIL: gcc.dg/guality/pr41616-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION execution test
FAIL: gcc.dg/guality/pr41616-1.c   -O3 -g  -DPREVENT_OPTIMIZATION  execution 
test
FAIL: gcc.dg/guality/pr43051-1.c   -O1  -DPREVENT_OPTIMIZATION  line 35 v == 1
FAIL: gcc.dg/guality/pr43051-1.c   -O1  -DPREVENT_OPTIMIZATION  line 40 v == 1
FAIL: gcc.dg/guality/pr43051-1.c   -O2  -DPREVENT_OPTIMIZATION  line 35 v == 1
FAIL: gcc.dg/guality/pr43051-1.c   -O2  -DPREVENT_OPTIMIZATION  line 40 v == 1
FAIL: gcc.dg/guality/pr43051-1.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION line 35 v == 1
FAIL: gcc.dg/guality/pr43051-1.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION line 40 v == 1
FAIL: gcc.dg/guality/pr43051-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 35 v == 1
FAIL: gcc.dg/guality/pr43051-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 40 v == 1
FAIL: gcc.dg/guality/pr43051-1.c   -O3 -fomit-frame-pointer -funroll-loops 
-fpeel-loops -ftracer -finline-functions  -DPREVENT_OPTIMIZATION  line 35 v == 1
FAIL: gcc.dg/guality/pr43051-1.c   -O3 -fomit-frame-pointer -funroll-loops 
-fpeel-loops -ftracer -finline-functions  -DPREVENT_OPTIMIZATION  line 40 v == 1

[Bug sanitizer/115127] [12/13/14/15 Regression] passing zero to __builtin_ctz() check missing

2024-05-30 Thread bic60176 at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115127

--- Comment #4 from Bi6c  ---
(In reply to Andrew Pinski from comment #1)
> Can you attach the preprocessed source?

Yes. I attached the preprocessed source file.

[PATCHv2, rs6000] Optimize vector construction with two vector doubleword loads [PR103568]

2024-05-30 Thread HAO CHEN GUI
Hi,
  This patch optimizes vector construction with two vector doubleword loads.
It generates an optimal insn sequence as "xxlor" has lower latency than
"mtvsrdd" on Power10.

  Compared with previous version, the main change is to use "isa" attribute
to guard "lxsd" and "lxsdx".
https://gcc.gnu.org/pipermail/gcc-patches/2024-May/653103.html

  Bootstrapped and tested on powerpc64-linux BE and LE with no
regressions. OK for the trunk?

Thanks
Gui Haochen

ChangeLog
rs6000: Optimize vector construction with two vector doubleword loads

When constructing a vector by two doublewords from memory, originally it
does
ld 10,0(3)
ld 9,0(4)
mtvsrdd 34,9,10

An optimal sequence on Power10 should be
lxsd 0,0(4)
lxvrdx 1,0,3
xxlor 34,1,32

This patch does this optimization by insn combine and split.

gcc/
PR target/103568
* config/rs6000/vsx.md (vsx_ld_lowpart_zero_): New insn
pattern.
(vsx_ld_highpart_zero_): New insn pattern.
(vsx_concat_mem_): New insn_and_split pattern.

gcc/testsuite/
PR target/103568
* gcc.target/powerpc/pr103568.c: New test.

patch.diff
diff --git a/gcc/config/rs6000/vsx.md b/gcc/config/rs6000/vsx.md
index f135fa079bd..f9a2a260e89 100644
--- a/gcc/config/rs6000/vsx.md
+++ b/gcc/config/rs6000/vsx.md
@@ -1395,6 +1395,27 @@ (define_insn "vsx_ld_elemrev_v2di"
   "lxvd2x %x0,%y1"
   [(set_attr "type" "vecload")])

+(define_insn "vsx_ld_lowpart_zero_"
+  [(set (match_operand:VSX_D 0 "vsx_register_operand" "=v,wa")
+   (vec_concat:VSX_D
+ (match_operand: 1 "memory_operand" "wY,Z")
+ (match_operand: 2 "zero_constant" "j,j")))]
+  ""
+  "@
+   lxsd %0,%1
+   lxsdx %x0,%y1"
+  [(set_attr "type" "vecload,vecload")
+   (set_attr "isa" "p9v,p7v")])
+
+(define_insn "vsx_ld_highpart_zero_"
+  [(set (match_operand:VSX_D 0 "vsx_register_operand" "=wa")
+   (vec_concat:VSX_D
+ (match_operand: 1 "zero_constant" "j")
+ (match_operand: 2 "memory_operand" "Z")))]
+  "TARGET_POWER10"
+  "lxvrdx %x0,%y2"
+  [(set_attr "type" "vecload")])
+
 (define_insn "vsx_ld_elemrev_v1ti"
   [(set (match_operand:V1TI 0 "vsx_register_operand" "=wa")
 (vec_select:V1TI
@@ -3063,6 +3084,26 @@ (define_insn "vsx_concat_"
 }
   [(set_attr "type" "vecperm,vecmove")])

+(define_insn_and_split "vsx_concat_mem_"
+  [(set (match_operand:VSX_D 0 "vsx_register_operand" "=v,wa")
+   (vec_concat:VSX_D
+ (match_operand: 1 "memory_operand" "wY,Z")
+ (match_operand: 2 "memory_operand" "Z,Z")))]
+  "TARGET_POWER10 && can_create_pseudo_p ()"
+  "#"
+  "&& 1"
+  [(const_int 0)]
+{
+  rtx tmp1 = gen_reg_rtx (mode);
+  rtx tmp2 = gen_reg_rtx (mode);
+  emit_insn (gen_vsx_ld_highpart_zero_ (tmp1, CONST0_RTX 
(mode),
+ operands[1]));
+  emit_insn (gen_vsx_ld_lowpart_zero_ (tmp2, operands[2],
+CONST0_RTX (mode)));
+  emit_insn (gen_ior3 (operands[0], tmp1, tmp2));
+  DONE;
+})
+
 ;; Combiner patterns to allow creating XXPERMDI's to access either double
 ;; word element in a vector register.
 (define_insn "*vsx_concat__1"
diff --git a/gcc/testsuite/gcc.target/powerpc/pr103568.c 
b/gcc/testsuite/gcc.target/powerpc/pr103568.c
new file mode 100644
index 000..b2a06fb2162
--- /dev/null
+++ b/gcc/testsuite/gcc.target/powerpc/pr103568.c
@@ -0,0 +1,17 @@
+/* { dg-do compile } */
+/* { dg-options "-mdejagnu-cpu=power10 -O2" } */
+
+vector double test (double *a, double *b)
+{
+  return (vector double) {*a, *b};
+}
+
+vector long long test1 (long long *a, long long *b)
+{
+  return (vector long long) {*a, *b};
+}
+
+/* { dg-final { scan-assembler-times {\mlxsd} 2 } } */
+/* { dg-final { scan-assembler-times {\mlxvrdx\M} 2 } } */
+/* { dg-final { scan-assembler-times {\mxxlor\M} 2 } } */
+


[Bug target/113719] [13/14/15 regression] g++.target/i386/pr103696.C FAILs

2024-05-30 Thread hongyuw at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113719

Hongyu Wang  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #10 from Hongyu Wang  ---
Fixed on GCC13/14/15.

[gcc r13-8811] i386: Fix ix86_option override after change [PR 113719]

2024-05-30 Thread Hongyu Wang via Gcc-cvs
https://gcc.gnu.org/g:173f8763a66622f2a70ad66f60573fcff7d6b49e

commit r13-8811-g173f8763a66622f2a70ad66f60573fcff7d6b49e
Author: Hongyu Wang 
Date:   Wed May 15 11:24:34 2024 +0800

i386: Fix ix86_option override after change [PR 113719]

In ix86_override_options_after_change, calls to ix86_default_align
and ix86_recompute_optlev_based_flags will cause mismatched target
opt_set when doing cl_optimization_restore. Move them back to
ix86_option_override_internal to solve the issue.

gcc/ChangeLog:

PR target/113719
* config/i386/i386-options.cc (ix86_override_options_after_change):
Remove call to ix86_default_align and
ix86_recompute_optlev_based_flags.
(ix86_option_override_internal): Call ix86_default_align and
ix86_recompute_optlev_based_flags.

(cherry picked from commit 499d00127d39ba894b0f7216d73660b380bdc325)

Diff:
---
 gcc/config/i386/i386-options.cc | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/gcc/config/i386/i386-options.cc b/gcc/config/i386/i386-options.cc
index c1229475138..cdbe2dc6201 100644
--- a/gcc/config/i386/i386-options.cc
+++ b/gcc/config/i386/i386-options.cc
@@ -1875,11 +1875,6 @@ ix86_recompute_optlev_based_flags (struct gcc_options 
*opts,
 void
 ix86_override_options_after_change (void)
 {
-  /* Default align_* from the processor table.  */
-  ix86_default_align (_options);
-
-  ix86_recompute_optlev_based_flags (_options, _options_set);
-
   /* Disable unrolling small loops when there's explicit
  -f{,no}unroll-loop.  */
   if ((OPTION_SET_P (flag_unroll_loops))
@@ -2420,6 +2415,8 @@ ix86_option_override_internal (bool main_args_p,
 
   set_ix86_tune_features (opts, ix86_tune, opts->x_ix86_dump_tunes);
 
+  ix86_recompute_optlev_based_flags (opts, opts_set);
+
   ix86_override_options_after_change ();
 
   ix86_tune_cost = processor_cost_table[ix86_tune];
@@ -2451,6 +2448,9 @@ ix86_option_override_internal (bool main_args_p,
   || TARGET_64BIT_P (opts->x_ix86_isa_flags))
 opts->x_ix86_regparm = REGPARM_MAX;
 
+  /* Default align_* from the processor table.  */
+  ix86_default_align (_options);
+
   /* Provide default for -mbranch-cost= value.  */
   SET_OPTION_IF_UNSET (opts, opts_set, ix86_branch_cost,
   ix86_tune_cost->branch_cost);


[Bug target/113719] [13/14/15 regression] g++.target/i386/pr103696.C FAILs

2024-05-30 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113719

--- Comment #9 from GCC Commits  ---
The releases/gcc-13 branch has been updated by Hongyu Wang
:

https://gcc.gnu.org/g:173f8763a66622f2a70ad66f60573fcff7d6b49e

commit r13-8811-g173f8763a66622f2a70ad66f60573fcff7d6b49e
Author: Hongyu Wang 
Date:   Wed May 15 11:24:34 2024 +0800

i386: Fix ix86_option override after change [PR 113719]

In ix86_override_options_after_change, calls to ix86_default_align
and ix86_recompute_optlev_based_flags will cause mismatched target
opt_set when doing cl_optimization_restore. Move them back to
ix86_option_override_internal to solve the issue.

gcc/ChangeLog:

PR target/113719
* config/i386/i386-options.cc (ix86_override_options_after_change):
Remove call to ix86_default_align and
ix86_recompute_optlev_based_flags.
(ix86_option_override_internal): Call ix86_default_align and
ix86_recompute_optlev_based_flags.

(cherry picked from commit 499d00127d39ba894b0f7216d73660b380bdc325)

[gcc r14-10262] i386: Fix ix86_option override after change [PR 113719]

2024-05-30 Thread Hongyu Wang via Gcc-cvs
https://gcc.gnu.org/g:cd161b335c2723d0dce1cab00ad216b423ec2767

commit r14-10262-gcd161b335c2723d0dce1cab00ad216b423ec2767
Author: Hongyu Wang 
Date:   Wed May 15 11:24:34 2024 +0800

i386: Fix ix86_option override after change [PR 113719]

In ix86_override_options_after_change, calls to ix86_default_align
and ix86_recompute_optlev_based_flags will cause mismatched target
opt_set when doing cl_optimization_restore. Move them back to
ix86_option_override_internal to solve the issue.

gcc/ChangeLog:

PR target/113719
* config/i386/i386-options.cc (ix86_override_options_after_change):
Remove call to ix86_default_align and
ix86_recompute_optlev_based_flags.
(ix86_option_override_internal): Call ix86_default_align and
ix86_recompute_optlev_based_flags.

(cherry picked from commit 499d00127d39ba894b0f7216d73660b380bdc325)

Diff:
---
 gcc/config/i386/i386-options.cc | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/gcc/config/i386/i386-options.cc b/gcc/config/i386/i386-options.cc
index ac48b5c61c4..d97464f2c74 100644
--- a/gcc/config/i386/i386-options.cc
+++ b/gcc/config/i386/i386-options.cc
@@ -1930,11 +1930,6 @@ ix86_recompute_optlev_based_flags (struct gcc_options 
*opts,
 void
 ix86_override_options_after_change (void)
 {
-  /* Default align_* from the processor table.  */
-  ix86_default_align (_options);
-
-  ix86_recompute_optlev_based_flags (_options, _options_set);
-
   /* Disable unrolling small loops when there's explicit
  -f{,no}unroll-loop.  */
   if ((OPTION_SET_P (flag_unroll_loops))
@@ -2530,6 +2525,8 @@ ix86_option_override_internal (bool main_args_p,
 
   set_ix86_tune_features (opts, ix86_tune, opts->x_ix86_dump_tunes);
 
+  ix86_recompute_optlev_based_flags (opts, opts_set);
+
   ix86_override_options_after_change ();
 
   ix86_tune_cost = processor_cost_table[ix86_tune];
@@ -2565,6 +2562,9 @@ ix86_option_override_internal (bool main_args_p,
   || TARGET_64BIT_P (opts->x_ix86_isa_flags))
 opts->x_ix86_regparm = REGPARM_MAX;
 
+  /* Default align_* from the processor table.  */
+  ix86_default_align (_options);
+
   /* Provide default for -mbranch-cost= value.  */
   SET_OPTION_IF_UNSET (opts, opts_set, ix86_branch_cost,
   ix86_tune_cost->branch_cost);


[Bug target/113719] [13/14/15 regression] g++.target/i386/pr103696.C FAILs

2024-05-30 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113719

--- Comment #8 from GCC Commits  ---
The releases/gcc-14 branch has been updated by Hongyu Wang
:

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

commit r14-10262-gcd161b335c2723d0dce1cab00ad216b423ec2767
Author: Hongyu Wang 
Date:   Wed May 15 11:24:34 2024 +0800

i386: Fix ix86_option override after change [PR 113719]

In ix86_override_options_after_change, calls to ix86_default_align
and ix86_recompute_optlev_based_flags will cause mismatched target
opt_set when doing cl_optimization_restore. Move them back to
ix86_option_override_internal to solve the issue.

gcc/ChangeLog:

PR target/113719
* config/i386/i386-options.cc (ix86_override_options_after_change):
Remove call to ix86_default_align and
ix86_recompute_optlev_based_flags.
(ix86_option_override_internal): Call ix86_default_align and
ix86_recompute_optlev_based_flags.

(cherry picked from commit 499d00127d39ba894b0f7216d73660b380bdc325)

Question about generating vpmovzxbd instruction without using the interfaces in immintrin.h

2024-05-30 Thread Hanke Zhang via Gcc
Hi,
I've recently been trying to hand-write code to trigger automatic
vectorization optimizations in GCC on Intel x86 machines (without
using the interfaces in immintrin.h), but I'm running into a problem
where I can't seem to get the concise `vpmovzxbd` or similar
instructions.

My requirement is to convert 8 `uint8_t` elements to `int32_t` type
and print the output. If I use the interface (_mm256_cvtepu8_epi32) in
immintrin.h, the code is as follows:

int immintrin () {
int size = 1, offset = 3;
uint8_t* a = malloc(sizeof(char) * size);

__v8si b = (__v8si)_mm256_cvtepu8_epi32(*(__m128i *)(a + offset));

for (int i = 0; i < 8; i++) {
printf("%d\n", b[i]);
}
}

After compiling with -mavx2 -O3, you can get concise and efficient
instructions. (You can see it here: https://godbolt.org/z/8ojzdav47)

But if I do not use this interface and instead use a for-loop or the
`__builtin_convertvector` interface provided by GCC, I cannot achieve
the above effect. The code is as follows:

typedef uint8_t v8qiu __attribute__ ((__vector_size__ (8)));
int forloop () {
int size = 1, offset = 3;
uint8_t* a = malloc(sizeof(char) * size);

v8qiu av = *(v8qiu *)(a + offset);
__v8si b = {};
for (int i = 0; i < 8; i++) {
b[i] = (a + offset)[i];
}

for (int i = 0; i < 8; i++) {
printf("%d\n", b[i]);
}
}

int builtin_cvt () {
int size = 1, offset = 3;
uint8_t* a = malloc(sizeof(char) * size);

v8qiu av = *(v8qiu *)(a + offset);
__v8si b = __builtin_convertvector(av, __v8si);

for (int i = 0; i < 8; i++) {
printf("%d\n", b[i]);
}
}

The instructions generated by both functions are redundant and
complex, and are quite difficult to read compared to calling
`_mm256_cvtepu8_epi32` directly. (You can see it here as well:
https://godbolt.org/z/8ojzdav47)

What I want to ask is: How should I write the source code to get
assembly instructions similar to directly calling
_mm256_cvtepu8_epi32?

Or would it be easier if I modified the GIMPLE directly? But it seems
that there is no relevant expression or interface directly
corresponding to `vpmovzxbd` in GIMPLE.

Thanks
Hanke Zhang


Results for 12.3.1 20240531 [remotes/origin/releases/gcc-12 r12-10481-gb5291b7034] (GCC) testsuite on powerpc64-unknown-linux-gnu

2024-05-30 Thread Bill Seurer (POWER9 BE) via Gcc-testresults


git commit g:b5291b7034513ac6ac78289405f40853b7d51393
gcc-descr r12-10481-gb5291b7034513a

power9 BE
Linux 6.7.12-powerpc64 ppc64
GNU Make 4.3

DejaGnu:
DejaGnu version 1.6.3
Expect version  5.45.4
Tcl version 8.6

64-bit

LAST_UPDATED: Fri May 31 01:51:50 UTC 2024 (revision r12-10481-gb5291b7034)

Native configuration is powerpc64-unknown-linux-gnu

=== g++ tests ===


Running target unix/-m32

=== g++ Summary for unix/-m32 ===

# of expected passes219509
# of expected failures  1922
# of unsupported tests  10361

Running target unix/-m64
FAIL: g++.dg/asan/asan_test.C   -O2  AddressSanitizer_StrtollOOBTest 
Strtol(array + 3, NULL, 0) execution test
FAIL: g++.dg/asan/asan_test.C   -O2  AddressSanitizer_StrtollOOBTest 
Strtol(array - 1, NULL, 0) execution test
FAIL: g++.dg/asan/asan_test.C   -O2  AddressSanitizer_StrtollOOBTest 
Strtol(array, NULL, 0) execution test
FAIL: g++.dg/asan/asan_test.C   -O2  AddressSanitizer_StrtollOOBTest 
Strtol(array, NULL, 36) execution test
FAIL: g++.dg/asan/asan_test.C   -O2  AddressSanitizer_StrtollOOBTest 
Strtol(array, NULL, 0) execution test
FAIL: g++.dg/asan/asan_test.C   -O2  AddressSanitizer_StrtollOOBTest 
Strtol(array, NULL, 0) execution test
FAIL: g++.dg/asan/asan_test.C   -O2  AddressSanitizer_StrtollOOBTest 
Strtol(array, NULL, 0) execution test
FAIL: g++.dg/asan/asan_test.C   -O2  AddressSanitizer_StrtolOOBTest 
Strtol(array + 3, NULL, 0) execution test
FAIL: g++.dg/asan/asan_test.C   -O2  AddressSanitizer_StrtolOOBTest 
Strtol(array - 1, NULL, 0) execution test
FAIL: g++.dg/asan/asan_test.C   -O2  AddressSanitizer_StrtolOOBTest 
Strtol(array, NULL, 0) execution test
FAIL: g++.dg/asan/asan_test.C   -O2  AddressSanitizer_StrtolOOBTest 
Strtol(array, NULL, 36) execution test
FAIL: g++.dg/asan/asan_test.C   -O2  AddressSanitizer_StrtolOOBTest 
Strtol(array, NULL, 0) execution test
FAIL: g++.dg/asan/asan_test.C   -O2  AddressSanitizer_StrtolOOBTest 
Strtol(array, NULL, 0) execution test
FAIL: g++.dg/asan/asan_test.C   -O2  AddressSanitizer_StrtolOOBTest 
Strtol(array, NULL, 0) execution test
FAIL: g++.dg/asan/interception-malloc-test-1.C   -O0  execution test
FAIL: g++.dg/asan/interception-malloc-test-1.C   -O1  execution test
FAIL: g++.dg/asan/interception-malloc-test-1.C   -O2  execution test
FAIL: g++.dg/asan/interception-malloc-test-1.C   -O3 -g  execution test
FAIL: g++.dg/asan/interception-malloc-test-1.C   -Os  execution test
FAIL: g++.dg/asan/interception-malloc-test-1.C   -O2 -flto 
-fno-use-linker-plugin -flto-partition=none  execution test
FAIL: g++.dg/asan/interception-malloc-test-1.C   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  execution test

=== g++ Summary for unix/-m64 ===

# of expected passes228212
# of unexpected failures21
# of expected failures  1930
# of unsupported tests  10545

=== g++ Summary ===

# of expected passes447721
# of unexpected failures21
# of expected failures  3852
# of unsupported tests  20906
/home/gccbuild/build/nightly/build-gcc-12/gcc/xg++  version 12.3.1 20240531 
[remotes/origin/releases/gcc-12 r12-10481-gb5291b7034] (GCC) 

=== gcc tests ===


Running target unix/-m32
FAIL: gcc.dg/analyzer/data-model-4.c (test for excess errors)
FAIL: gcc.dg/analyzer/torture/conftest-1.c   -O0  (test for excess errors)
FAIL: gcc.dg/analyzer/torture/conftest-1.c   -O1  (test for excess errors)
FAIL: gcc.dg/analyzer/torture/conftest-1.c   -O2  (test for excess errors)
FAIL: gcc.dg/analyzer/torture/conftest-1.c   -O3 -g  (test for excess errors)
FAIL: gcc.dg/analyzer/torture/conftest-1.c   -Os  (test for excess errors)
FAIL: gcc.dg/analyzer/torture/conftest-1.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  (test for excess errors)
XPASS: gcc.dg/uninit-pred-7_a.c bogus warning (test for bogus messages, line 26)
FAIL: gcc.dg/torture/pr52451.c   -O0  execution test
FAIL: gcc.dg/torture/pr52451.c   -O1  execution test
FAIL: gcc.dg/torture/pr52451.c   -O2  execution test
FAIL: gcc.dg/torture/pr52451.c   -O3 -g  execution test
FAIL: gcc.dg/torture/pr52451.c   -Os  execution test
FAIL: gcc.dg/torture/pr52451.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  execution test
FAIL: gcc.dg/torture/pr52451.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  execution test
FAIL: gcc.dg/torture/pr91323.c   -O0  execution test
FAIL: gcc.dg/torture/pr91323.c   -O1  execution test
FAIL: gcc.dg/torture/pr91323.c   -O2  execution test
FAIL: gcc.dg/torture/pr91323.c   -O3 -g  execution test
FAIL: gcc.dg/torture/pr91323.c   -Os  execution test
FAIL: gcc.dg/torture/pr91323.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  execution test
FAIL: gcc.dg/torture/pr91323.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  execution test
XPASS: gcc.dg/vect/slp-24-big-array.c -flto -ffat-lto-objects  

Results for 15.0.0 20240531 (experimental) [master r15-932-g3a873c0a7bc] (GCC) testsuite on i686-pc-linux-gnu

2024-05-30 Thread haochenj via Gcc-testresults
LAST_UPDATED: Fri May 31 01:10:07 UTC 2024 (revision r15-932-g3a873c0a7bc)

Native configuration is i686-pc-linux-gnu

=== gcc tests ===


Running target unix
UNRESOLVED: gcc.c-torture/compile/2009-1.c   -O0 
UNRESOLVED: gcc.c-torture/compile/2009-1.c   -O1 
UNRESOLVED: gcc.c-torture/compile/2009-1.c   -O2 
UNRESOLVED: gcc.c-torture/compile/2009-1.c   -O2 -flto 
-fno-use-linker-plugin -flto-partition=none 
UNRESOLVED: gcc.c-torture/compile/2009-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects 
UNRESOLVED: gcc.c-torture/compile/2009-1.c   -O3 -g 
UNRESOLVED: gcc.c-torture/compile/2009-1.c   -Os 
UNRESOLVED: gcc.c-torture/compile/2009-2.c   -O0 
UNRESOLVED: gcc.c-torture/compile/2009-2.c   -O1 
UNRESOLVED: gcc.c-torture/compile/2009-2.c   -O2 
UNRESOLVED: gcc.c-torture/compile/2009-2.c   -O2 -flto 
-fno-use-linker-plugin -flto-partition=none 
UNRESOLVED: gcc.c-torture/compile/2009-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects 
UNRESOLVED: gcc.c-torture/compile/2009-2.c   -O3 -g 
UNRESOLVED: gcc.c-torture/compile/2009-2.c   -Os 
UNRESOLVED: gcc.c-torture/compile/981001-2.c   -O0 
UNRESOLVED: gcc.c-torture/compile/981001-2.c   -O1 
UNRESOLVED: gcc.c-torture/compile/981001-2.c   -O2 
UNRESOLVED: gcc.c-torture/compile/981001-2.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none 
UNRESOLVED: gcc.c-torture/compile/981001-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects 
UNRESOLVED: gcc.c-torture/compile/981001-2.c   -O3 -g 
UNRESOLVED: gcc.c-torture/compile/981001-2.c   -Os 
UNRESOLVED: gcc.c-torture/compile/pr61159.c   -O0 
UNRESOLVED: gcc.c-torture/compile/pr61159.c   -O1 
UNRESOLVED: gcc.c-torture/compile/pr61159.c   -O2 
UNRESOLVED: gcc.c-torture/compile/pr61159.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none 
UNRESOLVED: gcc.c-torture/compile/pr61159.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects 
UNRESOLVED: gcc.c-torture/compile/pr61159.c   -O3 -g 
UNRESOLVED: gcc.c-torture/compile/pr61159.c   -Os 
UNRESOLVED: gcc.c-torture/execute/20030125-1.c   -O0 
UNRESOLVED: gcc.c-torture/execute/20030125-1.c   -O1 
UNRESOLVED: gcc.c-torture/execute/20030125-1.c   -O2 
UNRESOLVED: gcc.c-torture/execute/20030125-1.c   -O2 -flto 
-fno-use-linker-plugin -flto-partition=none 
UNRESOLVED: gcc.c-torture/execute/20030125-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects 
UNRESOLVED: gcc.c-torture/execute/20030125-1.c   -O3 -g 
UNRESOLVED: gcc.c-torture/execute/20030125-1.c   -Os 
FAIL: gcc.dg/debug/dwarf2/asm-line1.c scan-assembler is_stmt 1
FAIL: gcc.dg/debug/dwarf2/discriminator.c scan-assembler loc [0-9] 11 [0-9]( 
is_stmt [0-9])? discriminator 1\\n
FAIL: gcc.dg/debug/dwarf2/discriminator.c scan-assembler loc [0-9] 11 [0-9]( 
is_stmt [0-9])? discriminator 2\\n
FAIL: gcc.dg/debug/dwarf2/discriminator.c scan-assembler loc [0-9] 11 [0-9]( 
is_stmt [0-9])?\\n
UNRESOLVED: c-c++-common/Waddress-5.c  -Wc++-compat 
UNRESOLVED: gcc.dg/Walways-true-2.c
FAIL: gcc.dg/Wstringop-overflow-14.c (test for excess errors)
FAIL: gcc.dg/Wstringop-overflow-14.c pr102706 (test for warnings, line 40)
UNRESOLVED: gcc.dg/attr-copy-6.c
UNRESOLVED: gcc.dg/attr-weak-hidden-1.c
UNRESOLVED: gcc.dg/attr-weak-hidden-1a.c
UNRESOLVED: gcc.dg/attr-weakref-1-darwin.c
UNRESOLVED: gcc.dg/attr-weakref-1.c
UNRESOLVED: gcc.dg/attr-weakref-2.c
UNRESOLVED: gcc.dg/attr-weakref-3.c
UNRESOLVED: gcc.dg/attr-weakref-4.c
UNRESOLVED: gcc.dg/darwin-weakimport-1.c
UNRESOLVED: gcc.dg/darwin-weakimport-2.c
UNRESOLVED: gcc.dg/darwin-weakimport-3.c
UNRESOLVED: gcc.dg/darwin-weakref-1.c
UNRESOLVED: gcc.dg/pr77587.c
UNRESOLVED: gcc.dg/pr77587a.c
UNRESOLVED: gcc.dg/pr84739.c
FAIL: gcc.dg/pr90263.c scan-assembler mempcpy
FAIL: gcc.dg/pr96573.c scan-tree-dump optimized 
"__builtin_bswap|VEC_PERM_EXPR[^\\n\\r]*7, 6, 5, 4, 3, 2, 1, 0"
UNRESOLVED: gcc.dg/visibility-21.c
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: gcc.dg/visibility-d.c scan-not-hidden 
FAIL: 

Results for 15.0.0 20240531 (experimental) [master r15-932-g3a873c0a7bc] (GCC) testsuite on x86_64-pc-linux-gnu

2024-05-30 Thread haochenj--- via Gcc-testresults
LAST_UPDATED: Fri May 31 01:10:09 UTC 2024 (revision r15-932-g3a873c0a7bc)

Native configuration is x86_64-pc-linux-gnu

=== gcc tests ===


Running target unix
XPASS: gcc.dg/guality/example.c   -O0  execution test
XPASS: gcc.dg/guality/example.c   -O1  -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/example.c  -Og -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/guality.c   -O0  execution test
XPASS: gcc.dg/guality/guality.c   -O1  -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/guality.c   -O2  -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/guality.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION execution test
XPASS: gcc.dg/guality/guality.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION execution test
XPASS: gcc.dg/guality/guality.c   -O3 -g  -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/guality.c   -Os  -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/guality.c  -Og -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/inline-params.c   -O2  -DPREVENT_OPTIMIZATION  execution 
test
XPASS: gcc.dg/guality/inline-params.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION execution test
XPASS: gcc.dg/guality/inline-params.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION execution test
XPASS: gcc.dg/guality/inline-params.c   -O3 -g  -DPREVENT_OPTIMIZATION  
execution test
XPASS: gcc.dg/guality/inline-params.c   -Os  -DPREVENT_OPTIMIZATION  execution 
test
FAIL: gcc.dg/guality/loop-1.c   -O3 -fomit-frame-pointer -funroll-loops 
-fpeel-loops -ftracer -finline-functions  -DPREVENT_OPTIMIZATION  line 20 i == 1
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg1 == 1
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg2 == 2
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg3 == 3
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg4 == 4
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg5 == 5
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg6 == 6
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg7 == 30
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 18 arg1 == 1
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 18 arg2 == 2
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 18 arg3 == 3
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 18 arg4 == 4
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 18 arg5 == 5
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 18 arg6 == 6
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 18 arg7 == 30
FAIL: gcc.dg/guality/pr36728-2.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 16 arg1 
== 1
FAIL: gcc.dg/guality/pr36728-2.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 16 arg2 
== 2
FAIL: gcc.dg/guality/pr36728-2.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 16 arg3 
== 3
FAIL: gcc.dg/guality/pr36728-2.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 16 arg4 
== 4
FAIL: gcc.dg/guality/pr36728-2.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 16 arg5 
== 5
FAIL: gcc.dg/guality/pr36728-2.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 16 arg6 
== 6
FAIL: gcc.dg/guality/pr36728-2.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 16 arg7 
== 30
FAIL: gcc.dg/guality/pr36728-2.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 18 arg1 
== 1
FAIL: gcc.dg/guality/pr36728-2.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 18 arg2 
== 2
FAIL: gcc.dg/guality/pr36728-2.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 18 arg3 
== 3
FAIL: gcc.dg/guality/pr36728-2.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 18 arg4 
== 4
FAIL: gcc.dg/guality/pr36728-2.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 18 arg5 
== 5
FAIL: gcc.dg/guality/pr36728-2.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 18 arg6 
== 6
FAIL: gcc.dg/guality/pr36728-2.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 18 arg7 
== 30
FAIL: gcc.dg/guality/pr36728-4.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 14 y == 2
FAIL: gcc.dg/guality/pr36728-4.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  

Regressions on master at commit r15-932 vs commit r15-930 on Linux/x86_64

2024-05-30 Thread Haochen Jiang via Gcc-regression
Regressions on master at commit r15-932 vs commit r15-930 on Linux/x86_64
New failures:

New passes:
FAIL: gcc.dg/lto/save-temps c_lto_save-temps_0.o-c_lto_save-temps_0.o link,  -O 
-flto -save-temps


Results for 15.0.0 20240531 (experimental) [remotes/origin/HEAD r15-931-g0ab643555c] (GCC) testsuite on powerpc64le-unknown-linux-gnu

2024-05-30 Thread Bill Seurer (POWER8) via Gcc-testresults


git commit g:0ab643555c24eddfd692605ca185a04527993a56
gcc-descr r15-931-g0ab643555c24ed

power8
Linux 5.4.0-182-generic ppc64le
GNU Make 4.2.1

DejaGnu:
DejaGnu version 1.6.2
Expect version  5.45.4
Tcl version 8.6

64-bit

LAST_UPDATED: Fri May 31 00:24:49 UTC 2024 (revision r15-931-g0ab643555c)

Native configuration is powerpc64le-unknown-linux-gnu

=== gcc tests ===


Running target unix
XPASS: gcc.dg/Wtrampolines.c standard descriptors (test for warnings, line 32)
XPASS: gcc.dg/guality/example.c   -O0  execution test
XPASS: gcc.dg/guality/example.c   -O1  -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/example.c  -Og -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/guality.c   -O0  execution test
XPASS: gcc.dg/guality/guality.c   -O1  -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/guality.c   -O2  -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/guality.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION execution test
XPASS: gcc.dg/guality/guality.c   -O3 -g  -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/guality.c  -Og -DPREVENT_OPTIMIZATION  execution test
FAIL: gcc.dg/guality/inline-params-2.c   -O2  -DPREVENT_OPTIMIZATION  execution 
test
FAIL: gcc.dg/guality/inline-params-2.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION execution test
FAIL: gcc.dg/guality/inline-params-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION execution test
FAIL: gcc.dg/guality/inline-params-2.c   -O3 -g  -DPREVENT_OPTIMIZATION  
execution test
FAIL: gcc.dg/guality/inline-params-2.c   -Os  -DPREVENT_OPTIMIZATION  execution 
test
FAIL: gcc.dg/guality/loop-1.c   -O2  -DPREVENT_OPTIMIZATION  line 20 i == 1
FAIL: gcc.dg/guality/loop-1.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION line 20 i == 1
FAIL: gcc.dg/guality/loop-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 20 i == 1
FAIL: gcc.dg/guality/loop-1.c   -O3 -fomit-frame-pointer -funroll-loops 
-fpeel-loops -ftracer -finline-functions  -DPREVENT_OPTIMIZATION  line 20 i == 1
FAIL: gcc.dg/guality/loop-1.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 20 i == 1
FAIL: gcc.dg/guality/pr36728-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 18 *x == (char) 25
FAIL: gcc.dg/guality/pr36728-3.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 y == 2
FAIL: gcc.dg/guality/pr36728-3.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 16 y == 
2
FAIL: gcc.dg/guality/pr41353-1.c  -Og -DPREVENT_OPTIMIZATION  line 28 i == 37
FAIL: gcc.dg/guality/pr41353-1.c  -Og -DPREVENT_OPTIMIZATION  line 28 i1 == 2 * 
37
FAIL: gcc.dg/guality/pr41353-1.c  -Og -DPREVENT_OPTIMIZATION  line 28 i2 == 3 * 
37
XPASS: gcc.dg/guality/pr41353-1.c  -Og -DPREVENT_OPTIMIZATION  line 28 j == 28 
+ 37
FAIL: gcc.dg/guality/pr41447-1.c   -O2  -DPREVENT_OPTIMIZATION  execution test
FAIL: gcc.dg/guality/pr41447-1.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION execution test
FAIL: gcc.dg/guality/pr41447-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION execution test
FAIL: gcc.dg/guality/pr41447-1.c   -O3 -g  -DPREVENT_OPTIMIZATION  execution 
test
FAIL: gcc.dg/guality/pr41447-1.c   -Os  -DPREVENT_OPTIMIZATION  execution test
FAIL: gcc.dg/guality/pr41616-1.c   -O2  -DPREVENT_OPTIMIZATION  execution test
FAIL: gcc.dg/guality/pr41616-1.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION execution test
FAIL: gcc.dg/guality/pr41616-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION execution test
FAIL: gcc.dg/guality/pr41616-1.c   -O3 -g  -DPREVENT_OPTIMIZATION  execution 
test
FAIL: gcc.dg/guality/pr54200.c   -O1  -DPREVENT_OPTIMIZATION  line 20 z == 3
FAIL: gcc.dg/guality/pr54200.c   -O2  -DPREVENT_OPTIMIZATION  line 20 z == 3
FAIL: gcc.dg/guality/pr54200.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION line 20 z == 3
FAIL: gcc.dg/guality/pr54200.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 20 z == 3
FAIL: gcc.dg/guality/pr54200.c   -Os  -DPREVENT_OPTIMIZATION  line 20 z == 3
FAIL: gcc.dg/guality/pr54519-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 20 y == 25
FAIL: gcc.dg/guality/pr54519-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 20 z == 6
FAIL: gcc.dg/guality/pr54519-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 23 y == 117
FAIL: gcc.dg/guality/pr54519-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 23 z == 8
FAIL: gcc.dg/guality/pr54519-2.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION line 17 y == 25
FAIL: 

Re: Reverted recent patches to resource.cc

2024-05-30 Thread Hans-Peter Nilsson
> Date: Wed, 29 May 2024 21:23:58 -0600
> Cc: gcc-patches@gcc.gnu.org

> I don't bother with qemu.exp at all.  I've set up binfmt handlers so 
> that I can execute foreign binaries.
> 
> So given a root filesystem, I can chroot into it and do whatever I need. 
>   As far as dejagnu is concerned it looks like the native system.

Interesting.  In a Docker setup (or similar container)?
If so, care to share the Dockerfile (or equivalent)?

A quick web search shows similar attempts, but I found
nothing "turn-key ready" that enables bootstrapping.

I'll try to cook up something, likely Debian-based...later
this decade, aiming for suitability in contrib/.

brgds, H-P
ps. my hyperbolic time guesstimates somehow still expire too soon!


Results of testsuite (branch: master; revision: r15-929; build config: lto,O3,checking=all; languages: all; tasks: 16) on x86_64-linux-gnu.

2024-05-30 Thread Toon Moene
LAST_UPDATED: Thu May 30 19:48:10 UTC 2024 (revision r15-929-g46d931b3dd3)

Native configuration is x86_64-pc-linux-gnu

=== gcc tests ===


Running target unix
FAIL: gcc.dg/rtl/x86_64/pro_and_epilogue.c (internal compiler error: in 
df_scan_verify, at df-scan.cc:4233)
FAIL: gcc.dg/rtl/x86_64/pro_and_epilogue.c (test for excess errors)
FAIL: gcc.dg/rtl/x86_64/pro_and_epilogue.c scan-rtl-dump-times pro_and_epilogue 
"NOTE_INSN_PROLOGUE_END" 1
FAIL: gcc.dg/rtl/x86_64/pro_and_epilogue.c scan-rtl-dump-times pro_and_epilogue 
"simple_return" 2
FAIL: gcc.target/i386/apx-ndd-tls-1b.c scan-assembler-times addq[ 
\\t]+%r[a-z0-9]+, a@gottpoff(%rip), %r[a-z0-9]+ 1
FAIL: gcc.target/i386/pr101950-2.c scan-assembler-times \\txor[ql]\\t 2

=== gcc Summary ===

# of expected passes199229
# of unexpected failures6
# of expected failures  1471
# of unsupported tests  3131
/home/toon/scratch/bld1697903/gcc/xgcc  version 15.0.0 20240530 (experimental) 
[master r15-929-g46d931b3dd3] (GCC) 

=== gdc tests ===


Running target unix
FAIL: gdc.dg/attr_module.d(test for warnings, line 12)
FAIL: gdc.dg/attr_module.d(test for warnings, line 18)
FAIL: gdc.dg/attr_module.d(test for warnings, line 24)
FAIL: gdc.dg/attr_module.d(test for warnings, line 36)
FAIL: gdc.dg/attr_module.d   (test for excess errors)
FAIL: gdc.dg/gdc231.d   (test for excess errors)
FAIL: gdc.dg/gdc253a.d   (test for excess errors)
FAIL: gdc.dg/gdc27.d   (test for excess errors)
FAIL: gdc.dg/pr108050.d   (test for excess errors)
FAIL: gdc.test/compilable/test16348.d   output-exists test16348.s
FAIL: gdc.test/compilable/test17541.d   output-exists test17541.s
FAIL: gdc.test/fail_compilation/diag4479.d   output-exists-not diag4479.o
FAIL: gdc.test/fail_compilation/fail11453a.d   output-exists-not fail11453a.o
FAIL: gdc.test/fail_compilation/fail11453b.d   output-exists-not fail11453b.o
FAIL: gdc.test/fail_compilation/fail18938.d   output-exists-not fail18938.o
FAIL: gdc.test/fail_compilation/fail19911b.d   output-exists-not fail19911b.o
FAIL: gdc.test/fail_compilation/fail23109.d   output-exists-not fail23109.o
FAIL: gdc.test/fail_compilation/ice10598.d   output-exists-not ice10598.o
FAIL: gdc.test/fail_compilation/ice11136.d   output-exists-not ice11136.o
FAIL: gdc.test/fail_compilation/ice14116.d   output-exists-not ice14116.o
FAIL: gdc.test/fail_compilation/no_Throwable.d   output-exists-not 
no_Throwable.o
FAIL: gdc.test/fail_compilation/no_TypeInfo.d   output-exists-not no_TypeInfo.o
FAIL: gdc.test/fail_compilation/verifyhookexist.d   output-exists-not 
verifyhookexist.o

=== gdc Summary ===

# of expected passes13841
# of unexpected failures23
# of unsupported tests  130
/home/toon/scratch/bld1697903/gcc/gdc  version 15.0.0 20240530 (experimental) 
[master r15-929-g46d931b3dd3] (GCC) 

=== gfortran tests ===


Running target unix

=== gfortran Summary ===

# of expected passes70238
# of expected failures  273
# of unsupported tests  79
/home/toon/scratch/bld1697903/gcc/gfortran  version 15.0.0 20240530 
(experimental) [master r15-929-g46d931b3dd3] (GCC) 

=== g++ tests ===


Running target unix

=== g++ Summary ===

# of expected passes264506
# of expected failures  2758
# of unsupported tests  11429
/home/toon/scratch/bld1697903/gcc/xg++  version 15.0.0 20240530 (experimental) 
[master r15-929-g46d931b3dd3] (GCC) 

=== gm2 tests ===


Running target unix

=== gm2 Summary ===

# of expected passes14036
=== go tests ===


Running target unix
FAIL: ./index0-out.go execution,  -O0 -g -fno-var-tracking-assignments 

=== go Summary ===

# of expected passes8897
# of unexpected failures1
# of untested testcases 6
# of unsupported tests  27
/home/toon/scratch/bld1697903/gcc/gccgo  version 15.0.0 20240530 (experimental) 
[master r15-929-g46d931b3dd3] (GCC) 

=== obj-c++ tests ===


Running target unix

=== obj-c++ Summary ===

# of expected passes1503
# of expected failures  10
# of unsupported tests  79
/home/toon/scratch/bld1697903/gcc/xg++  version 15.0.0 20240530 (experimental) 
[master r15-929-g46d931b3dd3] (GCC) 

=== objc tests ===


Running target unix

=== objc Summary ===

# of expected passes2840
# of expected failures  6
# of unsupported tests  70
/home/toon/scratch/bld1697903/gcc/xgcc  version 15.0.0 20240530 (experimental) 
[master r15-929-g46d931b3dd3] (GCC) 

=== rust tests ===


Running target unix

=== rust Summary ===

# of expected passes8402
# of expected failures  69
# 

Results for 15.0.0 20240531 (experimental) [master r15-931-g0ab643555c] (GCC) testsuite on powerpc64-unknown-linux-gnu

2024-05-30 Thread Bill Seurer (POWER9 BE) via Gcc-testresults


git commit g:0ab643555c24eddfd692605ca185a04527993a56
gcc-descr r15-931-g0ab643555c24ed

power9 BE
Linux 6.7.12-powerpc64 ppc64
GNU Make 4.3

DejaGnu:
DejaGnu version 1.6.3
Expect version  5.45.4
Tcl version 8.6

64-bit

LAST_UPDATED: Fri May 31 00:19:31 UTC 2024 (revision r15-931-g0ab643555c)

Native configuration is powerpc64-unknown-linux-gnu

=== g++ tests ===


Running target unix/-m32
FAIL: c-c++-common/torture/strub-run3.c   -O0  execution test

=== g++ Summary for unix/-m32 ===

# of expected passes251911
# of unexpected failures1
# of expected failures  2618
# of unsupported tests  11565

Running target unix/-m64

=== g++ Summary for unix/-m64 ===

# of expected passes260933
# of expected failures  2623
# of unsupported tests  11738

=== g++ Summary ===

# of expected passes512844
# of unexpected failures1
# of expected failures  5241
# of unsupported tests  23303
/home/gccbuild/build/nightly/build-gcc-trunk/gcc/xg++  version 15.0.0 20240531 
(experimental) [master r15-931-g0ab643555c] (GCC) 

=== gcc tests ===


Running target unix/-m32
XPASS: gcc.dg/guality/example.c   -O0  execution test
XPASS: gcc.dg/guality/example.c   -O1  -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/example.c  -Og -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/guality.c   -O0  execution test
XPASS: gcc.dg/guality/guality.c   -O1  -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/guality.c   -O2  -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/guality.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION execution test
XPASS: gcc.dg/guality/guality.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION execution test
XPASS: gcc.dg/guality/guality.c   -O3 -g  -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/guality.c   -Os  -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/guality.c  -Og -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/inline-params.c   -O2  -DPREVENT_OPTIMIZATION  execution 
test
XPASS: gcc.dg/guality/inline-params.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION execution test
XPASS: gcc.dg/guality/inline-params.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION execution test
XPASS: gcc.dg/guality/inline-params.c   -O3 -g  -DPREVENT_OPTIMIZATION  
execution test
XPASS: gcc.dg/guality/inline-params.c   -Os  -DPREVENT_OPTIMIZATION  execution 
test
FAIL: gcc.dg/guality/loop-1.c   -O2  -DPREVENT_OPTIMIZATION  line 20 i == 1
FAIL: gcc.dg/guality/loop-1.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION line 20 i == 1
FAIL: gcc.dg/guality/loop-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 20 i == 1
FAIL: gcc.dg/guality/loop-1.c   -O3 -fomit-frame-pointer -funroll-loops 
-fpeel-loops -ftracer -finline-functions  -DPREVENT_OPTIMIZATION  line 20 i == 1
FAIL: gcc.dg/guality/loop-1.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 20 i == 1
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg1 == 1
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg2 == 2
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg3 == 3
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg4 == 4
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg5 == 5
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg6 == 6
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg7 == 30
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 18 arg1 == 1
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 18 arg2 == 2
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 18 arg3 == 3
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 18 arg4 == 4
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 18 arg5 == 5
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 18 arg6 == 6
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto 

Results for 14.1.1 20240529 (GCC) testsuite on hppa-unknown-linux-gnu

2024-05-30 Thread John David Anglin
=== acats tests ===

=== acats Summary ===
# of expected passes2328
# of unexpected failures0
Native configuration is hppa-unknown-linux-gnu

=== g++ tests ===


Running target unix
FAIL: g++.dg/guality/pr55665.C   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  line 23 p == 40
FAIL: g++.dg/guality/redeclaration1.C   -O1  line 15 i == 42
FAIL: g++.dg/guality/redeclaration1.C   -O2  line 15 i == 42
FAIL: g++.dg/guality/redeclaration1.C   -O3 -g  line 15 i == 42
FAIL: g++.dg/guality/redeclaration1.C   -Os  line 15 i == 42
FAIL: g++.dg/guality/redeclaration1.C  -Og  line 15 i == 42

=== g++ Summary ===

# of expected passes249246
# of unexpected failures6
# of expected failures  2619
# of unsupported tests  11625
/home/dave/gnu/gcc/objdir/gcc/xg++  version 14.1.1 20240529 (GCC) 

=== gcc tests ===


Running target unix
FAIL: gcc.dg/cpp/_Pragma3.c (test for excess errors)
XPASS: gcc.dg/guality/guality.c   -O0  execution test
XPASS: gcc.dg/guality/inline-params.c   -O2  -DPREVENT_OPTIMIZATION  execution 
test
XPASS: gcc.dg/guality/inline-params.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION execution test
XPASS: gcc.dg/guality/inline-params.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION execution test
XPASS: gcc.dg/guality/inline-params.c   -O3 -g  -DPREVENT_OPTIMIZATION  
execution test
XPASS: gcc.dg/guality/inline-params.c   -Os  -DPREVENT_OPTIMIZATION  execution 
test
FAIL: gcc.dg/guality/ipa-sra-1.c   -O2  -DPREVENT_OPTIMIZATION  line 31 k == 3
FAIL: gcc.dg/guality/ipa-sra-1.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION line 31 k == 3
FAIL: gcc.dg/guality/ipa-sra-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 31 k == 3
FAIL: gcc.dg/guality/ipa-sra-1.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 31 k == 
3
FAIL: gcc.dg/guality/ipa-sra-1.c   -Os  -DPREVENT_OPTIMIZATION  line 31 k == 3
FAIL: gcc.dg/guality/loop-1.c   -O3 -fomit-frame-pointer -funroll-loops 
-fpeel-loops -ftracer -finline-functions  -DPREVENT_OPTIMIZATION  line 20 i == 1
FAIL: gcc.dg/guality/nrv-1.c   -O2  -DPREVENT_OPTIMIZATION  line 20 a2.i[0] == 
42
FAIL: gcc.dg/guality/nrv-1.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION line 20 a2.i[0] == 42
FAIL: gcc.dg/guality/nrv-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 20 a2.i[0] == 42
FAIL: gcc.dg/guality/nrv-1.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 20 a2.i[0] 
== 42
FAIL: gcc.dg/guality/nrv-1.c   -Os  -DPREVENT_OPTIMIZATION  line 20 a2.i[0] == 
42
FAIL: gcc.dg/guality/pr36728-1.c   -O1  -DPREVENT_OPTIMIZATION  line 16 arg5 == 
5
FAIL: gcc.dg/guality/pr36728-1.c   -O1  -DPREVENT_OPTIMIZATION  line 16 arg6 == 
6
FAIL: gcc.dg/guality/pr36728-1.c   -O1  -DPREVENT_OPTIMIZATION  line 16 arg7 == 
30
FAIL: gcc.dg/guality/pr36728-1.c   -O1  -DPREVENT_OPTIMIZATION  line 18 arg5 == 
5
FAIL: gcc.dg/guality/pr36728-1.c   -O1  -DPREVENT_OPTIMIZATION  line 18 arg6 == 
6
FAIL: gcc.dg/guality/pr36728-1.c   -O1  -DPREVENT_OPTIMIZATION  line 18 arg7 == 
30
FAIL: gcc.dg/guality/pr36728-1.c   -O2  -DPREVENT_OPTIMIZATION  line 16 arg5 == 
5
FAIL: gcc.dg/guality/pr36728-1.c   -O2  -DPREVENT_OPTIMIZATION  line 16 arg6 == 
6
FAIL: gcc.dg/guality/pr36728-1.c   -O2  -DPREVENT_OPTIMIZATION  line 16 arg7 == 
30
FAIL: gcc.dg/guality/pr36728-1.c   -O2  -DPREVENT_OPTIMIZATION  line 18 arg5 == 
5
FAIL: gcc.dg/guality/pr36728-1.c   -O2  -DPREVENT_OPTIMIZATION  line 18 arg6 == 
6
FAIL: gcc.dg/guality/pr36728-1.c   -O2  -DPREVENT_OPTIMIZATION  line 18 arg7 == 
30
FAIL: gcc.dg/guality/pr36728-1.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION line 16 arg5 == 5
FAIL: gcc.dg/guality/pr36728-1.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION line 16 arg6 == 6
FAIL: gcc.dg/guality/pr36728-1.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION line 16 arg7 == 30
FAIL: gcc.dg/guality/pr36728-1.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION line 18 arg5 == 5
FAIL: gcc.dg/guality/pr36728-1.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION line 18 arg6 == 6
FAIL: gcc.dg/guality/pr36728-1.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION line 18 arg7 == 30
FAIL: gcc.dg/guality/pr36728-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg1 == 1
FAIL: gcc.dg/guality/pr36728-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg2 == 2
FAIL: gcc.dg/guality/pr36728-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg3 == 3
FAIL: gcc.dg/guality/pr36728-1.c   -O2 -flto 

RE: [PATCH] aarch64: Add vector floating point extend patterns [PR113880, PR113869]

2024-05-30 Thread Pengxuan Zheng (QUIC)
> Pengxuan Zheng  writes:
> > This patch improves vectorization of certain floating point widening
> > operations for the aarch64 target by adding vector floating point
> > extend patterns for
> > V2SF->V2DF and V4HF->V4SF conversions.
> >
> > PR target/113880
> > PR target/113869
> >
> > gcc/ChangeLog:
> >
> > * config/aarch64/aarch64-simd.md (extend2): New
> expand.
> >
> > gcc/testsuite/ChangeLog:
> >
> > * gcc.target/aarch64/extend-vec.c: New test.
> >
> > Signed-off-by: Pengxuan Zheng 
> 
> Thanks for doing this.  Could we instead rename
> aarch64_float_extend_lo_ to extend2 and use
> something similar to:
> 
> ---
> /* The builtins below should be expanded through the standard optabs
>CODE_FOR_[u]avg3_[floor,ceil].  However the mapping scheme in
>aarch64-simd-builtins.def does not easily allow us to have a pre-mode
>("uavg") and post-mode string ("_ceil") in the CODE_FOR_* construction.
>So the builtins use a name that is natural for AArch64 instructions
>e.g. "aarch64_srhadd" and we re-map these to the optab-related
>CODE_FOR_ here.  */
> #undef VAR1
> #define VAR1(F,T1,T2,I,M) \
> constexpr insn_code CODE_FOR_aarch64_##F##M =
> CODE_FOR_##T1##M##3##T2;
> 
> BUILTIN_VDQ_BHSI (srhadd, avg, _ceil, 0) BUILTIN_VDQ_BHSI (urhadd, uavg,
> _ceil, 0) BUILTIN_VDQ_BHSI (shadd, avg, _floor, 0) BUILTIN_VDQ_BHSI
> (uhadd, uavg, _floor, 0)
> 
> #undef VAR1
> ---
> 
> (from aarch64-builtins.cc) to handle the intrinsics?  The idea is to try to 
> avoid
> adding new patterns just to satisfy the internal naming convention.

Sure, Richard.

Here's the updated patch 
https://gcc.gnu.org/pipermail/gcc-patches/2024-May/653177.html.

Please let me know if I missed anything.

Thanks,
Pengxuan
> 
> Richard
> 
> > ---
> >  gcc/config/aarch64/aarch64-simd.md|  7 +++
> >  gcc/testsuite/gcc.target/aarch64/extend-vec.c | 21
> > +++
> >  2 files changed, 28 insertions(+)
> >  create mode 100644 gcc/testsuite/gcc.target/aarch64/extend-vec.c
> >
> > diff --git a/gcc/config/aarch64/aarch64-simd.md
> > b/gcc/config/aarch64/aarch64-simd.md
> > index 868f4486218..8febb411d06 100644
> > --- a/gcc/config/aarch64/aarch64-simd.md
> > +++ b/gcc/config/aarch64/aarch64-simd.md
> > @@ -3141,6 +3141,13 @@ (define_insn
> "aarch64_float_extend_lo_"
> >[(set_attr "type" "neon_fp_cvt_widen_s")]
> >  )
> >
> > +(define_expand "extend2"
> > +  [(set (match_operand: 0 "register_operand" "=w")
> > +(float_extend:
> > +  (match_operand:VDF 1 "register_operand" "w")))]
> > +  "TARGET_SIMD"
> > +)
> > +
> >  ;; Float narrowing operations.
> >
> >  (define_insn "aarch64_float_trunc_rodd_df"
> > diff --git a/gcc/testsuite/gcc.target/aarch64/extend-vec.c
> > b/gcc/testsuite/gcc.target/aarch64/extend-vec.c
> > new file mode 100644
> > index 000..f6241d5
> > --- /dev/null
> > +++ b/gcc/testsuite/gcc.target/aarch64/extend-vec.c
> > @@ -0,0 +1,21 @@
> > +/* { dg-do compile } */
> > +/* { dg-options "-O2" } */
> > +
> > +/* { dg-final { scan-assembler-times {fcvtl\tv[0-9]+.2d, v[0-9]+.2s}
> > +1 } } */ void f (float *__restrict a, double *__restrict b) {
> > +  b[0] = a[0];
> > +  b[1] = a[1];
> > +}
> > +
> > +/* { dg-final { scan-assembler-times {fcvtl\tv[0-9]+.4s, v[0-9]+.4h}
> > +1 } } */ void
> > +f1 (_Float16 *__restrict a, float *__restrict b) {
> > +
> > +  b[0] = a[0];
> > +  b[1] = a[1];
> > +  b[2] = a[2];
> > +  b[3] = a[3];
> > +}


[PATCH v2] aarch64: Add vector floating point extend pattern [PR113880, PR113869]

2024-05-30 Thread Pengxuan Zheng
This patch adds vector floating point extend pattern for V2SF->V2DF and
V4HF->V4SF conversions by renaming the existing aarch64_float_extend_lo_
pattern to the standard optab one, i.e., extend2. This allows the
vectorizer to vectorize certain floating point widening operations for the
aarch64 target.

PR target/113880
PR target/113869

gcc/ChangeLog:

* config/aarch64/aarch64-builtins.cc (VAR1): Remap float_extend_lo_
builtin codes to standard optab ones.
* config/aarch64/aarch64-simd.md (aarch64_float_extend_lo_): 
Rename
to...
(extend2): ... This.

gcc/testsuite/ChangeLog:

* gcc.target/aarch64/extend-vec.c: New test.

Signed-off-by: Pengxuan Zheng 
---
 gcc/config/aarch64/aarch64-builtins.cc|  9 
 gcc/config/aarch64/aarch64-simd.md|  2 +-
 gcc/testsuite/gcc.target/aarch64/extend-vec.c | 21 +++
 3 files changed, 31 insertions(+), 1 deletion(-)
 create mode 100644 gcc/testsuite/gcc.target/aarch64/extend-vec.c

diff --git a/gcc/config/aarch64/aarch64-builtins.cc 
b/gcc/config/aarch64/aarch64-builtins.cc
index f8eeccb554d..25189888d17 100644
--- a/gcc/config/aarch64/aarch64-builtins.cc
+++ b/gcc/config/aarch64/aarch64-builtins.cc
@@ -534,6 +534,15 @@ BUILTIN_VDQ_BHSI (urhadd, uavg, _ceil, 0)
 BUILTIN_VDQ_BHSI (shadd, avg, _floor, 0)
 BUILTIN_VDQ_BHSI (uhadd, uavg, _floor, 0)
 
+/* The builtins below should be expanded through the standard optabs
+   CODE_FOR_extend2. */
+#undef VAR1
+#define VAR1(F,T,N,M) \
+  constexpr insn_code CODE_FOR_aarch64_##F##M = CODE_FOR_##T##N##M##2;
+
+VAR1 (float_extend_lo_, extend, v2sf, v2df)
+VAR1 (float_extend_lo_, extend, v4hf, v4sf)
+
 #undef VAR1
 #define VAR1(T, N, MAP, FLAG, A) \
   {#N #A, UP (A), CF##MAP (N, A), 0, TYPES_##T, FLAG_##FLAG},
diff --git a/gcc/config/aarch64/aarch64-simd.md 
b/gcc/config/aarch64/aarch64-simd.md
index 868f4486218..c5e2c9f00d0 100644
--- a/gcc/config/aarch64/aarch64-simd.md
+++ b/gcc/config/aarch64/aarch64-simd.md
@@ -3132,7 +3132,7 @@
 DONE;
   }
 )
-(define_insn "aarch64_float_extend_lo_"
+(define_insn "extend2"
   [(set (match_operand: 0 "register_operand" "=w")
(float_extend:
  (match_operand:VDF 1 "register_operand" "w")))]
diff --git a/gcc/testsuite/gcc.target/aarch64/extend-vec.c 
b/gcc/testsuite/gcc.target/aarch64/extend-vec.c
new file mode 100644
index 000..f6241d5
--- /dev/null
+++ b/gcc/testsuite/gcc.target/aarch64/extend-vec.c
@@ -0,0 +1,21 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+/* { dg-final { scan-assembler-times {fcvtl\tv[0-9]+.2d, v[0-9]+.2s} 1 } } */
+void
+f (float *__restrict a, double *__restrict b)
+{
+  b[0] = a[0];
+  b[1] = a[1];
+}
+
+/* { dg-final { scan-assembler-times {fcvtl\tv[0-9]+.4s, v[0-9]+.4h} 1 } } */
+void
+f1 (_Float16 *__restrict a, float *__restrict b)
+{
+
+  b[0] = a[0];
+  b[1] = a[1];
+  b[2] = a[2];
+  b[3] = a[3];
+}
-- 
2.17.1



Results for 15.0.0 20240530 (experimental) [master r15-929-g46d931b3dd3] (GCC) testsuite on x86_64-pc-linux-gnu

2024-05-30 Thread haochenj--- via Gcc-testresults
.dg/tree-ssa/pr64910-2.c scan-assembler-times and|test 20
FAIL: gcc.dg/tree-ssa/slsr-31.c scan-tree-dump-times optimized " * 2" 1
FAIL: gcc.dg/vect/slp-perm-9.c -flto -ffat-lto-objects  scan-tree-dump-times 
vect "vectorizing stmts using SLP" 1
FAIL: gcc.dg/vect/slp-perm-9.c scan-tree-dump-times vect "vectorizing stmts 
using SLP" 1
XPASS: gcc.dg/vect/vect-reduc-in-order-1.c -flto -ffat-lto-objects execution 
test
XPASS: gcc.dg/vect/vect-reduc-in-order-1.c execution test
XPASS: gcc.dg/vect/vect-reduc-in-order-2.c -flto -ffat-lto-objects execution 
test
XPASS: gcc.dg/vect/vect-reduc-in-order-2.c execution test
XPASS: gcc.dg/vect/vect-reduc-in-order-3.c -flto -ffat-lto-objects execution 
test
XPASS: gcc.dg/vect/vect-reduc-in-order-3.c execution test
XPASS: gcc.dg/vect/vect-reduc-in-order-4.c -flto -ffat-lto-objects execution 
test
XPASS: gcc.dg/vect/vect-reduc-in-order-4.c execution test
FAIL: gcc.target/i386/avx512bw-vmovdqu16-1.c scan-assembler-times 
(?:vmovdqu16|vextracti128)[ t]+[^{\\n]*%ymm[0-9]+[^\\n]*)(?:\\n|[ 
t]+#) 1
FAIL: gcc.target/i386/avx512bw-vmovdqu16-1.c scan-assembler-times 
(?:vmovdqu16|vinserti128)[ t]+[^{\\n]*)[^\\n]*%ymm[0-9]+(?:\\n|[ 
t]+#) 1
FAIL: gcc.target/i386/avx512dq-pr88465.c scan-assembler-times kxnorb[ \\t] 1
FAIL: gcc.target/i386/avx512f-pr88465.c scan-assembler-times kxnorw[ \\t] 1
FAIL: gcc.target/i386/avx512fp16-13.c scan-assembler-times vmovdqu16[ 
t]*[^,]*,[^{\\n]*%xmm[0-9] 1
FAIL: gcc.target/i386/avx512fp16-13.c scan-assembler-times vmovdqu16[ 
t]*[^,]*,[^{\\n]*%ymm[0-9] 1
FAIL: gcc.target/i386/avx512fp16-13.c scan-assembler-times vmovdqu16[ 
t]*[^{\\n]*%xmm[0-9], *[^,]* 1
FAIL: gcc.target/i386/avx512fp16-13.c scan-assembler-times vmovdqu16[ 
t]*[^{\\n]*%ymm[0-9], *[^,]* 1
XPASS: gcc.target/i386/bitwise_mask_op-3.c scan-assembler-times kmovb[\\t ] 4
XPASS: gcc.target/i386/bitwise_mask_op-3.c scan-assembler-times korb[\\t ] 1
XPASS: gcc.target/i386/bitwise_mask_op-3.c scan-assembler-times kxorb[\\t ] 1
FAIL: gcc.target/i386/minmax-10.c scan-assembler-not cmp
FAIL: gcc.target/i386/minmax-10.c scan-assembler-times test 6
FAIL: gcc.target/i386/pieces-memset-11.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 2
FAIL: gcc.target/i386/pieces-memset-14.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 1
FAIL: gcc.target/i386/pieces-memset-2.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 2
FAIL: gcc.target/i386/pieces-memset-20.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 2
FAIL: gcc.target/i386/pieces-memset-23.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 1
FAIL: gcc.target/i386/pieces-memset-29.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 2
FAIL: gcc.target/i386/pieces-memset-30.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 2
FAIL: gcc.target/i386/pieces-memset-33.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 1
FAIL: gcc.target/i386/pieces-memset-34.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 1
FAIL: gcc.target/i386/pieces-memset-37.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 2
FAIL: gcc.target/i386/pieces-memset-44.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 1
FAIL: gcc.target/i386/pieces-memset-5.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 1
FAIL: gcc.target/i386/pr31985.c scan-assembler-times movl 4
FAIL: gcc.target/i386/pr95483-5.c scan-assembler-times 
(?:vmovdqu8|vextracti128)[ t]+[^{\\n]*%ymm[0-9]+[^\\n]*)(?:\\n|[ 
t]+#) 1
FAIL: gcc.target/i386/pr95483-5.c scan-assembler-times 
(?:vmovdqu8|vinserti128)[ t]+[^{\\n]*)[^\\n]*%ymm[0-9]+(?:\\n|[ 
t]+#) 1
FAIL: gcc.target/i386/pr95483-6.c scan-assembler-times (?:vinserti128|vmovdqu)[ 
t]+[^{\\n]*)[^\\n]*%ymm[0-9]+(?:\\n|[ t]+#) 2
FAIL: gcc.target/i386/pr97873-1.c scan-assembler pabsq
FAIL: gcc.target/i386/vect-double-2.c scan-tree-dump-times vect "Vectorized 
loops: 1" 1
FAIL: gcc.target/i386/vect-shiftv4qi.c scan-assembler-times psrlw 5
FAIL: gcc.target/i386/xorsign.c scan-tree-dump-times vect "vectorized 2 loops" 1

=== gcc Summary for unix/-m32 ===

# of expected passes197789
# of unexpected failures158
# of unexpected successes   30
# of expected failures  1553
# of unsupported tests  4077

=== gcc Summary ===

# of expected passes401939
# of unexpected failures318
# of unexpected successes   50
# of expected failures  3100
# of unsupported tests  7352
/export/home/haochenj/src/gcc-regression/bld/gcc/xgcc  version 15.0.0 20240530 
(experimental) [master r15-929-g46d931b3dd3] (GCC) 

=== gfortran tests ===


Running target unix

=== gfortran Summary for unix ===

# of expected passes70253
# of expected failures  273
# of unsupported tests  65

Running target unix/-m32

=== gfortran Summary for unix/-m32 ===

# of expected passes   

[Bug rtl-optimization/115297] New: [14 regression] alpha: ICE in simplify_subreg, at simplify-rtx.cc:7554 with -O1

2024-05-30 Thread matoro_gcc_bugzilla at matoro dot tk via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115297

Bug ID: 115297
   Summary: [14 regression] alpha: ICE in simplify_subreg, at
simplify-rtx.cc:7554 with -O1
   Product: gcc
   Version: 14.1.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: rtl-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: matoro_gcc_bugzilla at matoro dot tk
  Target Milestone: ---
Target: alpha-unknown-linux-gnu

Created attachment 58314
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=58314=edit
gdb context and complete backtrace

Found this while building kernel with gcc-14.  This reproduces on cross, so
using that as an example.

Minimized:

enum { BPF_F_USER_BUILD_ID } __bpf_get_stack_size;
long __bpf_get_stack_flags, bpf_get_stack___trans_tmp_2;
void bpf_get_stack() {
  unsigned elem_size;
  int err = elem_size = __bpf_get_stack_flags ?: sizeof(long);
  if (__builtin_expect(__bpf_get_stack_size % elem_size, 0))
bpf_get_stack___trans_tmp_2 = err;
}

$ alpha-unknown-linux-gnu-gcc-14 -O1 -c stackmap.i
during RTL pass: combine
stackmap.i: In function ‘bpf_get_stack’:
stackmap.i:8:1: internal compiler error: in simplify_subreg, at
simplify-rtx.cc:7554
8 | }
  | ^

Backtrace summary (more detailed bt with locals and snippets in attachment):

#0  internal_error (gmsgid=0x1033e41b0 "in %s, at %s:%d") at
/usr/src/debug/cross-alpha-unknown-linux-gnu/gcc-14.1.1_p20240518/gcc-14-20240518/gcc/diagnostic.cc:2227
#1  0x000102ff9cac in fancy_abort (file=0x103272d20
"/var/tmp/portage/cross-alpha-unknown-linux-gnu/gcc-14.1.1_p20240518/work/gcc-14-20240518/gcc/simplify-rtx.cc",
line=7554, 
function=0x1032731f0 "simplify_subreg") at
/usr/src/debug/cross-alpha-unknown-linux-gnu/gcc-14.1.1_p20240518/gcc-14-20240518/gcc/diagnostic.cc:2353
#2  0x0001017b5ea4 in simplify_context::simplify_subreg
(this=0x7fff9f00, outermode=E_DImode, op=0x75448c28,
innermode=E_SImode, byte=...)
at
/usr/src/debug/cross-alpha-unknown-linux-gnu/gcc-14.1.1_p20240518/gcc-14-20240518/gcc/simplify-rtx.cc:7554
#3  0x0001017b8da8 in simplify_context::simplify_subreg
(this=0x7fff9f00, outermode=E_DImode, op=0x75449ff0,
innermode=E_SImode, byte=...)
at
/usr/src/debug/cross-alpha-unknown-linux-gnu/gcc-14.1.1_p20240518/gcc-14-20240518/gcc/simplify-rtx.cc:7804
#4  0x0001017b988c in simplify_context::simplify_gen_subreg
(this=0x7fff9f00, outermode=E_DImode, op=0x75449ff0,
innermode=E_SImode, byte=...)
at
/usr/src/debug/cross-alpha-unknown-linux-gnu/gcc-14.1.1_p20240518/gcc-14-20240518/gcc/simplify-rtx.cc:7875
#5  0x000100bb6224 in simplify_gen_subreg (outermode=E_DImode,
op=0x75449ff0, innermode=E_SImode, byte=...)
at
/usr/src/debug/cross-alpha-unknown-linux-gnu/gcc-14.1.1_p20240518/gcc-14-20240518/gcc/rtl.h:3552
#6  0x0001028f87dc in if_then_else_cond (x=0x75449f60,
ptrue=0x7fffa528, pfalse=0x7fffa538)
at
/usr/src/debug/cross-alpha-unknown-linux-gnu/gcc-14.1.1_p20240518/gcc-14-20240518/gcc/combine.cc:9423
#7  0x0001028f55ec in if_then_else_cond (x=0x75449f78,
ptrue=0x7fffa948, pfalse=0x7fffa958)
at
/usr/src/debug/cross-alpha-unknown-linux-gnu/gcc-14.1.1_p20240518/gcc-14-20240518/gcc/combine.cc:9286
#8  0x0001028f55ec in if_then_else_cond (x=0x75449f90,
ptrue=0x7fffb148, pfalse=0x7fffb150)
at
/usr/src/debug/cross-alpha-unknown-linux-gnu/gcc-14.1.1_p20240518/gcc-14-20240518/gcc/combine.cc:9286
#9  0x0001028bf07c in combine_simplify_rtx (x=0x75449f90,
op0_mode=E_VOIDmode, in_dest=false, in_cond=false)
at
/usr/src/debug/cross-alpha-unknown-linux-gnu/gcc-14.1.1_p20240518/gcc-14-20240518/gcc/combine.cc:5758
#10 0x0001028bc3d8 in subst (x=0x75449f90, from=0x754488c8,
to=0x75451920, in_dest=false, in_cond=false, unique_copy=false)
at
/usr/src/debug/cross-alpha-unknown-linux-gnu/gcc-14.1.1_p20240518/gcc-14-20240518/gcc/combine.cc:5619
#11 0x0001028bba88 in subst (x=0x75448cb8, from=0x754488c8,
to=0x75451920, in_dest=false, in_cond=false, unique_copy=false)
at
/usr/src/debug/cross-alpha-unknown-linux-gnu/gcc-14.1.1_p20240518/gcc-14-20240518/gcc/combine.cc:5546
#12 0x0001028babe8 in subst (x=0x754a68a0, from=0x754488c8,
to=0x75451920, in_dest=false, in_cond=false, unique_copy=false)
at
/usr/src/debug/cross-alpha-unknown-linux-gnu/gcc-14.1.1_p20240518/gcc-14-20240518/gcc/combine.cc:5480
#13 0x00010289ba0c in try_combine (i3=0x754e0540, i2=0x754e0500,
i1=0x754e06c0, i0=0x0, new_direct_jump_p=0x7fffe2df,
last_combined_insn=0x754e0540)
at
/usr/src/debug/cross-alpha-unknown-linux-gnu/gcc-14.1.1_p20240518/gcc-14-20240518/gcc/combine.cc:3349
#14 0x00010288c22c in combine_instructions (f=0x754009a0, nregs=88) at

Results for 15.0.0 20240530 (experimental) [master revision gcc-15-929-g46d931b3dd3] (GCC) testsuite on aarch64-unknown-linux-gnu

2024-05-30 Thread ci_notify--- via Gcc-testresults
s]bfiztw[0-9]+, w[0-9]+, 11 2
FAIL: gcc.target/aarch64/pr100056.c scan-assembler-times taddtw[0-9]+, 
w[0-9]+, w[0-9]+, uxtbn 2
FAIL: gcc.target/aarch64/pr108840.c scan-assembler-not andtw[0-9]+, 
w[0-9]+, 31
FAIL: gcc.target/aarch64/pr112105.c scan-assembler-not tdupt
FAIL: gcc.target/aarch64/pr112105.c scan-assembler-times 
(?n)tfmult.*v[0-9]+.s[0]n 2
FAIL: gcc.target/aarch64/pr99873_2.c scan-assembler-not tld4t
FAIL: gcc.target/aarch64/pr99873_2.c scan-assembler-not tst4t
FAIL: gcc.target/aarch64/rev16_2.c scan-assembler-times rev16tx[0-9]+ 2
FAIL: gcc.target/aarch64/vaddX_high_cost.c scan-assembler-not dupt
FAIL: gcc.target/aarch64/vmul_element_cost.c scan-assembler-not dupt
FAIL: gcc.target/aarch64/vmul_high_cost.c scan-assembler-not dupt
FAIL: gcc.target/aarch64/vsubX_high_cost.c scan-assembler-not dupt
FAIL: gcc.target/aarch64/sve/mask_struct_load_3_run.c execution test
FAIL: gcc.target/aarch64/sve/pr96357.c scan-assembler 
tfsubrtz[0-9]+.d, p[0-7]/m, z[0-9]+.d, #1.0
FAIL: gcc.target/aarch64/sve/pr96357.c scan-assembler tmovprfxtz[0-9]+, 
z[0-9]+
FAIL: gcc.target/aarch64/sve/pr98119.c scan-assembler tandtx[0-9]+, 
x[0-9]+, #?-31n
FAIL: gcc.target/aarch64/sve/pre_cond_share_1.c scan-tree-dump-times optimized 
".COND_MUL" 1
XPASS: gcc.target/aarch64/sve/pre_cond_share_1.c scan-tree-dump-times optimized 
".VCOND" 1
FAIL: gcc.target/aarch64/sve/pred-not-gen-1.c scan-assembler-not tbict
FAIL: gcc.target/aarch64/sve/pred-not-gen-1.c scan-assembler-times 
tnottp[0-9]+.b, p[0-9]+/z, p[0-9]+.bn 1
FAIL: gcc.target/aarch64/sve/pred-not-gen-4.c scan-assembler-not tbict
FAIL: gcc.target/aarch64/sve/pred-not-gen-4.c scan-assembler-times 
tnottp[0-9]+.b, p[0-9]+/z, p[0-9]+.bn 1
FAIL: gcc.target/aarch64/sve/sad_1.c scan-assembler-times 
tudottz[0-9]+.d, z[0-9]+.h, z[0-9]+.hn 2
FAIL: gcc.target/aarch64/sve/var_stride_2.c scan-assembler-times 
tubfiztx[0-9]+, x2, 10, 16n 1
FAIL: gcc.target/aarch64/sve/var_stride_2.c scan-assembler-times 
tubfiztx[0-9]+, x3, 10, 16n 1
FAIL: gcc.target/aarch64/sve/var_stride_4.c scan-assembler-times 
tsbfiztx[0-9]+, x2, 10, 32n 1
FAIL: gcc.target/aarch64/sve/var_stride_4.c scan-assembler-times 
tsbfiztx[0-9]+, x3, 10, 32n 1

=== gcc Summary ===

# of expected passes339643
# of unexpected failures328
# of unexpected successes   2
# of expected failures  1763
# of unsupported tests  4203
/home/tcwg-buildslave/workspace/tcwg_gnu_1/abe/builds/destdir/x86_64-pc-linux-gnu/bin/aarch64-linux-gnu-gcc
  version 15.0.0 20240530 (experimental) [master revision 
gcc-15-929-g46d931b3dd3] (GCC) 

Host   is x86_64-pc-linux-gnu

=== gfortran tests ===


Running target qemu
FAIL: gfortran.dg/asan/pointer_assign_16.f90 -fsanitize=address  -O0  execution 
test
FAIL: gfortran.dg/asan/pointer_assign_16.f90 -fsanitize=address  -O1  execution 
test
FAIL: gfortran.dg/asan/pointer_assign_16.f90 -fsanitize=address  -O2  execution 
test
FAIL: gfortran.dg/asan/pointer_assign_16.f90 -fsanitize=address  -O3 
-fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  
execution test
FAIL: gfortran.dg/asan/pointer_assign_16.f90 -fsanitize=address  -O3 -g  
execution test
FAIL: gfortran.dg/asan/pointer_assign_16.f90 -fsanitize=address  -Os  execution 
test
FAIL: gfortran.dg/asan/pr110415-2.f90 -fsanitize=address  -O0  execution test
FAIL: gfortran.dg/asan/pr110415-2.f90 -fsanitize=address  -O1  execution test
FAIL: gfortran.dg/asan/pr110415-2.f90 -fsanitize=address  -O2  execution test
FAIL: gfortran.dg/asan/pr110415-2.f90 -fsanitize=address  -O3 
-fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  
execution test
FAIL: gfortran.dg/asan/pr110415-2.f90 -fsanitize=address  -O3 -g  execution test
FAIL: gfortran.dg/asan/pr110415-2.f90 -fsanitize=address  -Os  execution test
FAIL: gfortran.dg/asan/pr110415-3.f90 -fsanitize=address  -O0  execution test
FAIL: gfortran.dg/asan/pr110415-3.f90 -fsanitize=address  -O1  execution test
FAIL: gfortran.dg/asan/pr110415-3.f90 -fsanitize=address  -O2  execution test
FAIL: gfortran.dg/asan/pr110415-3.f90 -fsanitize=address  -O3 
-fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions  
execution test
FAIL: gfortran.dg/asan/pr110415-3.f90 -fsanitize=address  -O3 -g  execution test
FAIL: gfortran.dg/asan/pr110415-3.f90 -fsanitize=address  -Os  execution test
FAIL: gfortran.dg/asan/unlimited_polymorphic_34.f90 -fsanitize=address  -O0  
execution test
FAIL: gfortran.dg/asan/unlimited_polymorphic_34.f90 -fsanitize=address  -O1  
execution test
FAIL: gfortran.dg/asan/unlimited_polymorphic_34.f90 -fsanitize=address  -O2  
execution test
FAIL: gfortran.dg/asan/unlimited_polymorphic_34.f

[committed] [x86] Rename double_u with __double_u to avoid pulluting the namespace.

2024-05-30 Thread liuhongt
Committed as an obvious patch.

gcc/ChangeLog:

* config/i386/emmintrin.h (__double_u): Rename from double_u.
(_mm_load_sd): Replace double_u with __double_u.
(_mm_store_sd): Ditto.
(_mm_loadh_pd): Ditto.
(_mm_loadl_pd): Ditto.
* config/i386/xmmintrin.h (__float_u): Rename from float_u.
(_mm_load_ss): Ditto.
(_mm_store_ss): Ditto.
---
 gcc/config/i386/emmintrin.h | 10 +-
 gcc/config/i386/xmmintrin.h |  6 +++---
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/gcc/config/i386/emmintrin.h b/gcc/config/i386/emmintrin.h
index fa301103daf..356ca218fcb 100644
--- a/gcc/config/i386/emmintrin.h
+++ b/gcc/config/i386/emmintrin.h
@@ -56,7 +56,7 @@ typedef double __m128d __attribute__ ((__vector_size__ (16), 
__may_alias__));
 /* Unaligned version of the same types.  */
 typedef long long __m128i_u __attribute__ ((__vector_size__ (16), 
__may_alias__, __aligned__ (1)));
 typedef double __m128d_u __attribute__ ((__vector_size__ (16), __may_alias__, 
__aligned__ (1)));
-typedef double double_u __attribute__ ((__may_alias__, __aligned__ (1)));
+typedef double __double_u __attribute__ ((__may_alias__, __aligned__ (1)));
 
 /* Create a selector for use with the SHUFPD instruction.  */
 #define _MM_SHUFFLE2(fp1,fp0) \
@@ -146,7 +146,7 @@ _mm_load1_pd (double const *__P)
 extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, 
__artificial__))
 _mm_load_sd (double const *__P)
 {
-  return __extension__ (__m128d) { *(double_u *)__P, 0.0 };
+  return __extension__ (__m128d) { *(__double_u *)__P, 0.0 };
 }
 
 extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, 
__artificial__))
@@ -181,7 +181,7 @@ _mm_storeu_pd (double *__P, __m128d __A)
 extern __inline void __attribute__((__gnu_inline__, __always_inline__, 
__artificial__))
 _mm_store_sd (double *__P, __m128d __A)
 {
-  *(double_u *)__P = ((__v2df)__A)[0] ;
+  *(__double_u *)__P = ((__v2df)__A)[0] ;
 }
 
 extern __inline double __attribute__((__gnu_inline__, __always_inline__, 
__artificial__))
@@ -974,13 +974,13 @@ _mm_unpacklo_pd (__m128d __A, __m128d __B)
 extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, 
__artificial__))
 _mm_loadh_pd (__m128d __A, double const *__B)
 {
-  return __extension__ (__m128d) { ((__v2df)__A)[0], *(double_u*)__B };
+  return __extension__ (__m128d) { ((__v2df)__A)[0], *(__double_u*)__B };
 }
 
 extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, 
__artificial__))
 _mm_loadl_pd (__m128d __A, double const *__B)
 {
-  return __extension__ (__m128d) { *(double_u*)__B, ((__v2df)__A)[1] };
+  return __extension__ (__m128d) { *(__double_u*)__B, ((__v2df)__A)[1] };
 }
 
 extern __inline int __attribute__((__gnu_inline__, __always_inline__, 
__artificial__))
diff --git a/gcc/config/i386/xmmintrin.h b/gcc/config/i386/xmmintrin.h
index 87515ecb218..c90fc71331a 100644
--- a/gcc/config/i386/xmmintrin.h
+++ b/gcc/config/i386/xmmintrin.h
@@ -72,7 +72,7 @@ typedef float __m128 __attribute__ ((__vector_size__ (16), 
__may_alias__));
 
 /* Unaligned version of the same type.  */
 typedef float __m128_u __attribute__ ((__vector_size__ (16), __may_alias__, 
__aligned__ (1)));
-typedef float float_u __attribute__ ((__may_alias__, __aligned__ (1)));
+typedef float __float_u __attribute__ ((__may_alias__, __aligned__ (1)));
 
 /* Internal data types for implementing the intrinsics.  */
 typedef float __v4sf __attribute__ ((__vector_size__ (16)));
@@ -910,7 +910,7 @@ _mm_set_ps1 (float __F)
 extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, 
__artificial__))
 _mm_load_ss (float const *__P)
 {
-  return __extension__ (__m128) (__v4sf){ *(float_u *)__P, 0.0f, 0.0f, 0.0f };
+  return __extension__ (__m128) (__v4sf){ *(__float_u *)__P, 0.0f, 0.0f, 0.0f 
};
 }
 
 /* Create a vector with all four elements equal to *P.  */
@@ -966,7 +966,7 @@ _mm_setr_ps (float __Z, float __Y, float __X, float __W)
 extern __inline void __attribute__((__gnu_inline__, __always_inline__, 
__artificial__))
 _mm_store_ss (float *__P, __m128 __A)
 {
-  *(float_u *)__P = ((__v4sf)__A)[0];
+  *(__float_u *)__P = ((__v4sf)__A)[0];
 }
 
 extern __inline float __attribute__((__gnu_inline__, __always_inline__, 
__artificial__))
-- 
2.31.1



[gcc r15-932] Rename double_u with __double_u to avoid pulluting the namespace.

2024-05-30 Thread hongtao Liu via Gcc-cvs
https://gcc.gnu.org/g:3a873c0a7bc8183de95a6103b507101a25eed413

commit r15-932-g3a873c0a7bc8183de95a6103b507101a25eed413
Author: liuhongt 
Date:   Thu May 30 14:15:48 2024 +0800

Rename double_u with __double_u to avoid pulluting the namespace.

gcc/ChangeLog:

* config/i386/emmintrin.h (__double_u): Rename from double_u.
(_mm_load_sd): Replace double_u with __double_u.
(_mm_store_sd): Ditto.
(_mm_loadh_pd): Ditto.
(_mm_loadl_pd): Ditto.
* config/i386/xmmintrin.h (__float_u): Rename from float_u.
(_mm_load_ss): Ditto.
(_mm_store_ss): Ditto.

Diff:
---
 gcc/config/i386/emmintrin.h | 10 +-
 gcc/config/i386/xmmintrin.h |  6 +++---
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/gcc/config/i386/emmintrin.h b/gcc/config/i386/emmintrin.h
index fa301103daf..356ca218fcb 100644
--- a/gcc/config/i386/emmintrin.h
+++ b/gcc/config/i386/emmintrin.h
@@ -56,7 +56,7 @@ typedef double __m128d __attribute__ ((__vector_size__ (16), 
__may_alias__));
 /* Unaligned version of the same types.  */
 typedef long long __m128i_u __attribute__ ((__vector_size__ (16), 
__may_alias__, __aligned__ (1)));
 typedef double __m128d_u __attribute__ ((__vector_size__ (16), __may_alias__, 
__aligned__ (1)));
-typedef double double_u __attribute__ ((__may_alias__, __aligned__ (1)));
+typedef double __double_u __attribute__ ((__may_alias__, __aligned__ (1)));
 
 /* Create a selector for use with the SHUFPD instruction.  */
 #define _MM_SHUFFLE2(fp1,fp0) \
@@ -146,7 +146,7 @@ _mm_load1_pd (double const *__P)
 extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, 
__artificial__))
 _mm_load_sd (double const *__P)
 {
-  return __extension__ (__m128d) { *(double_u *)__P, 0.0 };
+  return __extension__ (__m128d) { *(__double_u *)__P, 0.0 };
 }
 
 extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, 
__artificial__))
@@ -181,7 +181,7 @@ _mm_storeu_pd (double *__P, __m128d __A)
 extern __inline void __attribute__((__gnu_inline__, __always_inline__, 
__artificial__))
 _mm_store_sd (double *__P, __m128d __A)
 {
-  *(double_u *)__P = ((__v2df)__A)[0] ;
+  *(__double_u *)__P = ((__v2df)__A)[0] ;
 }
 
 extern __inline double __attribute__((__gnu_inline__, __always_inline__, 
__artificial__))
@@ -974,13 +974,13 @@ _mm_unpacklo_pd (__m128d __A, __m128d __B)
 extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, 
__artificial__))
 _mm_loadh_pd (__m128d __A, double const *__B)
 {
-  return __extension__ (__m128d) { ((__v2df)__A)[0], *(double_u*)__B };
+  return __extension__ (__m128d) { ((__v2df)__A)[0], *(__double_u*)__B };
 }
 
 extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, 
__artificial__))
 _mm_loadl_pd (__m128d __A, double const *__B)
 {
-  return __extension__ (__m128d) { *(double_u*)__B, ((__v2df)__A)[1] };
+  return __extension__ (__m128d) { *(__double_u*)__B, ((__v2df)__A)[1] };
 }
 
 extern __inline int __attribute__((__gnu_inline__, __always_inline__, 
__artificial__))
diff --git a/gcc/config/i386/xmmintrin.h b/gcc/config/i386/xmmintrin.h
index 87515ecb218..c90fc71331a 100644
--- a/gcc/config/i386/xmmintrin.h
+++ b/gcc/config/i386/xmmintrin.h
@@ -72,7 +72,7 @@ typedef float __m128 __attribute__ ((__vector_size__ (16), 
__may_alias__));
 
 /* Unaligned version of the same type.  */
 typedef float __m128_u __attribute__ ((__vector_size__ (16), __may_alias__, 
__aligned__ (1)));
-typedef float float_u __attribute__ ((__may_alias__, __aligned__ (1)));
+typedef float __float_u __attribute__ ((__may_alias__, __aligned__ (1)));
 
 /* Internal data types for implementing the intrinsics.  */
 typedef float __v4sf __attribute__ ((__vector_size__ (16)));
@@ -910,7 +910,7 @@ _mm_set_ps1 (float __F)
 extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, 
__artificial__))
 _mm_load_ss (float const *__P)
 {
-  return __extension__ (__m128) (__v4sf){ *(float_u *)__P, 0.0f, 0.0f, 0.0f };
+  return __extension__ (__m128) (__v4sf){ *(__float_u *)__P, 0.0f, 0.0f, 0.0f 
};
 }
 
 /* Create a vector with all four elements equal to *P.  */
@@ -966,7 +966,7 @@ _mm_setr_ps (float __Z, float __Y, float __X, float __W)
 extern __inline void __attribute__((__gnu_inline__, __always_inline__, 
__artificial__))
 _mm_store_ss (float *__P, __m128 __A)
 {
-  *(float_u *)__P = ((__v4sf)__A)[0];
+  *(__float_u *)__P = ((__v4sf)__A)[0];
 }
 
 extern __inline float __attribute__((__gnu_inline__, __always_inline__, 
__artificial__))


[PATCH v5] Match: Support more form for scalar unsigned SAT_ADD

2024-05-30 Thread pan2 . li
From: Pan Li 

Update in v5
* Fix some doc build error.

Log in v4:
After we support one gassign form of the unsigned .SAT_ADD,  we
would like to support more forms including both the branch and
branchless.  There are 5 other forms of .SAT_ADD,  list as below:

Form 1:
  #define SAT_ADD_U_1(T) \
  T sat_add_u_1_##T(T x, T y) \
  { \
return (T)(x + y) >= x ? (x + y) : -1; \
  }

Form 2:
  #define SAT_ADD_U_2(T) \
  T sat_add_u_2_##T(T x, T y) \
  { \
T ret; \
T overflow = __builtin_add_overflow (x, y, ); \
return (T)(-overflow) | ret; \
  }

Form 3:
  #define SAT_ADD_U_3(T) \
  T sat_add_u_3_##T (T x, T y) \
  { \
T ret; \
return __builtin_add_overflow (x, y, ) ? -1 : ret; \
  }

Form 4:
  #define SAT_ADD_U_4(T) \
  T sat_add_u_4_##T (T x, T y) \
  { \
T ret; \
return __builtin_add_overflow (x, y, ) == 0 ? ret : -1; \
  }

Form 5:
  #define SAT_ADD_U_5(T) \
  T sat_add_u_5_##T(T x, T y) \
  { \
return (T)(x + y) < x ? -1 : (x + y); \
  }

Take the forms 3 of above as example:

uint64_t
sat_add (uint64_t x, uint64_t y)
{
  uint64_t ret;
  return __builtin_add_overflow (x, y, ) ? -1 : ret;
}

Before this patch:
uint64_t sat_add (uint64_t x, uint64_t y)
{
  long unsigned int _1;
  long unsigned int _2;
  uint64_t _3;
  __complex__ long unsigned int _6;

;;   basic block 2, loop depth 0
;;pred:   ENTRY
  _6 = .ADD_OVERFLOW (x_4(D), y_5(D));
  _2 = IMAGPART_EXPR <_6>;
  if (_2 != 0)
goto ; [35.00%]
  else
goto ; [65.00%]
;;succ:   4
;;3

;;   basic block 3, loop depth 0
;;pred:   2
  _1 = REALPART_EXPR <_6>;
;;succ:   4

;;   basic block 4, loop depth 0
;;pred:   3
;;2
  # _3 = PHI <_1(3), 18446744073709551615(2)>
  return _3;
;;succ:   EXIT
}

After this patch:
uint64_t sat_add (uint64_t x, uint64_t y)
{
  long unsigned int _12;

;;   basic block 2, loop depth 0
;;pred:   ENTRY
  _12 = .SAT_ADD (x_4(D), y_5(D)); [tail call]
  return _12;
;;succ:   EXIT
}

The flag '^' acts on cond_expr will generate matching code similar as below:

else if (gphi *_a1 = dyn_cast  (_d1))
  {
basic_block _b1 = gimple_bb (_a1);
if (gimple_phi_num_args (_a1) == 2)
  {
basic_block _pb_0_1 = EDGE_PRED (_b1, 0)->src;
basic_block _pb_1_1 = EDGE_PRED (_b1, 1)->src;
basic_block _db_1 = safe_dyn_cast  (*gsi_last_bb (_pb_0_1)) ? 
_pb_0_1 : ...
basic_block _other_db_1 = safe_dyn_cast  (*gsi_last_bb 
(_pb_0_1)) ? _pb_1_1 : ...
gcond *_ct_1 = safe_dyn_cast  (*gsi_last_bb (_db_1));
if (_ct_1 && EDGE_COUNT (_other_db_1->preds) == 1
  && EDGE_COUNT (_other_db_1->succs) == 1
  && EDGE_PRED (_other_db_1, 0)->src == _db_1)
  {
tree _cond_lhs_1 = gimple_cond_lhs (_ct_1);
tree _cond_rhs_1 = gimple_cond_rhs (_ct_1);
tree _p0 = build2 (gimple_cond_code (_ct_1), boolean_type_node, 
_cond_lhs_1, ...);
bool _arg_0_is_true_1 = gimple_phi_arg_edge (_a1, 0)->flags  & 
EDGE_TRUE_VALUE;
tree _p1 = gimple_phi_arg_def (_a1, _arg_0_is_true_1 ? 0 : 1);
tree _p2 = gimple_phi_arg_def (_a1, _arg_0_is_true_1 ? 1 : 0);
switch (TREE_CODE (_p0))
  ...

The below test suites are still running, will update it later.
* The x86 bootstrap test.
* The x86 fully regression test.
* The riscv fully regression test.

gcc/ChangeLog:

* doc/match-and-simplify.texi: Add doc for the matching flag '^'.
* genmatch.cc (enum expr_flag): Add new enum for expr flag.
(dt_node::gen_kids_1): Add cond_expr and flag handling.
(dt_operand::gen_phi_on_cond): Add new func to gen phi matching
on cond_expr.
(parser::parse_expr): Add handling for the expr flag '^'.
* match.pd: Add more form for unsigned .SAT_ADD.
* tree-ssa-math-opts.cc (match_saturation_arith): Rename from.
(match_assign_saturation_arith): Rename to.
(match_phi_saturation_arith): Add new func impl to match the
.SAT_ADD when phi.
(math_opts_dom_walker::after_dom_children): Add phi matching
try for all gimple phi stmt.

Signed-off-by: Pan Li 
---
 gcc/doc/match-and-simplify.texi |  16 
 gcc/genmatch.cc | 126 +++-
 gcc/match.pd|  43 ++-
 gcc/tree-ssa-math-opts.cc   |  51 -
 4 files changed, 231 insertions(+), 5 deletions(-)

diff --git a/gcc/doc/match-and-simplify.texi b/gcc/doc/match-and-simplify.texi
index 01f19e2f62c..9c7316755d4 100644
--- a/gcc/doc/match-and-simplify.texi
+++ b/gcc/doc/match-and-simplify.texi
@@ -361,6 +361,22 @@ Usually the types of the generated result expressions are
 determined from the context, but sometimes like in the above case
 it is required that you specify them explicitly.
 
+Another modifier for generated expressions is @code{^} which
+tells the machinery to try more matches for some special 

Results for 15.0.0 20240530 (experimental) [remotes/origin/master r15-930-ge715204f203] (GCC) testsuite on pru-unknown-elf

2024-05-30 Thread The GnuPru BuildBot via Gcc-testresults
 = "
FAIL: gcc.dg/tree-ssa/if-to-switch-1.c scan-tree-dump iftoswitch "Condition 
chain with [^\\n\\r]* BBs transformed into a switch statement."
FAIL: gcc.dg/tree-ssa/if-to-switch-10.c scan-tree-dump iftoswitch "Condition 
chain with [^\\n\\r]* BBs transformed into a switch statement."
FAIL: gcc.dg/tree-ssa/if-to-switch-3.c scan-tree-dump iftoswitch "Condition 
chain with [^\\n\\r]* BBs transformed into a switch statement."
FAIL: gcc.dg/tree-ssa/if-to-switch-9.c scan-tree-dump iftoswitch "Condition 
chain with [^\\n\\r]* BBs transformed into a switch statement."
FAIL: gcc.dg/tree-ssa/pr103281-1.c scan-tree-dump-not optimized "foo "
FAIL: gcc.dg/tree-ssa/ssa-dom-thread-7.c scan-tree-dump thread2 "Jumps 
threaded: 9"
FAIL: gcc.dg/tree-ssa/update-threading.c scan-tree-dump-times optimized 
"Invalid sum" 0
FAIL: outputs-22 exe savetmp namedb-2: outputs.ld1_args
FAIL: outputs-23 exe savetmp named2-2: outputs.ld1_args
FAIL: outputs-24 exe savetmp named2-3: outputs.ld1_args
FAIL: outputs-25 exe savetmp named2-4: outputs.ld1_args
FAIL: outputs-294 lto sing unnamed-3: a.ld1_args
FAIL: outputs-294 lto sing unnamed-3: a.ld_args

=== gcc Summary ===

# of expected passes133343
# of unexpected failures61
# of unexpected successes   2
# of expected failures  873
# of unresolved testcases   1
# of unsupported tests  4677
/home/dinux/projects/pru/testbot-workspace/pru-gcc-build/gcc/xgcc  version 
15.0.0 20240530 (experimental) [remotes/origin/master r15-930-ge715204f203] 
(GCC) 

Host   is x86_64-pc-linux-gnu

=== g++ tests ===


Running target pru-sim
FAIL: c-c++-common/analyzer/out-of-bounds-diagram-11.c  -std=c++14  2 blank 
line(s) in output
FAIL: c-c++-common/analyzer/out-of-bounds-diagram-11.c  -std=c++14  expected 
multiline pattern lines 49-64
FAIL: c-c++-common/analyzer/out-of-bounds-diagram-11.c  -std=c++14 (test for 
excess errors)
FAIL: c-c++-common/analyzer/out-of-bounds-diagram-11.c  -std=c++17  2 blank 
line(s) in output
FAIL: c-c++-common/analyzer/out-of-bounds-diagram-11.c  -std=c++17  expected 
multiline pattern lines 49-64
FAIL: c-c++-common/analyzer/out-of-bounds-diagram-11.c  -std=c++17 (test for 
excess errors)
FAIL: c-c++-common/analyzer/out-of-bounds-diagram-11.c  -std=c++20  2 blank 
line(s) in output
FAIL: c-c++-common/analyzer/out-of-bounds-diagram-11.c  -std=c++20  expected 
multiline pattern lines 49-64
FAIL: c-c++-common/analyzer/out-of-bounds-diagram-11.c  -std=c++20 (test for 
excess errors)
FAIL: c-c++-common/analyzer/out-of-bounds-diagram-11.c  -std=c++98  2 blank 
line(s) in output
FAIL: c-c++-common/analyzer/out-of-bounds-diagram-11.c  -std=c++98  expected 
multiline pattern lines 49-64
FAIL: c-c++-common/analyzer/out-of-bounds-diagram-11.c  -std=c++98 (test for 
excess errors)
FAIL: c-c++-common/analyzer/out-of-bounds-diagram-8.c  -std=c++14  2 blank 
line(s) in output
FAIL: c-c++-common/analyzer/out-of-bounds-diagram-8.c  -std=c++14  expected 
multiline pattern lines 19-34
FAIL: c-c++-common/analyzer/out-of-bounds-diagram-8.c  -std=c++14 (test for 
excess errors)
FAIL: c-c++-common/analyzer/out-of-bounds-diagram-8.c  -std=c++17  2 blank 
line(s) in output
FAIL: c-c++-common/analyzer/out-of-bounds-diagram-8.c  -std=c++17  expected 
multiline pattern lines 19-34
FAIL: c-c++-common/analyzer/out-of-bounds-diagram-8.c  -std=c++17 (test for 
excess errors)
FAIL: c-c++-common/analyzer/out-of-bounds-diagram-8.c  -std=c++20  2 blank 
line(s) in output
FAIL: c-c++-common/analyzer/out-of-bounds-diagram-8.c  -std=c++20  expected 
multiline pattern lines 19-34
FAIL: c-c++-common/analyzer/out-of-bounds-diagram-8.c  -std=c++20 (test for 
excess errors)
FAIL: c-c++-common/analyzer/out-of-bounds-diagram-8.c  -std=c++98  2 blank 
line(s) in output
FAIL: c-c++-common/analyzer/out-of-bounds-diagram-8.c  -std=c++98  expected 
multiline pattern lines 19-34
FAIL: c-c++-common/analyzer/out-of-bounds-diagram-8.c  -std=c++98 (test for 
excess errors)
FAIL: c-c++-common/pr103798-2.c  -std=gnu++14  scan-assembler-not memchr
FAIL: c-c++-common/pr103798-2.c  -std=gnu++17  scan-assembler-not memchr
FAIL: c-c++-common/pr103798-2.c  -std=gnu++20  scan-assembler-not memchr
FAIL: c-c++-common/pr103798-2.c  -std=gnu++98  scan-assembler-not memchr
FAIL: c-c++-common/pr103798-3.c  -std=gnu++14  scan-assembler-not memchr
FAIL: c-c++-common/pr103798-3.c  -std=gnu++17  scan-assembler-not memchr
FAIL: c-c++-common/pr103798-3.c  -std=gnu++20  scan-assembler-not memchr
FAIL: c-c++-common/pr103798-3.c  -std=gnu++98  scan-assembler-not memchr
FAIL: c-c++-common/pr103798-4.c  -std=gnu++14  scan-assembler-not memchr
FAIL: c-c++-common/pr103798-4.c  -std=gnu++17  scan-assembler-not memchr
FAIL: c-c++-common/pr103798-4.c  -std=gnu++20  scan-assembler-not memchr
FAIL: c-c++-common/pr103798-4.c  -std=gnu++98  scan-assembler-not memchr
FAIL: g++.dg/Wno-frame-address.C  -std=gnu++14 (test 

Results for 15.0.0 20240530 (experimental) [remotes/origin/HEAD r15-930-ge715204f20] (GCC) testsuite on powerpc64le-unknown-linux-gnu

2024-05-30 Thread Bill Seurer (POWER8) via Gcc-testresults
-partition=none  -DPREVENT_OPTIMIZATION line 16 y == 2
FAIL: gcc.dg/guality/pr68860-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 y == 2
FAIL: gcc.dg/guality/pr68860-1.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 16 y == 
2
FAIL: gcc.dg/guality/pr68860-1.c   -Os  -DPREVENT_OPTIMIZATION  line 16 y == 2
FAIL: gcc.dg/guality/pr68860-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 y == 2
FAIL: gcc.dg/guality/pr68860-2.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 16 y == 
2
FAIL: gcc.dg/guality/sra-1.c   -O2  -DPREVENT_OPTIMIZATION  line 43 a.j == 14
FAIL: gcc.dg/guality/sra-1.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION line 43 a.j == 14
FAIL: gcc.dg/guality/sra-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 21 a.i == 4
FAIL: gcc.dg/guality/sra-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 21 a.j == 14
FAIL: gcc.dg/guality/sra-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 32 a[0] == 4
FAIL: gcc.dg/guality/sra-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 32 a[1] == 14
FAIL: gcc.dg/guality/sra-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 43 a.i == 4
FAIL: gcc.dg/guality/sra-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 43 a.j == 14
FAIL: gcc.dg/guality/sra-1.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 43 a.j == 14
FAIL: gcc.dg/guality/sra-1.c   -Os  -DPREVENT_OPTIMIZATION  line 43 a.j == 14
FAIL: gcc.dg/guality/sra-1.c  -Og -DPREVENT_OPTIMIZATION  line 21 a.i == 4
FAIL: gcc.dg/guality/sra-1.c  -Og -DPREVENT_OPTIMIZATION  line 21 a.j == 14
FAIL: gcc.dg/guality/sra-1.c  -Og -DPREVENT_OPTIMIZATION  line 32 a[0] == 4
FAIL: gcc.dg/guality/sra-1.c  -Og -DPREVENT_OPTIMIZATION  line 32 a[1] == 14
FAIL: gcc.dg/guality/sra-1.c  -Og -DPREVENT_OPTIMIZATION  line 43 a.i == 4
FAIL: gcc.dg/guality/sra-1.c  -Og -DPREVENT_OPTIMIZATION  line 43 a.j == 14
FAIL: gcc.dg/guality/vla-1.c   -O2  -DPREVENT_OPTIMIZATION  line 17 sizeof (a) 
== 6
FAIL: gcc.dg/guality/vla-1.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION line 17 sizeof (a) == 6
FAIL: gcc.dg/guality/vla-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 17 sizeof (a) == 6
FAIL: gcc.dg/guality/vla-1.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 17 sizeof 
(a) == 6
FAIL: gcc.dg/guality/vla-1.c   -Os  -DPREVENT_OPTIMIZATION  line 17 sizeof (a) 
== 6
FAIL: gcc.dg/torture/pr52451.c   -O0  execution test
FAIL: gcc.dg/torture/pr52451.c   -O1  execution test
FAIL: gcc.dg/torture/pr52451.c   -O2  execution test
FAIL: gcc.dg/torture/pr52451.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  execution test
FAIL: gcc.dg/torture/pr52451.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  execution test
FAIL: gcc.dg/torture/pr52451.c   -O3 -g  execution test
FAIL: gcc.dg/torture/pr52451.c   -Os  execution test
XPASS: gcc.dg/tree-ssa/ssa-dom-cse-2.c scan-tree-dump optimized "return 28;"
FAIL: gcc.dg/tree-ssa/update-threading.c scan-tree-dump-times optimized 
"Invalid sum" 0
FAIL: gcc.dg/vect/costmodel/ppc/costmodel-slp-12.c scan-tree-dump-times vect 
"vectorizing stmts using SLP" 3
FAIL: gcc.dg/vect/pr112325.c -flto -ffat-lto-objects  scan-tree-dump-times vect 
"vectorized 1 loops" 1
FAIL: gcc.dg/vect/pr112325.c scan-tree-dump-times vect "vectorized 1 loops" 1
FAIL: gcc.dg/vect/vect-117.c -flto -ffat-lto-objects  scan-tree-dump-not 
optimized "Invalid sum"
FAIL: gcc.dg/vect/vect-117.c scan-tree-dump-not optimized "Invalid sum"
FAIL: gcc.target/powerpc/pr66144-3.c scan-assembler mxxselM
FAIL: gcc.target/powerpc/rlwimi-2.c scan-assembler-times (?n)^s+[a-z] 20217
XPASS: gcc.target/powerpc/ppc-fortran/ieee128-math.f90   -O  (test for excess 
errors)

=== gcc Summary ===

# of expected passes178771
# of unexpected failures129
# of unexpected successes   13
# of expected failures  1602
# of unsupported tests  5048
/home/gccbuild/build/nightly/build-gcc-trunk/gcc/xgcc  version 15.0.0 20240530 
(experimental) [remotes/origin/HEAD r15-930-ge715204f20] (GCC) 

=== gfortran tests ===


Running target unix
XPASS: gfortran.dg/large_real_kind_form_io_2.f90   -O0  execution test
XPASS: gfortran.dg/large_real_kind_form_io_2.f90   -O1  execution test
XPASS: gfortran.dg/large_real_kind_form_io_2.f90   -O2  execution test
XPASS: gfortran.dg/large_real_kind_form_io_2.f90   -O3 -fomit-frame-pointer 
-funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
XPASS: gfortran.dg/large_real_kind_form_io_2.f90   -O3 -g  execution test
XPASS: gfortran.dg/large_real_kind_form_io_2.f90   -Os  execution test
FAIL: gfortran.

Results for 15.0.0 20240530 (experimental) [master r15-930-ge715204f20] (GCC) testsuite on powerpc64-unknown-linux-gnu

2024-05-30 Thread Bill Seurer (POWER9 BE) via Gcc-testresults


git commit g:e715204f203d318524ae86f3f2a1e8d5d7cb08dc
gcc-descr r15-930-ge715204f203d31

power9 BE
Linux 6.7.12-powerpc64 ppc64
GNU Make 4.3

DejaGnu:
DejaGnu version 1.6.3
Expect version  5.45.4
Tcl version 8.6

64-bit

LAST_UPDATED: Thu May 30 22:12:39 UTC 2024 (revision r15-930-ge715204f20)

Native configuration is powerpc64-unknown-linux-gnu

=== g++ tests ===


Running target unix/-m32
FAIL: c-c++-common/torture/strub-run3.c   -O0  execution test

=== g++ Summary for unix/-m32 ===

# of expected passes251911
# of unexpected failures1
# of expected failures  2618
# of unsupported tests  11565

Running target unix/-m64

=== g++ Summary for unix/-m64 ===

# of expected passes260933
# of expected failures  2623
# of unsupported tests  11738

=== g++ Summary ===

# of expected passes512844
# of unexpected failures1
# of expected failures  5241
# of unsupported tests  23303
/home/gccbuild/build/nightly/build-gcc-trunk/gcc/xg++  version 15.0.0 20240530 
(experimental) [master r15-930-ge715204f20] (GCC) 

=== gcc tests ===


Running target unix/-m32
XPASS: gcc.dg/guality/example.c   -O0  execution test
XPASS: gcc.dg/guality/example.c   -O1  -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/example.c  -Og -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/guality.c   -O0  execution test
XPASS: gcc.dg/guality/guality.c   -O1  -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/guality.c   -O2  -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/guality.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION execution test
XPASS: gcc.dg/guality/guality.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION execution test
XPASS: gcc.dg/guality/guality.c   -O3 -g  -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/guality.c   -Os  -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/guality.c  -Og -DPREVENT_OPTIMIZATION  execution test
XPASS: gcc.dg/guality/inline-params.c   -O2  -DPREVENT_OPTIMIZATION  execution 
test
XPASS: gcc.dg/guality/inline-params.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION execution test
XPASS: gcc.dg/guality/inline-params.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION execution test
XPASS: gcc.dg/guality/inline-params.c   -O3 -g  -DPREVENT_OPTIMIZATION  
execution test
XPASS: gcc.dg/guality/inline-params.c   -Os  -DPREVENT_OPTIMIZATION  execution 
test
FAIL: gcc.dg/guality/loop-1.c   -O2  -DPREVENT_OPTIMIZATION  line 20 i == 1
FAIL: gcc.dg/guality/loop-1.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  -DPREVENT_OPTIMIZATION line 20 i == 1
FAIL: gcc.dg/guality/loop-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 20 i == 1
FAIL: gcc.dg/guality/loop-1.c   -O3 -fomit-frame-pointer -funroll-loops 
-fpeel-loops -ftracer -finline-functions  -DPREVENT_OPTIMIZATION  line 20 i == 1
FAIL: gcc.dg/guality/loop-1.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 20 i == 1
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg1 == 1
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg2 == 2
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg3 == 3
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg4 == 4
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg5 == 5
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg6 == 6
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 arg7 == 30
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 18 arg1 == 1
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 18 arg2 == 2
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 18 arg3 == 3
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 18 arg4 == 4
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 18 arg5 == 5
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 18 arg6 == 6
FAIL: gcc.dg/guality/pr36728-2.c   -O2 -flto -fuse-linker

Results for 15.0.0 20240530 (experimental) [master r15-930-ge715204f203] (GCC) testsuite on i686-pc-linux-gnu

2024-05-30 Thread haochenj via Gcc-testresults
+ 3
FAIL: gcc.target/i386/cleanup-1.c (test for excess errors)
UNRESOLVED: gcc.target/i386/cleanup-1.c compilation failed to produce executable
FAIL: gcc.target/i386/interrupt-12.c scan-assembler-times leave 1
FAIL: gcc.target/i386/interrupt-13.c scan-assembler-times leave 1
FAIL: gcc.target/i386/interrupt-14.c scan-assembler-times leave 2
FAIL: gcc.target/i386/interrupt-15.c scan-assembler-times leave 2
FAIL: gcc.target/i386/ipa-stack-alignment-2.c scan-assembler sub.*%.sp
FAIL: gcc.target/i386/ipa-stack-alignment.c scan-assembler sub.*%.sp
FAIL: gcc.target/i386/minmax-10.c scan-assembler-not cmp
FAIL: gcc.target/i386/minmax-10.c scan-assembler-times test 6
FAIL: gcc.target/i386/pr100704-3.c scan-assembler push[lq]\\tf+
FAIL: gcc.target/i386/pr103144-mul-1.c scan-tree-dump-times vect "vectorized 1 
loops" 4
FAIL: gcc.target/i386/pr103144-neg-1.c scan-tree-dump-times vect "vectorized 1 
loops" 4
FAIL: gcc.target/i386/pr103144-shift-1.c scan-tree-dump-times vect "vectorized 
1 loops" 6
FAIL: gcc.target/i386/pr106245-3.c scan-assembler cltd
FAIL: gcc.target/i386/pr31985.c scan-assembler-times movl 4
XPASS: gcc.target/i386/pr54855-9.c scan-assembler-not movaps
FAIL: gcc.target/i386/pr79690.c scan-assembler mov[au]p.[ \\t][^,]+, %gs:
FAIL: gcc.target/i386/pr79723.c scan-assembler mov[au]p.[ \\t][^,]+, %gs:
FAIL: gcc.target/i386/pr82699-1.c scan-assembler-times 
t.cfi_startprocntendbr 1
FAIL: gcc.target/i386/pr82699-2.c scan-assembler-times 
t.cfi_startprocntendbr 1
FAIL: gcc.target/i386/pr82699-3.c scan-assembler-times 
t.cfi_startprocntendbr 1
FAIL: gcc.target/i386/pr82699-5.c scan-assembler-times 
t.cfi_startprocntendbr 1
FAIL: gcc.target/i386/pr82699-6.c scan-assembler-times 
t.cfi_startprocntendbr 1
FAIL: gcc.target/i386/pr90356.c scan-assembler pxor
FAIL: gcc.target/i386/pr93492-2.c scan-assembler 
\\t.cfi_startproc\\n\\tendbr(32|64)\\n.*.LPFE0:\\n\\tnop\\n\\tret\\n
FAIL: gcc.target/i386/pr93492-3.c scan-assembler 
\\t.cfi_startproc\\n\\tendbr(32|64)\\n.*.LPFE0:\\n\\tnop\\n1:\\tcall\\t[^\\n]*__fentry__[^\\n]*\\n\\tret\\n
FAIL: gcc.target/i386/pr93492-4.c scan-assembler 
\\t.cfi_startproc\\n.*.LPFE0:\\n\\tnop\\n\\tret\\n
FAIL: gcc.target/i386/pr93492-5.c scan-assembler 
\\t.cfi_startproc\\n.*.LPFE0:\\n\\tnop\\n1:\\tcall\\t[^\\n]*__fentry__[^\\n]*\\n\\tret\\n
FAIL: gcc.target/i386/pr95126-m32-1.c scan-assembler movl[ t]*\$
FAIL: gcc.target/i386/pr95126-m32-2.c scan-assembler movl[ t]*\$
FAIL: gcc.target/i386/pr97032.c (internal compiler error: output_operand: 
invalid use of register 'frame')
FAIL: gcc.target/i386/pr97032.c (test for excess errors)
UNRESOLVED: gcc.target/i386/pr97032.c scan-assembler call[ 
\\t]*_?__errno_location
FAIL: gcc.target/i386/sse2-pr39821.c scan-tree-dump-times vect "vectorized 1 
loops in function" 5
FAIL: gcc.target/i386/sse4-pr39821.c scan-tree-dump-times vect "vectorized 1 
loops in function" 6
FAIL: gcc.target/i386/vec_pack_fp16-1.c scan-assembler-times vcvtdq2ph 2
FAIL: gcc.target/i386/vec_pack_fp16-1.c scan-assembler-times vcvtph2ps 2
FAIL: gcc.target/i386/vec_pack_fp16-1.c scan-assembler-times vcvtps2ph 2
FAIL: gcc.target/i386/vec_pack_fp16-1.c scan-assembler-times vcvttph2dq 2
FAIL: gcc.target/i386/vec_pack_fp16-2.c scan-assembler-times vcvtdq2ph 2
FAIL: gcc.target/i386/vec_pack_fp16-2.c scan-assembler-times vcvtph2ps 2
FAIL: gcc.target/i386/vec_pack_fp16-2.c scan-assembler-times vcvtps2ph 2
FAIL: gcc.target/i386/vec_pack_fp16-2.c scan-assembler-times vcvttph2dq 2
FAIL: gcc.target/i386/vect-double-2.c scan-tree-dump-times vect "Vectorized 
loops: 1" 1
FAIL: gcc.target/i386/vect-float16-11.c scan-assembler-times vdivph 16
FAIL: gcc.target/i386/vect-float16-12.c scan-assembler-times vdivph 16
FAIL: gcc.target/i386/vect-float16-2.c scan-assembler-times vaddph 16
FAIL: gcc.target/i386/vect-float16-3.c scan-assembler-times vaddph 16
FAIL: gcc.target/i386/vect-float16-5.c scan-assembler-times vsubph 16
FAIL: gcc.target/i386/vect-float16-6.c scan-assembler-times vsubph 16
FAIL: gcc.target/i386/vect-float16-8.c scan-assembler-times vmulph 16
FAIL: gcc.target/i386/vect-float16-9.c scan-assembler-times vmulph 16
FAIL: gcc.target/i386/vect-pr113078.c scan-assembler-times vpsub[^\\r\\n]*%k 2
FAIL: gcc.target/i386/vect-pr67800.c scan-tree-dump vect "vectorized 1 loops"
FAIL: gcc.target/i386/vect-reduc-1.c scan-assembler-times padd 5
FAIL: gcc.target/i386/vect-reduc-1.c scan-assembler-times psrl 2
FAIL: gcc.target/i386/vect-shiftv4qi.c scan-assembler-times psrlw 5
FAIL: gcc.target/i386/xorsign.c scan-tree-dump-times vect "vectorized 2 loops" 1

=== gcc Summary ===

# of expected passes196410
# of unexpected failures228
# of unexpected successes   27
# of expected failures  1503
# of unresolved testcases   114
# of unsupported tests  4197
/home/haoch

Regressions on master at commit r15-930 vs commit r15-929 on Linux/x86_64

2024-05-30 Thread Haochen Jiang via Gcc-regression
Regressions on master at commit r15-930 vs commit r15-929 on Linux/x86_64
New failures:
FAIL: gcc.dg/lto/save-temps c_lto_save-temps_0.o-c_lto_save-temps_0.o link,  -O 
-flto -save-temps

New passes:


Results for 15.0.0 20240530 (experimental) [master r15-930-ge715204f203] (GCC) testsuite on x86_64-pc-linux-gnu

2024-05-30 Thread haochenj--- via Gcc-testresults
o_iommu_type1.c 
-fplugin=./analyzer_kernel_plugin.so  (test for bogus messages, line 42)
FAIL: gcc.dg/tree-ssa/pr64910-2.c scan-assembler-times and|test 20
FAIL: gcc.dg/tree-ssa/slsr-31.c scan-tree-dump-times optimized " * 2" 1
FAIL: gcc.dg/vect/slp-perm-9.c -flto -ffat-lto-objects  scan-tree-dump-times 
vect "vectorizing stmts using SLP" 1
FAIL: gcc.dg/vect/slp-perm-9.c scan-tree-dump-times vect "vectorizing stmts 
using SLP" 1
XPASS: gcc.dg/vect/vect-reduc-in-order-1.c -flto -ffat-lto-objects execution 
test
XPASS: gcc.dg/vect/vect-reduc-in-order-1.c execution test
XPASS: gcc.dg/vect/vect-reduc-in-order-2.c -flto -ffat-lto-objects execution 
test
XPASS: gcc.dg/vect/vect-reduc-in-order-2.c execution test
XPASS: gcc.dg/vect/vect-reduc-in-order-3.c -flto -ffat-lto-objects execution 
test
XPASS: gcc.dg/vect/vect-reduc-in-order-3.c execution test
XPASS: gcc.dg/vect/vect-reduc-in-order-4.c -flto -ffat-lto-objects execution 
test
XPASS: gcc.dg/vect/vect-reduc-in-order-4.c execution test
FAIL: gcc.target/i386/avx512bw-vmovdqu16-1.c scan-assembler-times 
(?:vmovdqu16|vextracti128)[ t]+[^{\\n]*%ymm[0-9]+[^\\n]*)(?:\\n|[ 
t]+#) 1
FAIL: gcc.target/i386/avx512bw-vmovdqu16-1.c scan-assembler-times 
(?:vmovdqu16|vinserti128)[ t]+[^{\\n]*)[^\\n]*%ymm[0-9]+(?:\\n|[ 
t]+#) 1
FAIL: gcc.target/i386/avx512dq-pr88465.c scan-assembler-times kxnorb[ \\t] 1
FAIL: gcc.target/i386/avx512f-pr88465.c scan-assembler-times kxnorw[ \\t] 1
FAIL: gcc.target/i386/avx512fp16-13.c scan-assembler-times vmovdqu16[ 
t]*[^,]*,[^{\\n]*%xmm[0-9] 1
FAIL: gcc.target/i386/avx512fp16-13.c scan-assembler-times vmovdqu16[ 
t]*[^,]*,[^{\\n]*%ymm[0-9] 1
FAIL: gcc.target/i386/avx512fp16-13.c scan-assembler-times vmovdqu16[ 
t]*[^{\\n]*%xmm[0-9], *[^,]* 1
FAIL: gcc.target/i386/avx512fp16-13.c scan-assembler-times vmovdqu16[ 
t]*[^{\\n]*%ymm[0-9], *[^,]* 1
XPASS: gcc.target/i386/bitwise_mask_op-3.c scan-assembler-times kmovb[\\t ] 4
XPASS: gcc.target/i386/bitwise_mask_op-3.c scan-assembler-times korb[\\t ] 1
XPASS: gcc.target/i386/bitwise_mask_op-3.c scan-assembler-times kxorb[\\t ] 1
FAIL: gcc.target/i386/minmax-10.c scan-assembler-not cmp
FAIL: gcc.target/i386/minmax-10.c scan-assembler-times test 6
FAIL: gcc.target/i386/pieces-memset-11.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 2
FAIL: gcc.target/i386/pieces-memset-14.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 1
FAIL: gcc.target/i386/pieces-memset-2.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 2
FAIL: gcc.target/i386/pieces-memset-20.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 2
FAIL: gcc.target/i386/pieces-memset-23.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 1
FAIL: gcc.target/i386/pieces-memset-29.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 2
FAIL: gcc.target/i386/pieces-memset-30.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 2
FAIL: gcc.target/i386/pieces-memset-33.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 1
FAIL: gcc.target/i386/pieces-memset-34.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 1
FAIL: gcc.target/i386/pieces-memset-37.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 2
FAIL: gcc.target/i386/pieces-memset-44.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 1
FAIL: gcc.target/i386/pieces-memset-5.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 1
FAIL: gcc.target/i386/pr31985.c scan-assembler-times movl 4
FAIL: gcc.target/i386/pr95483-5.c scan-assembler-times 
(?:vmovdqu8|vextracti128)[ t]+[^{\\n]*%ymm[0-9]+[^\\n]*)(?:\\n|[ 
t]+#) 1
FAIL: gcc.target/i386/pr95483-5.c scan-assembler-times 
(?:vmovdqu8|vinserti128)[ t]+[^{\\n]*)[^\\n]*%ymm[0-9]+(?:\\n|[ 
t]+#) 1
FAIL: gcc.target/i386/pr95483-6.c scan-assembler-times (?:vinserti128|vmovdqu)[ 
t]+[^{\\n]*)[^\\n]*%ymm[0-9]+(?:\\n|[ t]+#) 2
FAIL: gcc.target/i386/pr97873-1.c scan-assembler pabsq
FAIL: gcc.target/i386/vect-double-2.c scan-tree-dump-times vect "Vectorized 
loops: 1" 1
FAIL: gcc.target/i386/vect-shiftv4qi.c scan-assembler-times psrlw 5
FAIL: gcc.target/i386/xorsign.c scan-tree-dump-times vect "vectorized 2 loops" 1

=== gcc Summary for unix/-m32 ===

# of expected passes197791
# of unexpected failures158
# of unexpected successes   30
# of expected failures  1553
# of unsupported tests  4077

=== gcc Summary ===

# of expected passes401942
# of unexpected failures319
# of unexpected successes   50
# of expected failures  3100
# of unsupported tests  7352
/export/home/haochenj/src/gcc-regression/bld/gcc/xgcc  version 15.0.0 20240530 
(experimental) [master r15-930-ge715204f203] (GCC) 

=== gfortran tests ===


Running target unix

=== gfortran Summary for unix ===

# of expected passes70253
# of expected failures  273
# of unsupported tests  65

Running targe

[Bug c++/115296] New: CTAD fails

2024-05-30 Thread tiagomacarios at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115296

Bug ID: 115296
   Summary: CTAD fails
   Product: gcc
   Version: 15.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: tiagomacarios at gmail dot com
  Target Milestone: ---

The following code compiles fine with clang and msvc, but fails with gcc.

https://godbolt.org/z/e4dP7rzar
```
#include 

template 
using array_view = std::span;

void fun(std::span s) {
[[maybe_unused]] auto _1 = std::span{s};
[[maybe_unused]] auto _2 = array_view{s};
}
```

Error:
```
In file included from :1:
/opt/compiler-explorer/gcc-trunk-20240530/include/c++/15.0.0/span: In function
'void fun(std::span)':
/opt/compiler-explorer/gcc-trunk-20240530/include/c++/15.0.0/span:450:5: error:
size '18446744073709551615' of array exceeds maximum object size
'9223372036854775807'
  450 | span(_Type(&)[_ArrayExtent]) -> span<_Type, _ArrayExtent>;
  | ^~~~
/opt/compiler-explorer/gcc-trunk-20240530/include/c++/15.0.0/span:450:10:
error: size '18446744073709551615' of array exceeds maximum object size
'9223372036854775807'
  450 | span(_Type(&)[_ArrayExtent]) -> span<_Type, _ArrayExtent>;
  |  ^~
:8:44: error: class template argument deduction failed:
8 | [[maybe_unused]] auto _2 = array_view{s};
  |^
:8:44: error: call of overloaded 'span(std::span&)' is ambiguous
/opt/compiler-explorer/gcc-trunk-20240530/include/c++/15.0.0/span:464:5: note:
candidate: 'std::span(_Range&&)-> span >::type> requires 
__is_deducible (array_view, std::span)()))&>)())>::type,
18446744073709551615>) [with _Range = span&; typename
remove_reference >::type = int;
ranges::range_reference_t<_Range&> = int&]'
  464 | span(_Range &&)
  | ^~~~
/opt/compiler-explorer/gcc-trunk-20240530/include/c++/15.0.0/span:54:11: note:
candidate: 'span(std::span<_Type, 18446744073709551615>)-> std::span<_Type,
18446744073709551615> [with T = int]'
   54 | class span;
  |   ^~~~
/opt/compiler-explorer/gcc-trunk-20240530/include/c++/15.0.0/span:225:7: note:
candidate: 'span(const std::span<_Type, 18446744073709551615>&)->
std::span<_Type, 18446744073709551615> [with T = int]'
  225 |   span(const span&) noexcept = default;
  |   ^~~~
Compiler returned: 1
```

Results for 13.3.1 20240529 [releases/gcc-13 revision r13-8807-gebca6006f444] (GCC) testsuite on x86_64-apple-darwin17

2024-05-30 Thread Iain Sandoe via Gcc-testresults
LAST_UPDATED: Wed 29 May 2024 00:21:40 UTC (revision r13-8807-gebca6006f444)

=== acats tests ===

=== acats Summary ===
# of expected passes2328
# of unexpected failures0
Native configuration is x86_64-apple-darwin17

=== g++ tests ===


Running target unix/-m32
FAIL: c-c++-common/asan/alloca_big_alignment.c   -Os  output pattern test
FAIL: c-c++-common/asan/alloca_detect_custom_size.c   -Os  output pattern test
FAIL: c-c++-common/asan/alloca_overflow_partial.c   -Os  output pattern test
FAIL: c-c++-common/asan/alloca_overflow_right.c   -Os  output pattern test
FAIL: c-c++-common/asan/alloca_underflow_left.c   -Os  output pattern test
FAIL: g++.dg/asan/pr69276.C   -O0  output pattern test
FAIL: g++.dg/debug/dwarf2/utf-1.C  -std=gnu++20  scan-assembler-times 
DW_AT_encoding (0x10) 3
FAIL: g++.dg/cpp0x/udlit-embed-quote.C  -std=c++14 (test for excess errors)
FAIL: g++.dg/ext/pr84828.C  -std=gnu++14 (test for excess errors)
FAIL: g++.dg/ext/pr84828.C  -std=gnu++17 (test for excess errors)
FAIL: g++.dg/ext/pr84828.C  -std=gnu++20 (test for excess errors)
FAIL: g++.dg/ext/pr84828.C  -std=gnu++98 (test for excess errors)
FAIL: g++.dg/ipa/pr67056.C   scan-ipa-dump cp "Speculative outer type:struct 
CompositeClass"
FAIL: c-c++-common/goacc/kernels-loop-g.c  -std=c++14 (test for excess errors)
FAIL: c-c++-common/goacc/kernels-loop-g.c  -std=c++17 (test for excess errors)
FAIL: c-c++-common/goacc/kernels-loop-g.c  -std=c++20 (test for excess errors)
FAIL: c-c++-common/goacc/kernels-loop-g.c  -std=c++98 (test for excess errors)
FAIL: g++.dg/lto/pr108772 cp_lto_pr108772_0.o-cp_lto_pr108772_0.o link, -flto 
-fPIC -shared -O1 -fimplicit-constexpr -g1
FAIL: g++.dg/lto/pr65276 cp_lto_pr65276_0.o-cp_lto_pr65276_1.o link, -flto -O0 
-std=c++11
FAIL: g++.dg/lto/pr85405 cp_lto_pr85405_0.o-cp_lto_pr85405_1.o link, -fPIC 
-shared -flto
FAIL: g++.dg/lto/pr85405b cp_lto_pr85405b_0.o-cp_lto_pr85405b_1.o link, -fPIC 
-shared -flto
FAIL: g++.dg/lto/pr85655 cp_lto_pr85655_0.o-cp_lto_pr85655_0.o link, -O2 -fPIC 
-shared -flto
FAIL: g++.dg/lto/pr86523-3 cp_lto_pr86523-3_0.o-cp_lto_pr86523-3_0.o link,  
-fPIC -flto -g -shared 
FAIL: g++.dg/lto/pr86585 cp_lto_pr86585_0.o-cp_lto_pr86585_1.o link,  -flto -g 
-nostdlib -shared -fPIC 
FAIL: g++.dg/lto/pr87295 cp_lto_pr87295_0.o assemble,  -flto -ffat-lto-objects 
-fdebug-types-section -g -std=gnu++17 
FAIL: g++.dg/lto/pr87906 cp_lto_pr87906_0.o-cp_lto_pr87906_1.o link,  -O -fPIC 
-flto 
FAIL: g++.dg/lto/pr88046 cp_lto_pr88046_0.o-cp_lto_pr88046_0.o link,  -O2 -fPIC 
-flto 
FAIL: g++.dg/lto/pr88758 cp_lto_pr88758_0.o-cp_lto_pr88758_1.o link,  -O3 -fPIC 
-flto -shared 
FAIL: g++.dg/lto/pr89330 cp_lto_pr89330_0.o-cp_lto_pr89330_1.o link,  -O3 -g 
-flto -shared -fPIC -Wno-odr 
FAIL: g++.dg/lto/pr91574 cp_lto_pr91574_0.o-cp_lto_pr91574_0.o link,  -fPIC 
-flto -O2 
FAIL: g++.dg/lto/pr92609  (test for LTO warnings, pr92609_0.C line 75)
FAIL: g++.dg/lto/pr92609 cp_lto_pr92609_0.o-cp_lto_pr92609_1.o link,  -fPIC 
-flto 
FAIL: g++.dg/lto/pr93166 cp_lto_pr93166_0.o-cp_lto_pr93166_0.o link,  -fPIC -O2 
-flto -fvisibility=hidden 
FAIL: g++.dg/tls/thread_local13.C  -std=gnu++14 execution test
FAIL: g++.dg/tls/thread_local13.C  -std=gnu++17 execution test
FAIL: g++.dg/tls/thread_local13.C  -std=gnu++20 execution test
FAIL: g++.dg/tls/thread_local14.C  -std=gnu++14 execution test
FAIL: g++.dg/tls/thread_local14.C  -std=gnu++17 execution test
FAIL: g++.dg/tls/thread_local14.C  -std=gnu++20 execution test

=== g++ Summary for unix/-m32 ===

# of expected passes231182
# of unexpected failures39
# of expected failures  2080
# of unsupported tests  11168

Running target unix/-m64
FAIL: c-c++-common/asan/alloca_big_alignment.c   -Os  output pattern test
FAIL: c-c++-common/asan/alloca_detect_custom_size.c   -Os  output pattern test
FAIL: c-c++-common/asan/alloca_overflow_partial.c   -Os  output pattern test
FAIL: c-c++-common/asan/alloca_overflow_right.c   -Os  output pattern test
FAIL: c-c++-common/asan/alloca_underflow_left.c   -Os  output pattern test
FAIL: g++.dg/asan/pr69276.C   -O0  output pattern test
FAIL: g++.dg/debug/dwarf2/utf-1.C  -std=gnu++20  scan-assembler-times 
DW_AT_encoding (0x10) 3
FAIL: g++.dg/ipa/pr67056.C   scan-ipa-dump cp "Speculative outer type:struct 
CompositeClass"
FAIL: g++.dg/lto/pr108772 cp_lto_pr108772_0.o-cp_lto_pr108772_0.o link, -flto 
-fPIC -shared -O1 -fimplicit-constexpr -g1
FAIL: g++.dg/lto/pr65276 cp_lto_pr65276_0.o-cp_lto_pr65276_1.o link, -flto -O0 
-std=c++11
FAIL: g++.dg/lto/pr85405 cp_lto_pr85405_0.o-cp_lto_pr85405_1.o link, -fPIC 
-shared -flto
FAIL: g++.dg/lto/pr85405b cp_lto_pr85405b_0.o-cp_lto_pr85405b_1.o link, -fPIC 
-shared -flto
FAIL: g++.dg/lto/pr85655 cp_lto_pr85655_0.o-cp_lto_pr85655_0.o link, -O2 -fPIC 
-shared -flto
FAIL: g++.dg/lto/pr86523-3 cp_lto_pr86523-3_0.o-cp_lto_pr86523-3_0.o link,  
-fPIC -flto -g -shared 
FAIL: 

RE: [PATCH] aarch64: testsuite: Explicitly add -mlittle-endian to vget_low_2.c

2024-05-30 Thread Pengxuan Zheng (QUIC)
> Pengxuan Zheng  writes:
> > vget_low_2.c is a test case for little-endian, but we missed the
> > -mlittle-endian flag in r15-697-ga2e4fe5a53cf75.
> >
> > gcc/testsuite/ChangeLog:
> >
> > * gcc.target/aarch64/vget_low_2.c: Add -mlittle-endian.
> 
> Ok, thanks.
> 
> If you'd like write access, please follow the instructions on
> https://gcc.gnu.org/gitwrite.html (I'll sponsor).
> 
> Richard

Thanks a lot, Richard! I really appreciate it!

I have submitted a request for write access naming you as sponsor.

Thanks,
Pengxuan
> 
> > Signed-off-by: Pengxuan Zheng 
> > ---
> >  gcc/testsuite/gcc.target/aarch64/vget_low_2.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/gcc/testsuite/gcc.target/aarch64/vget_low_2.c
> > b/gcc/testsuite/gcc.target/aarch64/vget_low_2.c
> > index 44414e1c043..93e9e664ee9 100644
> > --- a/gcc/testsuite/gcc.target/aarch64/vget_low_2.c
> > +++ b/gcc/testsuite/gcc.target/aarch64/vget_low_2.c
> > @@ -1,5 +1,5 @@
> >  /* { dg-do compile } */
> > -/* { dg-options "-O3 -fdump-tree-optimized" } */
> > +/* { dg-options "-O3 -fdump-tree-optimized -mlittle-endian" } */
> >
> >  #include 


[Bug c++/115291] armv8-a GCC emits float32x2_t loads from uninitialized stack

2024-05-30 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115291

--- Comment #2 from Andrew Pinski  ---
See https://libeigen.gitlab.io/docs/TopicPitfalls.html
section "C++11 and the auto keyword" explictly.

"In short: do not use the auto keywords with Eigen's expressions, unless you
are 100% sure about what you are doing. In particular, do not use the auto
keyword as a replacement for a Matrix<> type."

Describes the issue you are having.

gcc-12-20240530 is now available

2024-05-30 Thread GCC Administrator via Gcc
Snapshot gcc-12-20240530 is now available on
  https://gcc.gnu.org/pub/gcc/snapshots/12-20240530/
and on various mirrors, see https://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 12 git branch
with the following options: git://gcc.gnu.org/git/gcc.git branch 
releases/gcc-12 revision e26f16424f6279662efb210bc87c77148e956fed

You'll find:

 gcc-12-20240530.tar.xz   Complete GCC

  SHA256=e4b060b7f3684cee039d7aed953f57ac6b4c07b077aac1547cd790b503d145fe
  SHA1=5291fdf96726bb19f99aec4fe83abca2cbaa0096

Diffs from 12-20240523 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-12
link is updated and a message is sent to the gcc list.  Please do not use
a snapshot before it has been announced that way.


Results for 12.3.1 20240525 [releases/gcc-12 revision r12-10471-ge11d3dd4708e] (GCC) testsuite on x86_64-apple-darwin18

2024-05-30 Thread Iain Sandoe via Gcc-testresults
LAST_UPDATED: Sat 25 May 2024 00:19:36 UTC (revision r12-10471-ge11d3dd4708e)

=== acats tests ===

=== acats Summary ===
# of expected passes2328
# of unexpected failures0
Native configuration is x86_64-apple-darwin18

=== g++ tests ===


Running target unix
FAIL: c-c++-common/asan/alloca_big_alignment.c   -Os  output pattern test
FAIL: c-c++-common/asan/alloca_detect_custom_size.c   -Os  output pattern test
FAIL: c-c++-common/asan/alloca_overflow_partial.c   -Os  output pattern test
FAIL: c-c++-common/asan/alloca_overflow_right.c   -Os  output pattern test
FAIL: c-c++-common/asan/alloca_underflow_left.c   -Os  output pattern test
FAIL: g++.dg/init/array61.C  -std=c++14  scan-tree-dump-times gimple 
"item::item" 1
FAIL: g++.dg/init/array61.C  -std=c++17  scan-tree-dump-times gimple 
"item::item" 1
FAIL: g++.dg/init/array61.C  -std=c++20  scan-tree-dump-times gimple 
"item::item" 1
FAIL: g++.dg/ipa/pr67056.C   scan-ipa-dump cp "Speculative outer type:struct 
CompositeClass"
FAIL: g++.dg/lto/pr65276 cp_lto_pr65276_0.o-cp_lto_pr65276_1.o link, -flto -O0 
-std=c++11
FAIL: g++.dg/lto/pr85405 cp_lto_pr85405_0.o-cp_lto_pr85405_1.o link, -fPIC 
-shared -flto
FAIL: g++.dg/lto/pr85405b cp_lto_pr85405b_0.o-cp_lto_pr85405b_1.o link, -fPIC 
-shared -flto
FAIL: g++.dg/lto/pr85655 cp_lto_pr85655_0.o-cp_lto_pr85655_0.o link, -O2 -fPIC 
-shared -flto
FAIL: g++.dg/lto/pr86523-3 cp_lto_pr86523-3_0.o-cp_lto_pr86523-3_0.o link,  
-fPIC -flto -g -shared 
FAIL: g++.dg/lto/pr86585 cp_lto_pr86585_0.o-cp_lto_pr86585_1.o link,  -flto -g 
-nostdlib -shared -fPIC 
FAIL: g++.dg/lto/pr87295 cp_lto_pr87295_0.o assemble,  -flto -ffat-lto-objects 
-fdebug-types-section -g -std=gnu++17 
FAIL: g++.dg/lto/pr87906 cp_lto_pr87906_0.o-cp_lto_pr87906_1.o link,  -O -fPIC 
-flto 
FAIL: g++.dg/lto/pr88046 cp_lto_pr88046_0.o-cp_lto_pr88046_0.o link,  -O2 -fPIC 
-flto 
FAIL: g++.dg/lto/pr88758 cp_lto_pr88758_0.o-cp_lto_pr88758_1.o link,  -O3 -fPIC 
-flto -shared 
FAIL: g++.dg/lto/pr89330 cp_lto_pr89330_0.o-cp_lto_pr89330_1.o link,  -O3 -g 
-flto -shared -fPIC -Wno-odr 
FAIL: g++.dg/lto/pr91574 cp_lto_pr91574_0.o-cp_lto_pr91574_0.o link,  -fPIC 
-flto -O2 
FAIL: g++.dg/lto/pr92609  (test for LTO warnings, pr92609_0.C line 75)
FAIL: g++.dg/lto/pr92609 cp_lto_pr92609_0.o-cp_lto_pr92609_1.o link,  -fPIC 
-flto 
FAIL: g++.dg/lto/pr93166 cp_lto_pr93166_0.o-cp_lto_pr93166_0.o link,  -fPIC -O2 
-flto -fvisibility=hidden 
FAIL: g++.dg/tls/thread_local13.C  -std=gnu++14 execution test
FAIL: g++.dg/tls/thread_local13.C  -std=gnu++17 execution test
FAIL: g++.dg/tls/thread_local13.C  -std=gnu++20 execution test
FAIL: g++.dg/tls/thread_local14.C  -std=gnu++14 execution test
FAIL: g++.dg/tls/thread_local14.C  -std=gnu++17 execution test
FAIL: g++.dg/tls/thread_local14.C  -std=gnu++20 execution test
FAIL: g++.target/i386/pr105980.C  -std=gnu++14 (internal compiler error: in 
insn_default_length, at config/i386/i386.md:20024)
FAIL: g++.target/i386/pr105980.C  -std=gnu++14 (test for excess errors)
FAIL: g++.target/i386/pr105980.C  -std=gnu++17 (internal compiler error: in 
insn_default_length, at config/i386/i386.md:20024)
FAIL: g++.target/i386/pr105980.C  -std=gnu++17 (test for excess errors)
FAIL: g++.target/i386/pr105980.C  -std=gnu++20 (internal compiler error: in 
insn_default_length, at config/i386/i386.md:20024)
FAIL: g++.target/i386/pr105980.C  -std=gnu++20 (test for excess errors)
FAIL: g++.target/i386/pr105980.C  -std=gnu++98 (internal compiler error: in 
insn_default_length, at config/i386/i386.md:20024)
FAIL: g++.target/i386/pr105980.C  -std=gnu++98 (test for excess errors)

=== g++ Summary ===

# of expected passes225180
# of unexpected failures38
# of expected failures  2085
# of unsupported tests  10717
/scratch/10-14-moj/gcc-12/gcc/xg++  version 12.3.1 20240525 [releases/gcc-12 
revision r12-10471-ge11d3dd4708e] (GCC) 

=== gcc tests ===


Running target unix
FAIL: c-c++-common/asan/alloca_big_alignment.c   -Os  output pattern test
FAIL: c-c++-common/asan/alloca_detect_custom_size.c   -Os  output pattern test
FAIL: c-c++-common/asan/alloca_overflow_partial.c   -Os  output pattern test
FAIL: c-c++-common/asan/alloca_overflow_right.c   -Os  output pattern test
FAIL: c-c++-common/asan/alloca_underflow_left.c   -Os  output pattern test
FAIL: gcc.dg/pr97172-2.c (test for excess errors)
FAIL: gcc.dg/graphite/scop-19.c scan-tree-dump-times graphite "number of SCoPs: 
0" 1
FAIL: gcc-dg-lto-modref-3-01.exe scan-wpa-ipa-dump modref "parm 1 flags: 
no_direct_clobber no_direct_escape"
FAIL: gcc-dg-lto-modref-4-01.exe scan-wpa-ipa-dump modref "parm 1 flags: 
no_direct_clobber no_direct_escape"
FAIL: gcc.dg/lto/modref-3 c_lto_modref-3_0.o-c_lto_modref-3_1.o execute -O2 
-flto-partition=max -fdump-ipa-modref -fno-ipa-sra -fno-ipa-cp -flto
FAIL: gcc.dg/lto/modref-4 c_lto_modref-4_0.o-c_lto_modref-4_1.o execute -O2 

[committed] i386: Rewrite bswaphi2 handling [PR115102]

2024-05-30 Thread Uros Bizjak
Introduce *bswaphi2 instruction pattern and enable bswaphi2 expander
also for non-movbe targets.  The testcase:

unsigned short bswap8 (unsigned short val)
{
  return ((val & 0xff00) >> 8) | ((val & 0xff) << 8);
}

now expands through bswaphi2 named expander.

Rewrite bswaphi_lowpart insn pattern as bswaphisi2_lowpart in the RTX form
that combine pass can use to simplify:

Trying 6, 9, 8 -> 10:
6: r99:SI=bswap(r103:SI)
9: {r107:SI=r103:SI&0x;clobber flags:CC;}
  REG_DEAD r103:SI
  REG_UNUSED flags:CC
8: {r106:SI=r99:SI 0>>0x10;clobber flags:CC;}
  REG_DEAD r99:SI
  REG_UNUSED flags:CC
   10: {r104:SI=r106:SI|r107:SI;clobber flags:CC;}
  REG_DEAD r107:SI
  REG_DEAD r106:SI
  REG_UNUSED flags:CC

Successfully matched this instruction:
(set (reg:SI 104 [ _8 ])
(ior:SI (and:SI (reg/v:SI 103 [ val ])
(const_int -65536 [0x]))
(lshiftrt:SI (bswap:SI (reg/v:SI 103 [ val ]))
(const_int 16 [0x10]
allowing combination of insns 6, 8, 9 and 10

when compiling the following testcase:

unsigned int bswap8 (unsigned int val)
{
  return (val & 0x) | ((val & 0xff00) >> 8) | ((val & 0xff) << 8);
}

to produce:

movl%edi, %eax
xchgb   %ah, %al
ret

The expansion now always goes through a clobberless form of the bswaphi
instruction.  The instruction is conditionally converted to a rotate at
peephole2 pass.  This significantly simplifies bswaphisi2_lowpart
insn pattern attributes.

PR target/115102

gcc/ChangeLog:

* config/i386/i386.md (bswaphi2): Also enable for !TARGET_MOVBE.
(*bswaphi2): New insn pattern.
(bswaphisi2_lowpart): Rename from bswaphi_lowpart.  Rewrite
insn RTX to match the expected form of the combine pass.
Remove rol{w} alternative and corresponding attributes.
(bswsaphisi2_lowpart peephole2): New peephole2 pattern to
conditionally convert bswaphisi2_lowpart to rotlhi3_1_slp.
(bswapsi2): Update expander for rename.
(rotlhi3_1_slp splitter): Conditionally split to bswaphi2.

gcc/testsuite/ChangeLog:

* gcc.target/i386/pr115102.c: New test.

Bootstrapped and regression tested on x86_64-pc-linux-gnu {,-m32}.

Uros.
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index c162cd42386..375654cf74e 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -17210,9 +17210,7 @@ (define_split
   (clobber (reg:CC FLAGS_REG))]
  "reload_completed
   && (TARGET_USE_XCHGB || optimize_function_for_size_p (cfun))"
- [(parallel [(set (strict_low_part (match_dup 0))
- (bswap:HI (match_dup 0)))
-(clobber (reg:CC FLAGS_REG))])])
+ [(set (match_dup 0) (bswap:HI (match_dup 0)))])
 
 ;; Rotations through carry flag
 (define_insn "rcrsi2"
@@ -20730,12 +20728,11 @@ (define_expand "bswapsi2"
 operands[1] = force_reg (SImode, operands[1]);
   else
 {
-  rtx x = operands[0];
+  rtx x = gen_reg_rtx (SImode);
 
-  emit_move_insn (x, operands[1]);
-  emit_insn (gen_bswaphi_lowpart (gen_lowpart (HImode, x)));
+  emit_insn (gen_bswaphisi2_lowpart (x, operands[1]));
   emit_insn (gen_rotlsi3 (x, x, GEN_INT (16)));
-  emit_insn (gen_bswaphi_lowpart (gen_lowpart (HImode, x)));
+  emit_insn (gen_bswaphisi2_lowpart (operands[0], x));
   DONE;
 }
 })
@@ -20767,7 +20764,11 @@ (define_insn "*bswap2"
 (define_expand "bswaphi2"
   [(set (match_operand:HI 0 "register_operand")
(bswap:HI (match_operand:HI 1 "nonimmediate_operand")))]
-  "TARGET_MOVBE")
+  ""
+{
+  if (!TARGET_MOVBE)
+operands[1] = force_reg (HImode, operands[1]);
+})
 
 (define_insn "*bswaphi2_movbe"
   [(set (match_operand:HI 0 "nonimmediate_operand" "=Q,r,m")
@@ -20788,33 +20789,55 @@ (define_insn "*bswaphi2_movbe"
(set_attr "bdver1_decode" "double,*,*")
(set_attr "mode" "QI,HI,HI")])
 
+(define_insn "*bswaphi2"
+  [(set (match_operand:HI 0 "register_operand" "=Q")
+   (bswap:HI (match_operand:HI 1 "register_operand" "0")))]
+  "!TARGET_MOVBE"
+  "xchg{b}\t{%h0, %b0|%b0, %h0}"
+  [(set_attr "type" "imov")
+   (set_attr "pent_pair" "np")
+   (set_attr "athlon_decode" "vector")
+   (set_attr "amdfam10_decode" "double")
+   (set_attr "bdver1_decode" "double")
+   (set_attr "mode" "QI")])
+
 (define_peephole2
   [(set (match_operand:HI 0 "general_reg_operand")
(bswap:HI (match_dup 0)))]
-  "TARGET_MOVBE
-   && !(TARGET_USE_XCHGB || optimize_function_for_size_p (cfun))
+  "!(TARGET_USE_XCHGB ||
+ TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun))
&& peep2_regno_dead_p (0, FLAGS_REG)"
   [(parallel [(set (match_dup 0) (rotate:HI (match_dup 0) (const_int 8)))
  (clobber (reg:CC FLAGS_REG))])])
 
-(define_insn "bswaphi_lowpart"
-  [(set (strict_low_part (match_operand:HI 0 "register_operand" "+Q,r"))
-   (bswap:HI (match_dup 0)))
-   (clobber (reg:CC FLAGS_REG))]
+(define_insn "bswaphisi2_lowpart"
+  [(set (match_operand:SI 0 "register_operand" 

[Bug target/115102] [SH] GCC misunderstands swap.b instruction

2024-05-30 Thread cvs-commit at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115102

--- Comment #5 from GCC Commits  ---
The master branch has been updated by Uros Bizjak :

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

commit r15-930-ge715204f203d318524ae86f3f2a1e8d5d7cb08dc
Author: Uros Bizjak 
Date:   Thu May 30 21:27:42 2024 +0200

i386: Rewrite bswaphi2 handling [PR115102]

Introduce *bswaphi2 instruction pattern and enable bswaphi2 expander
also for non-movbe targets.  The testcase:

unsigned short bswap8 (unsigned short val)
{
  return ((val & 0xff00) >> 8) | ((val & 0xff) << 8);
}

now expands through bswaphi2 named expander.

Rewrite bswaphi_lowpart insn pattern as bswaphisi2_lowpart in the RTX form
that combine pass can use to simplify:

Trying 6, 9, 8 -> 10:
6: r99:SI=bswap(r103:SI)
9: {r107:SI=r103:SI&0x;clobber flags:CC;}
  REG_DEAD r103:SI
  REG_UNUSED flags:CC
8: {r106:SI=r99:SI 0>>0x10;clobber flags:CC;}
  REG_DEAD r99:SI
  REG_UNUSED flags:CC
   10: {r104:SI=r106:SI|r107:SI;clobber flags:CC;}
  REG_DEAD r107:SI
  REG_DEAD r106:SI
  REG_UNUSED flags:CC

Successfully matched this instruction:
(set (reg:SI 104 [ _8 ])
(ior:SI (and:SI (reg/v:SI 103 [ val ])
(const_int -65536 [0x]))
(lshiftrt:SI (bswap:SI (reg/v:SI 103 [ val ]))
(const_int 16 [0x10]
allowing combination of insns 6, 8, 9 and 10

when compiling the following testcase:

unsigned int bswap8 (unsigned int val)
{
  return (val & 0x) | ((val & 0xff00) >> 8) | ((val & 0xff) << 8);
}

to produce:

movl%edi, %eax
xchgb   %ah, %al
ret

The expansion now always goes through a clobberless form of the bswaphi
instruction.  The instruction is conditionally converted to a rotate at
peephole2 pass.  This significantly simplifies bswaphisi2_lowpart
insn pattern attributes.

PR target/115102

gcc/ChangeLog:

* config/i386/i386.md (bswaphi2): Also enable for !TARGET_MOVBE.
(*bswaphi2): New insn pattern.
(bswaphisi2_lowpart): Rename from bswaphi_lowpart.  Rewrite
insn RTX to match the expected form of the combine pass.
Remove rol{w} alternative and corresponding attributes.
(bswsaphisi2_lowpart peephole2): New peephole2 pattern to
conditionally convert bswaphisi2_lowpart to rotlhi3_1_slp.
(bswapsi2): Update expander for rename.
(rotlhi3_1_slp splitter): Conditionally split to bswaphi2.

gcc/testsuite/ChangeLog:

* gcc.target/i386/pr115102.c: New test.

[gcc r15-930] i386: Rewrite bswaphi2 handling [PR115102]

2024-05-30 Thread Uros Bizjak via Gcc-cvs
https://gcc.gnu.org/g:e715204f203d318524ae86f3f2a1e8d5d7cb08dc

commit r15-930-ge715204f203d318524ae86f3f2a1e8d5d7cb08dc
Author: Uros Bizjak 
Date:   Thu May 30 21:27:42 2024 +0200

i386: Rewrite bswaphi2 handling [PR115102]

Introduce *bswaphi2 instruction pattern and enable bswaphi2 expander
also for non-movbe targets.  The testcase:

unsigned short bswap8 (unsigned short val)
{
  return ((val & 0xff00) >> 8) | ((val & 0xff) << 8);
}

now expands through bswaphi2 named expander.

Rewrite bswaphi_lowpart insn pattern as bswaphisi2_lowpart in the RTX form
that combine pass can use to simplify:

Trying 6, 9, 8 -> 10:
6: r99:SI=bswap(r103:SI)
9: {r107:SI=r103:SI&0x;clobber flags:CC;}
  REG_DEAD r103:SI
  REG_UNUSED flags:CC
8: {r106:SI=r99:SI 0>>0x10;clobber flags:CC;}
  REG_DEAD r99:SI
  REG_UNUSED flags:CC
   10: {r104:SI=r106:SI|r107:SI;clobber flags:CC;}
  REG_DEAD r107:SI
  REG_DEAD r106:SI
  REG_UNUSED flags:CC

Successfully matched this instruction:
(set (reg:SI 104 [ _8 ])
(ior:SI (and:SI (reg/v:SI 103 [ val ])
(const_int -65536 [0x]))
(lshiftrt:SI (bswap:SI (reg/v:SI 103 [ val ]))
(const_int 16 [0x10]
allowing combination of insns 6, 8, 9 and 10

when compiling the following testcase:

unsigned int bswap8 (unsigned int val)
{
  return (val & 0x) | ((val & 0xff00) >> 8) | ((val & 0xff) << 8);
}

to produce:

movl%edi, %eax
xchgb   %ah, %al
ret

The expansion now always goes through a clobberless form of the bswaphi
instruction.  The instruction is conditionally converted to a rotate at
peephole2 pass.  This significantly simplifies bswaphisi2_lowpart
insn pattern attributes.

PR target/115102

gcc/ChangeLog:

* config/i386/i386.md (bswaphi2): Also enable for !TARGET_MOVBE.
(*bswaphi2): New insn pattern.
(bswaphisi2_lowpart): Rename from bswaphi_lowpart.  Rewrite
insn RTX to match the expected form of the combine pass.
Remove rol{w} alternative and corresponding attributes.
(bswsaphisi2_lowpart peephole2): New peephole2 pattern to
conditionally convert bswaphisi2_lowpart to rotlhi3_1_slp.
(bswapsi2): Update expander for rename.
(rotlhi3_1_slp splitter): Conditionally split to bswaphi2.

gcc/testsuite/ChangeLog:

* gcc.target/i386/pr115102.c: New test.

Diff:
---
 gcc/config/i386/i386.md  | 77 +---
 gcc/testsuite/gcc.target/i386/pr115102.c | 10 +
 2 files changed, 60 insertions(+), 27 deletions(-)

diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index c162cd42386..375654cf74e 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -17210,9 +17210,7 @@
   (clobber (reg:CC FLAGS_REG))]
  "reload_completed
   && (TARGET_USE_XCHGB || optimize_function_for_size_p (cfun))"
- [(parallel [(set (strict_low_part (match_dup 0))
- (bswap:HI (match_dup 0)))
-(clobber (reg:CC FLAGS_REG))])])
+ [(set (match_dup 0) (bswap:HI (match_dup 0)))])
 
 ;; Rotations through carry flag
 (define_insn "rcrsi2"
@@ -20730,12 +20728,11 @@
 operands[1] = force_reg (SImode, operands[1]);
   else
 {
-  rtx x = operands[0];
+  rtx x = gen_reg_rtx (SImode);
 
-  emit_move_insn (x, operands[1]);
-  emit_insn (gen_bswaphi_lowpart (gen_lowpart (HImode, x)));
+  emit_insn (gen_bswaphisi2_lowpart (x, operands[1]));
   emit_insn (gen_rotlsi3 (x, x, GEN_INT (16)));
-  emit_insn (gen_bswaphi_lowpart (gen_lowpart (HImode, x)));
+  emit_insn (gen_bswaphisi2_lowpart (operands[0], x));
   DONE;
 }
 })
@@ -20767,7 +20764,11 @@
 (define_expand "bswaphi2"
   [(set (match_operand:HI 0 "register_operand")
(bswap:HI (match_operand:HI 1 "nonimmediate_operand")))]
-  "TARGET_MOVBE")
+  ""
+{
+  if (!TARGET_MOVBE)
+operands[1] = force_reg (HImode, operands[1]);
+})
 
 (define_insn "*bswaphi2_movbe"
   [(set (match_operand:HI 0 "nonimmediate_operand" "=Q,r,m")
@@ -20788,33 +20789,55 @@
(set_attr "bdver1_decode" "double,*,*")
(set_attr "mode" "QI,HI,HI")])
 
+(define_insn "*bswaphi2"
+  [(set (match_operand:HI 0 "register_operand" "=Q")
+   (bswap:HI (match_operand:HI 1 "register_operand" "0")))]
+  "!TARGET_MOVBE"
+  "xchg{b}\t{%h0, %b0|%b0, %h0}"
+  [(set_attr "type" "imov")
+   (set_attr "pent_pair" "np")
+   (set_attr "athlon_decode" "vector")
+   (set_attr "amdfam10_decode" "double")
+   (set_attr "bdver1_decode" "double")
+   (set_attr "mode" "QI")])
+
 (define_peephole2
   [(set (match_operand:HI 0 "general_reg_operand")
(bswap:HI (match_dup 0)))]
-  

Results for 15.0.0 20240530 (experimental) [master r15-929-g46d931b3dd3] (GCC) testsuite on s390x-ibm-linux-gnu z16

2024-05-30 Thread stefansf--- via Gcc-testresults
LAST_UPDATED: Thu May 30 17:06:01 UTC 2024 (revision r15-929-g46d931b3dd3)

=== acats tests ===
FAIL:   cb1010a
FAIL:   cxa4001

=== acats Summary ===
# of expected passes2326
# of unexpected failures2
Native configuration is s390x-ibm-linux-gnu z16

=== gcc tests ===


Running target unix/-m31
FAIL: gcc.c-torture/execute/920501-4.c   -O1  execution test
FAIL: gcc.c-torture/execute/920501-4.c   -O2  execution test
FAIL: gcc.c-torture/execute/920501-4.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  execution test
FAIL: gcc.c-torture/execute/920501-4.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  execution test
FAIL: gcc.c-torture/execute/920501-4.c   -O3 -g  execution test
FAIL: gcc.c-torture/execute/920501-4.c   -Os  execution test
FAIL: gcc.c-torture/execute/920501-5.c   -O1  execution test
FAIL: gcc.c-torture/execute/920501-5.c   -O2  execution test
FAIL: gcc.c-torture/execute/920501-5.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  execution test
FAIL: gcc.c-torture/execute/920501-5.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  execution test
FAIL: gcc.c-torture/execute/920501-5.c   -O3 -g  execution test
FAIL: gcc.c-torture/execute/920501-5.c   -Os  execution test
FAIL: gcc.c-torture/execute/920721-4.c   -O2  execution test
FAIL: gcc.c-torture/execute/920721-4.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  execution test
FAIL: gcc.c-torture/execute/920721-4.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  execution test
FAIL: gcc.c-torture/execute/920721-4.c   -O3 -fomit-frame-pointer 
-funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gcc.c-torture/execute/920721-4.c   -O3 -g  execution test
FAIL: gcc.c-torture/execute/920721-4.c   -Os  execution test
FAIL: c-c++-common/asan/pointer-compare-1.c   -O0  output pattern test
FAIL: c-c++-common/asan/pointer-compare-1.c   -O1  output pattern test
FAIL: c-c++-common/asan/pointer-compare-1.c   -O2  output pattern test
FAIL: c-c++-common/asan/pointer-compare-1.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  output pattern test
FAIL: c-c++-common/asan/pointer-compare-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  output pattern test
FAIL: c-c++-common/asan/pointer-compare-1.c   -O3 -g  output pattern test
FAIL: c-c++-common/asan/pointer-compare-1.c   -Os  output pattern test
FAIL: c-c++-common/asan/pointer-subtract-3.c   -O0  execution test
FAIL: c-c++-common/asan/pointer-subtract-3.c   -O1  execution test
FAIL: c-c++-common/asan/pointer-subtract-3.c   -O2  execution test
FAIL: c-c++-common/asan/pointer-subtract-3.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  execution test
FAIL: c-c++-common/asan/pointer-subtract-3.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  execution test
FAIL: c-c++-common/asan/pointer-subtract-3.c   -O3 -g  execution test
FAIL: c-c++-common/asan/pointer-subtract-3.c   -Os  execution test
FAIL: c-c++-common/asan/pr64820.c   -O0  output pattern test
FAIL: c-c++-common/asan/pr64820.c   -O1  output pattern test
FAIL: c-c++-common/asan/pr64820.c   -O2  output pattern test
FAIL: c-c++-common/asan/pr64820.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  output pattern test
FAIL: c-c++-common/asan/pr64820.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  output pattern test
FAIL: c-c++-common/asan/pr64820.c   -O3 -g  output pattern test
FAIL: c-c++-common/asan/pr64820.c   -Os  output pattern test
FAIL: c-c++-common/asan/use-after-return-1.c   -O0  output pattern test
FAIL: c-c++-common/asan/use-after-return-1.c   -O1  output pattern test
FAIL: c-c++-common/asan/use-after-return-1.c   -O2  output pattern test
FAIL: c-c++-common/asan/use-after-return-1.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  output pattern test
FAIL: c-c++-common/asan/use-after-return-1.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  output pattern test
FAIL: c-c++-common/asan/use-after-return-1.c   -O3 -g  output pattern test
FAIL: c-c++-common/asan/use-after-return-1.c   -Os  output pattern test
FAIL: c-c++-common/vector-subscript-4.c  -Wc++-compat   scan-tree-dump-not 
optimized "vector"
FAIL: gcc.dg/auto-init-uninit-17.c unconditional (test for warnings, line 14)
FAIL: gcc.dg/gcc-have-sync-compare-and-swap.c (test for excess errors)
FAIL: gcc.dg/loop-9.c scan-rtl-dump loop2_invariant "Decided"
FAIL: gcc.dg/loop-9.c scan-rtl-dump loop2_invariant "without introducing a new 
temporary register"
FAIL: gcc.dg/lower-subreg-1.c scan-rtl-dump subreg1 "Splitting reg"
FAIL: gcc.dg/pr84877.c execution test
FAIL: gcc.dg/sms-compare-debug-1.c (test for excess errors)
FAIL: gcc.dg/store_merging_5.c scan-tree-dump-times store-merging "MEM 
 [.*]" 1
FAIL: gcc.dg/uninit-17.c unconditional (test for warnings, line 14)
FAIL: c-c++-common/goacc/firstprivate-mappings-1.c scan-tree-dump omplower 
"(?n)#pragma omp target oacc_parallel 

[PATCH v3 3/6] btf: refactor and simplify implementation

2024-05-30 Thread David Faust
This patch heavily refactors btfout.cc to take advantage of the
structural changes in the prior commits.

Now that inter-type references are internally stored as simply pointers,
all the painful, brittle, confusing infrastructure that was used in the
process of converting CTF type IDs to BTF type IDs can be thrown out.
This greatly simplifies the entire process of converting from CTF to
BTF, making the code cleaner, easier to read, and easier to maintain.

In addition, we no longer need to worry about destructive changes in
internal data structures used commonly by CTF and BTF, which allows
deleting several ancillary data structures previously used in btfout.cc.

This is nearly transparent, but a few improvements have also been made:

 1) BTF_KIND_FUNC records are now _always_ constructed at early_finish,
allowing us to construct records even for functions which are later
inlined by optimizations. DATASEC entries for functions are only
constructed at late_finish, to avoid incorrectly generating entries
for functions which get inlined.

 2) BTF_KIND_VAR records and DATASEC entries for them are now always
constructed at (late) finish, which avoids cases where we could
incorrectly create records for variables which were completely
optimized away.  This fixes PR debug/113566 for non-LTO builds.
In LTO builds, BTF must be emitted at early_finish, so some VAR
records may be emitted for variables which are later optimized away.

 3) Some additional assembler comments have been added with more
information for debugging.

gcc/
* btfout.cc (struct btf_datasec_entry): New.
(struct btf_datasec): Add `id' member.  Change `entries' to use
new struct btf_datasec_entry.
(func_map): New hash_map.
(max_translated_id): New.
(btf_var_ids, btf_id_map, holes, voids, num_vars_added)
(num_types_added, num_types_created): Delete.
(btf_absolute_var_id, btf_relative_var_id, btf_absolute_func_id)
(btf_relative_func_id, btf_absolute_datasec_id, init_btf_id_map)
(get_btf_id, set_btf_id, btf_emit_id_p): Delete.
(btf_removed_type_p): Delete.
(btf_dtd_kind, btf_emit_type_p): New helpers.
(btf_fwd_to_enum_p, btf_calc_num_vbytes): Use them.
(btf_collect_datasec): Delete.
(btf_dtd_postprocess_cb, btf_dvd_emit_preprocess_cb)
(btf_dtd_emit_preprocess_cb, btf_emit_preprocess): Delete.
(btf_dmd_representable_bitfield_p): Adapt to type reference changes
and delete now-unused ctfc argument.
(btf_asm_datasec_type_ref): Delete.
(btf_asm_type_ref): Adapt to type reference changes, simplify.
(btf_asm_type): Likewise. Mark struct/union types with bitfield
members.
(btf_asm_array): Adapt to data structure changes.
(btf_asm_varent): Likewise.
(btf_asm_sou_member): Likewise. Ensure non-bitfield members are
correctly re-encoded if struct or union contains any bitfield.
(btf_asm_func_arg, btf_asm_func_type, btf_asm_datasec_entry)
(btf_asm_datasec_type): Adapt to data structure changes.
(output_btf_header): Adapt to other changes, simplify type
length calculation, add info to assembler comments.
(output_btf_vars): Adapt to other changes.
(output_btf_strs): Fix overlong lines.
(output_asm_btf_sou_fields, output_asm_btf_enum_list)
(output_asm_btf_func_args_list, output_asm_btf_vlen_bytes)
(output_asm_btf_type, output_btf_types, output_btf_func_types)
(output_btf_datasec_types): Adapt to other changes.
(btf_init_postprocess): Delete.
(btf_output): Change to only perform output.
(btf_early_add_const_void, btf_early_add_func_records): New.
(btf_early_finish): Use them here. New.
(btf_datasec_push_entry): Adapt to data structure changes.
(btf_datasec_add_func, btf_datasec_add_var): New.
(btf_late_add_func_datasec_entries): New.
(btf_emit_variable_p): New helper.
(btf_late_add_vars): Use it here. New.
(btf_type_list_cb, btf_late_collect_translated_types): New.
(btf_late_assign_func_ids, btf_late_assign_var_ids)
(btf_late_assign_datasec_ids): New.
(btf_finish): Remove unused argument. Call new btf_late*
functions and btf_output.
(btf_finalize): Adapt to data structure changes.
* ctfc.h (struct ctf_dtdef): Convert existing boolean flags to
BOOL_BITFIELD and reorder.
(struct ctf_dvdef): Add dvd_id member.
(btf_finish): Remove argument from prototype.
(get_btf_id): Delete prototype.
(funcs_traverse_callback, traverse_btf_func_types): Add an
explanatory comment.
* dwarf2ctf.cc (ctf_debug_finish): Remove unused argument.
* dwarf2ctf.h: Analogous change.
* dwarf2out.cc: Likewise.
---
 gcc/btfout.cc| 1254 

Re: [Patch, rs6000, aarch64, middle-end] Add implementation for different targets for pair mem fusion

2024-05-30 Thread Segher Boessenkool
Hi!

On Fri, May 31, 2024 at 01:21:44AM +0530, Ajit Agarwal wrote:
> Code is implemented with pure virtual functions to interface with target
> code.

It's not a pure function.  A pure function -- by definition -- has no
side effects.  These things have side effects.

What you mean is this is *an implementation* for C++ functions without
a generic implementation.  An obfuscation some people (like me) would
say.  But please call things what they are!  So not "pure function".
That has a meaning, and this isn't it.

>   * config/aarch64/aarch64-ldp-fusion.cc: Add target specific
>   implementation of additional virtual functions added in pair_fusion
>   struct.

This does not belong in this patch.  Do not send "rs6000" patches that
touch anything outside of config/rs6000/ and similar, certainly not in
config/something-else/!

This would be WAY easier to review (read: AT ALL POSSIBLE) if you
included some detailed rationale and design document.


Segher


[PATCH v3 5/6] bpf,btf: enable BTF pruning by default for BPF

2024-05-30 Thread David Faust
This patch enables -fprune-btf by default in the BPF backend when
generating BTF information, and fixes BPF CO-RE generation when using
-fprune-btf.

When generating BPF CO-RE information, we must ensure that types used
in CO-RE relocations always have sufficient BTF information emited so
that the CO-RE relocations can be processed by a BPF loader.  The BTF
pruning algorithm on its own does not have sufficient information to
determine which types are used in a BPF CO-RE relocation, so this
information must be supplied by the BPF backend, using a new
btf_mark_type_used function.

Co-authored-by: Cupertino Miranda 

gcc/
* btfout.cc (btf_mark_type_used): New.
* ctfc.h (btf_mark_type_used): Declare it here.
* config/bpf/bpf.cc (bpf_option_override): Enable -fprune-btf
by default if -gbtf is enabled.
* config/bpf/core-builtins.cc (extra_fn): New typedef.
(compute_field_expr): Add callback parameter, and call it if supplied.
Fix computation for MEM_REF.
(mark_component_type_as_used): New.
(bpf_mark_types_as_used): Likewise.
(bpf_expand_core_builtin): Call here.
* doc/invoke.texi (Debugging Options): Note that -fprune-btf is
enabled by default for BPF target when generating BTF.

gcc/testsuite/
* gcc.dg/debug/btf/btf-variables-5.c: Add -fno-prune-btf to dg-options.
---
 gcc/btfout.cc | 22 ++
 gcc/config/bpf/bpf.cc |  5 ++
 gcc/config/bpf/core-builtins.cc   | 71 +--
 gcc/ctfc.h|  1 +
 gcc/doc/invoke.texi   |  3 +
 .../gcc.dg/debug/btf/btf-variables-5.c|  6 +-
 6 files changed, 100 insertions(+), 8 deletions(-)

diff --git a/gcc/btfout.cc b/gcc/btfout.cc
index a7da164f6b31..35d2875e3f61 100644
--- a/gcc/btfout.cc
+++ b/gcc/btfout.cc
@@ -1501,6 +1501,28 @@ btf_late_assign_datasec_ids (ctf_container_ref ctfc)
 }
 }
 
+
+/* Manually mark that type T is used to ensure it will not be pruned.
+   Used by the BPF backend when generating BPF CO-RE to mark types used
+   in CO-RE relocations.  */
+
+void
+btf_mark_type_used (tree t)
+{
+  /* If we are not going to prune anyway, this is a no-op.  */
+  if (!flag_prune_btf)
+return;
+
+  gcc_assert (TYPE_P (t));
+  ctf_container_ref ctfc = ctf_get_tu_ctfc ();
+  ctf_dtdef_ref dtd = ctf_lookup_tree_type (ctfc, t);
+
+  if (!dtd)
+return;
+
+  btf_add_used_type (ctfc, dtd, false, false, true);
+}
+
 /* Callback used for assembling the only-used-types list.  Note that this is
the same as btf_type_list_cb above, but the hash_set traverse requires a
different function signature.  */
diff --git a/gcc/config/bpf/bpf.cc b/gcc/config/bpf/bpf.cc
index dd1bfe38d29b..775730700eba 100644
--- a/gcc/config/bpf/bpf.cc
+++ b/gcc/config/bpf/bpf.cc
@@ -221,6 +221,11 @@ bpf_option_override (void)
   && !(target_flags_explicit & MASK_BPF_CORE))
 target_flags |= MASK_BPF_CORE;
 
+  /* -gbtf implies -fprune-btf for BPF target.  */
+  if (btf_debuginfo_p ())
+SET_OPTION_IF_UNSET (_options, _options_set,
+flag_prune_btf, true);
+
   /* Determine available features from ISA setting (-mcpu=).  */
   if (bpf_has_jmpext == -1)
 bpf_has_jmpext = (bpf_isa >= ISA_V2);
diff --git a/gcc/config/bpf/core-builtins.cc b/gcc/config/bpf/core-builtins.cc
index 232bebcadbd5..86e2e9d6e39f 100644
--- a/gcc/config/bpf/core-builtins.cc
+++ b/gcc/config/bpf/core-builtins.cc
@@ -624,13 +624,20 @@ bpf_core_get_index (const tree node, bool *valid)
 
ALLOW_ENTRY_CAST is an input arguments and specifies if the function should
consider as valid expressions in which NODE entry is a cast expression (or
-   tree code nop_expr).  */
+   tree code nop_expr).
+
+   EXTRA_FN is a callback function to allow extra functionality with this
+   function traversal.  Currently used for marking used type during expand
+   pass.  */
+
+typedef void (*extra_fn) (tree);
 
 static unsigned char
 compute_field_expr (tree node, unsigned int *accessors,
bool *valid,
tree *access_node,
-   bool allow_entry_cast = true)
+   bool allow_entry_cast = true,
+   extra_fn callback = NULL)
 {
   unsigned char n = 0;
   unsigned int fake_accessors[MAX_NR_ACCESSORS];
@@ -647,6 +654,9 @@ compute_field_expr (tree node, unsigned int *accessors,
 
   *access_node = node;
 
+  if (callback != NULL)
+callback (node);
+
   switch (TREE_CODE (node))
 {
 case INDIRECT_REF:
@@ -664,17 +674,19 @@ compute_field_expr (tree node, unsigned int *accessors,
 case COMPONENT_REF:
   n = compute_field_expr (TREE_OPERAND (node, 0), accessors,
  valid,
- access_node, false);
+ access_node, false, callback);
   accessors[n] = bpf_core_get_index (TREE_OPERAND (node, 

[PATCH v3 6/6] opts: allow any combination of DWARF, CTF, BTF

2024-05-30 Thread David Faust
Previously it was not supported to generate both CTF and BTF debug info
in the same compiler run, as both formats made incompatible changes to
the same internal data structures.

With the structural change in the prior patches, in particular the
guarantee that CTF will always be fully emitted before any BTF
translation occurs, there is no longer anything preventing generation
of both CTF and BTF at the same time.  This patch changes option parsing
to allow any combination of -gdwarf, -gctf, and -gbtf at the same time.

gcc/
* opts.cc (set_debug_level): Allow any combination of -gdwarf,
-gctf and -gbtf at the same time.
---
 gcc/opts.cc | 20 +++-
 1 file changed, 7 insertions(+), 13 deletions(-)

diff --git a/gcc/opts.cc b/gcc/opts.cc
index f80d5d4ba8f9..d58bea096a5f 100644
--- a/gcc/opts.cc
+++ b/gcc/opts.cc
@@ -3505,21 +3505,15 @@ set_debug_level (uint32_t dinfo, int extended, const 
char *arg,
 }
   else
 {
-  /* Make and retain the choice if both CTF and DWARF debug info are to
-be generated.  */
-  if (((dinfo == DWARF2_DEBUG) || (dinfo == CTF_DEBUG))
+  /* Any combination of DWARF, CTF and BTF is allowed together.  */
+  if (((dinfo == DWARF2_DEBUG) || (dinfo == CTF_DEBUG)
+  || (dinfo == BTF_DEBUG))
  && ((opts->x_write_symbols == (DWARF2_DEBUG|CTF_DEBUG))
+ || (opts->x_write_symbols == (DWARF2_DEBUG|BTF_DEBUG))
+ || (opts->x_write_symbols == (CTF_DEBUG|BTF_DEBUG))
  || (opts->x_write_symbols == DWARF2_DEBUG)
- || (opts->x_write_symbols == CTF_DEBUG)))
-   {
- opts->x_write_symbols |= dinfo;
- opts_set->x_write_symbols |= dinfo;
-   }
-  /* However, CTF and BTF are not allowed together at this time.  */
-  else if (((dinfo == DWARF2_DEBUG) || (dinfo == BTF_DEBUG))
-  && ((opts->x_write_symbols == (DWARF2_DEBUG|BTF_DEBUG))
-  || (opts->x_write_symbols == DWARF2_DEBUG)
-  || (opts->x_write_symbols == BTF_DEBUG)))
+ || (opts->x_write_symbols == CTF_DEBUG)
+ || (opts->x_write_symbols == BTF_DEBUG)))
{
  opts->x_write_symbols |= dinfo;
  opts_set->x_write_symbols |= dinfo;
-- 
2.43.0



[PATCH v3 4/6] btf: add -fprune-btf option

2024-05-30 Thread David Faust
This patch adds a new option, -fprune-btf, to control BTF debug info
generation.

As the name implies, this option enables a kind of "pruning" of the BTF
information before it is emitted.  When enabled, rather than emitting
all type information translated from DWARF, only information for types
directly used in the source program is emitted.

The primary purpose of this pruning is to reduce the amount of
unnecessary BTF information emitted, especially for BPF programs.  It is
very common for BPF programs to incldue Linux kernel internal headers in
order to have access to kernel data structures.  However, doing so often
has the side effect of also adding type definitions for a large number
of types which are not actually used by nor relevant to the program.
In these cases, -fprune-btf commonly reduces the size of the resulting
BTF information by 10x or more, as seen on average when compiling Linux
kernel BPF selftests.  This both slims down the size of the resulting
object and reduces the time required by the BPF loader to verify the
program and its BTF information.

Note that the pruning implemented in this patch follows the same rules
as the BTF pruning performed unconditionally by LLVM's BPF backend when
generating BTF.  In particular, the main sources of pruning are:

  1) Only generate BTF for types used by variables and functions at
 the file scope.  Note that with or without pruning, BTF_KIND_VAR
 entries are only generated for variables present in the final
 object - unused static variables or variables completely optimized
 away must not have VAR entries in BTF.

  2) Avoid emitting full BTF for struct and union types which are only
 pointed-to by members of other struct/union types.  In these cases,
 the full BTF_KIND_STRUCT or BTF_KIND_UNION which would normally
 be emitted is replaced with a BTF_KIND_FWD, as though the
 underlying type was a forward-declared struct or union type.

gcc/
* btfout.cc (btf_used_types): New hash set.
(struct btf_fixup): New.
(fixups, forwards): New vecs.
(btf_output): Calculate num_types depending on flag_prune_btf.
(btf_early_finsih): New initialization for flag_prune_btf.
(btf_add_used_type): New function.
(btf_used_type_list_cb): Likewise.
(btf_late_collect_pruned_types): Likewise.
(btf_late_add_vars): Handle special case for variables in ".maps"
section when generating BTF for BPF CO-RE target.
(btf_late_finish): Use btf_late_collect_pruned_types when
flag_prune_btf in effect.  Move some initialization to btf_early_finish.
(btf_finalize): Additional deallocation for flag_prune_btf.
* common.opt (fprune-btf): New flag.
* ctfc.cc (init_ctf_strtable): Make non-static.
* ctfc.h (struct ctf_dtdef): Add visited_children_p boolean flag.
(init_ctf_strtable, ctfc_delete_strtab): Make extern.
* doc/invoke.texi (Debugging Options): Document -fprune-btf.

gcc/testsuite/
* gcc.dg/debug/btf/btf-prune-1.c: New test.
* gcc.dg/debug/btf/btf-prune-2.c: Likewise.
* gcc.dg/debug/btf/btf-prune-3.c: Likewise.
* gcc.dg/debug/btf/btf-prune-maps.c: Likewise.
---
 gcc/btfout.cc | 359 +-
 gcc/common.opt|   4 +
 gcc/ctfc.cc   |   2 +-
 gcc/ctfc.h|   3 +
 gcc/doc/invoke.texi   |  20 +
 gcc/testsuite/gcc.dg/debug/btf/btf-prune-1.c  |  25 ++
 gcc/testsuite/gcc.dg/debug/btf/btf-prune-2.c  |  33 ++
 gcc/testsuite/gcc.dg/debug/btf/btf-prune-3.c  |  35 ++
 .../gcc.dg/debug/btf/btf-prune-maps.c |  20 +
 9 files changed, 494 insertions(+), 7 deletions(-)
 create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-prune-1.c
 create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-prune-2.c
 create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-prune-3.c
 create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-prune-maps.c

diff --git a/gcc/btfout.cc b/gcc/btfout.cc
index 32fda14f704b..a7da164f6b31 100644
--- a/gcc/btfout.cc
+++ b/gcc/btfout.cc
@@ -828,7 +828,10 @@ output_btf_types (ctf_container_ref ctfc)
 {
   size_t i;
   size_t num_types;
-  num_types = ctfc->ctfc_types->elements ();
+  if (flag_prune_btf)
+num_types = max_translated_id;
+  else
+num_types = ctfc->ctfc_types->elements ();
 
   if (num_types)
 {
@@ -957,6 +960,212 @@ btf_early_add_func_records (ctf_container_ref ctfc)
 }
 }
 
+/* The set of types used directly in the source program, and any types manually
+   marked as used.  This is the set of types which will be emitted when
+   flag_prune_btf is set.  */
+static GTY (()) hash_set *btf_used_types;
+
+/* Fixup used to avoid unnecessary pointer chasing for types.  A fixup is
+   created when a structure or union member is a pointer to another struct
+   or union type.  In such cases, avoid 

[PATCH v3 2/6] ctf: use pointers instead of IDs internally

2024-05-30 Thread David Faust
This patch replaces all inter-type references in the ctfc internal data
structures with pointers, rather than the references-by-ID which were
used previously.

A couple of small updates in the BPF backend are included to make it
compatible with the change.

This change is only to the in-memory representation of various CTF
structures to make them easier to work with in various cases.  It is
outwardly transparent; there is no change in emitted CTF.

gcc/
* btfout.cc (BTF_VOID_TYPEID, BTF_INIT_TYPEID): Move defines to
include/btf.h.
(btf_dvd_emit_preprocess_cb, btf_emit_preprocess)
(btf_dmd_representable_bitfield_p, btf_asm_array, btf_asm_varent)
(btf_asm_sou_member, btf_asm_func_arg, btf_init_postprocess):
Adapt to structural changes in ctf_* structs.
* ctfc.h (struct ctf_dtdef): Add forward declaration.
(ctf_dtdef_t, ctf_dtdef_ref): Move typedefs earlier.
(struct ctf_arinfo, struct ctf_funcinfo, struct ctf_sliceinfo)
(struct ctf_itype, struct ctf_dmdef, struct ctf_func_arg)
(struct ctf_dvdef): Use pointers instead of type IDs for
references to other types and use typedefs where appropriate.
(struct ctf_dtdef): Add ref_type member.
(ctf_type_exists): Use pointer instead of type ID.
(ctf_add_reftype, ctf_add_enum, ctf_add_slice, ctf_add_float)
(ctf_add_integer, ctf_add_unknown, ctf_add_pointer)
(ctf_add_array, ctf_add_forward, ctf_add_typedef)
(ctf_add_function, ctf_add_sou, ctf_add_enumerator)
(ctf_add_variable): Likewise. Return pointer instead of ID.
(ctf_lookup_tree_type): Return pointer to type instead of ID.
* ctfc.cc: Analogous changes.
* ctfout.cc (ctf_asm_type, ctf_asm_slice, ctf_asm_varent)
(ctf_asm_sou_lmember, ctf_asm_sou_member, ctf_asm_func_arg)
(output_ctf_objt_info): Adapt to changes.
* dwarf2ctf.cc (gen_ctf_type, gen_ctf_void_type)
(gen_ctf_unknown_type, gen_ctf_base_type, gen_ctf_pointer_type)
(gen_ctf_subrange_type, gen_ctf_array_type, gen_ctf_typedef)
(gen_ctf_modifier_type, gen_ctf_sou_type, gen_ctf_function_type)
(gen_ctf_enumeration_type, gen_ctf_variable, gen_ctf_function)
(gen_ctf_type, ctf_do_die): Likewise.
* config/bpf/btfext-out.cc (struct btf_ext_core_reloc): Use
pointer instead of type ID.
(bpf_core_reloc_add, bpf_core_get_sou_member_index)
(output_btfext_core_sections): Adapt to above changes.
* config/bpf/core-builtins.cc (process_type): Likewise.

include/
* btf.h (BTF_VOID_TYPEID, BTF_INIT_TYPEID): Move defines here,
from gcc/btfout.cc.
---
 gcc/btfout.cc   |  40 +++---
 gcc/config/bpf/btfext-out.cc|  14 +-
 gcc/config/bpf/core-builtins.cc |   3 +-
 gcc/ctfc.cc | 139 +-
 gcc/ctfc.h  |  90 ++--
 gcc/ctfout.cc   |  22 +--
 gcc/dwarf2ctf.cc| 244 +++-
 include/btf.h   |   5 +
 8 files changed, 278 insertions(+), 279 deletions(-)

diff --git a/gcc/btfout.cc b/gcc/btfout.cc
index 1b6a9ed811f0..40e8d8c5c01b 100644
--- a/gcc/btfout.cc
+++ b/gcc/btfout.cc
@@ -61,11 +61,6 @@ static char btf_info_section_label[MAX_BTF_LABEL_BYTES];
 #define BTF_INFO_SECTION_LABEL  "Lbtf"
 #endif
 
-/* BTF encodes void as type id 0.  */
-
-#define BTF_VOID_TYPEID 0
-#define BTF_INIT_TYPEID 1
-
 #define BTF_INVALID_TYPEID 0x
 
 /* Mapping of CTF variables to the IDs they will be assigned when they are
@@ -626,7 +621,8 @@ btf_dvd_emit_preprocess_cb (ctf_dvdef_ref *slot, 
ctf_container_ref arg_ctfc)
 return 1;
 
   /* Do not add variables which refer to unsupported types.  */
-  if (!voids.contains (var->dvd_type) && btf_removed_type_p (var->dvd_type))
+  if (!voids.contains (var->dvd_type->dtd_type)
+  && btf_removed_type_p (var->dvd_type->dtd_type))
 return 1;
 
   arg_ctfc->ctfc_vars_list[num_vars_added] = var;
@@ -716,7 +712,7 @@ btf_emit_preprocess (ctf_container_ref ctfc)
 static bool
 btf_dmd_representable_bitfield_p (ctf_container_ref ctfc, ctf_dmdef_t *dmd)
 {
-  ctf_dtdef_ref ref_type = ctfc->ctfc_types_list[dmd->dmd_type];
+  ctf_dtdef_ref ref_type = ctfc->ctfc_types_list[dmd->dmd_type->dtd_type];
 
   if (CTF_V2_INFO_KIND (ref_type->dtd_data.ctti_info) == CTF_K_SLICE)
 {
@@ -913,8 +909,8 @@ btf_asm_type (ctf_container_ref ctfc, ctf_dtdef_ref dtd)
 static void
 btf_asm_array (ctf_container_ref ctfc, ctf_arinfo_t arr)
 {
-  btf_asm_type_ref ("bta_elem_type", ctfc, arr.ctr_contents);
-  btf_asm_type_ref ("bta_index_type", ctfc, arr.ctr_index);
+  btf_asm_type_ref ("bta_elem_type", ctfc, arr.ctr_contents->dtd_type);
+  btf_asm_type_ref ("bta_index_type", ctfc, arr.ctr_index->dtd_type);
   dw2_asm_output_data (4, arr.ctr_nelems, "bta_nelems");
 }
 
@@ -927,7 +923,7 @@ btf_asm_varent (ctf_container_ref ctfc, ctf_dvdef_ref var)
 

[PATCH v3 1/6] ctf, btf: restructure CTF/BTF emission

2024-05-30 Thread David Faust
This commit makes some structural changes to the CTF/BTF debug info
emission.  In particular:

 a) CTF is new always fully generated and emitted before any
BTF-related procedures are run.  This means that BTF-related
functions can change, even irreversibly, the shared in-memory
representation used by the two formats without issue.

 b) BTF generation has fewer entry points, and is cleanly divided
into early_finish and finish.

 c) BTF is now always emitted at finish (called from dwarf2out_finish),
for all targets in non-LTO builds, rather than being emitted at
early_finish for targets other than BPF CO-RE.  In LTO builds,
BTF is emitted at early_finish as before.

Note that this change alone does not alter the contents of BTF at
all, regardless of whether it would have previously been emitted at
early_finish or finish, because the calculation of the BTF to be
emitted is not moved by this patch, only the write-out.

The changes are transparent to both CTF and BTF emission.

gcc/
* btfout.cc (btf_init_postprocess): Rename to...
(btf_early_finish): ...this.
(btf_output): Rename to...
(btf_finish): ...this.
* ctfc.h: Analogous changes.
* dwarf2ctf.cc (ctf_debug_early_finish): Conditionally call
btf_early_finish, or ctf_finalize as appropriate.  Emit BTF
here for LTO builds.
(ctf_debug_finish): Always call btf_finish here if generating
BTF info in non-LTO builds.
(ctf_debug_finalize, ctf_debug_init_postprocess): Delete.
* dwarf2out.cc (dwarf2out_early_finish): Remove call to
ctf_debug_init_postprocess.
---
 gcc/btfout.cc| 28 +
 gcc/ctfc.h   |  4 +--
 gcc/dwarf2ctf.cc | 65 +++-
 gcc/dwarf2out.cc |  2 --
 4 files changed, 50 insertions(+), 49 deletions(-)

diff --git a/gcc/btfout.cc b/gcc/btfout.cc
index 07f066a47068..1b6a9ed811f0 100644
--- a/gcc/btfout.cc
+++ b/gcc/btfout.cc
@@ -1491,6 +1491,34 @@ btf_finalize (void)
   tu_ctfc = NULL;
 }
 
+/* Initial entry point of BTF generation, called at early_finish () after
+   CTF information has possibly been output.  Translate all CTF information
+   to BTF, and do any processing that must be done early, such as creating
+   BTF_KIND_FUNC records.  */
+
+void
+btf_early_finish (void)
+{
+  btf_init_postprocess ();
+}
+
+/* Late entry point for BTF generation, called from dwarf2out_finish ().
+   Complete and emit BTF information.  */
+
+void
+btf_finish (const char * filename)
+{
+  btf_output (filename);
+
+  /* If compiling for BPF with CO-RE info, we cannot deallocate until after
+ CO-RE information is created, which happens very late in BPF backend.
+ Therefore, the deallocation (i.e. btf_finalize ()) is delayed until
+ TARGET_ASM_FILE_END for BPF CO-RE.  */
+  if (!btf_with_core_debuginfo_p ())
+btf_finalize ();
+}
+
+
 /* Traversal function for all BTF_KIND_FUNC type records.  */
 
 bool
diff --git a/gcc/ctfc.h b/gcc/ctfc.h
index fa188bf2f5a4..e7bd93901cfa 100644
--- a/gcc/ctfc.h
+++ b/gcc/ctfc.h
@@ -384,8 +384,8 @@ extern void ctf_init (void);
 extern void ctf_output (const char * filename);
 extern void ctf_finalize (void);
 
-extern void btf_output (const char * filename);
-extern void btf_init_postprocess (void);
+extern void btf_early_finish (void);
+extern void btf_finish (const char * filename);
 extern void btf_finalize (void);
 
 extern ctf_container_ref ctf_get_tu_ctfc (void);
diff --git a/gcc/dwarf2ctf.cc b/gcc/dwarf2ctf.cc
index dc59569fe560..8f9e2fada9e3 100644
--- a/gcc/dwarf2ctf.cc
+++ b/gcc/dwarf2ctf.cc
@@ -933,30 +933,6 @@ gen_ctf_type (ctf_container_ref ctfc, dw_die_ref die)
   return type_id;
 }
 
-/* Prepare for output and write out the CTF debug information.  */
-
-static void
-ctf_debug_finalize (const char *filename, bool btf)
-{
-  if (btf)
-{
-  btf_output (filename);
-  /* btf_finalize when compiling BPF applciations gets deallocated by the
-BPF target in bpf_file_end.  */
-  if (btf_debuginfo_p () && !btf_with_core_debuginfo_p ())
-   btf_finalize ();
-}
-
-  else
-{
-  /* Emit the collected CTF information.  */
-  ctf_output (filename);
-
-  /* Reset the CTF state.  */
-  ctf_finalize ();
-}
-}
-
 bool
 ctf_do_die (dw_die_ref die)
 {
@@ -996,27 +972,27 @@ ctf_debug_init (void)
   add_name_attribute (ctf_unknown_die, "unknown");
 }
 
-/* Preprocess the CTF debug information after initialization.  */
-
-void
-ctf_debug_init_postprocess (bool btf)
-{
-  /* Only BTF requires postprocessing right after init.  */
-  if (btf)
-btf_init_postprocess ();
-}
-
 /* Early finish CTF/BTF debug info.  */
 
 void
 ctf_debug_early_finish (const char * filename)
 {
-  /* Emit CTF debug info early always.  */
-  if (ctf_debug_info_level > CTFINFO_LEVEL_NONE
-  /* Emit BTF debug info early if CO-RE relocations are not
-required.  */
-  || 

[PATCH v3 0/6] btf: refactor and add pruning option

2024-05-30 Thread David Faust
[v2: https://gcc.gnu.org/pipermail/gcc-patches/2024-May/650482.html
 Changes from v2:
 - Handle -flto when generating BTF (in patch 1).  For LTO builds, BTF
   is emitted at early_finish as before.  For non-LTO builds, BTF will
   be emitted at (late) finish for all targets.
 - Move the option parsing change to allow -gbtf and -gctf together to
   the end of the series.  This patch is relatively separate from the
   other changes, and only depends upon patch 1.
 - Include Indu's various comments and suggestions throughout the
   series.
 - Fix a few GNU style issues with indentation and long lines.
 - Fix the special handling for .maps section variables in BTF in
   patch 4.  Previously the type marking was too aggressive, and undid
   nearly all the pruning in some kernel selftests.  In one test this
   fix reduced the emitted BTF from over 6000 types to about 200 types,
   very similar to clang's output for the same test.  ]

This patch series signficantly refactors the BTF generation in gcc,
making it simpler and easier to understand, extend and maintain.

It also introduces an optional algorithm to "prune" BTF information
before emission.  This pruning is meant to be used for BPF programs, to
alleviate the massive bloating of BTF information caused by including
Linux kernel internal headers.  The pruning is designed to be compatible
with the unconditional pruning performed  by the LLVM BPF backend when
generating BTF information.

While the changes are fairly significant, there is no actual change in
emitted BTF information (unless pruning is enabled), other than bug
fixes and small additions to the assembler debug comments.

Patch 1 restructures the emission of CTF and BTF information, with the
result that CTF is always completely generated and emitted before any
BTF-related procedures are run.  BTF emission is moved to late finish
for all targets, except when building with -flto.

Patch 2 changes the data structures shared by CTF and BTF to use
pointers rather than type IDs for all inter-type references.  This
change is completely transparent to both CTF and BTF.

Patch 3 heavily refactors btfout.cc to take advantage of the prior
changes and significantly simplify the BTF implementation.  The changes
are nearly transparent, however some small but important improvements
are also made possible by the refactor, such as fixing PR113566 for
non-LTO builds.

Patch 4 adds a new option to perform pruning of the BTF information
before emission.  This is intended to be used for BPF programs which
often include kernel headers, and in many cases reduces the size of
the resulting BTF information by a factor of 10.

Patch 5 makes BTF pruning work with BPF CO-RE, and enables the pruning
by default in the BPF backend.

Patch 6 takes advantage of the prior changes, and removes the
restriction on generating both CTF and BTF in the same compiler run,
allowing for any combinaion of -gdwarf, -gctf and -gbtf.

Tested on x86_64-linux-gnu, and on x86_64-linux-gnu host for
bpf-unknown-none target.

Also tested by compiling and runninng Linux kernel BPF selftests.
No known regressions.

David Faust (6):
  ctf, btf: restructure CTF/BTF emission
  ctf: use pointers instead of IDs internally
  btf: refactor and simplify implementation
  btf: add -fprune-btf option
  bpf,btf: enable BTF pruning by default for BPF
  opts: allow any combination of DWARF, CTF, BTF

 gcc/btfout.cc | 1613 +
 gcc/common.opt|4 +
 gcc/config/bpf/bpf.cc |5 +
 gcc/config/bpf/btfext-out.cc  |   14 +-
 gcc/config/bpf/core-builtins.cc   |   74 +-
 gcc/ctfc.cc   |  141 +-
 gcc/ctfc.h|  113 +-
 gcc/ctfout.cc |   22 +-
 gcc/doc/invoke.texi   |   23 +
 gcc/dwarf2ctf.cc  |  311 ++--
 gcc/dwarf2ctf.h   |2 +-
 gcc/dwarf2out.cc  |4 +-
 gcc/opts.cc   |   20 +-
 gcc/testsuite/gcc.dg/debug/btf/btf-prune-1.c  |   25 +
 gcc/testsuite/gcc.dg/debug/btf/btf-prune-2.c  |   33 +
 gcc/testsuite/gcc.dg/debug/btf/btf-prune-3.c  |   35 +
 .../gcc.dg/debug/btf/btf-prune-maps.c |   20 +
 .../gcc.dg/debug/btf/btf-variables-5.c|6 +-
 include/btf.h |5 +
 19 files changed, 1420 insertions(+), 1050 deletions(-)
 create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-prune-1.c
 create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-prune-2.c
 create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-prune-3.c
 create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-prune-maps.c

-- 
2.43.0



[Bug libgomp/109452] omp_init_lock_with_hint() and omp_init_nest_lock_with_hint() are undefined

2024-05-30 Thread burnus at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109452

Tobias Burnus  changed:

   What|Removed |Added

   Keywords||openmp
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2024-05-30
 CC||burnus at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Tobias Burnus  ---
Confirmed for
* omp_init_lock_with_hint
* omp_init_nest_lock_with_hint

Both have a prototype since ages but no actual implementation.

Side note: libgomp.texi would need to be updated as well.

Re: [COMMITTED] ggc: Reduce GGC_QUIRE_SIZE on Solaris/SPARC [PR115031]

2024-05-30 Thread Eric Botcazou
> It turns out that this exhaustion of the 32-bit address space happens
> due to a combination of three issues:
> 
> * the SPARC pagesize of 8 kB,
> 
> * ggc-page.cc's chunk size of 512 * pagesize, i.e. 4 MB, and
> 
> * mmap adding two 8 kB unmapped red-zone pages to each mapping
> 
> which result in the 4 MB mappings to actually consume 4.5 MB of address
> space.
> 
> To avoid this, this patch reduces the chunk size so it remains at 4 MB
> even when combined with the red-zone pages, as recommended by mmap(2).

Nice investigation!  This size is a host parameter rather than a target one 
though, so config/sparc/sol2.h is probably not the most appropriate place to 
override it, but I personally do not mind.

-- 
Eric Botcazou




[Bug middle-end/115277] [13/14/15 regression] ICF needs to match loop bound estimates

2024-05-30 Thread hubicka at ucw dot cz via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115277

--- Comment #3 from Jan Hubicka  ---
> What about gcc 13?
GCC 13 also misoptimizes.
Honza

Re: [PATCH 4/4]AArch64: enable new predicate tuning for Neoverse cores.

2024-05-30 Thread Richard Sandiford
Tamar Christina  writes:
> Hi All,
>
> This enables the new tuning flag for Neoverse V1, Neoverse V2 and Neoverse N2.
> It is kept off for generic codegen.
>
> Note the reason for the +sve even though they are in aarch64-sve.exp is if the
> testsuite is ran with a forced SVE off option, e.g. -march=armv8-a+nosve then
> the intrinsics end up being disabled because the -march is preferred over the
> -mcpu even though the -mcpu comes later.
>
> This prevents the tests from failing in such runs.

IMO we should just skip aarch64-sve.exp if the options explicitly disable
SVE.  But that's separate work.  I'll try it once this patch is in.

> Bootstrapped Regtested on aarch64-none-linux-gnu and no issues.
>
> Ok for master?
>
> Thanks,
> Tamar
>
> gcc/ChangeLog:
>
>   * config/aarch64/tuning_models/neoversen2.h (neoversen2_tunings): Add
>   AARCH64_EXTRA_TUNE_AVOID_PRED_RMW.
>   * config/aarch64/tuning_models/neoversev1.h (neoversev1_tunings): Add
>   AARCH64_EXTRA_TUNE_AVOID_PRED_RMW.
>   * config/aarch64/tuning_models/neoversev2.h (neoversev2_tunings): Add
>   AARCH64_EXTRA_TUNE_AVOID_PRED_RMW.
>
> gcc/testsuite/ChangeLog:
>
>   * gcc.target/aarch64/sve/pred_clobber_1.c: New test.
>   * gcc.target/aarch64/sve/pred_clobber_2.c: New test.
>   * gcc.target/aarch64/sve/pred_clobber_3.c: New test.
>   * gcc.target/aarch64/sve/pred_clobber_4.c: New test.
>
> ---
> diff --git a/gcc/config/aarch64/tuning_models/neoversen2.h 
> b/gcc/config/aarch64/tuning_models/neoversen2.h
> index 
> 7e799bbe762fe862e31befed50e54040a7fd1f2f..be9a48ac3adc097f967c217fe09dcac194d7d14f
>  100644
> --- a/gcc/config/aarch64/tuning_models/neoversen2.h
> +++ b/gcc/config/aarch64/tuning_models/neoversen2.h
> @@ -236,7 +236,8 @@ static const struct tune_params neoversen2_tunings =
>(AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND
> | AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS
> | AARCH64_EXTRA_TUNE_USE_NEW_VECTOR_COSTS
> -   | AARCH64_EXTRA_TUNE_MATCHED_VECTOR_THROUGHPUT),  /* tune_flags.  */
> +   | AARCH64_EXTRA_TUNE_MATCHED_VECTOR_THROUGHPUT
> +   | AARCH64_EXTRA_TUNE_AVOID_PRED_RMW), /* tune_flags.  */
>_prefetch_tune,
>AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
>AARCH64_LDP_STP_POLICY_ALWAYS /* stp_policy_model.  */
> diff --git a/gcc/config/aarch64/tuning_models/neoversev1.h 
> b/gcc/config/aarch64/tuning_models/neoversev1.h
> index 
> 9363f2ad98a5279cc99f2f9b1509ba921d582e84..0fc41ce6a41b3135fa06d2bda1f517fdf4f8dbcf
>  100644
> --- a/gcc/config/aarch64/tuning_models/neoversev1.h
> +++ b/gcc/config/aarch64/tuning_models/neoversev1.h
> @@ -227,7 +227,8 @@ static const struct tune_params neoversev1_tunings =
>(AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS
> | AARCH64_EXTRA_TUNE_USE_NEW_VECTOR_COSTS
> | AARCH64_EXTRA_TUNE_MATCHED_VECTOR_THROUGHPUT
> -   | AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND), /* tune_flags.  */
> +   | AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND
> +   | AARCH64_EXTRA_TUNE_AVOID_PRED_RMW), /* tune_flags.  */
>_prefetch_tune,
>AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
>AARCH64_LDP_STP_POLICY_ALWAYS/* stp_policy_model.  */
> diff --git a/gcc/config/aarch64/tuning_models/neoversev2.h 
> b/gcc/config/aarch64/tuning_models/neoversev2.h
> index 
> bc01ed767c9b690504eb98456402df5d9d64eee3..f76e4ef358f7dfb9c7d7b470ea7240eaa2120f8e
>  100644
> --- a/gcc/config/aarch64/tuning_models/neoversev2.h
> +++ b/gcc/config/aarch64/tuning_models/neoversev2.h
> @@ -236,7 +236,8 @@ static const struct tune_params neoversev2_tunings =
>(AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND
> | AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS
> | AARCH64_EXTRA_TUNE_USE_NEW_VECTOR_COSTS
> -   | AARCH64_EXTRA_TUNE_MATCHED_VECTOR_THROUGHPUT),  /* tune_flags.  */
> +   | AARCH64_EXTRA_TUNE_MATCHED_VECTOR_THROUGHPUT
> +   | AARCH64_EXTRA_TUNE_AVOID_PRED_RMW), /* tune_flags.  */
>_prefetch_tune,
>AARCH64_LDP_STP_POLICY_ALWAYS,   /* ldp_policy_model.  */
>AARCH64_LDP_STP_POLICY_ALWAYS /* stp_policy_model.  */
> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pred_clobber_1.c 
> b/gcc/testsuite/gcc.target/aarch64/sve/pred_clobber_1.c
> new file mode 100644
> index 
> ..934a00a38531c5fd4139d99ff33414904b2c104f
> --- /dev/null
> +++ b/gcc/testsuite/gcc.target/aarch64/sve/pred_clobber_1.c
> @@ -0,0 +1,22 @@
> +/* { dg-do compile } */
> +/* { dg-options "-O2 -mcpu=neoverse-n2" } */
> +/* { dg-final { check-function-bodies "**" "" } } */
> +
> +#pragma GCC target "+sve"
> +
> +#include 
> +
> +extern void use(svbool_t);
> +
> +/*
> +** foo:
> +**   ...
> +**   ptrue   p([1-9][0-9]?).b, all

Might be better to make this p([1-3]), so that we disallow any registers
that would cause a spill.

OK with that change, thanks.

Richard

> +**   cmplo   p0.h, p\1/z, z0.h, z[0-9]+.h
> +**   ...
> +*/
> +void foo (svuint16_t a, uint16_t b)
> +{
> +svbool_t p0 = svcmplt_n_u16 (svptrue_b16 (), a, b);
> +

Re: [PATCH 3/4]AArch64: add new alternative with early clobber to patterns

2024-05-30 Thread Richard Sandiford
Tamar Christina  writes:
> [...]
> @@ -6651,8 +6661,10 @@ (define_insn "and3"
>   (and:PRED_ALL (match_operand:PRED_ALL 1 "register_operand")
> (match_operand:PRED_ALL 2 "register_operand")))]
>"TARGET_SVE"
> -  {@ [ cons: =0, 1  , 2   ]
> - [ Upa , Upa, Upa ] and\t%0.b, %1/z, %2.b, %2.b
> +  {@ [ cons: =0, 1  , 2  ; attrs: pred_clobber ]
> + [ , Upa, Upa; yes ] and\t%0.b, %1/z, %2.b, %2.b
> + [ ?Upa, 0  , Upa; yes ] ^
> + [ Upa , Upa, Upa; no  ] ^

I think this ought to be:

> +  {@ [ cons: =0, 1  ,  2   ; attrs: pred_clobber ]
> + [ , Upa,  Upa ; yes ] and\t%0.b, %1/z, %2.b, 
> %2.b
> + [ ?Upa, 0Upa, 0Upa; yes ] ^
> + [ Upa , Upa,  Upa ; no  ] ^

so that operand 2 can be tied to operand 0 in the worst case.  Similarly:

>}
>  )
>  
> @@ -6679,8 +6691,10 @@ (define_insn "@aarch64_pred__z"
>   (match_operand:PRED_ALL 3 "register_operand"))
> (match_operand:PRED_ALL 1 "register_operand")))]
>"TARGET_SVE"
> -  {@ [ cons: =0, 1  , 2  , 3   ]
> - [ Upa , Upa, Upa, Upa ] \t%0.b, %1/z, %2.b, %3.b
> +  {@ [ cons: =0, 1  , 2  , 3  ; attrs: pred_clobber ]
> + [ , Upa, Upa, Upa; yes ] \t%0.b, %1/z, 
> %2.b, %3.b
> + [ ?Upa, 0  , Upa, Upa; yes ] ^
> + [ Upa , Upa, Upa, Upa; no  ] ^
>}
>  )

this would be:

  {@ [ cons: =0, 1   , 2   , 3   ; attrs: pred_clobber ]
 [ , Upa , Upa , Upa ; yes ] \t%0.b, %1/z, 
%2.b, %3.b
 [ ?Upa, 0Upa, 0Upa, 0Upa; yes ] ^
 [ Upa , Upa , Upa,  Upa ; no  ] ^
  }

Same idea for the rest.

I tried this on:

--
#include 

void use (svbool_t, svbool_t, svbool_t);

void
f1 (svbool_t p0, svbool_t p1, svbool_t p2, int n, svbool_t *ptr)
{
  while (n--)
p2 = svand_z (p0, p1, p2);
  *ptr = p2;
}

void
f2 (svbool_t p0, svbool_t p1, svbool_t p2, svbool_t *ptr)
{
  *ptr = svand_z (p0, p1, p2);
}

void
f3 (svbool_t p0, svbool_t p1, svbool_t p2, svbool_t *ptr)
{
  use (svand_z (p0, p1, p2), p1, p2);
}

void
f4 (svbool_t p0, svbool_t p1, svbool_t p2, svbool_t *ptr)
{
  use (p0, svand_z (p0, p1, p2), p2);
}

void
f5 (svbool_t p0, svbool_t p1, svbool_t p2, svbool_t *ptr)
{
  use (p0, p1, svand_z (p0, p1, p2));
}
--

and it seemed to produce the right output:

--
f1:
cbz w0, .L2
sub w0, w0, #1
.p2align 5,,15
.L3:
and p2.b, p0/z, p1.b, p2.b
sub w0, w0, #1
cmn w0, #1
bne .L3
.L2:
str p2, [x1]
ret

f2:
and p3.b, p0/z, p1.b, p2.b
str p3, [x0]
ret

f3:
and p0.b, p0/z, p1.b, p2.b
b   use

f4:
and p1.b, p0/z, p1.b, p2.b
b   use

f5:
and p2.b, p0/z, p1.b, p2.b
b   use
--

(with that coming directly from RA, rather than being cleaned
up later)

> [...]
> @@ -10046,8 +10104,10 @@ (define_insn_and_rewrite "*aarch64_brkn_cc"
>  (match_dup 3)]
> UNSPEC_BRKN))]
>"TARGET_SVE"
> -  {@ [ cons: =0, 1  , 2  , 3 ]
> - [ Upa , Upa, Upa, 0 ] brkns\t%0.b, %1/z, %2.b, %0.b
> +  {@ [ cons: =0, 1  , 2  , 3; attrs: pred_clobber ]
> + [ , Upa, Upa, 0; yes ] brkns\t%0.b, %1/z, %2.b, 
> %0.b
> + [ ?Upa, 0  , Upa, 0; yes ] ^
> + [ Upa , Upa, Upa, 0; no  ] ^
>}
>"&& (operands[4] != CONST0_RTX (VNx16BImode)
> || operands[5] != CONST0_RTX (VNx16BImode))"

Probably best to leave this out.  All alternatives require operand 3
to match operand 0.  So operands 1 and 2 will only match operand 0
if they're the same as operand 3.  In that case it'd be better to
allow the sharing rather than force the same value to be stored
in two registers.

That is, if op1 != op3 && op2 != op3 then we get what we want
naturally, regardless of tuning.

The same thing would apply to the BRKN instances of :

> @@ -10020,8 +10076,10 @@ (define_insn "@aarch64_brk"
>  (match_operand:VNx16BI 3 "register_operand")]
> SVE_BRK_BINARY))]
>"TARGET_SVE"
> -  {@ [ cons: =0, 1  , 2  , 3 ]
> - [ Upa , Upa, Upa,  ] brk\t%0.b, %1/z, %2.b, 
> %.b
> +  {@ [ cons: =0,  1 , 2  , 3; attrs: pred_clobber ]
> + [ , Upa, Upa, ; yes ] 
> brk\t%0.b, %1/z, %2.b, %.b
> + [ ?Upa, 0  , Upa, ; yes ] ^
> + [ Upa , Upa, Upa, ; no  ] ^
>}
>  )

but I think we should keep this factoring/abstraction and just add
the extra alternatives 

Re: [PATCH v10 2/5] Convert references with "counted_by" attributes to/from .ACCESS_WITH_SIZE.

2024-05-30 Thread Qing Zhao



> On May 30, 2024, at 15:43, Joseph Myers  wrote:
> 
> On Thu, 30 May 2024, Qing Zhao wrote:
> 
>>  In order to make this working, the routine digest_init in c-typeck.cc
>>  is updated to fold calls to .ACCESS_WITH_SIZE to its first argument
>>  when require_constant is TRUE.
> 
> The new changes here are OK.
Thanks.

Qing
> 
> -- 
> Joseph S. Myers
> josmy...@redhat.com
> 



[ia64] Results for 15.0.0 20240528 (experimental) [master revision 236116068151bbc72aaaf53d0f223fe06f7e3bac] (GCC) testsuite on ia64-t2-linux-gnu

2024-05-30 Thread Frank Scheiner via Gcc-testresults

in
/dev/shm/gcc-15/src.gcc.ia64-toolchain-3.240529.112623.549077/gcc/gcc.build.lnx/gcc



date; time make -j4 check-gcc 2>&1; echo $?; date
Thu May 30 09:43:20 UTC 2024

=== gcc tests ===

Running target unix
FAIL: gcc.c-torture/compile/attr-retain-1.c   -O0   scan-assembler
.rodata.*,"aR"
FAIL: gcc.c-torture/compile/attr-retain-1.c   -O1   scan-assembler
.bss.*,"awR"
FAIL: gcc.c-torture/compile/attr-retain-1.c   -O1   scan-assembler
.rodata.*,"aR"
FAIL: gcc.c-torture/compile/attr-retain-1.c   -O2   scan-assembler
.bss.*,"awR"
FAIL: gcc.c-torture/compile/attr-retain-1.c   -O2   scan-assembler
.rodata.*,"aR"
FAIL: gcc.c-torture/compile/attr-retain-1.c   -O3 -g   scan-assembler
.bss.*,"awR"
FAIL: gcc.c-torture/compile/attr-retain-1.c   -O3 -g   scan-assembler
.rodata.*,"aR"
FAIL: gcc.c-torture/compile/attr-retain-1.c   -Os   scan-assembler
.bss.*,"awR"
FAIL: gcc.c-torture/compile/attr-retain-1.c   -Os   scan-assembler
.rodata.*,"aR"
FAIL: gcc.c-torture/compile/attr-retain-2.c   -O0   scan-assembler
.bss.used_bss,"awR"
FAIL: gcc.c-torture/compile/attr-retain-2.c   -O0   scan-assembler
.bss.used_bss2,"awR"
FAIL: gcc.c-torture/compile/attr-retain-2.c   -O0   scan-assembler
.data.used_data,"awR"
FAIL: gcc.c-torture/compile/attr-retain-2.c   -O0   scan-assembler
.data.used_data2,"awR"
FAIL: gcc.c-torture/compile/attr-retain-2.c   -O0   scan-assembler
.rodata.used_rodata,"aR"
FAIL: gcc.c-torture/compile/attr-retain-2.c   -O0   scan-assembler
.rodata.used_rodata2,"aR"
FAIL: gcc.c-torture/compile/attr-retain-2.c   -O1   scan-assembler
.bss.used_bss,"awR"
FAIL: gcc.c-torture/compile/attr-retain-2.c   -O1   scan-assembler
.bss.used_bss2,"awR"
FAIL: gcc.c-torture/compile/attr-retain-2.c   -O1   scan-assembler
.data.used_data,"awR"
FAIL: gcc.c-torture/compile/attr-retain-2.c   -O1   scan-assembler
.data.used_data2,"awR"
FAIL: gcc.c-torture/compile/attr-retain-2.c   -O1   scan-assembler
.rodata.used_rodata,"aR"
FAIL: gcc.c-torture/compile/attr-retain-2.c   -O1   scan-assembler
.rodata.used_rodata2,"aR"
FAIL: gcc.c-torture/compile/attr-retain-2.c   -O2   scan-assembler
.bss.used_bss,"awR"
FAIL: gcc.c-torture/compile/attr-retain-2.c   -O2   scan-assembler
.bss.used_bss2,"awR"
FAIL: gcc.c-torture/compile/attr-retain-2.c   -O2   scan-assembler
.data.used_data,"awR"
FAIL: gcc.c-torture/compile/attr-retain-2.c   -O2   scan-assembler
.data.used_data2,"awR"
FAIL: gcc.c-torture/compile/attr-retain-2.c   -O2   scan-assembler
.rodata.used_rodata,"aR"
FAIL: gcc.c-torture/compile/attr-retain-2.c   -O2   scan-assembler
.rodata.used_rodata2,"aR"
FAIL: gcc.c-torture/compile/attr-retain-2.c   -O3 -g   scan-assembler
.bss.used_bss,"awR"
FAIL: gcc.c-torture/compile/attr-retain-2.c   -O3 -g   scan-assembler
.bss.used_bss2,"awR"
FAIL: gcc.c-torture/compile/attr-retain-2.c   -O3 -g   scan-assembler
.data.used_data,"awR"
FAIL: gcc.c-torture/compile/attr-retain-2.c   -O3 -g   scan-assembler
.data.used_data2,"awR"
FAIL: gcc.c-torture/compile/attr-retain-2.c   -O3 -g   scan-assembler
.rodata.used_rodata,"aR"
FAIL: gcc.c-torture/compile/attr-retain-2.c   -O3 -g   scan-assembler
.rodata.used_rodata2,"aR"
FAIL: gcc.c-torture/compile/attr-retain-2.c   -Os   scan-assembler
.bss.used_bss,"awR"
FAIL: gcc.c-torture/compile/attr-retain-2.c   -Os   scan-assembler
.bss.used_bss2,"awR"
FAIL: gcc.c-torture/compile/attr-retain-2.c   -Os   scan-assembler
.data.used_data,"awR"
FAIL: gcc.c-torture/compile/attr-retain-2.c   -Os   scan-assembler
.data.used_data2,"awR"
FAIL: gcc.c-torture/compile/attr-retain-2.c   -Os   scan-assembler
.rodata.used_rodata,"aR"
FAIL: gcc.c-torture/compile/attr-retain-2.c   -Os   scan-assembler
.rodata.used_rodata2,"aR"
FAIL: gcc.c-torture/compile/pr29201.c   -O0  (test for excess errors)
FAIL: gcc.c-torture/compile/pr29201.c   -O1  (test for excess errors)
FAIL: gcc.c-torture/compile/pr29201.c   -O2  (test for excess errors)
FAIL: gcc.c-torture/compile/pr29201.c   -O3 -fomit-frame-pointer
-funroll-loops -fpeel-loops -ftracer -finline-functions  (test for
excess errors)
FAIL: gcc.c-torture/compile/pr29201.c   -O3 -g  (test for excess errors)
FAIL: gcc.c-torture/compile/pr29201.c   -Os  (test for excess errors)
WARNING: program timed out
FAIL: gcc.c-torture/compile/limits-blockid.c   -O3 -g  (test for excess
errors)
FAIL: gcc.c-torture/execute/pr64242.c   -O0  execution test
FAIL: gcc.c-torture/execute/pr64242.c   -O1  execution test
FAIL: gcc.c-torture/execute/pr64242.c   -O2  execution test
FAIL: gcc.c-torture/execute/pr64242.c   -O3 -g  execution test
FAIL: gcc.c-torture/execute/pr64242.c   -Os  execution test
FAIL: gcc.c-torture/execute/pr84521.c   -O0  execution test
FAIL: gcc.c-torture/execute/pr84521.c   -O1  execution test
FAIL: gcc.c-torture/execute/pr84521.c   -O2  execution test
FAIL: gcc.c-torture/execute/pr84521.c   -O3 -g  execution test
FAIL: gcc.c-torture/execute/pr84521.c   -Os  execution test
FAIL: gcc.dg/atomic/c11-atomic-exec-5.c   -O0  execution test
FAIL: gcc.dg/atomic/c11-atomic-exec-5.c   

[Patch, rs6000, aarch64, middle-end] Add implementation for different targets for pair mem fusion

2024-05-30 Thread Ajit Agarwal
Hello All:

Common infrastructure using generic code for pair mem fusion of different
targets.

rs6000 target specific specific code implements virtual functions defined
by generic code.

Code is implemented with pure virtual functions to interface with target
code.

Target specific code are added in rs6000-mem-fusion.cc and additional virtual
function implementation required for rs6000 are added in aarch64-ldp-fusion.cc.

Bootstrapped and regtested for aarch64-linux-gnu and powerpc64-linux-gnu.

Thanks & Regards
Ajit


aarch64, rs6000, middle-end: Add implementation for different targets for pair 
mem fusion

Common infrastructure using generic code for pair mem fusion of different
targets.

rs6000 target specific specific code implements virtual functions defined
by generic code.

Code is implemented with pure virtual functions to interface with target
code.

Target specific code are added in rs6000-mem-fusion.cc and additional virtual
function implementation required for rs6000 are added in aarch64-ldp-fusion.cc.

2024-05-31  Ajit Kumar Agarwal  

gcc/ChangeLog:

* config/aarch64/aarch64-ldp-fusion.cc: Add target specific
implementation of additional virtual functions added in pair_fusion
struct.
* config/rs6000/rs6000-passes.def: New mem fusion pass
before pass_early_remat.
* config/rs6000/rs6000-mem-fusion.cc: Add new pass.
Add target specific implementation using pure virtual
functions.
* config.gcc: Add new object file.
* config/rs6000/rs6000-protos.h: Add new prototype for mem
fusion pass.
* config/rs6000/t-rs6000: Add new rule.
* rtl-ssa/accesses.h: Moved set_is_live_out_use as public
from private.

gcc/testsuite/ChangeLog:

* g++.target/powerpc/me-fusion.C: New test.
* g++.target/powerpc/mem-fusion-1.C: New test.
* gcc.target/powerpc/mma-builtin-1.c: Modify test.
---
 gcc/config.gcc|   2 +
 gcc/config/aarch64/aarch64-ldp-fusion.cc  |  23 +
 gcc/config/rs6000/rs6000-mem-fusion.cc| 629 ++
 gcc/config/rs6000/rs6000-passes.def   |   4 +-
 gcc/config/rs6000/rs6000-protos.h |   1 +
 gcc/config/rs6000/t-rs6000|   5 +
 gcc/pair-fusion.cc|  18 +-
 gcc/pair-fusion.h |  20 +
 gcc/rtl-ssa/accesses.h|   2 +-
 .../g++.target/powerpc/mem-fusion-1.C |  22 +
 gcc/testsuite/g++.target/powerpc/mem-fusion.C |  15 +
 .../gcc.target/powerpc/mma-builtin-1.c|   4 +-
 12 files changed, 740 insertions(+), 5 deletions(-)
 create mode 100644 gcc/config/rs6000/rs6000-mem-fusion.cc
 create mode 100644 gcc/testsuite/g++.target/powerpc/mem-fusion-1.C
 create mode 100644 gcc/testsuite/g++.target/powerpc/mem-fusion.C

diff --git a/gcc/config.gcc b/gcc/config.gcc
index a37113bd00a..1beabc35d52 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -524,6 +524,7 @@ powerpc*-*-*)
extra_objs="rs6000-string.o rs6000-p8swap.o rs6000-logue.o"
extra_objs="${extra_objs} rs6000-call.o rs6000-pcrel-opt.o"
extra_objs="${extra_objs} rs6000-builtins.o rs6000-builtin.o"
+   extra_objs="${extra_objs} rs6000-mem-fusion.o"
extra_headers="ppc-asm.h altivec.h htmintrin.h htmxlintrin.h"
extra_headers="${extra_headers} bmi2intrin.h bmiintrin.h"
extra_headers="${extra_headers} xmmintrin.h mm_malloc.h emmintrin.h"
@@ -560,6 +561,7 @@ rs6000*-*-*)
extra_options="${extra_options} g.opt fused-madd.opt 
rs6000/rs6000-tables.opt"
extra_objs="rs6000-string.o rs6000-p8swap.o rs6000-logue.o"
extra_objs="${extra_objs} rs6000-call.o rs6000-pcrel-opt.o"
+   extra_objs="${extra_objs} rs6000-mem-fusion.o"
target_gtfiles="$target_gtfiles 
\$(srcdir)/config/rs6000/rs6000-logue.cc 
\$(srcdir)/config/rs6000/rs6000-call.cc"
target_gtfiles="$target_gtfiles 
\$(srcdir)/config/rs6000/rs6000-pcrel-opt.cc"
;;
diff --git a/gcc/config/aarch64/aarch64-ldp-fusion.cc 
b/gcc/config/aarch64/aarch64-ldp-fusion.cc
index 0af927231d3..784cdc3937c 100644
--- a/gcc/config/aarch64/aarch64-ldp-fusion.cc
+++ b/gcc/config/aarch64/aarch64-ldp-fusion.cc
@@ -104,6 +104,29 @@ struct aarch64_pair_fusion : public pair_fusion
  bool load_p) override final;
 
   rtx destructure_pair (rtx regs[2], rtx pattern, bool load_p) override final;
+
+  bool should_handle_unordered_insns (rtl_ssa::insn_info *,
+ rtl_ssa::insn_info *) override final
+  {
+return true;
+  }
+
+  bool fuseable_store_p (rtl_ssa::insn_info *,
+rtl_ssa::insn_info *) override final
+  {
+return true;
+  }
+
+  bool fuseable_load_p (rtl_ssa::insn_info *) override final
+  {
+return true;
+  }
+
+  void set_multiword_subreg (rtl_ssa::insn_info *, rtl_ssa::insn_info *,
+bool) 

Re: [PATCH v10 2/5] Convert references with "counted_by" attributes to/from .ACCESS_WITH_SIZE.

2024-05-30 Thread Joseph Myers
On Thu, 30 May 2024, Qing Zhao wrote:

>   In order to make this working, the routine digest_init in c-typeck.cc
>   is updated to fold calls to .ACCESS_WITH_SIZE to its first argument
>   when require_constant is TRUE.

The new changes here are OK.

-- 
Joseph S. Myers
josmy...@redhat.com



Results for 12.3.1 20240525 [releases/gcc-12 revision r12-10471-ge11d3dd4708e] (GCC) testsuite on x86_64-apple-darwin21

2024-05-30 Thread Iain Sandoe via Gcc-testresults
LAST_UPDATED: Sat 25 May 2024 00:19:36 UTC (revision r12-10471-ge11d3dd4708e)

=== acats tests ===
FAIL:   c250002

=== acats Summary ===
# of expected passes2327
# of unexpected failures1
Native configuration is x86_64-apple-darwin21

=== g++ tests ===


Running target unix
FAIL: g++.dg/init/array61.C  -std=c++14  scan-tree-dump-times gimple 
"item::item" 1
FAIL: g++.dg/init/array61.C  -std=c++17  scan-tree-dump-times gimple 
"item::item" 1
FAIL: g++.dg/init/array61.C  -std=c++20  scan-tree-dump-times gimple 
"item::item" 1
FAIL: g++.dg/ipa/pr67056.C   scan-ipa-dump cp "Speculative outer type:struct 
CompositeClass"
FAIL: g++.dg/lto/pr65276 cp_lto_pr65276_0.o-cp_lto_pr65276_1.o link, -flto -O0 
-std=c++11
FAIL: g++.dg/lto/pr85405 cp_lto_pr85405_0.o-cp_lto_pr85405_1.o link, -fPIC 
-shared -flto
FAIL: g++.dg/lto/pr85405b cp_lto_pr85405b_0.o-cp_lto_pr85405b_1.o link, -fPIC 
-shared -flto
FAIL: g++.dg/lto/pr85655 cp_lto_pr85655_0.o-cp_lto_pr85655_0.o link, -O2 -fPIC 
-shared -flto
FAIL: g++.dg/lto/pr86523-3 cp_lto_pr86523-3_0.o-cp_lto_pr86523-3_0.o link,  
-fPIC -flto -g -shared 
FAIL: g++.dg/lto/pr86585 cp_lto_pr86585_0.o-cp_lto_pr86585_1.o link,  -flto -g 
-nostdlib -shared -fPIC 
FAIL: g++.dg/lto/pr87295 cp_lto_pr87295_0.o assemble,  -flto -ffat-lto-objects 
-fdebug-types-section -g -std=gnu++17 
FAIL: g++.dg/lto/pr87906 cp_lto_pr87906_0.o-cp_lto_pr87906_1.o link,  -O -fPIC 
-flto 
FAIL: g++.dg/lto/pr88046 cp_lto_pr88046_0.o-cp_lto_pr88046_0.o link,  -O2 -fPIC 
-flto 
FAIL: g++.dg/lto/pr88758 cp_lto_pr88758_0.o-cp_lto_pr88758_1.o link,  -O3 -fPIC 
-flto -shared 
FAIL: g++.dg/lto/pr89330 cp_lto_pr89330_0.o-cp_lto_pr89330_1.o link,  -O3 -g 
-flto -shared -fPIC -Wno-odr 
FAIL: g++.dg/lto/pr91574 cp_lto_pr91574_0.o-cp_lto_pr91574_0.o link,  -fPIC 
-flto -O2 
FAIL: g++.dg/lto/pr92609  (test for LTO warnings, pr92609_0.C line 75)
FAIL: g++.dg/lto/pr92609 cp_lto_pr92609_0.o-cp_lto_pr92609_1.o link,  -fPIC 
-flto 
FAIL: g++.dg/lto/pr93166 cp_lto_pr93166_0.o-cp_lto_pr93166_0.o link,  -fPIC -O2 
-flto -fvisibility=hidden 
FAIL: g++.dg/tls/thread_local13.C  -std=gnu++14 execution test
FAIL: g++.dg/tls/thread_local13.C  -std=gnu++17 execution test
FAIL: g++.dg/tls/thread_local13.C  -std=gnu++20 execution test
FAIL: g++.dg/tls/thread_local14.C  -std=gnu++14 execution test
FAIL: g++.dg/tls/thread_local14.C  -std=gnu++17 execution test
FAIL: g++.dg/tls/thread_local14.C  -std=gnu++20 execution test
FAIL: g++.target/i386/pr105980.C  -std=gnu++98 (internal compiler error: in 
insn_default_length, at config/i386/i386.md:20024)
FAIL: g++.target/i386/pr105980.C  -std=gnu++98 (test for excess errors)
FAIL: g++.target/i386/pr105980.C  -std=gnu++14 (internal compiler error: in 
insn_default_length, at config/i386/i386.md:20024)
FAIL: g++.target/i386/pr105980.C  -std=gnu++14 (test for excess errors)
FAIL: g++.target/i386/pr105980.C  -std=gnu++17 (internal compiler error: in 
insn_default_length, at config/i386/i386.md:20024)
FAIL: g++.target/i386/pr105980.C  -std=gnu++17 (test for excess errors)
FAIL: g++.target/i386/pr105980.C  -std=gnu++20 (internal compiler error: in 
insn_default_length, at config/i386/i386.md:20024)
FAIL: g++.target/i386/pr105980.C  -std=gnu++20 (test for excess errors)

=== g++ Summary ===

# of expected passes225001
# of unexpected failures33
# of expected failures  2085
# of unsupported tests  10740
/scratch/12-mon-rosetta/gcc-12/gcc/xg++  version 12.3.1 20240525 
[releases/gcc-12 revision r12-10471-ge11d3dd4708e] (GCC) 

=== gcc tests ===


Running target unix
FAIL: gcc.dg/pr97172-2.c (test for excess errors)
FAIL: gcc.dg/strlenopt-73.c scan-tree-dump-times optimized "strlen" 0
FAIL: gcc.dg/strlenopt-73.c scan-tree-dump-times optimized "_not_eliminated_" 0
FAIL: gcc.dg/strlenopt-80.c scan-tree-dump-times optimized "failure_on_line 
(" 0
FAIL: gcc.dg/strlenopt-82.c scan-tree-dump-times optimized 
"call_in_true_branch_not_eliminated_" 0
FAIL: gcc.dg/graphite/scop-19.c scan-tree-dump-times graphite "number of SCoPs: 
0" 1
FAIL: gcc-dg-lto-modref-3-01.exe scan-wpa-ipa-dump modref "parm 1 flags: 
no_direct_clobber no_direct_escape"
FAIL: gcc-dg-lto-modref-4-01.exe scan-wpa-ipa-dump modref "parm 1 flags: 
no_direct_clobber no_direct_escape"
FAIL: gcc.dg/lto/modref-3 c_lto_modref-3_0.o-c_lto_modref-3_1.o execute -O2 
-flto-partition=max -fdump-ipa-modref -fno-ipa-sra -fno-ipa-cp -flto
FAIL: gcc.dg/lto/modref-4 c_lto_modref-4_0.o-c_lto_modref-4_1.o execute -O2 
-flto-partition=max -fdump-ipa-modref -fno-ipa-sra -flto
FAIL: gcc.dg/lto/pr61526 c_lto_pr61526_0.o-c_lto_pr61526_1.o link,  -fPIC -flto 
-flto-partition=1to1 
FAIL: gcc.dg/lto/pr99849 c_lto_pr99849_0.o-c_lto_pr99849_0.o link,  -flto 
-flto-partition=1to1 -O2 -Wno-incompatible-pointer-types 
-Wno-discarded-qualifiers -fPIC 
XPASS: gcc.dg/tree-ssa/pr91091-2.c scan-tree-dump-times fre1 "x = " 1
XPASS: 

Results for 13.3.1 20240529 [releases/gcc-13 revision r13-8807-gebca6006f444] (GCC) testsuite on x86_64-apple-darwin20

2024-05-30 Thread Iain Sandoe via Gcc-testresults
LAST_UPDATED: Wed 29 May 2024 00:21:40 UTC (revision r13-8807-gebca6006f444)

=== acats tests ===

=== acats Summary ===
# of expected passes2328
# of unexpected failures0
Native configuration is x86_64-apple-darwin20

=== g++ tests ===


Running target unix
FAIL: g++.dg/debug/dwarf2/utf-1.C  -std=gnu++20  scan-assembler-times 
DW_AT_encoding (0x10) 3
FAIL: g++.dg/ipa/pr67056.C   scan-ipa-dump cp "Speculative outer type:struct 
CompositeClass"
FAIL: g++.dg/lto/pr108772 cp_lto_pr108772_0.o-cp_lto_pr108772_0.o link, -flto 
-fPIC -shared -O1 -fimplicit-constexpr -g1
FAIL: g++.dg/lto/pr65276 cp_lto_pr65276_0.o-cp_lto_pr65276_1.o link, -flto -O0 
-std=c++11
FAIL: g++.dg/lto/pr85405 cp_lto_pr85405_0.o-cp_lto_pr85405_1.o link, -fPIC 
-shared -flto
FAIL: g++.dg/lto/pr85405b cp_lto_pr85405b_0.o-cp_lto_pr85405b_1.o link, -fPIC 
-shared -flto
FAIL: g++.dg/lto/pr85655 cp_lto_pr85655_0.o-cp_lto_pr85655_0.o link, -O2 -fPIC 
-shared -flto
FAIL: g++.dg/lto/pr86523-3 cp_lto_pr86523-3_0.o-cp_lto_pr86523-3_0.o link,  
-fPIC -flto -g -shared 
FAIL: g++.dg/lto/pr86585 cp_lto_pr86585_0.o-cp_lto_pr86585_1.o link,  -flto -g 
-nostdlib -shared -fPIC 
FAIL: g++.dg/lto/pr87295 cp_lto_pr87295_0.o assemble,  -flto -ffat-lto-objects 
-fdebug-types-section -g -std=gnu++17 
FAIL: g++.dg/lto/pr87906 cp_lto_pr87906_0.o-cp_lto_pr87906_1.o link,  -O -fPIC 
-flto 
FAIL: g++.dg/lto/pr88046 cp_lto_pr88046_0.o-cp_lto_pr88046_0.o link,  -O2 -fPIC 
-flto 
FAIL: g++.dg/lto/pr88758 cp_lto_pr88758_0.o-cp_lto_pr88758_1.o link,  -O3 -fPIC 
-flto -shared 
FAIL: g++.dg/lto/pr89330 cp_lto_pr89330_0.o-cp_lto_pr89330_1.o link,  -O3 -g 
-flto -shared -fPIC -Wno-odr 
FAIL: g++.dg/lto/pr91574 cp_lto_pr91574_0.o-cp_lto_pr91574_0.o link,  -fPIC 
-flto -O2 
FAIL: g++.dg/lto/pr92609  (test for LTO warnings, pr92609_0.C line 75)
FAIL: g++.dg/lto/pr92609 cp_lto_pr92609_0.o-cp_lto_pr92609_1.o link,  -fPIC 
-flto 
FAIL: g++.dg/lto/pr93166 cp_lto_pr93166_0.o-cp_lto_pr93166_0.o link,  -fPIC -O2 
-flto -fvisibility=hidden 
FAIL: g++.dg/tls/thread_local13.C  -std=gnu++14 execution test
FAIL: g++.dg/tls/thread_local13.C  -std=gnu++17 execution test
FAIL: g++.dg/tls/thread_local13.C  -std=gnu++20 execution test
FAIL: g++.dg/tls/thread_local14.C  -std=gnu++14 execution test
FAIL: g++.dg/tls/thread_local14.C  -std=gnu++17 execution test
FAIL: g++.dg/tls/thread_local14.C  -std=gnu++20 execution test
FAIL: g++.target/i386/pr105980.C  -std=gnu++14 (internal compiler error: in 
insn_default_length, at config/i386/i386.md:21240)
FAIL: g++.target/i386/pr105980.C  -std=gnu++14 (test for excess errors)
FAIL: g++.target/i386/pr105980.C  -std=gnu++17 (internal compiler error: in 
insn_default_length, at config/i386/i386.md:21240)
FAIL: g++.target/i386/pr105980.C  -std=gnu++17 (test for excess errors)
FAIL: g++.target/i386/pr105980.C  -std=gnu++20 (internal compiler error: in 
insn_default_length, at config/i386/i386.md:21240)
FAIL: g++.target/i386/pr105980.C  -std=gnu++20 (test for excess errors)
FAIL: g++.target/i386/pr105980.C  -std=gnu++98 (internal compiler error: in 
insn_default_length, at config/i386/i386.md:21240)
FAIL: g++.target/i386/pr105980.C  -std=gnu++98 (test for excess errors)

=== g++ Summary ===

# of expected passes233563
# of unexpected failures32
# of expected failures  2088
# of unsupported tests  11253
/scratch/11-sur/gcc-13/gcc/xg++  version 13.3.1 20240529 [releases/gcc-13 
revision r13-8807-gebca6006f444] (GCC) 

=== gcc tests ===


Running target unix
FAIL: gcc.dg/pr97172-2.c (test for excess errors)
FAIL: gcc.dg/strlenopt-73.c scan-tree-dump-times optimized "_not_eliminated_" 0
FAIL: gcc.dg/strlenopt-73.c scan-tree-dump-times optimized "strlen" 0
FAIL: gcc.dg/strlenopt-80.c scan-tree-dump-times optimized "failure_on_line 
(" 0
FAIL: gcc.dg/strlenopt-82.c scan-tree-dump-times optimized 
"call_in_true_branch_not_eliminated_" 0
FAIL: gcc.dg/graphite/scop-19.c scan-tree-dump-times graphite "number of SCoPs: 
0" 1
FAIL: gcc-dg-lto-modref-3-01.exe scan-wpa-ipa-dump modref "parm 1 flags: 
no_direct_clobber no_direct_escape"
FAIL: gcc-dg-lto-modref-4-01.exe scan-wpa-ipa-dump modref "parm 1 flags: 
no_direct_clobber no_direct_escape"
FAIL: gcc.dg/lto/modref-3 c_lto_modref-3_0.o-c_lto_modref-3_1.o execute -O2 
-flto-partition=max -fdump-ipa-modref -fno-ipa-sra -fno-ipa-cp -flto
FAIL: gcc.dg/lto/modref-4 c_lto_modref-4_0.o-c_lto_modref-4_1.o execute -O2 
-flto-partition=max -fdump-ipa-modref -fno-ipa-sra -flto
FAIL: gcc.dg/lto/pr61526 c_lto_pr61526_0.o-c_lto_pr61526_1.o link,  -fPIC -flto 
-flto-partition=1to1 
FAIL: gcc.dg/lto/pr99849 c_lto_pr99849_0.o-c_lto_pr99849_0.o link,  -flto 
-flto-partition=1to1 -O2 -Wno-incompatible-pointer-types 
-Wno-discarded-qualifiers -fPIC 
FAIL: gcc.dg/plugin/crash-test-write-though-null-sarif.c 
-fplugin=./crash_test_plugin.so  scan-sarif-file "text": "Segmentation fault"
XPASS: 

Results for 12.3.1 20240525 [releases/gcc-12 revision r12-10471-ge11d3dd4708e] (GCC) testsuite on x86_64-apple-darwin23

2024-05-30 Thread Iain Sandoe via Gcc-testresults
LAST_UPDATED: Sat 25 May 2024 00:19:36 UTC (revision r12-10471-ge11d3dd4708e)

=== acats tests ===

=== acats Summary ===
# of expected passes2328
# of unexpected failures0
Native configuration is x86_64-apple-darwin23

=== g++ tests ===


Running target unix
FAIL: g++.dg/init/array61.C  -std=c++14  scan-tree-dump-times gimple 
"item::item" 1
FAIL: g++.dg/init/array61.C  -std=c++17  scan-tree-dump-times gimple 
"item::item" 1
FAIL: g++.dg/init/array61.C  -std=c++20  scan-tree-dump-times gimple 
"item::item" 1
FAIL: g++.dg/ipa/pr67056.C   scan-ipa-dump cp "Speculative outer type:struct 
CompositeClass"
FAIL: g++.dg/other/darwin-cfstring1.C  -std=gnu++98 (test for excess errors)
FAIL: g++.dg/other/darwin-cfstring1.C  -std=gnu++14 (test for excess errors)
FAIL: g++.dg/other/darwin-cfstring1.C  -std=gnu++17 (test for excess errors)
FAIL: g++.dg/other/darwin-cfstring1.C  -std=gnu++20 (test for excess errors)
FAIL: g++.dg/lto/pr65276 cp_lto_pr65276_0.o-cp_lto_pr65276_1.o link, -flto -O0 
-std=c++11
FAIL: g++.dg/lto/pr85405 cp_lto_pr85405_0.o-cp_lto_pr85405_1.o link, -fPIC 
-shared -flto
FAIL: g++.dg/lto/pr85405b cp_lto_pr85405b_0.o-cp_lto_pr85405b_1.o link, -fPIC 
-shared -flto
FAIL: g++.dg/lto/pr85655 cp_lto_pr85655_0.o-cp_lto_pr85655_0.o link, -O2 -fPIC 
-shared -flto
FAIL: g++.dg/lto/pr86523-3 cp_lto_pr86523-3_0.o-cp_lto_pr86523-3_0.o link,  
-fPIC -flto -g -shared 
FAIL: g++.dg/lto/pr86585 cp_lto_pr86585_0.o-cp_lto_pr86585_1.o link,  -flto -g 
-nostdlib -shared -fPIC 
FAIL: g++.dg/lto/pr87295 cp_lto_pr87295_0.o assemble,  -flto -ffat-lto-objects 
-fdebug-types-section -g -std=gnu++17 
FAIL: g++.dg/lto/pr87906 cp_lto_pr87906_0.o-cp_lto_pr87906_1.o link,  -O -fPIC 
-flto 
FAIL: g++.dg/lto/pr88046 cp_lto_pr88046_0.o-cp_lto_pr88046_0.o link,  -O2 -fPIC 
-flto 
FAIL: g++.dg/lto/pr88758 cp_lto_pr88758_0.o-cp_lto_pr88758_1.o link,  -O3 -fPIC 
-flto -shared 
FAIL: g++.dg/lto/pr89330 cp_lto_pr89330_0.o-cp_lto_pr89330_1.o link,  -O3 -g 
-flto -shared -fPIC -Wno-odr 
FAIL: g++.dg/lto/pr91574 cp_lto_pr91574_0.o-cp_lto_pr91574_0.o link,  -fPIC 
-flto -O2 
FAIL: g++.dg/lto/pr92609  (test for LTO warnings, pr92609_0.C line 75)
FAIL: g++.dg/lto/pr92609 cp_lto_pr92609_0.o-cp_lto_pr92609_1.o link,  -fPIC 
-flto 
FAIL: g++.dg/lto/pr93166 cp_lto_pr93166_0.o-cp_lto_pr93166_0.o link,  -fPIC -O2 
-flto -fvisibility=hidden 
FAIL: g++.dg/tls/thread_local13.C  -std=gnu++14 execution test
FAIL: g++.dg/tls/thread_local13.C  -std=gnu++17 execution test
FAIL: g++.dg/tls/thread_local13.C  -std=gnu++20 execution test
FAIL: g++.dg/tls/thread_local14.C  -std=gnu++14 execution test
FAIL: g++.dg/tls/thread_local14.C  -std=gnu++17 execution test
FAIL: g++.dg/tls/thread_local14.C  -std=gnu++20 execution test
FAIL: g++.target/i386/pr105980.C  -std=gnu++98 (internal compiler error: in 
insn_default_length, at config/i386/i386.md:20024)
FAIL: g++.target/i386/pr105980.C  -std=gnu++98 (test for excess errors)
FAIL: g++.target/i386/pr105980.C  -std=gnu++14 (internal compiler error: in 
insn_default_length, at config/i386/i386.md:20024)
FAIL: g++.target/i386/pr105980.C  -std=gnu++14 (test for excess errors)
FAIL: g++.target/i386/pr105980.C  -std=gnu++17 (internal compiler error: in 
insn_default_length, at config/i386/i386.md:20024)
FAIL: g++.target/i386/pr105980.C  -std=gnu++17 (test for excess errors)
FAIL: g++.target/i386/pr105980.C  -std=gnu++20 (internal compiler error: in 
insn_default_length, at config/i386/i386.md:20024)
FAIL: g++.target/i386/pr105980.C  -std=gnu++20 (test for excess errors)

=== g++ Summary ===

# of expected passes220706
# of unexpected failures37
# of expected failures  1941
# of unsupported tests  10342
/scratch/14-son/gcc-12/gcc/xg++  version 12.3.1 20240525 [releases/gcc-12 
revision r12-10471-ge11d3dd4708e] (GCC) 

=== gcc tests ===


Running target unix
FAIL: gcc.dg/atomic/c11-atomic-exec-4.c   -O0  (test for excess errors)
UNRESOLVED: gcc.dg/atomic/c11-atomic-exec-4.c   -O0  compilation failed to 
produce executable
FAIL: gcc.dg/atomic/c11-atomic-exec-4.c   -O1  (test for excess errors)
UNRESOLVED: gcc.dg/atomic/c11-atomic-exec-4.c   -O1  compilation failed to 
produce executable
FAIL: gcc.dg/atomic/c11-atomic-exec-4.c   -O2  (test for excess errors)
UNRESOLVED: gcc.dg/atomic/c11-atomic-exec-4.c   -O2  compilation failed to 
produce executable
FAIL: gcc.dg/atomic/c11-atomic-exec-4.c   -O3 -fomit-frame-pointer 
-funroll-loops -fpeel-loops -ftracer -finline-functions  (test for excess 
errors)
UNRESOLVED: gcc.dg/atomic/c11-atomic-exec-4.c   -O3 -fomit-frame-pointer 
-funroll-loops -fpeel-loops -ftracer -finline-functions  compilation failed to 
produce executable
FAIL: gcc.dg/atomic/c11-atomic-exec-4.c   -O3 -g  (test for excess errors)
UNRESOLVED: gcc.dg/atomic/c11-atomic-exec-4.c   -O3 -g  compilation failed to 
produce executable
FAIL: gcc.dg/atomic/c11-atomic-exec-4.c   -Os  (test 

Results for 13.3.1 20240529 [releases/gcc-13 revision r13-8807-gebca6006f444] (GCC) testsuite on i686-apple-darwin9

2024-05-30 Thread Iain Sandoe via Gcc-testresults
LAST_UPDATED: Wed 29 May 2024 00:21:40 UTC (revision r13-8807-gebca6006f444)

=== acats tests ===

=== acats Summary ===
# of expected passes2328
# of unexpected failures0
Native configuration is i686-apple-darwin9

=== g++ tests ===


Running target unix/-m32
FAIL: g++.dg/debug/dwarf2/utf-1.C  -std=gnu++20  scan-assembler-times 
DW_AT_encoding (0x10) 3
FAIL: g++.dg/ext/pr84828.C  -std=gnu++14 (test for excess errors)
FAIL: g++.dg/ext/pr84828.C  -std=gnu++17 (test for excess errors)
FAIL: g++.dg/ext/pr84828.C  -std=gnu++20 (test for excess errors)
FAIL: g++.dg/ext/pr84828.C  -std=gnu++98 (test for excess errors)
XPASS: g++.dg/ext/sync-4.C  -std=gnu++14 execution test
XPASS: g++.dg/ext/sync-4.C  -std=gnu++17 execution test
XPASS: g++.dg/ext/sync-4.C  -std=gnu++20 execution test
XPASS: g++.dg/ext/sync-4.C  -std=gnu++98 execution test
FAIL: g++.dg/ipa/pr67056.C   scan-ipa-dump cp "Speculative outer type:struct 
CompositeClass"
FAIL: g++.dg/other/pr35504.C  -std=c++14 execution test
FAIL: g++.dg/other/pr35504.C  -std=c++17 execution test
FAIL: g++.dg/other/pr35504.C  -std=c++20 execution test
FAIL: g++.dg/other/pr35504.C  -std=c++98 execution test
FAIL: c-c++-common/goacc/kernels-loop-g.c  -std=c++14 (test for excess errors)
FAIL: c-c++-common/goacc/kernels-loop-g.c  -std=c++17 (test for excess errors)
FAIL: c-c++-common/goacc/kernels-loop-g.c  -std=c++20 (test for excess errors)
FAIL: c-c++-common/goacc/kernels-loop-g.c  -std=c++98 (test for excess errors)
FAIL: g++.dg/lto/pr108772 cp_lto_pr108772_0.o-cp_lto_pr108772_0.o link, -flto 
-fPIC -shared -O1 -fimplicit-constexpr -g1
FAIL: g++.dg/lto/pr65276 cp_lto_pr65276_0.o-cp_lto_pr65276_1.o link, -flto -O0 
-std=c++11
FAIL: g++.dg/lto/pr85405 cp_lto_pr85405_0.o-cp_lto_pr85405_1.o link, -fPIC 
-shared -flto
FAIL: g++.dg/lto/pr85405b cp_lto_pr85405b_0.o-cp_lto_pr85405b_1.o link, -fPIC 
-shared -flto
FAIL: g++.dg/lto/pr85655 cp_lto_pr85655_0.o-cp_lto_pr85655_0.o link, -O2 -fPIC 
-shared -flto
FAIL: g++.dg/lto/pr86523-3 cp_lto_pr86523-3_0.o-cp_lto_pr86523-3_0.o link,  
-fPIC -flto -g -shared 
FAIL: g++.dg/lto/pr86585 cp_lto_pr86585_0.o-cp_lto_pr86585_1.o link,  -flto -g 
-nostdlib -shared -fPIC 
FAIL: g++.dg/lto/pr87295 cp_lto_pr87295_0.o assemble,  -flto -ffat-lto-objects 
-fdebug-types-section -g -std=gnu++17 
FAIL: g++.dg/lto/pr87906 cp_lto_pr87906_0.o-cp_lto_pr87906_1.o link,  -O -fPIC 
-flto 
FAIL: g++.dg/lto/pr88046 cp_lto_pr88046_0.o-cp_lto_pr88046_0.o link,  -O2 -fPIC 
-flto 
FAIL: g++.dg/lto/pr88758 cp_lto_pr88758_0.o-cp_lto_pr88758_1.o link,  -O3 -fPIC 
-flto -shared 
FAIL: g++.dg/lto/pr89330 cp_lto_pr89330_0.o-cp_lto_pr89330_1.o link,  -O3 -g 
-flto -shared -fPIC -Wno-odr 
FAIL: g++.dg/lto/pr91574 cp_lto_pr91574_0.o-cp_lto_pr91574_0.o link,  -fPIC 
-flto -O2 
FAIL: g++.dg/lto/pr92609  (test for LTO warnings, pr92609_0.C line 75)
FAIL: g++.dg/lto/pr92609 cp_lto_pr92609_0.o-cp_lto_pr92609_1.o link,  -fPIC 
-flto 
FAIL: g++.dg/lto/pr93166 cp_lto_pr93166_0.o-cp_lto_pr93166_0.o link,  -fPIC -O2 
-flto -fvisibility=hidden 
FAIL: g++.dg/tls/thread_local-order2.C  -std=c++14 execution test
FAIL: g++.dg/tls/thread_local-order2.C  -std=c++17 execution test
FAIL: g++.dg/tls/thread_local-order2.C  -std=c++20 execution test
FAIL: g++.dg/tls/thread_local13.C  -std=gnu++14 execution test
FAIL: g++.dg/tls/thread_local13.C  -std=gnu++17 execution test
FAIL: g++.dg/tls/thread_local13.C  -std=gnu++20 execution test
FAIL: g++.dg/tls/thread_local14.C  -std=gnu++14 execution test
FAIL: g++.dg/tls/thread_local14.C  -std=gnu++17 execution test
FAIL: g++.dg/tls/thread_local14.C  -std=gnu++20 execution test
FAIL: g++.target/i386/pr90424-1.C  -std=gnu++14  scan-tree-dump-times optimized 
"BIT_INSERT_EXPR" 9
FAIL: g++.target/i386/pr90424-1.C  -std=gnu++14  scan-tree-dump-times optimized 
"MEM" 9
FAIL: g++.target/i386/pr90424-1.C  -std=gnu++17  scan-tree-dump-times optimized 
"BIT_INSERT_EXPR" 9
FAIL: g++.target/i386/pr90424-1.C  -std=gnu++17  scan-tree-dump-times optimized 
"MEM" 9
FAIL: g++.target/i386/pr90424-1.C  -std=gnu++20  scan-tree-dump-times optimized 
"BIT_INSERT_EXPR" 9
FAIL: g++.target/i386/pr90424-1.C  -std=gnu++20  scan-tree-dump-times optimized 
"MEM" 9
FAIL: g++.target/i386/pr90424-2.C  -std=gnu++14  scan-tree-dump-times optimized 
"BIT_INSERT_EXPR" 9
FAIL: g++.target/i386/pr90424-2.C  -std=gnu++14  scan-tree-dump-times optimized 
"MEM" 9
FAIL: g++.target/i386/pr90424-2.C  -std=gnu++17  scan-tree-dump-times optimized 
"BIT_INSERT_EXPR" 9
FAIL: g++.target/i386/pr90424-2.C  -std=gnu++17  scan-tree-dump-times optimized 
"MEM" 9
FAIL: g++.target/i386/pr90424-2.C  -std=gnu++20  scan-tree-dump-times optimized 
"BIT_INSERT_EXPR" 9
FAIL: g++.target/i386/pr90424-2.C  -std=gnu++20  scan-tree-dump-times optimized 
"MEM" 9

=== g++ Summary for unix/-m32 ===

# of expected passes226752
# of unexpected failures51
# of unexpected successes   4
# of expected failures  

Results for 13.3.0 (GCC) testsuite on x86_64-apple-darwin18

2024-05-30 Thread Iain Sandoe via Gcc-testresults
LAST_UPDATED: Wed May 22 19:09:47 UTC 2024 (revision r13-8870-gcb743fb20ecd)

=== acats tests ===

=== acats Summary ===
# of expected passes2328
# of unexpected failures0
Native configuration is x86_64-apple-darwin18

=== g++ tests ===


Running target unix
FAIL: c-c++-common/asan/alloca_big_alignment.c   -Os  output pattern test
FAIL: c-c++-common/asan/alloca_detect_custom_size.c   -Os  output pattern test
FAIL: c-c++-common/asan/alloca_overflow_partial.c   -Os  output pattern test
FAIL: c-c++-common/asan/alloca_overflow_right.c   -Os  output pattern test
FAIL: c-c++-common/asan/alloca_underflow_left.c   -Os  output pattern test
FAIL: g++.dg/debug/dwarf2/utf-1.C  -std=gnu++20  scan-assembler-times 
DW_AT_encoding (0x10) 3
FAIL: g++.dg/contracts/contracts10.C   execution test
FAIL: g++.dg/contracts/contracts18.C   execution test
FAIL: g++.dg/contracts/contracts19.C   execution test
FAIL: g++.dg/contracts/contracts2.C   execution test
FAIL: g++.dg/ipa/pr67056.C   scan-ipa-dump cp "Speculative outer type:struct 
CompositeClass"
FAIL: g++.dg/lto/pr108772 cp_lto_pr108772_0.o-cp_lto_pr108772_0.o link, -flto 
-fPIC -shared -O1 -fimplicit-constexpr -g1
FAIL: g++.dg/lto/pr65276 cp_lto_pr65276_0.o-cp_lto_pr65276_1.o link, -flto -O0 
-std=c++11
FAIL: g++.dg/lto/pr85405 cp_lto_pr85405_0.o-cp_lto_pr85405_1.o link, -fPIC 
-shared -flto
FAIL: g++.dg/lto/pr85405b cp_lto_pr85405b_0.o-cp_lto_pr85405b_1.o link, -fPIC 
-shared -flto
FAIL: g++.dg/lto/pr85655 cp_lto_pr85655_0.o-cp_lto_pr85655_0.o link, -O2 -fPIC 
-shared -flto
FAIL: g++.dg/lto/pr86523-3 cp_lto_pr86523-3_0.o-cp_lto_pr86523-3_0.o link,  
-fPIC -flto -g -shared 
FAIL: g++.dg/lto/pr86585 cp_lto_pr86585_0.o-cp_lto_pr86585_1.o link,  -flto -g 
-nostdlib -shared -fPIC 
FAIL: g++.dg/lto/pr87295 cp_lto_pr87295_0.o assemble,  -flto -ffat-lto-objects 
-fdebug-types-section -g -std=gnu++17 
FAIL: g++.dg/lto/pr87906 cp_lto_pr87906_0.o-cp_lto_pr87906_1.o link,  -O -fPIC 
-flto 
FAIL: g++.dg/lto/pr88046 cp_lto_pr88046_0.o-cp_lto_pr88046_0.o link,  -O2 -fPIC 
-flto 
FAIL: g++.dg/lto/pr88758 cp_lto_pr88758_0.o-cp_lto_pr88758_1.o link,  -O3 -fPIC 
-flto -shared 
FAIL: g++.dg/lto/pr89330 cp_lto_pr89330_0.o-cp_lto_pr89330_1.o link,  -O3 -g 
-flto -shared -fPIC -Wno-odr 
FAIL: g++.dg/lto/pr91574 cp_lto_pr91574_0.o-cp_lto_pr91574_0.o link,  -fPIC 
-flto -O2 
FAIL: g++.dg/lto/pr92609  (test for LTO warnings, pr92609_0.C line 75)
FAIL: g++.dg/lto/pr92609 cp_lto_pr92609_0.o-cp_lto_pr92609_1.o link,  -fPIC 
-flto 
FAIL: g++.dg/lto/pr93166 cp_lto_pr93166_0.o-cp_lto_pr93166_0.o link,  -fPIC -O2 
-flto -fvisibility=hidden 
FAIL: g++.target/i386/pr105980.C  -std=gnu++14 (internal compiler error: in 
insn_default_length, at config/i386/i386.md:21240)
FAIL: g++.target/i386/pr105980.C  -std=gnu++14 (test for excess errors)
FAIL: g++.target/i386/pr105980.C  -std=gnu++17 (internal compiler error: in 
insn_default_length, at config/i386/i386.md:21240)
FAIL: g++.target/i386/pr105980.C  -std=gnu++17 (test for excess errors)
FAIL: g++.target/i386/pr105980.C  -std=gnu++20 (internal compiler error: in 
insn_default_length, at config/i386/i386.md:21240)
FAIL: g++.target/i386/pr105980.C  -std=gnu++20 (test for excess errors)
FAIL: g++.target/i386/pr105980.C  -std=gnu++98 (internal compiler error: in 
insn_default_length, at config/i386/i386.md:21240)
FAIL: g++.target/i386/pr105980.C  -std=gnu++98 (test for excess errors)

=== g++ Summary ===

# of expected passes233733
# of unexpected failures35
# of expected failures  2088
# of unsupported tests  11235
/scratch/10-14-moj/gcc-13-wip/gcc/xg++  version 13.3.0 (GCC) 

=== gcc tests ===


Running target unix
FAIL: c-c++-common/asan/alloca_big_alignment.c   -Os  output pattern test
FAIL: c-c++-common/asan/alloca_detect_custom_size.c   -Os  output pattern test
FAIL: c-c++-common/asan/alloca_overflow_partial.c   -Os  output pattern test
FAIL: c-c++-common/asan/alloca_overflow_right.c   -Os  output pattern test
FAIL: c-c++-common/asan/alloca_underflow_left.c   -Os  output pattern test
FAIL: gcc.dg/pr97172-2.c (test for excess errors)
FAIL: gcc.dg/graphite/scop-19.c scan-tree-dump-times graphite "number of SCoPs: 
0" 1
FAIL: gcc-dg-lto-modref-3-01.exe scan-wpa-ipa-dump modref "parm 1 flags: 
no_direct_clobber no_direct_escape"
FAIL: gcc-dg-lto-modref-4-01.exe scan-wpa-ipa-dump modref "parm 1 flags: 
no_direct_clobber no_direct_escape"
FAIL: gcc.dg/lto/modref-3 c_lto_modref-3_0.o-c_lto_modref-3_1.o execute -O2 
-flto-partition=max -fdump-ipa-modref -fno-ipa-sra -fno-ipa-cp -flto
FAIL: gcc.dg/lto/modref-4 c_lto_modref-4_0.o-c_lto_modref-4_1.o execute -O2 
-flto-partition=max -fdump-ipa-modref -fno-ipa-sra -flto
FAIL: gcc.dg/lto/pr61526 c_lto_pr61526_0.o-c_lto_pr61526_1.o link,  -fPIC -flto 
-flto-partition=1to1 
FAIL: gcc.dg/lto/pr99849 c_lto_pr99849_0.o-c_lto_pr99849_0.o link,  -flto 
-flto-partition=1to1 -O2 

Results for 13.3.1 20240529 [releases/gcc-13 revision r13-8807-gebca6006f444] (GCC) testsuite on x86_64-apple-darwin21

2024-05-30 Thread Iain Sandoe via Gcc-testresults
LAST_UPDATED: Wed 29 May 2024 00:21:40 UTC (revision r13-8807-gebca6006f444)

=== acats tests ===

=== acats Summary ===
# of expected passes2328
# of unexpected failures0
Native configuration is x86_64-apple-darwin21

=== g++ tests ===


Running target unix
FAIL: g++.dg/debug/dwarf2/utf-1.C  -std=gnu++20  scan-assembler-times 
DW_AT_encoding (0x10) 3
FAIL: g++.dg/ipa/pr67056.C   scan-ipa-dump cp "Speculative outer type:struct 
CompositeClass"
FAIL: g++.dg/lto/pr108772 cp_lto_pr108772_0.o-cp_lto_pr108772_0.o link, -flto 
-fPIC -shared -O1 -fimplicit-constexpr -g1
FAIL: g++.dg/lto/pr65276 cp_lto_pr65276_0.o-cp_lto_pr65276_1.o link, -flto -O0 
-std=c++11
FAIL: g++.dg/lto/pr85405 cp_lto_pr85405_0.o-cp_lto_pr85405_1.o link, -fPIC 
-shared -flto
FAIL: g++.dg/lto/pr85405b cp_lto_pr85405b_0.o-cp_lto_pr85405b_1.o link, -fPIC 
-shared -flto
FAIL: g++.dg/lto/pr85655 cp_lto_pr85655_0.o-cp_lto_pr85655_0.o link, -O2 -fPIC 
-shared -flto
FAIL: g++.dg/lto/pr86523-3 cp_lto_pr86523-3_0.o-cp_lto_pr86523-3_0.o link,  
-fPIC -flto -g -shared 
FAIL: g++.dg/lto/pr86585 cp_lto_pr86585_0.o-cp_lto_pr86585_1.o link,  -flto -g 
-nostdlib -shared -fPIC 
FAIL: g++.dg/lto/pr87295 cp_lto_pr87295_0.o assemble,  -flto -ffat-lto-objects 
-fdebug-types-section -g -std=gnu++17 
FAIL: g++.dg/lto/pr87906 cp_lto_pr87906_0.o-cp_lto_pr87906_1.o link,  -O -fPIC 
-flto 
FAIL: g++.dg/lto/pr88046 cp_lto_pr88046_0.o-cp_lto_pr88046_0.o link,  -O2 -fPIC 
-flto 
FAIL: g++.dg/lto/pr88758 cp_lto_pr88758_0.o-cp_lto_pr88758_1.o link,  -O3 -fPIC 
-flto -shared 
FAIL: g++.dg/lto/pr89330 cp_lto_pr89330_0.o-cp_lto_pr89330_1.o link,  -O3 -g 
-flto -shared -fPIC -Wno-odr 
FAIL: g++.dg/lto/pr91574 cp_lto_pr91574_0.o-cp_lto_pr91574_0.o link,  -fPIC 
-flto -O2 
FAIL: g++.dg/lto/pr92609  (test for LTO warnings, pr92609_0.C line 75)
FAIL: g++.dg/lto/pr92609 cp_lto_pr92609_0.o-cp_lto_pr92609_1.o link,  -fPIC 
-flto 
FAIL: g++.dg/lto/pr93166 cp_lto_pr93166_0.o-cp_lto_pr93166_0.o link,  -fPIC -O2 
-flto -fvisibility=hidden 
FAIL: g++.dg/tls/thread_local13.C  -std=gnu++14 execution test
FAIL: g++.dg/tls/thread_local13.C  -std=gnu++17 execution test
FAIL: g++.dg/tls/thread_local13.C  -std=gnu++20 execution test
FAIL: g++.dg/tls/thread_local14.C  -std=gnu++14 execution test
FAIL: g++.dg/tls/thread_local14.C  -std=gnu++17 execution test
FAIL: g++.dg/tls/thread_local14.C  -std=gnu++20 execution test
FAIL: g++.target/i386/pr105980.C  -std=gnu++14 (internal compiler error: in 
insn_default_length, at config/i386/i386.md:21240)
FAIL: g++.target/i386/pr105980.C  -std=gnu++14 (test for excess errors)
FAIL: g++.target/i386/pr105980.C  -std=gnu++17 (internal compiler error: in 
insn_default_length, at config/i386/i386.md:21240)
FAIL: g++.target/i386/pr105980.C  -std=gnu++17 (test for excess errors)
FAIL: g++.target/i386/pr105980.C  -std=gnu++20 (internal compiler error: in 
insn_default_length, at config/i386/i386.md:21240)
FAIL: g++.target/i386/pr105980.C  -std=gnu++20 (test for excess errors)
FAIL: g++.target/i386/pr105980.C  -std=gnu++98 (internal compiler error: in 
insn_default_length, at config/i386/i386.md:21240)
FAIL: g++.target/i386/pr105980.C  -std=gnu++98 (test for excess errors)

=== g++ Summary ===

# of expected passes233563
# of unexpected failures32
# of expected failures  2088
# of unsupported tests  11253
/scratch/12-mon/gcc-13/gcc/xg++  version 13.3.1 20240529 [releases/gcc-13 
revision r13-8807-gebca6006f444] (GCC) 

=== gcc tests ===


Running target unix
FAIL: gcc.dg/pr97172-2.c (test for excess errors)
FAIL: gcc.dg/graphite/scop-19.c scan-tree-dump-times graphite "number of SCoPs: 
0" 1
FAIL: gcc-dg-lto-modref-3-01.exe scan-wpa-ipa-dump modref "parm 1 flags: 
no_direct_clobber no_direct_escape"
FAIL: gcc-dg-lto-modref-4-01.exe scan-wpa-ipa-dump modref "parm 1 flags: 
no_direct_clobber no_direct_escape"
FAIL: gcc.dg/lto/modref-3 c_lto_modref-3_0.o-c_lto_modref-3_1.o execute -O2 
-flto-partition=max -fdump-ipa-modref -fno-ipa-sra -fno-ipa-cp -flto
FAIL: gcc.dg/lto/modref-4 c_lto_modref-4_0.o-c_lto_modref-4_1.o execute -O2 
-flto-partition=max -fdump-ipa-modref -fno-ipa-sra -flto
FAIL: gcc.dg/lto/pr61526 c_lto_pr61526_0.o-c_lto_pr61526_1.o link,  -fPIC -flto 
-flto-partition=1to1 
FAIL: gcc.dg/lto/pr99849 c_lto_pr99849_0.o-c_lto_pr99849_0.o link,  -flto 
-flto-partition=1to1 -O2 -Wno-incompatible-pointer-types 
-Wno-discarded-qualifiers -fPIC 
FAIL: gcc.dg/plugin/crash-test-write-though-null-sarif.c 
-fplugin=./crash_test_plugin.so  scan-sarif-file "text": "Segmentation fault"
XPASS: gcc.dg/plugin/taint-CVE-2011-0521-5-fixed.c 
-fplugin=./analyzer_kernel_plugin.so  (test for bogus messages, line 39)
FAIL: gcc.dg/plugin/taint-CVE-2011-0521-5.c 
-fplugin=./analyzer_kernel_plugin.so  (test for warnings, line 39)
FAIL: gcc.dg/plugin/taint-CVE-2011-0521-6.c 
-fplugin=./analyzer_kernel_plugin.so  (test for warnings, line 36)

Results for 13.3.1 20240529 [releases/gcc-13 revision r13-8807-gebca6006f444] (GCC) testsuite on x86_64-apple-darwin23

2024-05-30 Thread Iain Sandoe via Gcc-testresults
LAST_UPDATED: Wed 29 May 2024 00:21:40 UTC (revision r13-8807-gebca6006f444)

=== acats tests ===

=== acats Summary ===
# of expected passes2328
# of unexpected failures0
Native configuration is x86_64-apple-darwin23

=== g++ tests ===


Running target unix
FAIL: g++.dg/debug/dwarf2/utf-1.C  -std=gnu++20  scan-assembler-times 
DW_AT_encoding (0x10) 3
FAIL: g++.dg/ipa/pr67056.C   scan-ipa-dump cp "Speculative outer type:struct 
CompositeClass"
FAIL: g++.dg/other/darwin-cfstring1.C  -std=gnu++14 (test for excess errors)
FAIL: g++.dg/other/darwin-cfstring1.C  -std=gnu++17 (test for excess errors)
FAIL: g++.dg/other/darwin-cfstring1.C  -std=gnu++20 (test for excess errors)
FAIL: g++.dg/other/darwin-cfstring1.C  -std=gnu++98 (test for excess errors)
FAIL: g++.dg/lto/pr108772 cp_lto_pr108772_0.o-cp_lto_pr108772_0.o link, -flto 
-fPIC -shared -O1 -fimplicit-constexpr -g1
FAIL: g++.dg/lto/pr65276 cp_lto_pr65276_0.o-cp_lto_pr65276_1.o link, -flto -O0 
-std=c++11
FAIL: g++.dg/lto/pr85405 cp_lto_pr85405_0.o-cp_lto_pr85405_1.o link, -fPIC 
-shared -flto
FAIL: g++.dg/lto/pr85405b cp_lto_pr85405b_0.o-cp_lto_pr85405b_1.o link, -fPIC 
-shared -flto
FAIL: g++.dg/lto/pr85655 cp_lto_pr85655_0.o-cp_lto_pr85655_0.o link, -O2 -fPIC 
-shared -flto
FAIL: g++.dg/lto/pr86523-3 cp_lto_pr86523-3_0.o-cp_lto_pr86523-3_0.o link,  
-fPIC -flto -g -shared 
FAIL: g++.dg/lto/pr86585 cp_lto_pr86585_0.o-cp_lto_pr86585_1.o link,  -flto -g 
-nostdlib -shared -fPIC 
FAIL: g++.dg/lto/pr87295 cp_lto_pr87295_0.o assemble,  -flto -ffat-lto-objects 
-fdebug-types-section -g -std=gnu++17 
FAIL: g++.dg/lto/pr87906 cp_lto_pr87906_0.o-cp_lto_pr87906_1.o link,  -O -fPIC 
-flto 
FAIL: g++.dg/lto/pr88046 cp_lto_pr88046_0.o-cp_lto_pr88046_0.o link,  -O2 -fPIC 
-flto 
FAIL: g++.dg/lto/pr88758 cp_lto_pr88758_0.o-cp_lto_pr88758_1.o link,  -O3 -fPIC 
-flto -shared 
FAIL: g++.dg/lto/pr89330 cp_lto_pr89330_0.o-cp_lto_pr89330_1.o link,  -O3 -g 
-flto -shared -fPIC -Wno-odr 
FAIL: g++.dg/lto/pr91574 cp_lto_pr91574_0.o-cp_lto_pr91574_0.o link,  -fPIC 
-flto -O2 
FAIL: g++.dg/lto/pr92609  (test for LTO warnings, pr92609_0.C line 75)
FAIL: g++.dg/lto/pr92609 cp_lto_pr92609_0.o-cp_lto_pr92609_1.o link,  -fPIC 
-flto 
FAIL: g++.dg/lto/pr93166 cp_lto_pr93166_0.o-cp_lto_pr93166_0.o link,  -fPIC -O2 
-flto -fvisibility=hidden 
FAIL: g++.dg/tls/thread_local13.C  -std=gnu++14 execution test
FAIL: g++.dg/tls/thread_local13.C  -std=gnu++17 execution test
FAIL: g++.dg/tls/thread_local13.C  -std=gnu++20 execution test
FAIL: g++.dg/tls/thread_local14.C  -std=gnu++14 execution test
FAIL: g++.dg/tls/thread_local14.C  -std=gnu++17 execution test
FAIL: g++.dg/tls/thread_local14.C  -std=gnu++20 execution test
FAIL: g++.target/i386/pr105980.C  -std=gnu++14 (internal compiler error: in 
insn_default_length, at config/i386/i386.md:21240)
FAIL: g++.target/i386/pr105980.C  -std=gnu++14 (test for excess errors)
FAIL: g++.target/i386/pr105980.C  -std=gnu++17 (internal compiler error: in 
insn_default_length, at config/i386/i386.md:21240)
FAIL: g++.target/i386/pr105980.C  -std=gnu++17 (test for excess errors)
FAIL: g++.target/i386/pr105980.C  -std=gnu++20 (internal compiler error: in 
insn_default_length, at config/i386/i386.md:21240)
FAIL: g++.target/i386/pr105980.C  -std=gnu++20 (test for excess errors)
FAIL: g++.target/i386/pr105980.C  -std=gnu++98 (internal compiler error: in 
insn_default_length, at config/i386/i386.md:21240)
FAIL: g++.target/i386/pr105980.C  -std=gnu++98 (test for excess errors)

=== g++ Summary ===

# of expected passes228999
# of unexpected failures36
# of expected failures  2088
# of unsupported tests  10855
/scratch/14-son/gcc-13/gcc/xg++  version 13.3.1 20240529 [releases/gcc-13 
revision r13-8807-gebca6006f444] (GCC) 

=== gcc tests ===


Running target unix
FAIL: gcc.dg/debug/dwarf2/dwarf2-macro.c scan-assembler Start new file
FAIL: gcc.dg/debug/dwarf2/dwarf2-macro2.c scan-assembler At line number 0
FAIL: gcc.dg/ira-loop-pressure.c scan-rtl-dump loop2_invariant "Decided to move 
invariant"
FAIL: gcc.dg/pr97172-2.c (test for excess errors)
FAIL: gcc.dg/graphite/scop-19.c scan-tree-dump-times graphite "number of SCoPs: 
0" 1
FAIL: gcc-dg-lto-modref-3-01.exe scan-wpa-ipa-dump modref "parm 1 flags: 
no_direct_clobber no_direct_escape"
FAIL: gcc-dg-lto-modref-4-01.exe scan-wpa-ipa-dump modref "parm 1 flags: 
no_direct_clobber no_direct_escape"
FAIL: gcc.dg/lto/modref-3 c_lto_modref-3_0.o-c_lto_modref-3_1.o execute -O2 
-flto-partition=max -fdump-ipa-modref -fno-ipa-sra -fno-ipa-cp -flto
FAIL: gcc.dg/lto/modref-4 c_lto_modref-4_0.o-c_lto_modref-4_1.o execute -O2 
-flto-partition=max -fdump-ipa-modref -fno-ipa-sra -flto
FAIL: gcc.dg/lto/pr61526 c_lto_pr61526_0.o-c_lto_pr61526_1.o link,  -fPIC -flto 
-flto-partition=1to1 
FAIL: gcc.dg/lto/pr99849 c_lto_pr99849_0.o-c_lto_pr99849_0.o link,  -flto 
-flto-partition=1to1 -O2 

[Bug d/115295] [15 regression] Various gdc testsuite regressions

2024-05-30 Thread ro at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115295

Rainer Orth  changed:

   What|Removed |Added

   Target Milestone|--- |15.0

[Bug d/115295] New: [15 regression] Various gdc testsuite regressions

2024-05-30 Thread ro at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115295

Bug ID: 115295
   Summary: [15 regression] Various gdc testsuite regressions
   Product: gcc
   Version: 15.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: d
  Assignee: ibuclaw at gdcproject dot org
  Reporter: ro at gcc dot gnu.org
  Target Milestone: ---

Between 20240529 (18f477980c8597fe3dca2c2e8bd533c0c2b17aa6) and 20240530
(71899d6b4e18145f005046681208db0137c95ede),
quite a number of gdc.* tests regressed:

+FAIL: gdc.dg/attr_module.d(test for warnings, line 12)
+FAIL: gdc.dg/attr_module.d(test for warnings, line 18)
+FAIL: gdc.dg/attr_module.d(test for warnings, line 24)
+FAIL: gdc.dg/attr_module.d(test for warnings, line 36)
+FAIL: gdc.dg/attr_module.d   (test for excess errors)

Excess errors:
/vol/gcc/src/hg/master/local/gcc/testsuite/gdc.dg/attr_module.d:6:2: error:
undefined identifier 'value_ignored'
/vol/gcc/src/hg/master/local/gcc/testsuite/gdc.dg/attr_module.d:12:2: error:
undefined identifier 'type_symbol'
/vol/gcc/src/hg/master/local/gcc/testsuite/gdc.dg/attr_module.d:18:2: error:
undefined identifier 'template_symbol'
/vol/gcc/src/hg/master/local/gcc/testsuite/gdc.dg/attr_module.d:24:2: error:
undefined identifier 'struct_wrong_field'
/vol/gcc/src/hg/master/local/gcc/testsuite/gdc.dg/attr_module.d:30:2: error:
undefined identifier 'struct_void_init'
/vol/gcc/src/hg/master/local/gcc/testsuite/gdc.dg/attr_module.d:36:2: error:
undefined identifier 'unknown_attribute'

+FAIL: gdc.dg/gdc231.d   (test for excess errors)

Excess errors:
/vol/gcc/src/hg/master/local/gcc/testsuite/gdc.dg/gdc231.d:5:8: error: unable
to read module 'gdc231'
import path[0] =
/var/gcc/regression/master/11.4-gcc/build/i386-pc-solaris2.11/libphobos/libdruntime
import path[1] = /vol/gcc/src/hg/master/local/libphobos/libdruntime
import path[2] = /vol/gcc/src/hg/master/local/libphobos/src

+FAIL: gdc.dg/gdc253a.d   (test for excess errors)
+FAIL: gdc.dg/gdc27.d   (test for excess errors)
+FAIL: gdc.dg/pr108050.d   (test for excess errors)
+FAIL: gdc.test/compilable/test16348.d   output-exists test16348.s
+FAIL: gdc.test/compilable/test17541.d   output-exists test17541.s

compilable/test17541.d:8:8: error: unable to read module 'two'
compilable/test17541.d:8:8: note: Expected 'two.d' or 'two/package.d' in one of
the following import paths:
import path[0] =
/var/gcc/regression/master/11.4-gcc/build/i386-pc-solaris2.11/libphobos/libdruntime
import path[1] = /vol/gcc/src/hg/master/local/libphobos/libdruntime
import path[2] = /vol/gcc/src/hg/master/local/libphobos/src
import path[3] =
/var/gcc/regression/master/11.4-gcc/build/gcc/testsuite/gdc3/compilable
compiler exited with status 1

+FAIL: gdc.test/fail_compilation/diag4479.d   output-exists-not diag4479.o
+FAIL: gdc.test/fail_compilation/fail11453a.d   output-exists-not fail11453a.o
+FAIL: gdc.test/fail_compilation/fail11453b.d   output-exists-not fail11453b.o
+FAIL: gdc.test/fail_compilation/fail18938.d   output-exists-not fail18938.o
+FAIL: gdc.test/fail_compilation/fail19911b.d   output-exists-not fail19911b.o
+FAIL: gdc.test/fail_compilation/fail23109.d   output-exists-not fail23109.o
+FAIL: gdc.test/fail_compilation/ice10598.d   output-exists-not ice10598.o
+FAIL: gdc.test/fail_compilation/ice11136.d   output-exists-not ice11136.o
+FAIL: gdc.test/fail_compilation/ice14116.d   output-exists-not ice14116.o
+FAIL: gdc.test/fail_compilation/no_Throwable.d   output-exists-not
no_Throwable.o
+FAIL: gdc.test/fail_compilation/no_TypeInfo.d   output-exists-not
no_TypeInfo.o
+FAIL: gdc.test/fail_compilation/verifyhookexist.d   output-exists-not
verifyhookexist.o

I'm seeing this on at least Solaris/x86 (32 and 64-bit) and Linux/x86_64 (64
and 32-bit).

[Bug testsuite/115294] [15 regression] dg-additional-files-options change broke several testsuites

2024-05-30 Thread ro at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115294

Rainer Orth  changed:

   What|Removed |Added

   Target Milestone|--- |15.0

[Bug testsuite/115294] New: [15 regression] dg-additional-files-options change broke several testsuites

2024-05-30 Thread ro at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115294

Bug ID: 115294
   Summary: [15 regression] dg-additional-files-options change
broke several testsuites
   Product: gcc
   Version: 15.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: testsuite
  Assignee: unassigned at gcc dot gnu.org
  Reporter: ro at gcc dot gnu.org
CC: aoliva at gcc dot gnu.org
  Target Milestone: ---

Between 20240529 (18f477980c8597fe3dca2c2e8bd533c0c2b17aa6) and 20240530
(71899d6b4e18145f005046681208db0137c95ede),
several testsuite results were lost completely.

libatomic, libgomp, libitm, and libphobos are affected.  In each case, the
test logs show a variation of

ERROR: tcl error sourcing
/vol/gcc/src/hg/master/local/libatomic/testsuite/../../gcc/testsuite/lib/gcc-dg.exp.
wrong # args: should be "dg-additional-files-options options source dest type"
while executing
"check_cached_effective_target $prop {
eval [list check_no_compiler_messages_nocache $prop] $args
}"
(procedure "check_no_compiler_messages" line 2)
invoked from within
"check_no_compiler_messages lto object {
   void foo (void) { }
} "-flto""
(procedure "check_effective_target_lto" line 11)
invoked from within
"check_effective_target_lto"
invoked from within
"if [info exists TORTURE_OPTIONS] {
set DG_TORTURE_OPTIONS $TORTURE_OPTIONS
} else {
# It is theoretically beneficial to group all of the O2/O3..."
(file
"/vol/gcc/src/hg/master/local/libatomic/testsuite/../../gcc/testsuite/lib/gcc-dg.exp"
line 82)
invoked from within
"source
/vol/gcc/src/hg/master/local/libatomic/testsuite/../../gcc/testsuite/lib/gcc-dg.exp"
("uplevel" body line 1)
invoked from within
"uplevel #0 source
/vol/gcc/src/hg/master/local/libatomic/testsuite/../../gcc/testsuite/lib/gcc-dg.exp"
invoked from within
"catch "uplevel #0 source $file""

I'm seeing this on both i386-pc-solaris2.11 and x86_64-pc-linux-gnu; most
likely
this happens everywhere.

Results for 15.0.0 20240530 (experimental) [master r15-929-g46d931b3dd3] (GCC) testsuite on s390x-ibm-linux-gnu default

2024-05-30 Thread stefansf--- via Gcc-testresults
table-jump-inline-z10.c scan-assembler-times exrl 1
FAIL: gcc.target/s390/nobp-table-jump-inline-z900.c scan-assembler 
section\\t.s390_indirect_jump
FAIL: gcc.target/s390/nobp-table-jump-inline-z900.c scan-assembler-times 
\\tex\\t 1
FAIL: gcc.target/s390/nobp-table-jump-z10.c scan-assembler 
section\\t.s390_indirect_jump
FAIL: gcc.target/s390/nobp-table-jump-z10.c scan-assembler-times exrl 1
FAIL: gcc.target/s390/nobp-table-jump-z900.c scan-assembler 
section\\t.s390_indirect_jump
FAIL: gcc.target/s390/nobp-table-jump-z900.c scan-assembler-times ex\\t 1
FAIL: gcc.target/s390/risbg-ll-1.c scan-assembler 
f42:\\n\\tsllg\\t%r2,%r2,63\\n\\tsrag\\t%r2,%r2,63\\n\\tllgcr\\t%r2,%r2
FAIL: gcc.target/s390/vector/align-1.c scan-assembler-times 
vl\\t%v[0-9]*,[0-9]*(%r[0-9]*),3\\n 1
FAIL: gcc.target/s390/vector/align-1.c scan-assembler-times 
vst\\t%v[0-9]*,[0-9]*(%r[0-9]*),3\\n 1
FAIL: gcc.target/s390/vector/vec-abi-vararg-1.c scan-assembler 
ld\\t%v[0-9]*,368(%r15)
FAIL: gcc.target/s390/vector/vec-abi-vararg-1.c scan-assembler 
ld\\t%v[0-9]*,392(%r15)
FAIL: gcc.target/s390/vector/vec-abi-vararg-1.c scan-assembler 
vl\\t%v[0-9]*,352(%r15)
FAIL: gcc.target/s390/vector/vec-abi-vararg-1.c scan-assembler 
vl\\t%v[0-9]*,376(%r15)

=== gcc Summary for unix/-m64 ===

# of expected passes181232
# of unexpected failures176
# of unexpected successes   17
# of expected failures  1468
# of unsupported tests  4322

=== gcc Summary ===

# of expected passes359378
# of unexpected failures357
# of unexpected successes   31
# of expected failures  2937
# of unsupported tests  9262
-default/gcc/xgcc  version 15.0.0 20240530 (experimental) [master 
r15-929-g46d931b3dd3] (GCC) 

=== gdc tests ===


Running target unix/-m31
FAIL: gdc.dg/attr_module.d(test for warnings, line 12)
FAIL: gdc.dg/attr_module.d(test for warnings, line 18)
FAIL: gdc.dg/attr_module.d(test for warnings, line 24)
FAIL: gdc.dg/attr_module.d(test for warnings, line 36)
FAIL: gdc.dg/attr_module.d   (test for excess errors)
FAIL: gdc.dg/gdc231.d   (test for excess errors)
FAIL: gdc.dg/gdc253a.d   (test for excess errors)
FAIL: gdc.dg/gdc27.d   (test for excess errors)
FAIL: gdc.dg/pr108050.d   (test for excess errors)
FAIL: gdc.test/compilable/test16348.d   output-exists test16348.s
FAIL: gdc.test/compilable/test17541.d   output-exists test17541.s
FAIL: gdc.test/fail_compilation/diag4479.d   output-exists-not diag4479.o
FAIL: gdc.test/fail_compilation/fail11453a.d   output-exists-not fail11453a.o
FAIL: gdc.test/fail_compilation/fail11453b.d   output-exists-not fail11453b.o
FAIL: gdc.test/fail_compilation/fail18938.d   output-exists-not fail18938.o
FAIL: gdc.test/fail_compilation/fail19911b.d   output-exists-not fail19911b.o
FAIL: gdc.test/fail_compilation/fail23109.d   output-exists-not fail23109.o
FAIL: gdc.test/fail_compilation/ice10598.d   output-exists-not ice10598.o
FAIL: gdc.test/fail_compilation/ice11136.d   output-exists-not ice11136.o
FAIL: gdc.test/fail_compilation/ice14116.d   output-exists-not ice14116.o
FAIL: gdc.test/fail_compilation/no_Throwable.d   output-exists-not 
no_Throwable.o
FAIL: gdc.test/fail_compilation/no_TypeInfo.d   output-exists-not no_TypeInfo.o
FAIL: gdc.test/fail_compilation/verifyhookexist.d   output-exists-not 
verifyhookexist.o
FAIL: gdc.test/runnable/test34.d   execution test
FAIL: gdc.test/runnable/test34.d -shared-libphobos   execution test
FAIL: gdc.test/runnable/test42.d   execution test
FAIL: gdc.test/runnable/test42.d -shared-libphobos   execution test
FAIL: gdc.test/runnable/xtest46.d   execution test
FAIL: gdc.test/runnable/xtest46.d -shared-libphobos   execution test
FAIL: gdc.test/runnable/xtest46_gc.d   execution test
FAIL: gdc.test/runnable/xtest46_gc.d -shared-libphobos   execution test
UNRESOLVED: gdc.test/runnable_cxx/cpp_stdlib.d   compilation failed to produce 
executable
UNRESOLVED: gdc.test/runnable_cxx/cpp_stdlib.d -shared-libphobos   compilation 
failed to produce executable
FAIL: gdc.test/runnable_cxx/cppa.d   execution test
FAIL: gdc.test/runnable_cxx/cppa.d -g   execution test
FAIL: gdc.test/runnable_cxx/cppa.d -g -shared-libphobos   execution test
FAIL: gdc.test/runnable_cxx/cppa.d -shared-libphobos   execution test
UNRESOLVED: gdc.test/runnable_cxx/externmangle.d   compilation failed to 
produce executable
UNRESOLVED: gdc.test/runnable_cxx/externmangle.d -shared-libphobos   
compilation failed to produce executable

=== gdc Summary for unix/-m31 ===

# of expected passes12464
# of unexpected failures35
# of unresolved testcases   4
# of unsupported tests  759

Running target unix/-m64
FAIL: gdc.dg/attr_module.d(test for warnings, line 12)
FAIL: gdc.dg/attr_module.d(test for warnings, line 18)
FAIL: gdc.dg/attr_module.d(test for warnings, line 24)
FAIL: gdc.

Results for 15.0.0 20240530 (experimental) [master r15-924-g370df6ef0fe] (GCC) testsuite on x86_64-pc-linux-gnu

2024-05-30 Thread haochenj--- via Gcc-testresults
o_iommu_type1.c 
-fplugin=./analyzer_kernel_plugin.so  (test for bogus messages, line 42)
FAIL: gcc.dg/tree-ssa/pr64910-2.c scan-assembler-times and|test 20
FAIL: gcc.dg/tree-ssa/slsr-31.c scan-tree-dump-times optimized " * 2" 1
FAIL: gcc.dg/vect/slp-perm-9.c -flto -ffat-lto-objects  scan-tree-dump-times 
vect "vectorizing stmts using SLP" 1
FAIL: gcc.dg/vect/slp-perm-9.c scan-tree-dump-times vect "vectorizing stmts 
using SLP" 1
XPASS: gcc.dg/vect/vect-reduc-in-order-1.c -flto -ffat-lto-objects execution 
test
XPASS: gcc.dg/vect/vect-reduc-in-order-1.c execution test
XPASS: gcc.dg/vect/vect-reduc-in-order-2.c -flto -ffat-lto-objects execution 
test
XPASS: gcc.dg/vect/vect-reduc-in-order-2.c execution test
XPASS: gcc.dg/vect/vect-reduc-in-order-3.c -flto -ffat-lto-objects execution 
test
XPASS: gcc.dg/vect/vect-reduc-in-order-3.c execution test
XPASS: gcc.dg/vect/vect-reduc-in-order-4.c -flto -ffat-lto-objects execution 
test
XPASS: gcc.dg/vect/vect-reduc-in-order-4.c execution test
FAIL: gcc.target/i386/avx512bw-vmovdqu16-1.c scan-assembler-times 
(?:vmovdqu16|vextracti128)[ t]+[^{\\n]*%ymm[0-9]+[^\\n]*)(?:\\n|[ 
t]+#) 1
FAIL: gcc.target/i386/avx512bw-vmovdqu16-1.c scan-assembler-times 
(?:vmovdqu16|vinserti128)[ t]+[^{\\n]*)[^\\n]*%ymm[0-9]+(?:\\n|[ 
t]+#) 1
FAIL: gcc.target/i386/avx512dq-pr88465.c scan-assembler-times kxnorb[ \\t] 1
FAIL: gcc.target/i386/avx512f-pr88465.c scan-assembler-times kxnorw[ \\t] 1
FAIL: gcc.target/i386/avx512fp16-13.c scan-assembler-times vmovdqu16[ 
t]*[^,]*,[^{\\n]*%xmm[0-9] 1
FAIL: gcc.target/i386/avx512fp16-13.c scan-assembler-times vmovdqu16[ 
t]*[^,]*,[^{\\n]*%ymm[0-9] 1
FAIL: gcc.target/i386/avx512fp16-13.c scan-assembler-times vmovdqu16[ 
t]*[^{\\n]*%xmm[0-9], *[^,]* 1
FAIL: gcc.target/i386/avx512fp16-13.c scan-assembler-times vmovdqu16[ 
t]*[^{\\n]*%ymm[0-9], *[^,]* 1
XPASS: gcc.target/i386/bitwise_mask_op-3.c scan-assembler-times kmovb[\\t ] 4
XPASS: gcc.target/i386/bitwise_mask_op-3.c scan-assembler-times korb[\\t ] 1
XPASS: gcc.target/i386/bitwise_mask_op-3.c scan-assembler-times kxorb[\\t ] 1
FAIL: gcc.target/i386/minmax-10.c scan-assembler-not cmp
FAIL: gcc.target/i386/minmax-10.c scan-assembler-times test 6
FAIL: gcc.target/i386/pieces-memset-11.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 2
FAIL: gcc.target/i386/pieces-memset-14.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 1
FAIL: gcc.target/i386/pieces-memset-2.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 2
FAIL: gcc.target/i386/pieces-memset-20.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 2
FAIL: gcc.target/i386/pieces-memset-23.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 1
FAIL: gcc.target/i386/pieces-memset-29.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 2
FAIL: gcc.target/i386/pieces-memset-30.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 2
FAIL: gcc.target/i386/pieces-memset-33.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 1
FAIL: gcc.target/i386/pieces-memset-34.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 1
FAIL: gcc.target/i386/pieces-memset-37.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 2
FAIL: gcc.target/i386/pieces-memset-44.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 1
FAIL: gcc.target/i386/pieces-memset-5.c scan-assembler-times vmovdqu[ 
t]+[^\\n]*%ymm 1
FAIL: gcc.target/i386/pr31985.c scan-assembler-times movl 4
FAIL: gcc.target/i386/pr95483-5.c scan-assembler-times 
(?:vmovdqu8|vextracti128)[ t]+[^{\\n]*%ymm[0-9]+[^\\n]*)(?:\\n|[ 
t]+#) 1
FAIL: gcc.target/i386/pr95483-5.c scan-assembler-times 
(?:vmovdqu8|vinserti128)[ t]+[^{\\n]*)[^\\n]*%ymm[0-9]+(?:\\n|[ 
t]+#) 1
FAIL: gcc.target/i386/pr95483-6.c scan-assembler-times (?:vinserti128|vmovdqu)[ 
t]+[^{\\n]*)[^\\n]*%ymm[0-9]+(?:\\n|[ t]+#) 2
FAIL: gcc.target/i386/pr97873-1.c scan-assembler pabsq
FAIL: gcc.target/i386/vect-double-2.c scan-tree-dump-times vect "Vectorized 
loops: 1" 1
FAIL: gcc.target/i386/vect-shiftv4qi.c scan-assembler-times psrlw 5
FAIL: gcc.target/i386/xorsign.c scan-tree-dump-times vect "vectorized 2 loops" 1

=== gcc Summary for unix/-m32 ===

# of expected passes197789
# of unexpected failures158
# of unexpected successes   30
# of expected failures  1553
# of unsupported tests  4077

=== gcc Summary ===

# of expected passes401938
# of unexpected failures319
# of unexpected successes   50
# of expected failures  3100
# of unsupported tests  7352
/export/home/haochenj/src/gcc-regression/bld/gcc/xgcc  version 15.0.0 20240530 
(experimental) [master r15-924-g370df6ef0fe] (GCC) 

=== gfortran tests ===


Running target unix

=== gfortran Summary for unix ===

# of expected passes70252
# of expected failures  273
# of unsupported tests  65

Running targe

Results for 15.0.0 20240529 (experimental) [master r15-912-g86b98d93998942] (GCC) testsuite on m68k-unknown-linux-gnu

2024-05-30 Thread Andreas Schwab
]*, 4, 0, 0);" 1
FAIL: c-c++-common/gomp/atomic-28.c  -std=c++20  scan-tree-dump-times ompexp 
".ATOMIC_COMPARE_EXCHANGE ([^\\n\\r]*, 4, 5, 5);" 1
FAIL: c-c++-common/gomp/atomic-28.c  -std=c++20  scan-tree-dump-times ompexp 
".ATOMIC_COMPARE_EXCHANGE ([^\\n\\r]*, 4, 4, 2);" 1
FAIL: c-c++-common/gomp/atomic-28.c  -std=c++20  scan-tree-dump-times ompexp 
".ATOMIC_COMPARE_EXCHANGE ([^\\n\\r]*, 260, 5, 0);" 1
FAIL: c-c++-common/gomp/atomic-28.c  -std=c++20  scan-tree-dump-times ompexp 
".ATOMIC_COMPARE_EXCHANGE ([^\\n\\r]*, 4, 0, 0);" 1
FAIL: c-c++-common/gomp/atomic-3.c  -std=gnu++98  scan-tree-dump-times ompexp 
"xyzzy, 4" 1
FAIL: c-c++-common/gomp/atomic-3.c  -std=gnu++14  scan-tree-dump-times ompexp 
"xyzzy, 4" 1
FAIL: c-c++-common/gomp/atomic-3.c  -std=gnu++17  scan-tree-dump-times ompexp 
"xyzzy, 4" 1
FAIL: c-c++-common/gomp/atomic-3.c  -std=gnu++20  scan-tree-dump-times ompexp 
"xyzzy, 4" 1
FAIL: c-c++-common/gomp/atomic-9.c  -std=gnu++98  scan-tree-dump-times ompexp 
"__atomic_fetch_add" 1
FAIL: c-c++-common/gomp/atomic-9.c  -std=gnu++14  scan-tree-dump-times ompexp 
"__atomic_fetch_add" 1
FAIL: c-c++-common/gomp/atomic-9.c  -std=gnu++17  scan-tree-dump-times ompexp 
"__atomic_fetch_add" 1
FAIL: c-c++-common/gomp/atomic-9.c  -std=gnu++20  scan-tree-dump-times ompexp 
"__atomic_fetch_add" 1

=== g++ Summary ===

# of expected passes248953
# of unexpected failures113
# of expected failures  2605
# of unsupported tests  11627
/daten/aranym/gcc/gcc-20240530/Build/gcc/xg++  version 15.0.0 20240529 
(experimental) [master r15-912-g86b98d93998942] (GCC) 

Host   is x86_64-suse-linux-gnu

=== gcc tests ===


Running target aranym
FAIL: gcc.c-torture/execute/pr97073.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  execution test
FAIL: gcc.dg/atomic/c11-atomic-exec-5.c   -O0  execution test
FAIL: gcc.dg/atomic/c11-atomic-exec-5.c   -O1  execution test
FAIL: gcc.dg/atomic/c11-atomic-exec-5.c   -O2  execution test
FAIL: gcc.dg/atomic/c11-atomic-exec-5.c   -O3 -fomit-frame-pointer 
-funroll-loops -fpeel-loops -ftracer -finline-functions  execution test
FAIL: gcc.dg/atomic/c11-atomic-exec-5.c   -O3 -g  execution test
FAIL: gcc.dg/atomic/c11-atomic-exec-5.c   -Os  execution test
FAIL: gcc.dg/atomic/c11-atomic-exec-5.c   -O2 -flto -fno-use-linker-plugin 
-flto-partition=none  execution test
FAIL: gcc.dg/atomic/c11-atomic-exec-5.c   -O2 -flto -fuse-linker-plugin 
-fno-fat-lto-objects  execution test
FAIL: gcc.dg/debug/btf/btf-bitfields-1.c scan-assembler-times [\\t 
]0x1340[\\t ]+[^\\n]*btm_offset 1
FAIL: gcc.dg/Warray-bounds-48-novec.c (test for excess errors)
FAIL: gcc.dg/builtin-object-size-20.c scan-tree-dump-not optimized "fail"
FAIL: gcc.dg/ifcvt-4.c scan-rtl-dump ce1 "2 true changes made"
FAIL: gcc.dg/loop-9.c scan-rtl-dump loop2_invariant "Decided"
FAIL: gcc.dg/loop-9.c scan-rtl-dump loop2_invariant "without introducing a new 
temporary register"
FAIL: gcc.dg/memcmp-3.c (test for excess errors)
UNRESOLVED: gcc.dg/memcmp-3.c scan-tree-dump-not optimized "abort"
FAIL: gcc.dg/pr110279-1.c scan-tree-dump-times widening_mul "Generated FMA" 3
FAIL: gcc.dg/pr46647.c scan-tree-dump-not optimized "memset"
FAIL: gcc.dg/pr84877.c execution test
FAIL: gcc.dg/pr87954.c scan-tree-dump-times optimized " *w? 
|WIDEN_MULT_PLUS_EXPR" 1
UNRESOLVED: gcc.dg/superblock.c scan-rtl-dump-times sched2 "ADVANCING TO" 2
FAIL: c-c++-common/auto-init-7.c  -Wc++-compat   scan-tree-dump gimple "temp4 = 
.DEFERRED_INIT ((8|5), 2, &"temp4""
FAIL: c-c++-common/auto-init-8.c  -Wc++-compat   scan-tree-dump gimple "temp4 = 
.DEFERRED_INIT ((8|5), 1, &"temp4""
FAIL: c-c++-common/pr51628-3.c  -Wc++-compat   at line 16 (test for warnings, 
line 15)
FAIL: c-c++-common/pr51628-3.c  -Wc++-compat   at line 24 (test for warnings, 
line 23)
FAIL: c-c++-common/pr51628-3.c  -Wc++-compat   at line 27 (test for warnings, 
line 26)
FAIL: c-c++-common/pr51628-3.c  -Wc++-compat   at line 30 (test for warnings, 
line 29)
FAIL: c-c++-common/pr51628-3.c  -Wc++-compat   at line 32 (test for warnings, 
line 31)
FAIL: c-c++-common/pr51628-3.c  -Wc++-compat   at line 34 (test for warnings, 
line 33)
FAIL: c-c++-common/gomp/allocate-10.c scan-tree-dump-times gimple "B1.[0-9]+ = 
__builtin_GOMP_alloc (4, 12, my_handle);" 1
FAIL: c-c++-common/gomp/atomic-10.c scan-tree-dump-times ompexp 
"__atomic_fetch_add" 4
FAIL: c-c++-common/gomp/atomic-28.c scan-tree-dump-times ompexp 
".ATOMIC_COMPARE_EXCHANGE ([^\\n\\r]*, 4, 5, 5);" 1
FAIL: c-c++-common/gomp/atomic-28.c scan-tree-dump-times ompexp 
".ATOMIC_COMPARE_EXCHANGE ([^\\n\\r]*, 

Re: [PATCH v3 #2/2] [rs6000] adjust return_pc debug attrs

2024-05-30 Thread Segher Boessenkool
Hi Alex,

On Thu, May 30, 2024 at 01:40:27PM -0300, Alexandre Oliva wrote:
> Sorry, I misnumbered this patch as #1/2 when first posting v3.

I see at least five completely different patches in this email thread,
with different subjects and all.

> On May 28, 2024, Segher Boessenkool  wrote:
> 
> > Please don't (incorrectly!) line-wrap changelogs.  Lines are 80
> > characters wide, not 60 or 72 or whatever.  80.  Indents are tabs that
> > take 8 columns.
> 
> ACK.  When was it bumped up to 80, BTW?  It wasn't always like that, was
> it?

It always was like that.  Some people say 79, that is fine too.

It mostly irks me because lines that end in : and then a lot of empty
space look like peoople used one of those awful "write the changelog for
me" helper things, that *at best* *slow you down*, and always (always!)
cause worse results.

> I've noticed that something seems to change my line width settings
> in Emacs, but I must have missed that memo.

Line length in source code is 79 or 80.  In email it is 72 or so.  This
has not changed since the dawn of time :-)

> >> +/* Return the offset to be added to the label output after CALL_INSN
> >> +   to compute the address to be placed in DW_AT_call_return_pc.  */
> >> +
> >> +static int
> >> +rs6000_call_offset_return_label (rtx_insn *call_insn)
> >> +{
> >> +  /* All rs6000 CALL_INSN output patterns start with a b or bl, always
> 
> > This isn't true.  There is a crlogical insn before the bcl for sysv for
> > example.
> 
> Hmm, if that's so, this function will have to look at the insn and
> recognize those cases and use a different way to compute the offset.
> 
> However, I don't see any relevant uses of bcl in output patterns for
> insns containing a call rtx.

bl, bcl, what's the difference (bit 4 is, heh, 16 vs. 18).  Read bl if
you want -- the point is that there are crlogical insns before the
branch-and-link.

> >> +we compute the offset
> >> + back to the address of the call opcode proper, then add the
> >> + constant 4 bytes, to get the address after that opcode.  */
> >> +  return 4 - get_attr_length (call_insn);
> 
> > Please explain this magic, too -- in code preferably (so with a ? :
> > maybe, but don't try to "optimise" that expression, let the compiler
> > do that, it is much better at it anyway :-) )
> 
> There's neither optimization nor magic, it's literally what's written in
> the comment quoted above: starting from the label at the end of the call
> insn (that's what the caller offsets from, as in the documentation in
> the actual #1/2), subtract the length (to get to the address of the call
> opcode), and add 4 (to get past the call opcode).  Ok, I've reordered
> the two addends for an IMHO more readable expression, but that was all.

4 - length does not make any sense /an sich/, it *is* magic.

It is not clear it is correct at all, either.

> > Is that correct for all ABIs we support?  

(Context missing!  What did I ask?)

> Back when I wrote this patchset, I went through all call opcodes I could
> find in the md and .c files within rs6000/, and I was satisfied that it
> covered what we had then, but I won't pretend to know all about all of
> the ppc ABIs.  I may have missed disguised call insns, too.  I was
> hoping some ppc maintainer, more familiar with the port than I am, would
> catch any trouble on review and let me know about pitfalls and surprises
> to watch out for.

Yeah, things don't work that way.  If you need help, *ask* for that.
Don't pretend a patch is good if you have doubts yourself!

> > Even if so, it needs a lot more documentation than this.
> 
> I can write more documentation, but I'm at a loss as to what you're
> hoping for.  If you set clearer expectations, I'll be glad to oblige.

I want a patch submission that is a) understandable and b) a good thing
to have.  If a patch leaves me wondering what is going on at all, that
is not ideal ;-)


Segher


[Bug sanitizer/84508] Load of misaligned address using _mm_load_sd

2024-05-30 Thread pcordes at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84508

--- Comment #27 from Peter Cordes  ---
(In reply to Hongtao Liu from comment #26)
> (In reply to Hongtao Liu from comment #25)
> > (In reply to Peter Cordes from comment #22)
> > > Why are we adding an alignment requirement to _mm_storel_pd, the intrinsic
> > > for MOVLPD?
> > > 
> > From Intel intrinsic guide[1], there's explict "mem_addr does not need to be
> > aligned on any particular boundary" for mm_store_sd, but not for
> > _mm_storel_pd.
> > [1] https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html
> > 
> But for mm_loadl_pd, it also says no need for alignment, I need to confirm
> with my peers if there's any specific purpose on that.
> And yes, for <16-byte memory access, there's no alignment requirement
> functionally.

Interesting, yes some entries explicitly say the memory can be unaligned, some
don't.  But I don't think we should read that as alignment required being the
default if not stated.  Every intrinsic that does require alignment explicitly
says so.  (Like _mm_load_si128.)  We could make the same argument in the other
direction, that if an alignment requirement isn't mentioned, we should assume
there isn't one.

And I already posted earlier about why we shouldn't assume C semantics based on
the pointer type as Andrew Pinski had thought.  Intel's intrinsic docs were
originally written for ICC (classic), which takes intrinsics very literally: an
intrinsic in the C source will (almost?) always compile to the corresponding
asm instruction.  And presumably not optimizing based on pointer-alignment UB
even on a deref.  And definitely not on strict-aliasing UB.

So the C defaults for deref of a double* or __m64* shouldn't be assumed even
when the docs don't say anything about alignment.  They also don't mention
aliasing but we know from Intel's examples of how to use intrinsics (I think)
that the load/store intrinsics are all may_alias accesses.

Intel's current ICX compiler is based on LLVM which does care about aliasing
and alignment UB when optimizing, but their intrinsic docs still read like
they're thinking more in terms of asm than in terms of the C abstract machine. 
Probably they haven't been rewritten with that in mind since they implement
them (in their own compilers) so they Just Work even when aliasing other types
or without alignment.

[Bug ada/115292] [15 Regression] i686-darwin17 bootstrap fails for Ada (between r15-856 and r15-889)

2024-05-30 Thread ebotcazou at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115292

Eric Botcazou  changed:

   What|Removed |Added

 Ever confirmed|0   |1
 CC||ebotcazou at gcc dot gnu.org
 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2024-05-30

--- Comment #1 from Eric Botcazou  ---
Can you post the list of ACATS regressions on the 32-bit host?

Re: [PATCH v3 #1/2] [rs6000] adjust return_pc debug attrs

2024-05-30 Thread Segher Boessenkool
On Wed, May 29, 2024 at 03:52:15AM -0300, Alexandre Oliva wrote:
> On May 27, 2024, "Kewen.Lin"  wrote:
> 
> > I wonder if it's possible to have a test case for this?
> 
> gcc.dg/guality/pr54519-[34].c at -O[1g] are fixed by this patch on
> ppc64le-linux-gnu.  Are these the sort of test case you're interested
> in, or are you looking for something that tests the offsets in debug
> info, rather than the end-to-end debugging feature?

A testcase specifically for this would be good, yes.  Where you can say
at the top of the file "This tests that ... [X and Y]" :-)


Segher


  1   2   3   >