Results for 15.0.0 20240522 (experimental) [master r15-764-g73a167cfa22] (GCC) testsuite on i686-pc-linux-gnu
LAST_UPDATED: Wed May 22 03:55:48 UTC 2024 (revision r15-764-g73a167cfa22) 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:
Order Inquiry
Dear Sir/Ma Please wants to place an order, kindly send your product list or catalogue to the below email (sa...@fuliejiatrading.com) -- Best Regards, Fernando Leite _Sales Import mailto:fernando-yvyra...@dagee.tw M +34 627 204 609 · Portable français +33 767 998 653 T +34 935 086 580 BARCELONA · Spain https://www.yvyra.es | https://www.exterpark.com -- Best Regards, Fernando Leite Sales Export
[Bug web/115183] New: GCCGO appears twice at https://gcc.gnu.org/onlinedocs/14.1.0/
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115183 Bug ID: 115183 Summary: GCCGO appears twice at https://gcc.gnu.org/onlinedocs/14.1.0/ Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: web Assignee: unassigned at gcc dot gnu.org Reporter: dilyan.palauzov at aegee dot org Target Milestone: --- https://gcc.gnu.org/onlinedocs/14.1.0/ spells twice “GCCGO 14.1 Manual (also in PDF or PostScript or an HTML tarball)”. Likewise at https://gcc.gnu.org/onlinedocs/13.1.0/, https://gcc.gnu.org/onlinedocs/13.2.0/ and https://gcc.gnu.org/onlinedocs/13.3.0/. https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Modules.html contains “they provideS a modular compilation system”.
[Bug target/115069] [14/15 regression] 8 bit integer vector performance regression, x86, between gcc-14 and gcc-13 using avx2 target clones on skylake platform
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115069 Hongtao Liu changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #23 from Hongtao Liu --- Fixed in GCC15 and GCC14.2
Results for 12.3.1 20240522 [remotes/origin/releases/gcc-12 r12-10462-g13ced602f1] (GCC) testsuite on powerpc64le-unknown-linux-gnu
git commit g:13ced602f1543320968220ccb31d4757487a2e08 gcc-descr r12-10462-g13ced602f15433 power8 Linux 5.4.0-177-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: Wed May 22 03:47:37 UTC 2024 (revision r12-10462-g13ced602f1) 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
[V2 PATCH] Don't reduce estimated unrolled size for innermost loop at cunrolli.
>> Hard to find a default value satisfying all testcases. >> some require loop unroll with 7 insns increment, some don't want loop >> unroll w/ 5 insn increment. >> The original 2/3 reduction happened to meet all those testcases(or the >> testcases are constructed based on the old 2/3). >> Can we define the parameter as the size of the loop, below the size we >> still do the reduction, so the small loop can be unrolled? >Yeah, that's also a sensible possibility. Does it work to have a parameter >for the unrolled body size? Thus, amend the existing >--param max-completely-peeled-insns with a --param >max-completely-peeled-insns-nogrowth? Update V2: It's still hard to find a default value for loop boday size. So I move the 2 / 3 reduction from estimated_unrolled_size to try_unroll_loop_completely. For the check of body size shrink, 2 / 3 reduction is added, so small loops can still be unrolled. For the check of comparison between body size and param_max_completely_peeled_insns, 2 / 3 is conditionally added for loop->inner || !cunrolli. Then the patch avoid gcc testsuite regression, and also prevent big inner loop completely unrolled at cunrolli. -- For the innermost loop, after completely loop unroll, it will most likely not be able to reduce the body size to 2/3. The current 2/3 reduction will make some of the larger loops completely unrolled during cunrolli, which will then result in them not being able to be vectorized. It also increases the register pressure. The patch move from estimated_unrolled_size to the 2/3 reduction at cunrolli. Bootstrapped and regtested on x86_64-pc-linux-gnu{-m32,}. Ok for trunk? gcc/ChangeLog: PR tree-optimization/112325 * tree-ssa-loop-ivcanon.cc (estimated_unrolled_size): Move the 2 / 3 loop body size reduction to .. (try_unroll_loop_completely): .. here, add it for the check of body size shrink, and the check of comparison against param_max_completely_peeled_insns when (!cunrolli ||loop->inner). (canonicalize_loop_induction_variables): Add new parameter cunrolli and pass down. (tree_unroll_loops_completely_1): Ditto. (tree_unroll_loops_completely): Ditto. (canonicalize_induction_variables): Handle new parameter. (pass_complete_unrolli::execute): Ditto. (pass_complete_unroll::execute): Ditto. gcc/testsuite/ChangeLog: * gcc.dg/tree-ssa/pr112325.c: New test. * gcc.dg/vect/pr69783.c: Add extra option --param max-completely-peeled-insns=300. --- gcc/testsuite/gcc.dg/tree-ssa/pr112325.c | 57 gcc/testsuite/gcc.dg/vect/pr69783.c | 2 +- gcc/tree-ssa-loop-ivcanon.cc | 45 ++- 3 files changed, 83 insertions(+), 21 deletions(-) create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/pr112325.c diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr112325.c b/gcc/testsuite/gcc.dg/tree-ssa/pr112325.c new file mode 100644 index 000..14208b3e7f8 --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr112325.c @@ -0,0 +1,57 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-cunrolli-details" } */ + +typedef unsigned short ggml_fp16_t; +static float table_f32_f16[1 << 16]; + +inline static float ggml_lookup_fp16_to_fp32(ggml_fp16_t f) { +unsigned short s; +__builtin_memcpy(, , sizeof(unsigned short)); +return table_f32_f16[s]; +} + +typedef struct { +ggml_fp16_t d; +ggml_fp16_t m; +unsigned char qh[4]; +unsigned char qs[32 / 2]; +} block_q5_1; + +typedef struct { +float d; +float s; +char qs[32]; +} block_q8_1; + +void ggml_vec_dot_q5_1_q8_1(const int n, float * restrict s, const void * restrict vx, const void * restrict vy) { +const int qk = 32; +const int nb = n / qk; + +const block_q5_1 * restrict x = vx; +const block_q8_1 * restrict y = vy; + +float sumf = 0.0; + +for (int i = 0; i < nb; i++) { +unsigned qh; +__builtin_memcpy(, x[i].qh, sizeof(qh)); + +int sumi = 0; + +for (int j = 0; j < qk/2; ++j) { +const unsigned char xh_0 = ((qh >> (j + 0)) << 4) & 0x10; +const unsigned char xh_1 = ((qh >> (j + 12)) ) & 0x10; + +const int x0 = (x[i].qs[j] & 0xF) | xh_0; +const int x1 = (x[i].qs[j] >> 4) | xh_1; + +sumi += (x0 * y[i].qs[j]) + (x1 * y[i].qs[j + qk/2]); +} + +sumf += (ggml_lookup_fp16_to_fp32(x[i].d)*y[i].d)*sumi + ggml_lookup_fp16_to_fp32(x[i].m)*y[i].s; +} + +*s = sumf; +} + +/* { dg-final { scan-tree-dump {(?n)Not unrolling loop [1-9] \(--param max-completely-peel-times limit reached} "cunrolli"} } */ diff --git a/gcc/testsuite/gcc.dg/vect/pr69783.c b/gcc/testsuite/gcc.dg/vect/pr69783.c index 5df95d0ce4e..a1f75514d72 100644 --- a/gcc/testsuite/gcc.dg/vect/pr69783.c +++ b/gcc/testsuite/gcc.dg/vect/pr69783.c @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* {
[Bug c++/104678] pointer to member cannot be passed as template argument after derived/base cast
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104678 Saurav Yadav <3y3p4tch at protonmail dot com> changed: What|Removed |Added CC||3y3p4tch at protonmail dot com --- Comment #2 from Saurav Yadav <3y3p4tch at protonmail dot com> --- Hi, I've been hitting this case as well. It's still present on trunk. Can someone take a look?
Re: [PATCH][_Hashtable] Fix some implementation inconsistencies
Ping ? On 13/05/2024 06:33, François Dumont wrote: libstdc++: [_Hashtable] Fix some implementation inconsistencies Get rid of the different usages of the mutable keyword except in _Prime_rehash_policy where it is preserved for abi compatibility reason. Fix comment to explain that we need the computation of bucket index noexcept to be able to rehash the container when needed. For Standard instantiations through std::unordered_xxx containers we already force caching of hash code when hash functor is not noexcep so it is guarantied. The static_assert purpose in _Hashtable on _M_bucket_index is thus limited to usages of _Hashtable with exotic _Hashtable_traits. libstdc++-v3/ChangeLog: * include/bits/hashtable_policy.h (_NodeBuilder<>::_S_build): Remove const qualification on _NodeGenerator instance. (_ReuseOrAllocNode<>::operator()(_Args&&...)): Remove const qualification. (_ReuseOrAllocNode<>::_M_nodes): Remove mutable. (_Insert_base<>::_M_insert_range): Remove _NodeGetter const qualification. (_Hash_code_base<>::_M_bucket_index(const _Hash_node_value<>&, size_t)): Simplify noexcept declaration, we already static_assert that _RangeHash functor is noexcept. * include/bits/hashtable.h: Rework comments. Remove const qualifier on _NodeGenerator& arguments. Tested under Linux x64, ok to commit ? François
Results for 14.1.1 20240522 [releases/gcc-14 r14-10229-g1ad5c9d524d] (GCC) testsuite on i686-pc-linux-gnu
LAST_UPDATED: Wed May 22 02:35:08 UTC 2024 (revision r14-10229-g1ad5c9d524d) 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 12.3.1 20240522 [remotes/origin/releases/gcc-12 r12-10462-g13ced602f1] (GCC) testsuite on powerpc64-unknown-linux-gnu
git commit g:13ced602f1543320968220ccb31d4757487a2e08 gcc-descr r12-10462-g13ced602f15433 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: Wed May 22 03:25:58 UTC 2024 (revision r12-10462-g13ced602f1) Native configuration is powerpc64-unknown-linux-gnu === g++ tests === Running target unix/-m32 === g++ Summary for unix/-m32 === # of expected passes219489 # of expected failures 1922 # of unsupported tests 10358 Running target unix/-m64 === g++ Summary for unix/-m64 === # of expected passes228234 # of expected failures 1930 # of unsupported tests 10542 === g++ Summary === # of expected passes447723 # of expected failures 3852 # of unsupported tests 20900 /home/gccbuild/build/nightly/build-gcc-12/gcc/xg++ version 12.3.1 20240522 [remotes/origin/releases/gcc-12 r12-10462-g13ced602f1] (GCC) === gcc tests === Running target unix/-m32 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 scan-tree-dump-times vect "vectorized 1 loops" 1 XPASS: gcc.dg/vect/slp-24-big-array.c scan-tree-dump-times vect "vectorizing stmts using SLP" 2 XPASS: gcc.dg/vect/slp-24-big-array.c -flto -ffat-lto-objects scan-tree-dump-times vect "vectorized 1 loops" 1 XPASS: gcc.dg/vect/slp-24-big-array.c -flto -ffat-lto-objects scan-tree-dump-times vect "vectorizing stmts using SLP" 2 XPASS: gcc.dg/vect/slp-24.c scan-tree-dump-times vect "vectorized 1 loops" 1 XPASS: gcc.dg/vect/slp-24.c scan-tree-dump-times vect "vectorizing stmts using SLP" 2 XPASS: gcc.dg/vect/slp-24.c -flto -ffat-lto-objects scan-tree-dump-times vect "vectorized 1 loops" 1 XPASS: gcc.dg/vect/slp-24.c -flto -ffat-lto-objects scan-tree-dump-times vect "vectorizing stmts using SLP" 2 FAIL: gcc.target/powerpc/bfp/scalar-test-data-class-12.c (test for excess errors) UNRESOLVED: gcc.target/powerpc/bfp/scalar-test-data-class-12.c compilation failed to produce executable FAIL: gcc.target/powerpc/bfp/scalar-test-data-class-14.c (test for excess errors) UNRESOLVED: gcc.target/powerpc/bfp/scalar-test-data-class-14.c compilation failed to produce executable FAIL: gcc.target/powerpc/bfp/scalar-test-data-class-15.c (test for excess errors) UNRESOLVED: gcc.target/powerpc/bfp/scalar-test-data-class-15.c compilation failed to produce executable FAIL: gcc.target/powerpc/bfp/scalar-test-neg-8.c (test for excess errors) UNRESOLVED: gcc.target/powerpc/bfp/scalar-test-neg-8.c compilation failed to produce executable FAIL: gcc.target/powerpc/bfp/vec-test-data-class-9.c (test for excess errors) UNRESOLVED: gcc.target/powerpc/bfp/vec-test-data-class-9.c compilation failed to produce executable FAIL: gcc.target/powerpc/fold-vec-extract-char.p7.c scan-assembler-times maddiM 9 FAIL: gcc.target/powerpc/fold-vec-extract-double.p7.c scan-assembler-times maddiM|maddM 3 FAIL: gcc.target/powerpc/fold-vec-extract-float.p7.c scan-assembler-times maddiM|maddM 3 FAIL: gcc.target/powerpc/fold-vec-extract-float.p8.c scan-assembler-times maddiM 2 FAIL: gcc.target/powerpc/fold-vec-extract-int.p7.c scan-assembler-times maddiM|maddM 12 FAIL: gcc.target/powerpc/fold-vec-extract-int.p8.c scan-assembler-times maddiM 9 FAIL: gcc.target/powerpc/fold-vec-extract-short.p7.c scan-assembler-times maddiM|maddM 12 FAIL: gcc.target/powerpc/fold-vec-extract-short.p8.c scan-assembler-times maddiM 9 FAIL: gcc.target/powerpc/pr101384-2.c scan-assembler-times mvspltis[whb] [^nr]*,-1M 9 FAIL: gcc.target/powerpc/rs6000-fpint.c scan-assembler-not stfiwx XPASS: gcc.target/powerpc/ppc-fortran/ieee128-math.f90 -O (test for excess errors) === gcc Summary for unix/-m32 === # of
Results for 15.0.0 20240522 (experimental) [master r15-764-g73a167cfa22] (GCC) testsuite on x86_64-pc-linux-gnu
LAST_UPDATED: Wed May 22 02:40:09 UTC 2024 (revision r15-764-g73a167cfa22) 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
Results for 14.1.1 20240522 [releases/gcc-14 r14-10229-g1ad5c9d524d] (GCC) testsuite on x86_64-pc-linux-gnu
LAST_UPDATED: Wed May 22 02:35:09 UTC 2024 (revision r14-10229-g1ad5c9d524d) 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
Results for 15.0.0 20240521 (experimental) [master r15-756-g20e6f36771d] (GCC) testsuite on s390x-ibm-linux-gnu arch14
LAST_UPDATED: Tue May 21 17:04:56 UTC 2024 (revision r15-756-g20e6f36771d) === acats tests === FAIL: cb1010a FAIL: cxa4001 === acats Summary === # of expected passes2326 # of unexpected failures2 Native configuration is s390x-ibm-linux-gnu arch14 === 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/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 map(from:array_so [len:
Regressions on native/releases/gcc-13 at commit r13-8789 vs commit r13-8786 on Linux/x86_64
Regressions on releases/gcc-13 at commit r13-8789 vs commit r13-8786 on Linux/x86_64 New failures: FAIL: libgomp.c/examples-4/teams-4.c execution test FAIL: libgomp.c++/../libgomp.c-c++-common/for-11.c execution test FAIL: libgomp.c/../libgomp.c-c++-common/for-11.c execution test FAIL: libgomp.c/../libgomp.c-c++-common/for-14.c execution test FAIL: libgomp.c++/../libgomp.c-c++-common/for-3.c execution test FAIL: libgomp.c/../libgomp.c-c++-common/for-3.c execution test FAIL: libgomp.c/../libgomp.c-c++-common/for-5.c execution test FAIL: libgomp.c/../libgomp.c-c++-common/for-6.c execution test FAIL: libgomp.c/../libgomp.c-c++-common/for-9.c execution test New passes:
Results for 15.0.0 20240522 (experimental) [remotes/origin/HEAD r15-763-gffab721f3c] (GCC) testsuite on powerpc64le-unknown-linux-gnu
git commit g:ffab721f3c9ecbb9831844d844ad257b69a77993 gcc-descr r15-763-gffab721f3c9ecb power8 Linux 5.4.0-177-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: Wed May 22 01:49:58 UTC 2024 (revision r15-763-gffab721f3c) 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:
Results for 15.0.0 20240522 (experimental) [master r15-763-gffab721f3c9] (GCC) testsuite on i686-pc-linux-gnu
LAST_UPDATED: Wed May 22 01:40:21 UTC 2024 (revision r15-763-gffab721f3c9) 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:
Regressions on native/releases/gcc-14 at commit r14-10227 vs commit r14-10225 on Linux/x86_64
Regressions on releases/gcc-14 at commit r14-10227 vs commit r14-10225 on Linux/x86_64 New failures: FAIL: gcc.dg/vect/tsvc/vect-tsvc-s317.c execution test FAIL: gcc.dg/vect/tsvc/vect-tsvc-s317.c -flto -ffat-lto-objects execution test FAIL: libgomp.c/examples-4/teams-4.c execution test FAIL: libgomp.c++/../libgomp.c-c++-common/for-11.c execution test FAIL: libgomp.c++/../libgomp.c-c++-common/for-12.c execution test FAIL: libgomp.c++/../libgomp.c-c++-common/for-14.c execution test FAIL: libgomp.c++/../libgomp.c-c++-common/for-15.c execution test FAIL: libgomp.c/../libgomp.c-c++-common/for-15.c execution test FAIL: libgomp.c++/../libgomp.c-c++-common/for-3.c execution test FAIL: libgomp.c/../libgomp.c-c++-common/for-3.c execution test FAIL: libgomp.c++/../libgomp.c-c++-common/for-9.c execution test New passes:
Re: [PATCH v2] [testsuite] xfail pr79004 on longdouble64; drop long_double_64bit (was: ppc: testsuite: pr79004 needs -mlong-double-128)
Hi, on 2024/5/21 11:04, Alexandre Oliva wrote: > On May 8, 2024, "Kewen.Lin" wrote: > How about the generic one "longdouble64"? I did a grep and found it has one use, I'd expect it can work here. :) >>> >>> ... since this and longdouble128 exist, maybe we can fix it and leave >>> them all alone, despite the interface oddity. >>> >> ... personally I'm inclined to drop this 64 bit one. :) > > Some of the asm opcodes expected by pr79004 depend on > -mlong-double-128 to be output. E.g., without this flag, the > conditions of patterns @extenddf2 and extendsf2 do not > hold, and so GCC resorts to libcalls instead of even trying > rs6000_expand_float128_convert. > > Perhaps the conditions are too strict, and they could enable the use > of conversion insns involving __ieee128/_Float128 even with 64-bit > long doubles. > > For now, xfail the opcodes that are not available on longdouble64. > > While at that, drop long_double_64bit, since it's broken and sort of > redundant. > > Regstrapped on x86_64-linux-gnu, also tested with gcc-13 on ppc64-vx7r2. > Ok to install? OK for trunk, thanks! BR, Kewen > > > for gcc/testsuite/ChangeLog > > PR target/105359 > * gcc.target/powerpc/pr79004.c: Xfail opcodes not available on > longdouble64. > * lib/target-supports.exp > (check_effective_target_long_double_64bit): Drop. > (add_options_for_long_double_64bit): Likewise. > --- > gcc/testsuite/gcc.target/powerpc/pr79004.c | 14 + > gcc/testsuite/lib/target-supports.exp | 43 > > 2 files changed, 8 insertions(+), 49 deletions(-) > > diff --git a/gcc/testsuite/gcc.target/powerpc/pr79004.c > b/gcc/testsuite/gcc.target/powerpc/pr79004.c > index caf1f6c1eefe4..2cb8bf4bc14bc 100644 > --- a/gcc/testsuite/gcc.target/powerpc/pr79004.c > +++ b/gcc/testsuite/gcc.target/powerpc/pr79004.c > @@ -100,10 +100,12 @@ void to_uns_short_store_n (TYPE a, unsigned short *p, > long n) { p[n] = (unsigned > void to_uns_int_store_n (TYPE a, unsigned int *p, long n) { p[n] = (unsigned > int)a; } > void to_uns_long_store_n (TYPE a, unsigned long *p, long n) { p[n] = > (unsigned long)a; } > > -/* { dg-final { scan-assembler-not {\mbl __} } } */ > -/* { dg-final { scan-assembler {\mxscvdpqp\M} } } */ > -/* { dg-final { scan-assembler {\mxscvqpdp\M} } } */ > -/* { dg-final { scan-assembler {\mxscvqpdpo\M} } } */ > +/* On targets with 64-bit long double, some opcodes to deal with __float128 > are > + disabled, see PR target/105359. */ > +/* { dg-final { scan-assembler-not {\mbl __} { xfail longdouble64 } } > } */ > +/* { dg-final { scan-assembler {\mxscvdpqp\M} { xfail longdouble64 } } > } */ > +/* { dg-final { scan-assembler {\mxscvqpdp\M} { xfail longdouble64 } } > } */ > +/* { dg-final { scan-assembler {\mxscvqpdpo\M} { xfail longdouble64 } } > } */ > /* { dg-final { scan-assembler {\mxscvqpsdz\M} } } */ > /* { dg-final { scan-assembler {\mxscvqpswz\M} } } */ > /* { dg-final { scan-assembler {\mxscvsdqp\M} } } */ > @@ -111,7 +113,7 @@ void to_uns_long_store_n (TYPE a, unsigned long *p, long > n) { p[n] = (unsigned l > /* { dg-final { scan-assembler {\mlxsd\M} } } */ > /* { dg-final { scan-assembler {\mlxsiwax\M} } } */ > /* { dg-final { scan-assembler {\mlxsiwzx\M} } } */ > -/* { dg-final { scan-assembler {\mlxssp\M} } } */ > +/* { dg-final { scan-assembler {\mlxssp\M} { xfail longdouble64 } } > } */ > /* { dg-final { scan-assembler {\mstxsd\M} } } */ > /* { dg-final { scan-assembler {\mstxsiwx\M} } } */ > -/* { dg-final { scan-assembler {\mstxssp\M}} } */ > +/* { dg-final { scan-assembler {\mstxssp\M}{ xfail longdouble64 } } > } */ > diff --git a/gcc/testsuite/lib/target-supports.exp > b/gcc/testsuite/lib/target-supports.exp > index ec9baa4f32a30..dc7d4f2b5f39e 100644 > --- a/gcc/testsuite/lib/target-supports.exp > +++ b/gcc/testsuite/lib/target-supports.exp > @@ -2930,49 +2930,6 @@ proc add_options_for_long_double_ieee128 { flags } { > return "$flags" > } > > -# Check if GCC and GLIBC supports explicitly specifying that the long double > -# format uses the IEEE 64-bit. Under little endian PowerPC Linux, you need > -# GLIBC 2.32 or later to be able to use a different long double format for > -# running a program than the system default. > - > -proc check_effective_target_long_double_64bit { } { > -return [check_runtime_nocache long_double_64bit { > - #include > - #include > - /* use volatile to prevent optimization. */ > - volatile double a = 3.0; > - volatile long double one = 1.0L; > - volatile long double two = 2.0L; > - volatile long double b; > - char buffer[20]; > - int main() > - { > - double a2; > - long double b2; > - if (sizeof (long double) != 8) > - return 1; > - b = one + two; > - /*
Results for 15.0.0 20240522 (experimental) [master revision gcc-15-764-g73a167cfa22] (GCC) testsuite on armv8l-unknown-linux-gnueabihf
# From https://ci.linaro.org/job/tcwg_gcc_check--master-arm-build/2146/: LAST_UPDATED: 2024-05-22T03:06:40+00:00 (master revision gcc-15-764-g73a167cfa22) armv8l-unknown-linux-gnueabihf Native configuration is armv8l-unknown-linux-gnueabihf === libatomic tests === Running target tcwg-local === libatomic Summary === # of expected passes44 # of unsupported tests 5 === libgomp tests === Running target tcwg-local XPASS: libgomp.c/alloc-pinned-1.c execution test XPASS: libgomp.c/alloc-pinned-2.c execution test FAIL: libgomp.oacc-c++/../libgomp.oacc-c-c++-common/acc_prof-kernels-1.c -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -foffload=disable -O2 at line 190 (test for warnings, line 185) FAIL: libgomp.oacc-c++/../libgomp.oacc-c-c++-common/acc_prof-kernels-1.c -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -foffload=disable -O2 at line 221 (test for warnings, line 214) FAIL: libgomp.oacc-c++/../libgomp.oacc-c-c++-common/acc_prof-kernels-1.c -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -foffload=disable -O2 at line 252 (test for warnings, line 245) FAIL: libgomp.oacc-c++/../libgomp.oacc-c-c++-common/acc_prof-kernels-1.c -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -foffload=disable -O2 (test for excess errors) FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/acc_prof-kernels-1.c -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -foffload=disable -O2 at line 190 (test for warnings, line 185) FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/acc_prof-kernels-1.c -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -foffload=disable -O2 at line 221 (test for warnings, line 214) FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/acc_prof-kernels-1.c -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -foffload=disable -O2 at line 252 (test for warnings, line 245) FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/acc_prof-kernels-1.c -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -foffload=disable -O2 (test for excess errors) === libgomp Summary === # of expected passes16097 # of unexpected failures8 # of unexpected successes 2 # of expected failures 284 # of unsupported tests 705 === libitm tests === Running target tcwg-local === libitm Summary === # of expected passes44 # of expected failures 3 # of unsupported tests 1 === libstdc++ tests === Running target tcwg-local FAIL: 19_diagnostics/stacktrace/current.cc -std=gnu++23 execution test FAIL: 19_diagnostics/stacktrace/current.cc -std=gnu++26 execution test FAIL: 19_diagnostics/stacktrace/entry.cc -std=gnu++23 execution test FAIL: 19_diagnostics/stacktrace/entry.cc -std=gnu++26 execution test FAIL: 19_diagnostics/stacktrace/output.cc -std=gnu++23 execution test FAIL: 19_diagnostics/stacktrace/output.cc -std=gnu++26 execution test FAIL: 19_diagnostics/stacktrace/stacktrace.cc -std=gnu++23 execution test FAIL: 19_diagnostics/stacktrace/stacktrace.cc -std=gnu++26 execution test === libstdc++ Summary === # of expected passes18313 # of unexpected failures8 # of expected failures 126 # of unsupported tests 768 === gcc tests === Running target tcwg-local XPASS: gcc.dg/Wstringop-overflow-47.c pr97027 (test for warnings, line 72) XPASS: gcc.dg/Wstringop-overflow-47.c pr97027 (test for warnings, line 77) XPASS: gcc.dg/Wstringop-overflow-47.c pr97027 note (test for warnings, line 68) FAIL: gcc.dg/fold-copysign-1.c scan-tree-dump-times cddce1 "= ABS_EXPR" 1 FAIL: gcc.dg/fold-copysign-1.c scan-tree-dump-times cddce1 "__builtin_copysign" 1 FAIL: gcc.dg/pr55152-2.c scan-tree-dump-times optimized ".COPYSIGN" 1 FAIL: gcc.dg/pr55152-2.c scan-tree-dump-times optimized "ABS_EXPR" 1 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
Results for 15.0.0 20240522 (experimental) [master r15-763-gffab721f3c] (GCC) testsuite on powerpc64-unknown-linux-gnu
git commit g:ffab721f3c9ecbb9831844d844ad257b69a77993 gcc-descr r15-763-gffab721f3c9ecb 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: Wed May 22 01:51:49 UTC 2024 (revision r15-763-gffab721f3c) 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 passes251827 # of unexpected failures1 # of expected failures 2615 # of unsupported tests 11551 Running target unix/-m64 === g++ Summary for unix/-m64 === # of expected passes260849 # of expected failures 2620 # of unsupported tests 11724 === g++ Summary === # of expected passes512676 # of unexpected failures1 # of expected failures 5235 # of unsupported tests 23275 /home/gccbuild/build/nightly/build-gcc-trunk/gcc/xg++ version 15.0.0 20240522 (experimental) [master r15-763-gffab721f3c] (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
Re: [PATCH] rs6000: load high and low part of 128bit vector independently [PR110040]
Hi, on 2024/2/26 13:43, jeevitha wrote: > Hi All, > > The following patch has been bootstrapped and regtested on powerpc64le-linux. > > PR110040 exposes an issue concerning moves from vector registers to GPRs. > There are two moves, one for upper 64 bits and the other for the lower > 64 bits. In the problematic test case, we are only interested in storing > the lower 64 bits. However, the instruction for copying the upper 64 bits > is still emitted and is dead code. This patch adds a splitter that splits > apart the two move instructions so that DCE can remove the dead code after > splitting. > > 2024-02-26 Jeevitha Palanisamy > > gcc/ > PR target/110040 > * config/rs6000/vsx.md (split pattern for V1TI to DI move): Defined. > > gcc/testsuite/ > PR target/110040 > * gcc.target/powerpc/pr110040-1.c: New testcase. > * gcc.target/powerpc/pr110040-2.c: New testcase. > > > diff --git a/gcc/config/rs6000/vsx.md b/gcc/config/rs6000/vsx.md > index 6111cc90eb7..78457f8fb14 100644 > --- a/gcc/config/rs6000/vsx.md > +++ b/gcc/config/rs6000/vsx.md > @@ -6706,3 +6706,19 @@ >"vmsumcud %0,%1,%2,%3" >[(set_attr "type" "veccomplex")] > ) > + > +(define_split > + [(set (match_operand:V1TI 0 "int_reg_operand") > + (match_operand:V1TI 1 "vsx_register_operand"))] > + "reload_completed > + && TARGET_DIRECT_MOVE_64BIT" > + [(pc)] > +{ > + rtx op0 = gen_rtx_REG (DImode, REGNO (operands[0])); > + rtx op1 = gen_rtx_REG (V2DImode, REGNO (operands[1])); > + rtx op2 = gen_rtx_REG (DImode, REGNO (operands[0]) + 1); > + rtx op3 = gen_rtx_REG (V2DImode, REGNO (operands[1])); Nit: op3 is the same as op1 (so useless and removable), just call it as src_op? Maybe op0 and op2 as dest_op0, dest_op1 to match the extracted index? > + emit_insn (gen_vsx_extract_v2di (op0, op1, GEN_INT (0))); > + emit_insn (gen_vsx_extract_v2di (op2, op3, GEN_INT (1))); Nit: GEN_INT ({0,1}) can be substituted with const{0,1}_rtx. > + DONE; > +}) > diff --git a/gcc/testsuite/gcc.target/powerpc/pr110040-1.c > b/gcc/testsuite/gcc.target/powerpc/pr110040-1.c > new file mode 100644 > index 000..fb3bd254636 > --- /dev/null > +++ b/gcc/testsuite/gcc.target/powerpc/pr110040-1.c > @@ -0,0 +1,14 @@ > +/* PR target/110040 */ > +/* { dg-do compile } */ > +/* { dg-require-effective-target powerpc_p9vector_ok } */ > +/* { dg-options "-O2 -mdejagnu-cpu=power9" } */ powerpc_p9vector_ok doesn't exist any more, you have to rebase. This also requires int128 effective target. Change it to: /* { dg-options "-O2" } */ /* { dg-require-effective-target int128 } */ /* { dg-require-effective-target powerpc_vsx } */ Since we just check no mfvsrd, I think we can even drop the "-mdejagnu-cpu=power9", could you test if it works on multiple environments? > +/* { dg-final { scan-assembler-not {\mmfvsrd\M} } } */ > + > +#include > + > +void > +foo (signed long *dst, vector signed __int128 src) > +{ > + *dst = (signed long) src[0]; > +} > + > diff --git a/gcc/testsuite/gcc.target/powerpc/pr110040-2.c > b/gcc/testsuite/gcc.target/powerpc/pr110040-2.c > new file mode 100644 > index 000..f3aa22be4e8 > --- /dev/null > +++ b/gcc/testsuite/gcc.target/powerpc/pr110040-2.c > @@ -0,0 +1,13 @@ > +/* PR target/110040 */ > +/* { dg-do compile } */ > +/* { dg-require-effective-target power10_ok } */ > +/* { dg-options "-O2 -mdejagnu-cpu=power10" } */ > +/* { dg-final { scan-assembler-not {\mmfvsrd\M} } } */ Similar to the above: /* { dg-options "-O2 -mdejagnu-cpu=power10" } */ /* { dg-require-effective-target int128 } */ /* { dg-require-effective-target powerpc_vsx } */ Also adding one comment why it requires power10. BR, Kewen > + > +#include > + > +void > +foo (signed int *dst, vector signed __int128 src) > +{ > + __builtin_vec_xst_trunc (src, 0, dst); > +} > >
Re: [PATCH 6/13] rs6000, add overloaded vec_sel with int128 arguments
Hi Carl, on 2024/5/22 08:13, Carl Love wrote: > Kewen: > > On 5/13/24 19:54, Kewen.Lin wrote: >> Hi, >> >> on 2024/4/20 05:17, Carl Love wrote: >>> rs6000, add overloaded vec_sel with int128 arguments >>> >>> Extend the vec_sel built-in to take three signed/unsigned int128 arguments >>> and return a signed/unsigned int128 result. >>> >>> Extending the vec_sel built-in makes the existing buit-ins >>> __builtin_vsx_xxsel_1ti and __builtin_vsx_xxsel_1ti_uns obsolete. The >>> patch removes these built-ins. >>> >>> The patch adds documentation and test cases for the new overloaded vec_sel >>> built-ins. >>> >>> gcc/ChangeLog: >>> * config/rs6000/rs6000-builtins.def (__builtin_vsx_xxsel_1ti, >>> __builtin_vsx_xxsel_1ti_uns): Remove built-in definitions. >>> * config/rs6000/rs6000-overload.def (vec_sel): Add new overloaded >>> definitions. >>> * doc/extend.texi: Add documentation for new vec_sel arguments. >>> >>> gcc/testsuite/ChangeLog: >>> * gcc.target/powerpc/vec_sel_runnable-int128.c: New test file. >>> --- >>> gcc/config/rs6000/rs6000-builtins.def | 6 -- >>> gcc/config/rs6000/rs6000-overload.def | 4 + >>> gcc/doc/extend.texi | 14 >>> .../powerpc/vec-sel-runnable-i128.c | 84 +++ >>> 4 files changed, 102 insertions(+), 6 deletions(-) >>> create mode 100644 gcc/testsuite/gcc.target/powerpc/vec-sel-runnable-i128.c >>> >>> diff --git a/gcc/config/rs6000/rs6000-builtins.def >>> b/gcc/config/rs6000/rs6000-builtins.def >>> index d09e21a9151..46d2ae7b7cb 100644 >>> --- a/gcc/config/rs6000/rs6000-builtins.def >>> +++ b/gcc/config/rs6000/rs6000-builtins.def >>> @@ -1931,12 +1931,6 @@ >>>const vuc __builtin_vsx_xxsel_16qi_uns (vuc, vuc, vuc); >>> XXSEL_16QI_UNS vector_select_v16qi_uns {} >>> >>> - const vsq __builtin_vsx_xxsel_1ti (vsq, vsq, vsq); >>> -XXSEL_1TI vector_select_v1ti {} >>> - >>> - const vsq __builtin_vsx_xxsel_1ti_uns (vsq, vsq, vsq); >>> -XXSEL_1TI_UNS vector_select_v1ti_uns {} >>> - >>>const vd __builtin_vsx_xxsel_2df (vd, vd, vd); >>> XXSEL_2DF vector_select_v2df {} >>> >>> diff --git a/gcc/config/rs6000/rs6000-overload.def >>> b/gcc/config/rs6000/rs6000-overload.def >>> index 68501c05289..5912c9452f4 100644 >>> --- a/gcc/config/rs6000/rs6000-overload.def >>> +++ b/gcc/config/rs6000/rs6000-overload.def >>> @@ -3274,6 +3274,10 @@ >>> VSEL_2DF VSEL_2DF_B >>>vd __builtin_vec_sel (vd, vd, vull); >>> VSEL_2DF VSEL_2DF_U >>> + vsq __builtin_vec_sel (vsq, vsq, vsq); >>> +VSEL_1TI VSEL_1TI_S >>> + vuq __builtin_vec_sel (vuq, vuq, vuq); >>> +VSEL_1TI_UNS VSEL_1TI_U >>> ; The following variants are deprecated. >>>vsll __builtin_vec_sel (vsll, vsll, vsll); >>> VSEL_2DI_B VSEL_2DI_S >>> diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi >>> index 64a43b55e2d..86b8e536dbe 100644 >>> --- a/gcc/doc/extend.texi >>> +++ b/gcc/doc/extend.texi >>> @@ -23358,6 +23358,20 @@ The programmer is responsible for understanding >>> the endianness issues involved >>> with the first argument and the result. >>> @findex vec_replace_unaligned >>> >>> +Vector select >>> + >>> +@smallexample >>> +vector signed __int128 vec_sel (vector signed __int128, >>> + vector signed __int128, vector signed __int128); >>> +vector unsigned __int128 vec_sel (vector unsigned __int128, >>> + vector unsigned __int128, vector unsigned __int128); >>> +@end smallexample >>> + >>> +The overloaded built-in @code{vec_sel} with vector signed/unsigned __int128 >>> +arguments and returns a vector selecting bits from the two source vectors >>> based >>> +on the values of the third input vector. This built-in is an extension of >>> the >>> +@code{vec_sel} built-in documented in the PVIPR. >>> + >> >> Why did you place this in a section for ISA 3.1 (Power10)? It doesn't really >> require this support. The used instance VSEL_1TI and VSEL_1TI_UNS are placed >> in altivec stanza, so it looks that we should put it under the section >> "PowerPC AltiVec Built-in Functions on ISA 2.05". And since it's an >> extension >> of @code{vec_sel} documented in the PVIPR, I prefer to just mention it's "an >> extension of the @code{vec_sel} built-in documented in the PVIPR" and >> omitting >> the description to avoid possible slightly different wording. > > Honestly, at this point in time I don't remember why I put it there. It has > been too long since I created the patch. That said, the test case requires > Power 10 do to the comparison check using built-in vec_all_eq but that is > another issue. > The built-in generates the xxsel instruction that is an ISA 2.06 instruction. > So, I would say it should to into the ISA 2.06 section. I moved it to the > ISA 2.06 section. But the underlying implementation is: const vsq __builtin_altivec_vsel_1ti (vsq, vsq, vuq); VSEL_1TI vector_select_v1ti {} const vuq __builtin_altivec_vsel_1ti_uns
Re: [PATCH] c++: canonicity of fn types w/ complex eh specs [PR115159]
On 5/21/24 21:55, Patrick Palka wrote: On Tue, 21 May 2024, Jason Merrill wrote: On 5/21/24 17:27, Patrick Palka wrote: On Tue, 21 May 2024, Jason Merrill wrote: On 5/21/24 15:36, Patrick Palka wrote: Bootstrapped and regtested on x86_64-pc-linux-gnu, does this look OK for trunk? Alternatively, I considered fixing this by incrementing comparing_specializations around the call to comp_except_specs in cp_check_qualified_type, but generally for types whose identity depends on whether comparing_specializations is set we need to use structural equality anyway IIUC. Why not both? I figured the latter change isn't necessary/observable since comparing_specializations would only make a difference for complex exception specifications, and with this patch we won't even call cp_check_qualified_type on a complex eh spec. My concern is that if we're building a function type multiple times with the same noexcept-spec, this patch would mean creating multiple equivalent function types instead of reusing one already created for the same function. + bool complex_p = (cr && cr != noexcept_true_spec + && !UNPARSED_NOEXCEPT_SPEC_P (cr)); Why treat unparsed specs differently from parsed ones? Unparsed specs are unique according to cp_tree_equal, so in turn function types with unparsed specs are unique, so it should be safe to treat such types as canonical. I'm not sure if this optimization matters though; I'm happy to remove this case. The idea that this optimization could make a difference raised the concern above. Aha, makes sense. To that end it seems we could strengthen the ce_exact in comp_except_specs to require == instead of cp_tree_equal equality when comparing two noexcept-specs; the only ce_exact callers are cp_check_qualified_type and cxx_type_hash_eq, which should be fine with that strengthening. This way, we at least do try to reuse a variant if the (complex or unparsed) noexcept-spec is exactly the same. Sounds good. Given that, we probably still want to move the canonical_eh_spec up in build_cp_fntype_variant, and pass that to cp_check_qualified_type? Like so? -- >8 -- Subject: [PATCH] c++: canonicity of fn types w/ complex eh specs [PR115159] Here the member functions QList::g and QList::h are given the same function type since their exception specifications are equivalent according to cp_tree_equal. In doing so however this means that the type of QList::h refers to a function parameter from QList::g, which ends up confusing modules streaming. I'm not sure if modules can be fixed to handle this situation, but regardless it seems weird in principle that a function parameter can escape in such a way. The analogous situation with a trailing return type and decltype auto g(QList ) -> decltype(f(other)); auto h(QList ) -> decltype(f(other)); behaves better because we don't canonicalize decltype, and so the function types of g and h are non-canonical and therefore not shared. In light of this, it seems natural to treat function types with complex eh specs as non-canonical as well so that each such function declaration is given a unique function/method type node. The main benefit of type canonicalization is to speed up repeated type comparisons, but it should rare for us to repeatedly compare two otherwise compatible function types with complex exception specifications, so foregoing canonicalization should not cause any problems. To that end, this patch strengthens the ce_exact case of comp_except_specs to require identity instead of equivalence of the exception specification so that build_cp_fntype_variant doesn't reuse a variant when it shouldn't. And in build_cp_fntype_variant we need to use structural equality for types with a complex eh spec. In turn we could simplify the code responsible for adjusting unparsed eh spec variants. PR c++/115159 gcc/cp/ChangeLog: * tree.cc (build_cp_fntype_variant): Always use structural equality for types with a complex exception specification. (fixup_deferred_exception_variants): Always use structural equality for adjusted variants. * typeck.cc (comp_except_specs): Require == instead of cp_tree_equal for noexcept-spec comparison in the ce_exact case. gcc/testsuite/ChangeLog: * g++.dg/modules/noexcept-2_a.H: New test. * g++.dg/modules/noexcept-2_b.C: New test. --- gcc/cp/tree.cc | 47 + gcc/cp/typeck.cc| 4 +- gcc/testsuite/g++.dg/modules/noexcept-2_a.H | 24 +++ gcc/testsuite/g++.dg/modules/noexcept-2_b.C | 4 ++ 4 files changed, 41 insertions(+), 38 deletions(-) create mode 100644 gcc/testsuite/g++.dg/modules/noexcept-2_a.H create mode 100644 gcc/testsuite/g++.dg/modules/noexcept-2_b.C diff --git a/gcc/cp/tree.cc b/gcc/cp/tree.cc index 9d37d255d8d..93a64322418 100644 --- a/gcc/cp/tree.cc +++ b/gcc/cp/tree.cc @@ -2794,7 +2794,12 @@
[Bug target/115069] [14/15 regression] 8 bit integer vector performance regression, x86, between gcc-14 and gcc-13 using avx2 target clones on skylake platform
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115069 --- Comment #22 from Haochen Jiang --- Fixed in GCC14 and GCC15
[gcc r14-10229] i386: Disable ix86_expand_vecop_qihi2 when !TARGET_AVX512BW
https://gcc.gnu.org/g:1ad5c9d524d8fa99773045e75da04ae958012085 commit r14-10229-g1ad5c9d524d8fa99773045e75da04ae958012085 Author: Haochen Jiang Date: Tue May 21 14:10:43 2024 +0800 i386: Disable ix86_expand_vecop_qihi2 when !TARGET_AVX512BW Since vpermq is really slow, we should avoid using it for permutation when vpmovwb is not available (needs AVX512BW) for ix86_expand_vecop_qihi2 and fall back to ix86_expand_vecop_qihi. gcc/ChangeLog: PR target/115069 * config/i386/i386-expand.cc (ix86_expand_vecop_qihi2): Do not enable the optimization when AVX512BW is not enabled. gcc/testsuite/ChangeLog: PR target/115069 * gcc.target/i386/pr115069.c: New. Diff: --- gcc/config/i386/i386-expand.cc | 7 +++ gcc/testsuite/gcc.target/i386/pr115069.c | 9 + 2 files changed, 16 insertions(+) diff --git a/gcc/config/i386/i386-expand.cc b/gcc/config/i386/i386-expand.cc index 8bb8f21e686..51efe6fdd7d 100644 --- a/gcc/config/i386/i386-expand.cc +++ b/gcc/config/i386/i386-expand.cc @@ -23963,6 +23963,13 @@ ix86_expand_vecop_qihi2 (enum rtx_code code, rtx dest, rtx op1, rtx op2) bool op2vec = GET_MODE_CLASS (GET_MODE (op2)) == MODE_VECTOR_INT; bool uns_p = code != ASHIFTRT; + /* Without VPMOVWB (provided by AVX512BW ISA), the expansion uses the + generic permutation to merge the data back into the right place. This + permutation results in VPERMQ, which is slow, so better fall back to + ix86_expand_vecop_qihi. */ + if (!TARGET_AVX512BW) +return false; + if ((qimode == V16QImode && !TARGET_AVX2) || (qimode == V32QImode && (!TARGET_AVX512BW || !TARGET_EVEX512)) /* There are no V64HImode instructions. */ diff --git a/gcc/testsuite/gcc.target/i386/pr115069.c b/gcc/testsuite/gcc.target/i386/pr115069.c new file mode 100644 index 000..50a3e033079 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr115069.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -mavx2" } */ +/* { dg-final { scan-assembler-not "vpermq" } } */ + +typedef char v16qi __attribute__((vector_size(16))); + +v16qi foo (v16qi a, v16qi b) { +return a * b; +}
[Bug target/115069] [14/15 regression] 8 bit integer vector performance regression, x86, between gcc-14 and gcc-13 using avx2 target clones on skylake platform
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115069 --- Comment #21 from GCC Commits --- The releases/gcc-14 branch has been updated by Haochen Jiang : https://gcc.gnu.org/g:1ad5c9d524d8fa99773045e75da04ae958012085 commit r14-10229-g1ad5c9d524d8fa99773045e75da04ae958012085 Author: Haochen Jiang Date: Tue May 21 14:10:43 2024 +0800 i386: Disable ix86_expand_vecop_qihi2 when !TARGET_AVX512BW Since vpermq is really slow, we should avoid using it for permutation when vpmovwb is not available (needs AVX512BW) for ix86_expand_vecop_qihi2 and fall back to ix86_expand_vecop_qihi. gcc/ChangeLog: PR target/115069 * config/i386/i386-expand.cc (ix86_expand_vecop_qihi2): Do not enable the optimization when AVX512BW is not enabled. gcc/testsuite/ChangeLog: PR target/115069 * gcc.target/i386/pr115069.c: New.
[Bug target/115069] [14/15 regression] 8 bit integer vector performance regression, x86, between gcc-14 and gcc-13 using avx2 target clones on skylake platform
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115069 --- Comment #20 from GCC Commits --- The master branch has been updated by Haochen Jiang : https://gcc.gnu.org/g:73a167cfa225d5ee7092d41596b9fea1719898ff commit r15-764-g73a167cfa225d5ee7092d41596b9fea1719898ff Author: Haochen Jiang Date: Tue May 21 14:10:43 2024 +0800 i386: Disable ix86_expand_vecop_qihi2 when !TARGET_AVX512BW Since vpermq is really slow, we should avoid using it for permutation when vpmovwb is not available (needs AVX512BW) for ix86_expand_vecop_qihi2 and fall back to ix86_expand_vecop_qihi. gcc/ChangeLog: PR target/115069 * config/i386/i386-expand.cc (ix86_expand_vecop_qihi2): Do not enable the optimization when AVX512BW is not enabled. gcc/testsuite/ChangeLog: PR target/115069 * gcc.target/i386/pr115069.c: New.
[gcc r15-764] i386: Disable ix86_expand_vecop_qihi2 when !TARGET_AVX512BW
https://gcc.gnu.org/g:73a167cfa225d5ee7092d41596b9fea1719898ff commit r15-764-g73a167cfa225d5ee7092d41596b9fea1719898ff Author: Haochen Jiang Date: Tue May 21 14:10:43 2024 +0800 i386: Disable ix86_expand_vecop_qihi2 when !TARGET_AVX512BW Since vpermq is really slow, we should avoid using it for permutation when vpmovwb is not available (needs AVX512BW) for ix86_expand_vecop_qihi2 and fall back to ix86_expand_vecop_qihi. gcc/ChangeLog: PR target/115069 * config/i386/i386-expand.cc (ix86_expand_vecop_qihi2): Do not enable the optimization when AVX512BW is not enabled. gcc/testsuite/ChangeLog: PR target/115069 * gcc.target/i386/pr115069.c: New. Diff: --- gcc/config/i386/i386-expand.cc | 7 +++ gcc/testsuite/gcc.target/i386/pr115069.c | 9 + 2 files changed, 16 insertions(+) diff --git a/gcc/config/i386/i386-expand.cc b/gcc/config/i386/i386-expand.cc index 7142c0a9d77..ec402a78a09 100644 --- a/gcc/config/i386/i386-expand.cc +++ b/gcc/config/i386/i386-expand.cc @@ -24188,6 +24188,13 @@ ix86_expand_vecop_qihi2 (enum rtx_code code, rtx dest, rtx op1, rtx op2) bool op2vec = GET_MODE_CLASS (GET_MODE (op2)) == MODE_VECTOR_INT; bool uns_p = code != ASHIFTRT; + /* Without VPMOVWB (provided by AVX512BW ISA), the expansion uses the + generic permutation to merge the data back into the right place. This + permutation results in VPERMQ, which is slow, so better fall back to + ix86_expand_vecop_qihi. */ + if (!TARGET_AVX512BW) +return false; + if ((qimode == V16QImode && !TARGET_AVX2) || (qimode == V32QImode && (!TARGET_AVX512BW || !TARGET_EVEX512)) /* There are no V64HImode instructions. */ diff --git a/gcc/testsuite/gcc.target/i386/pr115069.c b/gcc/testsuite/gcc.target/i386/pr115069.c new file mode 100644 index 000..50a3e033079 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr115069.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -mavx2" } */ +/* { dg-final { scan-assembler-not "vpermq" } } */ + +typedef char v16qi __attribute__((vector_size(16))); + +v16qi foo (v16qi a, v16qi b) { +return a * b; +}
RE: [PATCH v3] i386: Disable ix86_expand_vecop_qihi2 when !TARGET_AVX512BW
> -Original Message- > From: Uros Bizjak > Sent: Tuesday, May 21, 2024 9:04 PM > To: Jiang, Haochen > Cc: gcc-patches@gcc.gnu.org; Liu, Hongtao > Subject: Re: [PATCH v3] i386: Disable ix86_expand_vecop_qihi2 > when !TARGET_AVX512BW > > On Tue, May 21, 2024 at 11:01 AM Haochen Jiang > wrote: > > > > Hi all, > > > > This is the v3 patch to fix PR115069. The new testcase has passed. > > > > Changes in v3: > > - Simplify the testcase. > > > > Changes in v2: > > - Add a testcase. > > - Change the comment for the early exit. > > > > Thx, > > Haochen > > > > Since vpermq is really slow, we should avoid using it for permutation > > when vpmovwb is not available (needs AVX512BW) for > ix86_expand_vecop_qihi2 > > and fall back to ix86_expand_vecop_qihi. > > > > gcc/ChangeLog: > > > > PR target/115069 > > * config/i386/i386-expand.cc (ix86_expand_vecop_qihi2): > > Do not enable the optimization when AVX512BW is not enabled. > > > > gcc/testsuite/ChangeLog: > > > > PR target/115069 > > * gcc.target/i386/pr115069.c: New. > > LGTM, with a nit below. Ok and I will also backport the patch to GCC14. Thx, Haochen > > Thanks, > Uros.
Results for 15.0.0 20240522 (experimental) [master r15-762-g292fc21a8d7] (GCC) testsuite on x86_64-pc-linux-gnu
LAST_UPDATED: Wed May 22 00:40:13 UTC 2024 (revision r15-762-g292fc21a8d7) 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
[PATCH] aarch64: Fold vget_high_* intrinsics to BIT_FIELD_REF [PR102171]
This patch is a follow-up of r15-697-ga2e4fe5a53cf75 to also fold vget_high_* intrinsics to BIT_FILED_REF and remove the vget_high_* definitions from arm_neon.h to use the new intrinsics framework. PR target/102171 gcc/ChangeLog: * config/aarch64/aarch64-builtins.cc (AARCH64_SIMD_VGET_HIGH_BUILTINS): New macro to create definitions for all vget_high intrinsics. (VGET_HIGH_BUILTIN): Likewise. (enum aarch64_builtins): Add vget_high function codes. (AARCH64_SIMD_VGET_LOW_BUILTINS): Delete duplicate macro. (aarch64_general_fold_builtin): Fold vget_high calls. * config/aarch64/aarch64-simd-builtins.def: Delete vget_high builtins. * config/aarch64/aarch64-simd.md (aarch64_get_high): Delete. (aarch64_vget_hi_halfv8bf): Likewise. * config/aarch64/arm_neon.h (__attribute__): Delete. (vget_high_f16): Likewise. (vget_high_f32): Likewise. (vget_high_f64): Likewise. (vget_high_p8): Likewise. (vget_high_p16): Likewise. (vget_high_p64): Likewise. (vget_high_s8): Likewise. (vget_high_s16): Likewise. (vget_high_s32): Likewise. (vget_high_s64): Likewise. (vget_high_u8): Likewise. (vget_high_u16): Likewise. (vget_high_u32): Likewise. (vget_high_u64): Likewise. (vget_high_bf16): Likewise. gcc/testsuite/ChangeLog: * gcc.target/aarch64/vget_high_2.c: New test. * gcc.target/aarch64/vget_high_2_be.c: New test. Signed-off-by: Pengxuan Zheng --- gcc/config/aarch64/aarch64-builtins.cc| 59 +++--- gcc/config/aarch64/aarch64-simd-builtins.def | 6 - gcc/config/aarch64/aarch64-simd.md| 22 gcc/config/aarch64/arm_neon.h | 105 -- .../gcc.target/aarch64/vget_high_2.c | 30 + .../gcc.target/aarch64/vget_high_2_be.c | 31 ++ 6 files changed, 104 insertions(+), 149 deletions(-) create mode 100644 gcc/testsuite/gcc.target/aarch64/vget_high_2.c create mode 100644 gcc/testsuite/gcc.target/aarch64/vget_high_2_be.c diff --git a/gcc/config/aarch64/aarch64-builtins.cc b/gcc/config/aarch64/aarch64-builtins.cc index 11b888016ed..f8eeccb554d 100644 --- a/gcc/config/aarch64/aarch64-builtins.cc +++ b/gcc/config/aarch64/aarch64-builtins.cc @@ -675,6 +675,23 @@ static aarch64_simd_builtin_datum aarch64_simd_builtin_data[] = { VGET_LOW_BUILTIN(u64) \ VGET_LOW_BUILTIN(bf16) +#define AARCH64_SIMD_VGET_HIGH_BUILTINS \ + VGET_HIGH_BUILTIN(f16) \ + VGET_HIGH_BUILTIN(f32) \ + VGET_HIGH_BUILTIN(f64) \ + VGET_HIGH_BUILTIN(p8) \ + VGET_HIGH_BUILTIN(p16) \ + VGET_HIGH_BUILTIN(p64) \ + VGET_HIGH_BUILTIN(s8) \ + VGET_HIGH_BUILTIN(s16) \ + VGET_HIGH_BUILTIN(s32) \ + VGET_HIGH_BUILTIN(s64) \ + VGET_HIGH_BUILTIN(u8) \ + VGET_HIGH_BUILTIN(u16) \ + VGET_HIGH_BUILTIN(u32) \ + VGET_HIGH_BUILTIN(u64) \ + VGET_HIGH_BUILTIN(bf16) + typedef struct { const char *name; @@ -717,6 +734,9 @@ typedef struct #define VGET_LOW_BUILTIN(A) \ AARCH64_SIMD_BUILTIN_VGET_LOW_##A, +#define VGET_HIGH_BUILTIN(A) \ + AARCH64_SIMD_BUILTIN_VGET_HIGH_##A, + #undef VAR1 #define VAR1(T, N, MAP, FLAG, A) \ AARCH64_SIMD_BUILTIN_##T##_##N##A, @@ -753,6 +773,7 @@ enum aarch64_builtins /* SIMD intrinsic builtins. */ AARCH64_SIMD_VREINTERPRET_BUILTINS AARCH64_SIMD_VGET_LOW_BUILTINS + AARCH64_SIMD_VGET_HIGH_BUILTINS /* ARMv8.3-A Pointer Authentication Builtins. */ AARCH64_PAUTH_BUILTIN_AUTIA1716, AARCH64_PAUTH_BUILTIN_PACIA1716, @@ -855,26 +876,21 @@ static aarch64_fcmla_laneq_builtin_datum aarch64_fcmla_lane_builtin_data[] = { false \ }, -#define AARCH64_SIMD_VGET_LOW_BUILTINS \ - VGET_LOW_BUILTIN(f16) \ - VGET_LOW_BUILTIN(f32) \ - VGET_LOW_BUILTIN(f64) \ - VGET_LOW_BUILTIN(p8) \ - VGET_LOW_BUILTIN(p16) \ - VGET_LOW_BUILTIN(p64) \ - VGET_LOW_BUILTIN(s8) \ - VGET_LOW_BUILTIN(s16) \ - VGET_LOW_BUILTIN(s32) \ - VGET_LOW_BUILTIN(s64) \ - VGET_LOW_BUILTIN(u8) \ - VGET_LOW_BUILTIN(u16) \ - VGET_LOW_BUILTIN(u32) \ - VGET_LOW_BUILTIN(u64) \ - VGET_LOW_BUILTIN(bf16) +#undef VGET_HIGH_BUILTIN +#define VGET_HIGH_BUILTIN(A) \ + {"vget_high_" #A, \ + AARCH64_SIMD_BUILTIN_VGET_HIGH_##A, \ + 2, \ + { SIMD_INTR_MODE(A, d), SIMD_INTR_MODE(A, q) }, \ + { SIMD_INTR_QUAL(A), SIMD_INTR_QUAL(A) }, \ + FLAG_AUTO_FP, \ + false \ + }, static const aarch64_simd_intrinsic_datum aarch64_simd_intrinsic_data[] = { AARCH64_SIMD_VREINTERPRET_BUILTINS AARCH64_SIMD_VGET_LOW_BUILTINS + AARCH64_SIMD_VGET_HIGH_BUILTINS }; @@ -3270,6 +3286,10 @@ aarch64_fold_builtin_lane_check (tree arg0, tree arg1, tree arg2) #define VGET_LOW_BUILTIN(A) \ case AARCH64_SIMD_BUILTIN_VGET_LOW_##A: +#undef VGET_HIGH_BUILTIN +#define VGET_HIGH_BUILTIN(A) \ + case AARCH64_SIMD_BUILTIN_VGET_HIGH_##A: + /* Try to fold a call to the built-in function with subcode FCODE. The function is passed the
[PATCH] Don't simplify NAN/INF or out-of-range constant for FIX/UNSIGNED_FIX.
According to IEEE standard, for conversions from floating point to integer. When a NaN or infinite operand cannot be represented in the destination format and this cannot otherwise be indicated, the invalid operation exception shall be signaled. When a numeric operand would convert to an integer outside the range of the destination format, the invalid operation exception shall be signaled if this situation cannot otherwise be indicated. The patch prevent simplication of the conversion from floating point to integer for NAN/INF/out-of-range constant when flag_trapping_math. Bootstrapped and regtested on x86_64-pc-linux-gnu{-m32,} Ok for trunk? gcc/ChangeLog: PR rtl-optimization/100927 PR rtl-optimization/115161 PR rtl-optimization/115115 * simplify-rtx.cc (simplify_const_unary_operation): Prevent simplication of FIX/UNSIGNED_FIX for NAN/INF/out-of-range constant when flag_trapping_math. gcc/testsuite/ChangeLog: * gcc.target/i386/pr100927.c: New test. --- gcc/simplify-rtx.cc | 23 gcc/testsuite/gcc.target/i386/pr100927.c | 27 2 files changed, 46 insertions(+), 4 deletions(-) create mode 100644 gcc/testsuite/gcc.target/i386/pr100927.c diff --git a/gcc/simplify-rtx.cc b/gcc/simplify-rtx.cc index 53f54d1d392..b7a770dad60 100644 --- a/gcc/simplify-rtx.cc +++ b/gcc/simplify-rtx.cc @@ -2256,14 +2256,25 @@ simplify_const_unary_operation (enum rtx_code code, machine_mode mode, switch (code) { case FIX: + /* According to IEEE standard, for conversions from floating point to +integer. When a NaN or infinite operand cannot be represented in +the destination format and this cannot otherwise be indicated, the +invalid operation exception shall be signaled. When a numeric +operand would convert to an integer outside the range of the +destination format, the invalid operation exception shall be +signaled if this situation cannot otherwise be indicated. */ if (REAL_VALUE_ISNAN (*x)) - return const0_rtx; + return flag_trapping_math ? NULL_RTX : const0_rtx; + + if (REAL_VALUE_ISINF (*x) && flag_trapping_math) + return NULL_RTX; /* Test against the signed upper bound. */ wmax = wi::max_value (width, SIGNED); real_from_integer (, VOIDmode, wmax, SIGNED); if (real_less (, x)) - return immed_wide_int_const (wmax, mode); + return (flag_trapping_math + ? NULL_RTX : immed_wide_int_const (wmax, mode)); /* Test against the signed lower bound. */ wmin = wi::min_value (width, SIGNED); @@ -2276,13 +2287,17 @@ simplify_const_unary_operation (enum rtx_code code, machine_mode mode, case UNSIGNED_FIX: if (REAL_VALUE_ISNAN (*x) || REAL_VALUE_NEGATIVE (*x)) - return const0_rtx; + return flag_trapping_math ? NULL_RTX : const0_rtx; + + if (REAL_VALUE_ISINF (*x) && flag_trapping_math) + return NULL_RTX; /* Test against the unsigned upper bound. */ wmax = wi::max_value (width, UNSIGNED); real_from_integer (, VOIDmode, wmax, UNSIGNED); if (real_less (, x)) - return immed_wide_int_const (wmax, mode); + return (flag_trapping_math + ? NULL_RTX : immed_wide_int_const (wmax, mode)); return immed_wide_int_const (real_to_integer (x, , width), mode); diff --git a/gcc/testsuite/gcc.target/i386/pr100927.c b/gcc/testsuite/gcc.target/i386/pr100927.c new file mode 100644 index 000..b137396c30f --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr100927.c @@ -0,0 +1,27 @@ +/* { dg-do compile } */ +/* { dg-options "-msse2 -O2 -ftrapping-math" } */ +/* { dg-final { scan-assembler-times "cvttps2dq" 3 } } */ + +#include + +__m128i foo_ofr() { + const __m128i iv = _mm_set_epi32(0x4f00, 0x4f00, 0x4f00, 0x4f00); + const __m128 fv = _mm_castsi128_ps(iv); + const __m128i riv = _mm_cvttps_epi32(fv); + return riv; +} + +__m128i foo_nan() { + const __m128i iv = _mm_set_epi32(0xff81, 0xff81, 0xff81, 0xff81); + const __m128 fv = _mm_castsi128_ps(iv); + const __m128i riv = _mm_cvttps_epi32(fv); + return riv; +} + +__m128i foo_inf() { + const __m128i iv = _mm_set_epi32(0xff80, 0xff80, 0xff80, 0xff80); + const __m128 fv = _mm_castsi128_ps(iv); + const __m128i riv = _mm_cvttps_epi32(fv); + return riv; +} + -- 2.31.1
Re: [PATCH] c++: canonicity of fn types w/ complex eh specs [PR115159]
On Tue, 21 May 2024, Jason Merrill wrote: > On 5/21/24 17:27, Patrick Palka wrote: > > On Tue, 21 May 2024, Jason Merrill wrote: > > > > > On 5/21/24 15:36, Patrick Palka wrote: > > > > Bootstrapped and regtested on x86_64-pc-linux-gnu, does this look > > > > OK for trunk? > > > > > > > > Alternatively, I considered fixing this by incrementing > > > > comparing_specializations around the call to comp_except_specs in > > > > cp_check_qualified_type, but generally for types whose identity > > > > depends on whether comparing_specializations is set we need to > > > > use structural equality anyway IIUC. > > > > > > Why not both? > > > > I figured the latter change isn't necessary/observable since > > comparing_specializations would only make a difference for complex > > exception specifications, and with this patch we won't even call > > cp_check_qualified_type on a complex eh spec. > > My concern is that if we're building a function type multiple times with the > same noexcept-spec, this patch would mean creating multiple equivalent > function types instead of reusing one already created for the same function. > > > > > + bool complex_p = (cr && cr != noexcept_true_spec > > > > + && !UNPARSED_NOEXCEPT_SPEC_P (cr)); > > > > > > Why treat unparsed specs differently from parsed ones? > > > > Unparsed specs are unique according to cp_tree_equal, so in turn > > function types with unparsed specs are unique, so it should be safe to > > treat such types as canonical. I'm not sure if this optimization > > matters though; I'm happy to remove this case. > > The idea that this optimization could make a difference raised the concern > above. Aha, makes sense. To that end it seems we could strengthen the ce_exact in comp_except_specs to require == instead of cp_tree_equal equality when comparing two noexcept-specs; the only ce_exact callers are cp_check_qualified_type and cxx_type_hash_eq, which should be fine with that strengthening. This way, we at least do try to reuse a variant if the (complex or unparsed) noexcept-spec is exactly the same. Like so? -- >8 -- Subject: [PATCH] c++: canonicity of fn types w/ complex eh specs [PR115159] Here the member functions QList::g and QList::h are given the same function type since their exception specifications are equivalent according to cp_tree_equal. In doing so however this means that the type of QList::h refers to a function parameter from QList::g, which ends up confusing modules streaming. I'm not sure if modules can be fixed to handle this situation, but regardless it seems weird in principle that a function parameter can escape in such a way. The analogous situation with a trailing return type and decltype auto g(QList ) -> decltype(f(other)); auto h(QList ) -> decltype(f(other)); behaves better because we don't canonicalize decltype, and so the function types of g and h are non-canonical and therefore not shared. In light of this, it seems natural to treat function types with complex eh specs as non-canonical as well so that each such function declaration is given a unique function/method type node. The main benefit of type canonicalization is to speed up repeated type comparisons, but it should rare for us to repeatedly compare two otherwise compatible function types with complex exception specifications, so foregoing canonicalization should not cause any problems. To that end, this patch strengthens the ce_exact case of comp_except_specs to require identity instead of equivalence of the exception specification so that build_cp_fntype_variant doesn't reuse a variant when it shouldn't. And in build_cp_fntype_variant we need to use structural equality for types with a complex eh spec. In turn we could simplify the code responsible for adjusting unparsed eh spec variants. PR c++/115159 gcc/cp/ChangeLog: * tree.cc (build_cp_fntype_variant): Always use structural equality for types with a complex exception specification. (fixup_deferred_exception_variants): Always use structural equality for adjusted variants. * typeck.cc (comp_except_specs): Require == instead of cp_tree_equal for noexcept-spec comparison in the ce_exact case. gcc/testsuite/ChangeLog: * g++.dg/modules/noexcept-2_a.H: New test. * g++.dg/modules/noexcept-2_b.C: New test. --- gcc/cp/tree.cc | 47 + gcc/cp/typeck.cc| 4 +- gcc/testsuite/g++.dg/modules/noexcept-2_a.H | 24 +++ gcc/testsuite/g++.dg/modules/noexcept-2_b.C | 4 ++ 4 files changed, 41 insertions(+), 38 deletions(-) create mode 100644 gcc/testsuite/g++.dg/modules/noexcept-2_a.H create mode 100644 gcc/testsuite/g++.dg/modules/noexcept-2_b.C diff --git a/gcc/cp/tree.cc b/gcc/cp/tree.cc index 9d37d255d8d..93a64322418 100644 --- a/gcc/cp/tree.cc +++ b/gcc/cp/tree.cc @@ -2794,7 +2794,12 @@ build_cp_fntype_variant (tree type,
Results for 13.3.1 20240522 [releases/gcc-13 r13-8790-ga841964721] (GCC) testsuite on powerpc64-unknown-linux-gnu
git commit g:a841964721931b7da03760b0bc47b3ec1f212f48 gcc-descr r13-8790-ga841964721931b 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: Wed May 22 00:36:40 UTC 2024 (revision r13-8790-ga841964721) Native configuration is powerpc64-unknown-linux-gnu === g++ tests === Running target unix/-m32 FAIL: g++.dg/modules/xtreme-header-5_c.C -std=c++2a (test for excess errors) FAIL: g++.dg/modules/xtreme-header-5_c.C -std=c++2b (test for excess errors) === g++ Summary for unix/-m32 === # of expected passes226116 # of unexpected failures2 # of expected failures 1929 # of unsupported tests 10898 Running target unix/-m64 === g++ Summary for unix/-m64 === # of expected passes235076 # of expected failures 1937 # of unsupported tests 11086 === g++ Summary === # of expected passes461192 # of unexpected failures2 # of expected failures 3866 # of unsupported tests 21984 /home/gccbuild/build/nightly/build-gcc-13/gcc/xg++ version 13.3.1 20240522 [releases/gcc-13 r13-8790-ga841964721] (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 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-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:
Results for 14.1.1 20240521 [releases/gcc-14 r14-10227-g5b96d547ce7] (GCC) testsuite on i686-pc-linux-gnu
86/avx512vl-broadcast-pr87767-1.c scan-assembler-times vpbroadcastd[t ]+%(?:r|e)[^\\n]*, %xmm[0-9]+ 3 FAIL: gcc.target/i386/avx512vl-broadcast-pr87767-1.c scan-assembler-times vpbroadcastd[t ]+%(?:r|e)[^\\n]*, %ymm[0-9]+ 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/xorsign.c scan-tree-dump-times vect "vectorized 2 loops" 1 === gcc Summary === # of expected passes 196326 # of unexpected failures229 # of u
[Bug rtl-optimization/115182] New: [15 Regression] gcc.target/cris/pr93372-47.c at r15-518-g99b1daae18c095
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115182 Bug ID: 115182 Summary: [15 Regression] gcc.target/cris/pr93372-47.c at r15-518-g99b1daae18c095 Product: gcc Version: 15.0 Status: UNCONFIRMED Keywords: missed-optimization, testsuite-fail Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: hp at gcc dot gnu.org CC: law at gcc dot gnu.org, pinskia at gcc dot gnu.org, rguenth at gcc dot gnu.org, unassigned at gcc dot gnu.org Depends on: 115144 Target Milestone: --- Target: cris-elf +++ This bug was initially created as a clone of Bug #115144 +++ This bug is only about the unfilled delay-slot that caused gcc.target/cris/pr93372-47.c to fail starting at r15-518-g99b1daae18c095; not about the incidental (possibly generic but at least unrelated to delay-slot-filling) performance regression I noticed. The bug seems to be due to a bug in reorg.cc or actually, in resource.cc. Referenced Bugs: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115144 [Bug 115144] [15 Regression] 2% performance regression for some codes with r15-518-g99b1daae18c095
Results for 13.3.1 20240521 [releases/gcc-13 r13-8789-g9433e308e0c] (GCC) testsuite on i686-pc-linux-gnu
FAIL: gcc.target/i386/pr103144-shift-1.c scan-tree-dump-times vect "vectorized 1 loops" 6 FAIL: gcc.target/i386/pr71321.c scan-assembler-not lea.*0 FAIL: gcc.target/i386/pr78794.c scan-assembler pandn 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/pr95126-m32-3.c scan-assembler pushl[ t]*\$2 FAIL: gcc.target/i386/pr95126-m32-3.c scan-assembler-not movzwl FAIL: gcc.target/i386/pr95126-m32-4.c scan-assembler pushl[ t]*\$131073 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 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 FAIL: gcc.target/i386/sse4-pr39821.c scan-tree-dump-times vect "vectorized 1 loops in function" 6 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-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 === gcc Summary === # of expected passes184989 # of unexpected failures209 # of unexpected successes 31 # of expected failures 1464 # of unresolved testcases 114 # of unsupported tests 3582 /home/haochenj/src/gcc-13-regression/bld/gcc/xgcc version 13.3.1 20240521 [releases/gcc-13 r13-8789-g9433e308e0c] (GCC) === gfortran tests === Running target unix UNRESOLVED: gfortran.dg/weak-1.f90 -O UNRESOLVED: gfortran.dg/weak-2.f90 -O UNRESOLVED: gfortran.dg/weak-3.f90 -O === gfortran Summary === # of expected passes68210 # of expected failures 261 # of unresolved testcases 3 # of unsupported tests 219 /home/haochenj/src/gcc-13-regression/bld/gcc/gfortran version 13.3.1 20240521 [releases/gcc-13 r13-8789-g9433e308e0c] (GCC) === g++ tests === Running target unix 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, 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/asan_test.C -O2 AddressSanitizer_StrtolOOBTest Strtol(array, NULL, 36) execution test FAIL: g++.dg/asan/asan_test.C -O2 AddressSanitizer_StrtollOOBTest Strtol(array + 3, NULL, 0)
Results for 13.3.1 20240521 [releases/gcc-13 r13-8789-g9433e308e0] (GCC) testsuite on powerpc64le-unknown-linux-gnu
: gcc.dg/guality/pr56154-1.c -Og -DPREVENT_OPTIMIZATION line pr56154-1.c:20 x.a == 6 FAIL: gcc.dg/guality/pr59776.c -Og -DPREVENT_OPTIMIZATION line pr59776.c:17 s1.f == 5.0 FAIL: gcc.dg/guality/pr59776.c -Og -DPREVENT_OPTIMIZATION line pr59776.c:17 s1.g == 6.0 FAIL: gcc.dg/guality/pr59776.c -Og -DPREVENT_OPTIMIZATION line pr59776.c:17 s2.f == 0.0 FAIL: gcc.dg/guality/pr59776.c -Og -DPREVENT_OPTIMIZATION line pr59776.c:20 s1.f == 5.0 FAIL: gcc.dg/guality/pr59776.c -Og -DPREVENT_OPTIMIZATION line pr59776.c:20 s1.g == 6.0 FAIL: gcc.dg/guality/pr59776.c -Og -DPREVENT_OPTIMIZATION line pr59776.c:20 s2.f == 5.0 FAIL: gcc.dg/guality/pr68860-1.c -O2 -DPREVENT_OPTIMIZATION line 16 y == 2 FAIL: gcc.dg/guality/pr68860-1.c -O2 -flto -fno-use-linker-plugin -flto-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 -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 -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/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 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 -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 FAIL: gcc.dg/torture/pr91323.c -O3 -g execution test FAIL: gcc.dg/torture/pr91323.c -Os execution test XPASS: gcc.dg/tree-ssa/ssa-dom-cse-2.c scan-tree-dump optimized "return 28;" FAIL: gcc.target/powerpc/pr105586.c (test for excess errors) FAIL: gcc.target/powerpc/rlwimi-2.c scan-assembler-times (?n)^s+[a-z] 20217 FAIL: gcc.target/powerpc/rs6000-fpint.c scan-assembler-not stfiwx XPASS: gcc.target/powerpc/ppc-fortran/ieee128-math.f90 -O (test for excess errors) === gcc Summary === # of expected passes169208 # of unexpected failures127 # of unexpected successes 16 # of expected failures 1544 # of unsupported tests 3993 /home/gccbuild/build/nightly/build-gcc-13/gcc/xgcc version 13.3.1 20240521 [releases/gcc-13 r13-8789-g9433e308e0] (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.dg/ieee/large_2.f90 -O0 execution test FAIL: gfortran.dg/ieee/large_2.f90 -O1 execution test FAIL: gfortran.dg/ieee/large_2.f90 -O2 execution test FAIL: gfortran.dg/ieee/large_2.f90 -O3 -f
Results for 15.0.0 20240521 (experimental) [master r15-758-g9926c40a902] (GCC) testsuite on x86_64-pc-linux-gnu
o-fat-lto-objects -DPREVENT_OPTIMIZATION line 24 sizeof (a) == 17 * sizeof (short) XPASS: gcc.dg/plugin/infoleak-vfio_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-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 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 passes197675 # of unexpected failures160 # of unexpected successes 30 # of expected failures 1552 # of unsupported tests 4076 === gcc Summary === # of expected passes401707 # of unexpected failures322 # of unexpected successes 50 # of expected failures 3098 # of unsupported tests 7351 /export/home/haochenj/src/gcc-reg
Results for 15.0.0 20240522 (experimental) [master revision gcc-15-761-gbad96a02c48] (GCC) testsuite on aarch64-unknown-linux-gnu
# From https://ci.linaro.org/job/tcwg_gcc_check--master-aarch64-build/2036/: LAST_UPDATED: 2024-05-22T00:49:58+00:00 (master revision gcc-15-761-gbad96a02c48) aarch64-unknown-linux-gnu Native configuration is aarch64-unknown-linux-gnu === libatomic tests === Running target tcwg-local === libatomic Summary === # of expected passes54 === libgomp tests === Running target tcwg-local FAIL: libgomp.oacc-c++/../libgomp.oacc-c-c++-common/acc_prof-kernels-1.c -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -foffload=disable -O2 at line 190 (test for warnings, line 185) FAIL: libgomp.oacc-c++/../libgomp.oacc-c-c++-common/acc_prof-kernels-1.c -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -foffload=disable -O2 at line 221 (test for warnings, line 214) FAIL: libgomp.oacc-c++/../libgomp.oacc-c-c++-common/acc_prof-kernels-1.c -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -foffload=disable -O2 at line 252 (test for warnings, line 245) FAIL: libgomp.oacc-c++/../libgomp.oacc-c-c++-common/acc_prof-kernels-1.c -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -foffload=disable -O2 (test for excess errors) FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/acc_prof-kernels-1.c -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -foffload=disable -O2 at line 190 (test for warnings, line 185) FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/acc_prof-kernels-1.c -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -foffload=disable -O2 at line 221 (test for warnings, line 214) FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/acc_prof-kernels-1.c -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -foffload=disable -O2 at line 252 (test for warnings, line 245) FAIL: libgomp.oacc-c/../libgomp.oacc-c-c++-common/acc_prof-kernels-1.c -DACC_DEVICE_TYPE_host=1 -DACC_MEM_SHARED=1 -foffload=disable -O2 (test for excess errors) === libgomp Summary === # of expected passes16210 # of unexpected failures8 # of expected failures 284 # of unsupported tests 649 === libitm tests === Running target tcwg-local === libitm Summary === # of expected passes44 # of expected failures 3 # of unsupported tests 1 === libstdc++ tests === Running target tcwg-local === libstdc++ Summary === # of expected passes18556 # of expected failures 126 # of unsupported tests 747 === gcc tests === Running target tcwg-local 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 -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects -DPREVENT_OPTIMIZATION line 24 i == 5 FAIL: gcc.dg/guality/vla-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects -DPREVENT_OPTIMIZATION line 24 sizeof (a) == 17 * sizeof (short) 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/tree-ssa/ssa-dom-thread-7.c scan-tree-dump thread2 "Jumps threaded: 18" FAIL: gcc.target/aarch64/aes_xor_combine.c scan-assembler-not eor FAIL: gcc.target/aarch64/aes_xor_combine.c scan-assembler-not mov FAIL: gcc.target/aarch64/ashltidisi.c scan-assembler-times asr 3 FAIL: gcc.target/aarch64/asimd-mull-elem.c scan-assembler-times s+fmultv[0-9]+.4s, v[0-9]+.4s, v[0-9]+.s[0] 4 FAIL: gcc.target/aarch64/asimd-mull-elem.c scan-assembler-times s+multv[0-9]+.4s, v[0-9]+.4s, v[0-9]+.s[0] 4 FAIL: gcc.target/aarch64/bitfield-bitint-abi-align16.c check-function-bodies g1 FAIL: gcc.target/aarch64/bitfield-bitint-abi-align16.c check-function-bodies g16 FAIL: gcc.target/aarch64/bitfield-bitint-abi-align16.c check-function-bodies g16p FAIL: gcc.target/aarch64/bitfield-bitint-abi-align16.c check-function-bodies g1p FAIL: gcc.target/aarch64/bitfield-bitint-abi-align16.c check-function-bodies g8 FAIL: gcc.target/aarch64/bitfield-bitint-abi-align16.c check-function-bodies g8p FAIL: gcc.target/aarch64/bitfield-bitint-abi-align8.c check-function-bodies g1 FAIL: gcc.target/aarch64/bitfield-bitint-abi-align8.c check-function-bodies g16 FAIL: gcc.target/aarch64/bitfield-bitint-abi-align8.c check-function-bodies g16p FAIL: gcc.target/aarch64/bitfield-bitint-abi-align8.c check-function-bodies g1p FAIL: gcc.target/aarch64/bitfield-bitint-abi-align8.c check-function-bodies g8 FAIL: gcc.target/aarch64/bitfield-bitint-abi-align8.c check-function-bodies g8p FAIL: gcc.target/aarch64/ccmp_3.c scan-assembler-not \\tcbnz\\t XPASS: gcc.target/aarch64/pr100056.c
Results for 15.0.0 20240521 (experimental) [master r15-760-g826a7d3d19d] (GCC) testsuite on i686-pc-linux-gnu
asses 196294 # of unexpected failures230 # of unexpected successes 27 # of expected failures 1502 # of unresolved testcases 114 # of unsupported tests 4196 /home/haochenj/src/gcc-regression/bld/gcc/xgcc version 15.0.0 20240521 (experimental) [master r15-760-g826a7d3d19d] (GCC) === gfortran tests === Running target unix UNRESOLVED: gfortran.dg/weak-1.f90 -O UNRESOLVED: gfortran.dg/weak-2.f90 -O UNRESOLVED: gfortran.dg/weak-3.f90 -O === gfortran Summary === # of expected passes69835 # of expected failures 275 # of unresolved testcases 3 # of unsupported tests 233 /home/haochenj/src/gcc-regression/bld/gcc/gfortran version 15.0.0 20240521 (experimental) [master r15-760-g826a7d3d19d] (GCC) === g++ tests === Running target unix UNRESOLVED: g++.dg/debug/dwarf2/inline-var-1.C -std=gnu++14 UNRESOLVED: g++.dg/debug/dwarf2/inline-var-1.C -std=gnu++17 UNRESOLVED: g++.dg/debug/dwarf2/inline-var-1.C -std=gnu++20 UNRESOLVED: g++.dg/debug/dwarf2/inline-var-1.C -std=gnu++98 UNRESOLVED: g++.dg/debug/dwarf2/inline-var-2.C -std=gnu++14 UNRESOLVED: g++.dg/debug/dwarf2/inline-var-2.C -std=gnu++17 UNRESOLVED: g++.dg/debug/dwarf2/inline-var-2.C -std=gnu++20 UNRESOLVED: g++.dg/debug/dwarf2/inline-var-2.C -std=gnu++98 UNRESOLVED: g++.dg/debug/dwarf2/inline-var-3.C -std=gnu++14 UNRESOLVED: g++.dg/debug/dwarf2/inline-var-3.C -std=gnu++17 UNRESOLVED: g++.dg/debug/dwarf2/inline-var-3.C -std=gnu++20 UNRESOLVED: g++.dg/debug/dwarf2/inline-var-3.C -std=gnu++98 UNRESOLVED: c-c++-common/Waddress-5.c -std=gnu++14 UNRESOLVED: c-c++-common/Waddress-5.c -std=gnu++17 UNRESOLVED: c-c++-common/Waddress-5.c -std=gnu++20 UNRESOLVED: c-c++-common/Waddress-5.c -std=gnu++98 UNRESOLVED: g++.dg/abi/anon2.C -std=c++14 UNRESOLVED: g++.dg/abi/anon2.C -std=c++17 UNRESOLVED: g++.dg/abi/anon2.C -std=c++20 UNRESOLVED: g++.dg/abi/anon2.C -std=c++98 UNRESOLVED: g++.dg/abi/anon3.C -std=c++14 UNRESOLVED: g++.dg/abi/anon3.C -std=c++17 UNRESOLVED: g++.dg/abi/anon3.C -std=c++20 UNRESOLVED: g++.dg/abi/anon3.C -std=c++98 UNRESOLVED: g++.dg/abi/mangle40.C -std=gnu++14 UNRESOLVED: g++.dg/abi/mangle40.C -std=gnu++17 UNRESOLVED: g++.dg/abi/mangle40.C -std=gnu++20 UNRESOLVED: g++.dg/abi/mangle40.C -std=gnu++98 UNRESOLVED: g++.dg/abi/rtti3.C -std=c++14 UNRESOLVED: g++.dg/abi/rtti3.C -std=c++17 UNRESOLVED: g++.dg/abi/rtti3.C -std=c++20 UNRESOLVED: g++.dg/abi/rtti3.C -std=c++98 UNRESOLVED: g++.dg/abi/thunk3.C -std=c++14 UNRESOLVED: g++.dg/abi/thunk3.C -std=c++17 UNRESOLVED: g++.dg/abi/thunk3.C -std=c++20 UNRESOLVED: g++.dg/abi/thunk3.C -std=c++98 UNRESOLVED: g++.dg/abi/thunk4.C -std=c++14 UNRESOLVED: g++.dg/abi/thunk4.C -std=c++17 UNRESOLVED: g++.dg/abi/thunk4.C -std=c++20 UNRESOLVED: g++.dg/abi/thunk4.C -std=c++98 UNRESOLVED: g++.dg/abi/thunk5.C -std=c++14 UNRESOLVED: g++.dg/abi/thunk5.C -std=c++17 UNRESOLVED: g++.dg/abi/thunk5.C -std=c++20 UNRESOLVED: g++.dg/abi/thunk5.C -std=c++98 UNRESOLVED: g++.dg/cpp0x/lambda/lambda-mangle.C -std=gnu++14 UNRESOLVED: g++.dg/cpp0x/lambda/lambda-mangle.C -std=gnu++17 UNRESOLVED: g++.dg/cpp0x/lambda/lambda-mangle.C -std=gnu++20 UNRESOLVED: g++.dg/cpp0x/lambda/lambda-mangle.C -std=gnu++98 UNRESOLVED: g++.dg/cpp0x/lambda/lambda-mangle6.C -std=gnu++14 UNRESOLVED: g++.dg/cpp0x/lambda/lambda-mangle6.C -std=gnu++17 UNRESOLVED: g++.dg/cpp0x/lambda/lambda-mangle6.C -std=gnu++20 UNRESOLVED: g++.dg/cpp0x/lambda/lambda-mangle6.C -std=gnu++98 UNRESOLVED: g++.dg/cpp0x/pr84497.C -std=c++14 UNRESOLVED: g++.dg/cpp0x/pr84497.C -std=c++17 UNRESOLVED: g++.dg/cpp0x/pr84497.C -std=c++20 UNRESOLVED: g++.dg/cpp0x/pr84497.C -std=c++98 UNRESOLVED: g++.dg/cpp1z/decomp41.C -std=gnu++14 UNRESOLVED: g++.dg/cpp1z/decomp41.C -std=gnu++17 UNRESOLVED: g++.dg/cpp1z/decomp41.C -std=gnu++20 UNRESOLVED: g++.dg/cpp1z/decomp41.C -std=gnu++98 UNRESOLVED: g++.dg/cpp1z/inline-var1.C -std=gnu++14 UNRESOLVED: g++.dg/cpp1z/inline-var1.C -std=gnu++17 UNRESOLVED: g++.dg/cpp1z/inline-var1.C -std=gnu++20 UNRESOLVED: g++.dg/cpp1z/inline-var1.C -std=gnu++98 UNRESOLVED: g++.dg/cpp2a/lambda-mangle.C -std=gnu++14 UNRESOLVED: g++.dg/cpp2a/lambda-mangle.C -std=gnu++17 UNRESOLVED: g++.dg/cpp2a/lambda-mangle.C -std=gnu++20 UNRESOLVED: g++.dg/cpp2a/lambda-mangle.C -std=gnu++98 UNRESOLVED: g++.dg/eh/ia64-2.C -std=gnu++14 UNRESOLVED: g++.dg/eh/ia64-2.C -std=gnu++17 UNRESOLVED: g++.dg/eh/ia64-2.C -std=gnu++20 UNRESOLVED: g++.dg/eh/ia64-2.C -std=gnu++98 UNRESOLVED: g++.dg/eh/weak1.C -std=gnu++14 UNRESOLVED: g++.dg/eh/weak1.C -std=gnu++17 UNRESOLVED: g++.dg/eh/weak1.C -std=gnu++20 UNRESOLVED: g++.dg/eh/weak1.C -std=gnu++98 UNRESOLVED: g++.dg/ext/attr-copy.C -std=gnu++14 UNRESOLVED: g++.dg/ext/attr-copy.C -std=gnu++17 UNRESOLVED: g++.dg/ext/attr-copy.C -std=gnu++20 UNRESOLVED: g++.dg/ext/attr-copy.C -std=gnu++98 UNRESOLVED: g++.dg/ext/tmplattr9.C -std=gnu++14 UNRESOLVED: g++.dg
[PATCH v2] Match: Support __builtin_add_overflow branch form for unsigned SAT_ADD
From: Pan Li This patch would like to support the __builtin_add_overflow branch form for unsigned SAT_ADD. For example as below: uint64_t sat_add (uint64_t x, uint64_t y) { uint64_t ret; return __builtin_add_overflow (x, y, ) ? -1 : ret; } Different to the branchless version, we leverage the simplify to convert the branch version of SAT_ADD into branchless if and only if the backend has supported the IFN_SAT_ADD. Thus, the backend has the ability to choose branch or branchless implementation of .SAT_ADD. For example, some target can take care of branches code more optimally. When the target implement the IFN_SAT_ADD for unsigned and 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 below test suites are passed for this patch: * The x86 bootstrap test. * The x86 fully regression test. * The riscv fully regression test. gcc/ChangeLog: * match.pd: Add new simplify to convert branch SAT_ADD into branchless, if and only if backend implement the IFN. Signed-off-by: Pan Li --- gcc/match.pd | 11 +++ 1 file changed, 11 insertions(+) diff --git a/gcc/match.pd b/gcc/match.pd index cff67c84498..2dc77a46e67 100644 --- a/gcc/match.pd +++ b/gcc/match.pd @@ -3080,6 +3080,17 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) (match (unsigned_integer_sat_add @0 @1) (bit_ior:c (usadd_left_part_2 @0 @1) (usadd_right_part_2 @0 @1))) +#if GIMPLE + +(simplify + (cond (ne (imagpart (IFN_ADD_OVERFLOW@2 @0 @1)) integer_zerop) + integer_minus_onep (realpart @2)) + (if (ternary_integer_types_match_p (type, @0, @1) && TYPE_UNSIGNED (type) + && direct_internal_fn_supported_p (IFN_SAT_ADD, type, OPTIMIZE_FOR_BOTH)) + (bit_ior (plus@3 @0 @1) (negate (convert (lt @3 @0)) + +#endif + /* x > y && x != XXX_MIN --> x > y x > y && x == XXX_MIN --> false . */ (for eqne (eq ne) -- 2.34.1
[Bug tree-optimization/115144] [15 Regression] 2% performance regression for some codes with r15-518-g99b1daae18c095
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115144 --- Comment #7 from Hans-Peter Nilsson --- (In reply to Richard Biener from comment #6) > For gcc.c-torture/execute/arith-rand-ll.c, does it help to replace the exit > (0) call with a return 0 statement? No. FWIW, it also doesn't help renaming and wrapping main to xmain __attribute__ noipa. > Looking at gcc.target/cris/pr93372-47.c what we do here is sink tot_bits += > n_bits into the else { of the in-loop conditional, in particular we sink > it right before the exit conditional in the loop. That's exactly what > we are supposed to do[...] Yes; see previous comments. I'd say the changes in random_bitstring are no longer "interesting". I've also analyzed the unfilled delay-slot signalled by gcc.target/cris/pr93372-47.c to be because of a bug in that pass. (Not the same, but events are amusingly parallel to the bug that made me add that test-case.) > Note that the sinking doesn't increase register lifetime (one of the reasons > of the previous heuristic), esp. if we'd go one step further and sink > to the start of the else { block rather than right before the exit > conditional. But I'd guess that wouldn't help the delay-slot filling here? Sorry, I don't follow here, but I'm going to let that be, as random_bitstring isn't interesting (except regarding the bug). > I've noticed CRIS doesn't support scheduling at all, so delay slot filling > (where's that done?) relies purely on our "random" scheduling we do at > RTL expansion time (via TER) and during GIMPLE optimization? Delay-slot-filling is unrelated to scheduling. It's in reorg.cc with its own horribly outdated dataflow analysis in resource.cc (but used to be shared). > That said, I think sinking now works as expected. In random_bitstring I agree, but there's fallout in main. > I do want to play with > sinking to the start of the else {, but without doing any lifetime analysis > I fear that's going to be worse in the average as the current location > at least ensures we're close to the first use of the DEF we sink. Thank you in advance and for the look this far! I haven't looked closer at what happens with later passes in main, but looking at the generated assembly code, the "sinking" of a division has the eventual effect of increasing register pressure; see the previously attached dumps.
[Bug target/115161] [15 Regression] highway-1.0.7 miscompilation of some SSE2 intrinsics
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115161 Andrew Pinski changed: What|Removed |Added See Also||https://gcc.gnu.org/bugzill ||a/show_bug.cgi?id=11666 --- Comment #12 from Andrew Pinski --- So GCC behavior changed in 2003 to match more of what Java requires ...
[Bug target/115176] rbit pattern should use bitreverse rtl now
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115176 Xi Ruoyao changed: What|Removed |Added CC||xry111 at gcc dot gnu.org --- Comment #2 from Xi Ruoyao --- LoongArch currently has: (define_insn "bitrev_4b" [(set (match_operand:SI 0 "register_operand" "=r") (unspec:SI [(match_operand:SI 1 "register_operand" "r")] UNSPEC_BITREV_4B))] "" "bitrev.4b\t%0,%1" [(set_attr "type" "unknown") (set_attr "mode" "SI")]) (define_insn "bitrev_8b" [(set (match_operand:DI 0 "register_operand" "=r") (unspec:DI [(match_operand:DI 1 "register_operand" "r")] UNSPEC_BITREV_8B))] "" "bitrev.8b\t%0,%1" [(set_attr "type" "unknown") (set_attr "mode" "DI")]) Maybe we can make them something like (subreg:DI (bitreverse:V8QI (subreg:QI (match...) 0)) 0) instead. And LoongArch also has bitrev.{w/d} instructions but GCC doesn't know them yet. I plan to add them after PR50481 is implemented.
[Bug target/115161] [15 Regression] highway-1.0.7 miscompilation of some SSE2 intrinsics
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115161 --- Comment #11 from Hongtao Liu --- (In reply to Jakub Jelinek from comment #10) > Any of the floating point to integer intrinsics if they have out of range > value (haven't checked whether floating point to unsigned intrinsic is a > problem too or not). > No matter if it is float or double (dunno if _Float16 too, or __bf16), and > no matter if it is scalar intrinsic (ss/sd etc.) or vector and how many > vector elements. > But, this isn't really a regression, GCC has always behaved that way, the > only thing that actually changed is that perhaps we can constant fold more > than we used to do in the past. > When not using intrinsics, IMNSHO we should keep doing what we did before. Can we restrict them under flag_trapping_math? .i.e diff --git a/gcc/simplify-rtx.cc b/gcc/simplify-rtx.cc index 53f54d1d392..b7a770dad60 100644 --- a/gcc/simplify-rtx.cc +++ b/gcc/simplify-rtx.cc @@ -2256,14 +2256,25 @@ simplify_const_unary_operation (enum rtx_code code, machine_mode mode, switch (code) { case FIX: + /* According to IEEE standard, for conversions from floating point to +integer. When a NaN or infinite operand cannot be represented in +the destination format and this cannot otherwise be indicated, the +invalid operation exception shall be signaled. When a numeric +operand would convert to an integer outside the range of the +destination format, the invalid operation exception shall be +signaled if this situation cannot otherwise be indicated. */ if (REAL_VALUE_ISNAN (*x)) - return const0_rtx; + return flag_trapping_math ? NULL_RTX : const0_rtx; + + if (REAL_VALUE_ISINF (*x) && flag_trapping_math) + return NULL_RTX; /* Test against the signed upper bound. */ wmax = wi::max_value (width, SIGNED); real_from_integer (, VOIDmode, wmax, SIGNED); if (real_less (, x)) - return immed_wide_int_const (wmax, mode); + return (flag_trapping_math + ? NULL_RTX : immed_wide_int_const (wmax, mode)); /* Test against the signed lower bound. */ wmin = wi::min_value (width, SIGNED); @@ -2276,13 +2287,17 @@ simplify_const_unary_operation (enum rtx_code code, machine_mode mode, case UNSIGNED_FIX: if (REAL_VALUE_ISNAN (*x) || REAL_VALUE_NEGATIVE (*x)) - return const0_rtx; + return flag_trapping_math ? NULL_RTX : const0_rtx; + + if (REAL_VALUE_ISINF (*x) && flag_trapping_math) + return NULL_RTX; /* Test against the unsigned upper bound. */ wmax = wi::max_value (width, UNSIGNED); real_from_integer (, VOIDmode, wmax, UNSIGNED); if (real_less (, x)) - return immed_wide_int_const (wmax, mode); + return (flag_trapping_math + ? NULL_RTX : immed_wide_int_const (wmax, mode)); return immed_wide_int_const (real_to_integer (x, , width),
Results for 15.0.0 20240521 (experimental) [src r15-754-g232a86f9640] (GCC) testsuite on powerpc-ibm-aix7.2.5.0
-gdwarf-2 -O2 (test for excess errors) XPASS: g++.dg/debug/pr94323.C -gdwarf-2 -O3 (test for excess errors) XPASS: g++.dg/debug/pr94323.C -gdwarf-2 -g3 (test for excess errors) XPASS: g++.dg/debug/pr94323.C -gdwarf-2 -g3 -O2 (test for excess errors) XPASS: g++.dg/debug/pr94323.C -gdwarf-2 -g3 -O3 (test for excess errors) XPASS: g++.dg/debug/dwarf2/constexpr-var-1.C scan-assembler-times DW_AT_const_expr 2 XPASS: g++.dg/debug/dwarf2/deleted-member-function.C scan-assembler-times DW_AT_deleted 2 FAIL: g++.dg/cpp2a/consteval-prop6.C -std=c++20 at line 58 (test for warnings, line 57) XPASS: g++.dg/eh/new1.C -std=c++98 execution test XPASS: g++.dg/template/linkage1.C -std=c++98 scan-assembler-not (weak|glob)[^\\n]*_Z3fooIXadL_ZL11static_funcvEEEvv FAIL: g++.dg/warn/Wstringop-overflow-6.C -std=gnu++14 (test for excess errors) FAIL: g++.dg/warn/Wstringop-overflow-6.C -std=gnu++17 (test for excess errors) FAIL: g++.dg/warn/Wstringop-overflow-6.C -std=gnu++20 (test for excess errors) XPASS: g++.dg/tls/thread_local1.C -std=c++14 scan-assembler-not .comm XPASS: g++.dg/tls/thread_local1.C -std=c++17 scan-assembler-not .comm XPASS: g++.dg/tls/thread_local1.C -std=c++20 scan-assembler-not .comm XPASS: g++.dg/torture/pr101373.C -O0 execution test XPASS: g++.dg/torture/pr101373.C -O1 execution test XPASS: g++.dg/torture/pr101373.C -O2 execution test XPASS: g++.dg/torture/pr101373.C -O3 -g execution test XPASS: g++.dg/torture/pr101373.C -Os execution test FAIL: g++.dg/torture/tail-padding1.C -Os (internal compiler error: in cxx_eval_call_expression, at cp/constexpr.cc:3036) FAIL: g++.dg/torture/tail-padding1.C -Os (test for excess errors) UNRESOLVED: g++.dg/torture/tail-padding1.C -Os compilation failed to produce executable XPASS: g++.old-deja/g++.eh/new2.C -std=gnu++98 execution test XPASS: g++.old-deja/g++.mike/p755a.C -std=c++98 execution test === g++ Summary === # of expected passes234056 # of unexpected failures7 # of unexpected successes 86 # of expected failures 2686 # of unresolved testcases 1 # of unsupported tests 12017 /tmp/GCC/gcc/xg++ version 15.0.0 20240521 (experimental) [src r15-754-g232a86f9640] (GCC) === gcc tests === Running target unix XPASS: gcc.dg/autopar/pr46799.c (test for excess errors) FAIL: gcc.dg/asm-names.c scan-assembler-not frob14 FAIL: gcc.dg/nextafter-2.c execution test FAIL: gcc.dg/pr114574-1.c (test for excess errors) FAIL: gcc.dg/pr114574-2.c (test for excess errors) XPASS: gcc.dg/pr41345.c (test for excess errors) XPASS: gcc.dg/pr42631.c (test for excess errors) FAIL: gcc.dg/stack-usage-1.c scan-stack-usage foo\\t(256|264)\\tstatic FAIL: gcc.dg/strlenopt-58.c scan-tree-dump-times optimized "call_in_true_branch_not_eliminated" 0 FAIL: c-c++-common/goacc/firstprivate-mappings-1.c scan-tree-dump omplower "(?n)#pragma omp target oacc_parallel map(from:array_so [len: 4]) firstprivate(array_li.[0-9]+) map(tofrom:(*array.[0-9]+) [len: D.[0-9]+]) map(firstprivate:array [pointer assign, bias: 0]) [" XPASS: gcc.dg/graphite/pr42729.c (test for excess errors) XPASS: gcc.dg/graphite/pr42917.c (test for excess errors) FAIL: gcc.dg/tls/alias-1.c (test for excess errors) XPASS: gcc.dg/torture/pr59166.c -O0 (test for excess errors) XPASS: gcc.dg/torture/pr59166.c -O1 (test for excess errors) XPASS: gcc.dg/torture/pr59166.c -O2 (test for excess errors) XPASS: gcc.dg/torture/pr59166.c -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions (test for excess errors) XPASS: gcc.dg/torture/pr59166.c -O3 -g (test for excess errors) XPASS: gcc.dg/torture/pr59166.c -Os (test for excess errors) FAIL: gcc.dg/tree-ssa/abs-4.c scan-tree-dump-times optimized "= ABS_EXPR" 1 FAIL: gcc.dg/tree-ssa/abs-4.c scan-tree-dump-times optimized "= -" 1 FAIL: gcc.dg/tree-ssa/abs-4.c scan-tree-dump-times optimized "= .COPYSIGN" 2 FAIL: gcc.dg/tree-ssa/backprop-6.c scan-tree-dump-times backprop "Deleting[^n]* = -" 4 FAIL: gcc.dg/tree-ssa/backprop-6.c scan-tree-dump-times backprop "Deleting[^n]* = .COPYSIGN" 2 FAIL: gcc.dg/tree-ssa/backprop-6.c scan-tree-dump-times backprop "Deleting[^n]* = ABS_EXPR <" 1 XPASS: gcc.dg/tree-ssa/cunroll-15.c scan-tree-dump optimized "return 1;" FAIL: gcc.dg/tree-ssa/update-threading.c scan-tree-dump-times optimized "Invalid sum" 0 XPASS: gcc.dg/vect/costmodel/ppc/costmodel-fast-math-vect-pr29925.c scan-tree-dump-times vect "vectorization not profitable" 1 FAIL: gcc.dg/vect/costmodel/ppc/costmodel-vect-76b.c scan-tree-dump-times vect "vectorized 1 loops" 1 FAIL: gcc.dg/vect/slp-21.c scan-tree-dump-times vect "vectorizing stmts using SLP" 2 XPASS: gcc.dg/vect/slp-24-big-array.c scan-tree-
Re: Re: [PATCH] RISC-V: Enable vectorization for vect-early-break_124-pr114403.c
Committed, thanks. xu...@eswincomputing.com From: Robin Dapp Date: 2024-05-21 22:58 To: juzhe.zh...@rivai.ai; Li Xu; gcc-patches CC: rdapp.gcc; kito.cheng; palmer; tamar.christina; Richard Biener; richard.sandiford; zhengyu; pan2.li Subject: Re: [PATCH] RISC-V: Enable vectorization for vect-early-break_124-pr114403.c The patch is OK from the riscv side. generic-ooo includes fast unaligned access. Regards Robin
[gcc r15-763] RISC-V: Enable vectorization for vect-early-break_124-pr114403.c
https://gcc.gnu.org/g:ffab721f3c9ecbb9831844d844ad257b69a77993 commit r15-763-gffab721f3c9ecbb9831844d844ad257b69a77993 Author: xuli Date: Mon May 20 01:56:47 2024 + RISC-V: Enable vectorization for vect-early-break_124-pr114403.c Because "targetm.slow_unaligned_access" is set to true by default (aka -mtune=rocket) for RISC-V, it causes the __builtin_memcpy with 8 bytes failed to folded into int64 assignment during ccp1. So adding "-mtune=generic-ooo" to the RISC-V target can vectorize vect-early-break_124-pr114403.c. gcc/testsuite/ChangeLog: * gcc.dg/vect/vect-early-break_124-pr114403.c: Enable vectrization for RISC-V target. Diff: --- gcc/testsuite/gcc.dg/vect/vect-early-break_124-pr114403.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gcc/testsuite/gcc.dg/vect/vect-early-break_124-pr114403.c b/gcc/testsuite/gcc.dg/vect/vect-early-break_124-pr114403.c index 101ae1e0eaa..610b951b262 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-early-break_124-pr114403.c +++ b/gcc/testsuite/gcc.dg/vect/vect-early-break_124-pr114403.c @@ -1,8 +1,9 @@ /* { dg-add-options vect_early_break } */ /* { dg-require-effective-target vect_early_break_hw } */ /* { dg-require-effective-target vect_long_long } */ +/* { dg-additional-options "-mtune=generic-ooo" { target riscv*-*-* } } */ -/* { dg-final { scan-tree-dump "LOOP VECTORIZED" "vect" { xfail riscv*-*-* } } } */ +/* { dg-final { scan-tree-dump "LOOP VECTORIZED" "vect" } } */ #include "tree-vect.h" @@ -74,4 +75,3 @@ int main () return 0; } -
Results for 15.0.0 20240521 (experimental) [remotes/origin/master r15-760-g826a7d3d19d] (GCC) testsuite on pru-unknown-elf
= " 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 passes133266 # of unexpected failures61 # of unexpected successes 2 # of expected failures 873 # of unresolved testcases 1 # of unsupported tests 4676 /home/dinux/projects/pru/testbot-workspace/pru-gcc-build/gcc/xgcc version 15.0.0 20240521 (experimental) [remotes/origin/master r15-760-g826a7d3d19d] (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: g++.dg/coroutines/pr101367.C (test for excess errors) UNRESOLVED: g++.dg/coroutines/pr101367.C compilation failed to produce executable FAIL: g++.dg/coroutines/torture/co-yield-04-complex-local-state.C (test for excess errors) UNRESOLVED: g++.dg/coroutines/torture/co-yield-04-complex-local-state.C compilation failed to produce executable FAIL: g++.dg/coroutines/torture/func-params-08.C (test for excess errors) UNRESOLVED: g++.dg/coroutines/torture/func-params-08.C compilation failed to produce executable FAIL: g++.dg/coroutines/torture/func-params-09-awaitable-parms.C (test for excess errors) UNRESOLVED: g++.dg/coroutines/torture/func-params-09-awaitable-parms.C compilation failed to produce executable FAIL: g++.dg/coroutines/torture/local-var-05-awaitable.C (test for excess errors) UNRESOLVED: g++.dg/coroutines/torture/local-var-05-awaitable.C compilation failed to produce executable FAIL: g++
[gcc r15-762] c++: Strengthen checks on 'main'
https://gcc.gnu.org/g:292fc21a8d7aa2f16e61ac941e22ada6ddd85500 commit r15-762-g292fc21a8d7aa2f16e61ac941e22ada6ddd85500 Author: Nathaniel Shead Date: Sat May 11 22:25:44 2024 +1000 c++: Strengthen checks on 'main' This patch adds some missing requirements for legal main declarations, as according to [basic.start.main] p2. gcc/cp/ChangeLog: * decl.cc (grokfndecl): Check for main functions with language linkage or module attachment. (grokvardecl): Check for extern 'C' entities named main. gcc/testsuite/ChangeLog: * g++.dg/abi/main.C: Check pedwarn for main with linkage-spec. * g++.dg/modules/contracts-1_b.C: Don't declare main in named module. * g++.dg/modules/contracts-3_b.C: Likewise. * g++.dg/modules/contracts-4_d.C: Likewise. * g++.dg/modules/horcrux-1_a.C: Export declarations, so that... * g++.dg/modules/horcrux-1_b.C: Don't declare main in named module. * g++.dg/modules/main-1.C: New test. * g++.dg/parse/linkage5.C: New test. * g++.dg/parse/linkage6.C: New test. Signed-off-by: Nathaniel Shead Diff: --- gcc/cp/decl.cc | 19 +++ gcc/testsuite/g++.dg/abi/main.C | 3 ++- gcc/testsuite/g++.dg/modules/contracts-1_b.C | 4 gcc/testsuite/g++.dg/modules/contracts-3_b.C | 4 gcc/testsuite/g++.dg/modules/contracts-4_d.C | 2 -- gcc/testsuite/g++.dg/modules/horcrux-1_a.C | 3 +++ gcc/testsuite/g++.dg/modules/horcrux-1_b.C | 2 +- gcc/testsuite/g++.dg/modules/main-1.C| 5 + gcc/testsuite/g++.dg/parse/linkage5.C| 14 ++ gcc/testsuite/g++.dg/parse/linkage6.C| 13 + 10 files changed, 53 insertions(+), 16 deletions(-) diff --git a/gcc/cp/decl.cc b/gcc/cp/decl.cc index 6fcab615d55..a992d54dc8f 100644 --- a/gcc/cp/decl.cc +++ b/gcc/cp/decl.cc @@ -10788,6 +10788,11 @@ grokfndecl (tree ctype, "cannot declare %<::main%> to be %qs", "consteval"); if (!publicp) error_at (location, "cannot declare %<::main%> to be static"); + if (current_lang_depth () != 0) + pedwarn (location, OPT_Wpedantic, "cannot declare %<::main%> with a" +" linkage specification"); + if (module_attach_p ()) + error_at (location, "cannot attach %<::main%> to a named module"); inlinep = 0; publicp = 1; } @@ -11287,10 +11292,16 @@ grokvardecl (tree type, DECL_INTERFACE_KNOWN (decl) = 1; if (DECL_NAME (decl) - && MAIN_NAME_P (DECL_NAME (decl)) - && scope == global_namespace) -error_at (DECL_SOURCE_LOCATION (decl), - "cannot declare %<::main%> to be a global variable"); + && MAIN_NAME_P (DECL_NAME (decl))) +{ + if (scope == global_namespace) + error_at (DECL_SOURCE_LOCATION (decl), + "cannot declare %<::main%> to be a global variable"); + else if (DECL_EXTERN_C_P (decl)) + error_at (DECL_SOURCE_LOCATION (decl), + "an entity named % cannot be declared with " + "C language linkage"); +} /* Check that the variable can be safely declared as a concept. Note that this also forbids explicit specializations. */ diff --git a/gcc/testsuite/g++.dg/abi/main.C b/gcc/testsuite/g++.dg/abi/main.C index 4c5f1ea213c..2797a16df5b 100644 --- a/gcc/testsuite/g++.dg/abi/main.C +++ b/gcc/testsuite/g++.dg/abi/main.C @@ -1,10 +1,11 @@ /* { dg-do compile } */ +/* { dg-additional-options "-Wno-error=pedantic" } /* Check if entry points get implicit C linkage. If they don't, compiler will * error on incompatible declarations */ int main(); -extern "C" int main(); +extern "C" int main(); // { dg-warning "linkage specification" } #ifdef __MINGW32__ diff --git a/gcc/testsuite/g++.dg/modules/contracts-1_b.C b/gcc/testsuite/g++.dg/modules/contracts-1_b.C index 30c15f6928b..aa36c8d6b1b 100644 --- a/gcc/testsuite/g++.dg/modules/contracts-1_b.C +++ b/gcc/testsuite/g++.dg/modules/contracts-1_b.C @@ -1,15 +1,11 @@ // { dg-module-do run } // { dg-additional-options "-fmodules-ts -fcontracts -fcontract-continuation-mode=on" } -module; #include -export module bar; -// { dg-module-cmi bar } import foo; template bool bar_fn_pre(T n) { printf("bar fn pre(%d)\n", n); return true; } -export template T bar_fn(T n) [[ pre: bar_fn_pre(n) && n > 0 ]] diff --git a/gcc/testsuite/g++.dg/modules/contracts-3_b.C b/gcc/testsuite/g++.dg/modules/contracts-3_b.C index b1d6375391b..1a29e2c3e5d 100644 --- a/gcc/testsuite/g++.dg/modules/contracts-3_b.C +++ b/gcc/testsuite/g++.dg/modules/contracts-3_b.C @@ -1,15 +1,11 @@ // { dg-module-do run } // { dg-additional-options "-fmodules-ts -fcontracts -fcontract-role=default:ignore,ignore,ignore" } -module; #include -export module bar; -// { dg-module-cmi bar }
Results for 14.1.1 20240521 [releases/gcc-14 r14-10227-g5b96d547ce7] (GCC) testsuite on x86_64-pc-linux-gnu
es and|test 20 FAIL: gcc.dg/tree-ssa/slsr-31.c scan-tree-dump-times optimized " * 2" 1 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 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/xorsign.c scan-tree-dump-times vect "vectorized 2 loops" 1 === gcc Summary for unix/-m32 === # of expected passes197707 # of unexpected failures159 # of unexpected successes 30 # of expected failures 1552 # of unsupported tests 4078 === gcc Summary === # of expected passes401742 # of unexpected failures318 # of unexpected successes 50 # of expected failures 3098 # of unsupported tests 7370 /export/home/haochenj/src/gcc-14-regression/bld/gcc/xgcc version 14.1.1 20240521 [releases/gcc-14 r14-10227-g5b96d547ce7] (GCC) === gfortran tests === Running target unix === gfortran Summary for unix === # of expected passes70087 # of expected failures 273 # of unsupported tests
Results for 15.0.0 20240521 (experimental) [master r15-760-g826a7d3d19d] (GCC) testsuite on x86_64-pc-linux-gnu
o-fat-lto-objects -DPREVENT_OPTIMIZATION line 24 sizeof (a) == 17 * sizeof (short) XPASS: gcc.dg/plugin/infoleak-vfio_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-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 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 passes197675 # of unexpected failures160 # of unexpected successes 30 # of expected failures 1552 # of unsupported tests 4076 === gcc Summary === # of expected passes401707 # of unexpected failures322 # of unexpected successes 50 # of expected failures 3098 # of unsupported tests 7351 /export/home/haochenj/src/gcc-reg
[Bug c++/115181] [ICE] internal compiler error in invalid_tparm_referent_p, at cp/pt.cc:7274
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115181 Andrew Pinski changed: What|Removed |Added Last reconfirmed||2024-05-22 Status|UNCONFIRMED |NEW Ever confirmed|0 |1 --- Comment #2 from Andrew Pinski --- Confirmed. Not a regression, the ICE only happens with checking turned on.
Results for 15.0.0 20240521 (experimental) [master revision gcc-15-760-g826a7d3d19d] (GCC) testsuite on aarch64-unknown-linux-gnu
bitint-abi-align16.c check-function-bodies g16p FAIL: gcc.target/aarch64/bitfield-bitint-abi-align16.c check-function-bodies g1p FAIL: gcc.target/aarch64/bitfield-bitint-abi-align16.c check-function-bodies g8 FAIL: gcc.target/aarch64/bitfield-bitint-abi-align16.c check-function-bodies g8p FAIL: gcc.target/aarch64/bitfield-bitint-abi-align8.c check-function-bodies g1 FAIL: gcc.target/aarch64/bitfield-bitint-abi-align8.c check-function-bodies g16 FAIL: gcc.target/aarch64/bitfield-bitint-abi-align8.c check-function-bodies g16p FAIL: gcc.target/aarch64/bitfield-bitint-abi-align8.c check-function-bodies g1p FAIL: gcc.target/aarch64/bitfield-bitint-abi-align8.c check-function-bodies g8 FAIL: gcc.target/aarch64/bitfield-bitint-abi-align8.c check-function-bodies g8p FAIL: gcc.target/aarch64/ccmp_3.c scan-assembler-not \\tcbnz\\t XPASS: gcc.target/aarch64/pr100056.c scan-assembler-not t[us]bfiztw[0-9]+, w[0-9]+, 11 FAIL: gcc.target/aarch64/pr100056.c scan-assembler-times t[us]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/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/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 passes339558 # of unexpected failures313 # of unexpected successes 2 # of expected failures 1763 # of unsupported tests 4195 /home/tcwg-buildslave/workspace/tcwg_gnu_1/abe/builds/destdir/x86_64-pc-linux-gnu/bin/aarch64-linux-gnu-gcc version 15.0.0 20240521 (experimental) [master revision gcc-15-760-g826a7d3d19d] (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 executi
Re: [PATCH 6/13] rs6000, add overloaded vec_sel with int128 arguments
Kewen: On 5/13/24 19:54, Kewen.Lin wrote: > Hi, > > on 2024/4/20 05:17, Carl Love wrote: >> rs6000, add overloaded vec_sel with int128 arguments >> >> Extend the vec_sel built-in to take three signed/unsigned int128 arguments >> and return a signed/unsigned int128 result. >> >> Extending the vec_sel built-in makes the existing buit-ins >> __builtin_vsx_xxsel_1ti and __builtin_vsx_xxsel_1ti_uns obsolete. The >> patch removes these built-ins. >> >> The patch adds documentation and test cases for the new overloaded vec_sel >> built-ins. >> >> gcc/ChangeLog: >> * config/rs6000/rs6000-builtins.def (__builtin_vsx_xxsel_1ti, >> __builtin_vsx_xxsel_1ti_uns): Remove built-in definitions. >> * config/rs6000/rs6000-overload.def (vec_sel): Add new overloaded >> definitions. >> * doc/extend.texi: Add documentation for new vec_sel arguments. >> >> gcc/testsuite/ChangeLog: >> * gcc.target/powerpc/vec_sel_runnable-int128.c: New test file. >> --- >> gcc/config/rs6000/rs6000-builtins.def | 6 -- >> gcc/config/rs6000/rs6000-overload.def | 4 + >> gcc/doc/extend.texi | 14 >> .../powerpc/vec-sel-runnable-i128.c | 84 +++ >> 4 files changed, 102 insertions(+), 6 deletions(-) >> create mode 100644 gcc/testsuite/gcc.target/powerpc/vec-sel-runnable-i128.c >> >> diff --git a/gcc/config/rs6000/rs6000-builtins.def >> b/gcc/config/rs6000/rs6000-builtins.def >> index d09e21a9151..46d2ae7b7cb 100644 >> --- a/gcc/config/rs6000/rs6000-builtins.def >> +++ b/gcc/config/rs6000/rs6000-builtins.def >> @@ -1931,12 +1931,6 @@ >>const vuc __builtin_vsx_xxsel_16qi_uns (vuc, vuc, vuc); >> XXSEL_16QI_UNS vector_select_v16qi_uns {} >> >> - const vsq __builtin_vsx_xxsel_1ti (vsq, vsq, vsq); >> -XXSEL_1TI vector_select_v1ti {} >> - >> - const vsq __builtin_vsx_xxsel_1ti_uns (vsq, vsq, vsq); >> -XXSEL_1TI_UNS vector_select_v1ti_uns {} >> - >>const vd __builtin_vsx_xxsel_2df (vd, vd, vd); >> XXSEL_2DF vector_select_v2df {} >> >> diff --git a/gcc/config/rs6000/rs6000-overload.def >> b/gcc/config/rs6000/rs6000-overload.def >> index 68501c05289..5912c9452f4 100644 >> --- a/gcc/config/rs6000/rs6000-overload.def >> +++ b/gcc/config/rs6000/rs6000-overload.def >> @@ -3274,6 +3274,10 @@ >> VSEL_2DF VSEL_2DF_B >>vd __builtin_vec_sel (vd, vd, vull); >> VSEL_2DF VSEL_2DF_U >> + vsq __builtin_vec_sel (vsq, vsq, vsq); >> +VSEL_1TI VSEL_1TI_S >> + vuq __builtin_vec_sel (vuq, vuq, vuq); >> +VSEL_1TI_UNS VSEL_1TI_U >> ; The following variants are deprecated. >>vsll __builtin_vec_sel (vsll, vsll, vsll); >> VSEL_2DI_B VSEL_2DI_S >> diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi >> index 64a43b55e2d..86b8e536dbe 100644 >> --- a/gcc/doc/extend.texi >> +++ b/gcc/doc/extend.texi >> @@ -23358,6 +23358,20 @@ The programmer is responsible for understanding the >> endianness issues involved >> with the first argument and the result. >> @findex vec_replace_unaligned >> >> +Vector select >> + >> +@smallexample >> +vector signed __int128 vec_sel (vector signed __int128, >> + vector signed __int128, vector signed __int128); >> +vector unsigned __int128 vec_sel (vector unsigned __int128, >> + vector unsigned __int128, vector unsigned __int128); >> +@end smallexample >> + >> +The overloaded built-in @code{vec_sel} with vector signed/unsigned __int128 >> +arguments and returns a vector selecting bits from the two source vectors >> based >> +on the values of the third input vector. This built-in is an extension of >> the >> +@code{vec_sel} built-in documented in the PVIPR. >> + > > Why did you place this in a section for ISA 3.1 (Power10)? It doesn't really > require this support. The used instance VSEL_1TI and VSEL_1TI_UNS are placed > in altivec stanza, so it looks that we should put it under the section > "PowerPC AltiVec Built-in Functions on ISA 2.05". And since it's an extension > of @code{vec_sel} documented in the PVIPR, I prefer to just mention it's "an > extension of the @code{vec_sel} built-in documented in the PVIPR" and omitting > the description to avoid possible slightly different wording. Honestly, at this point in time I don't remember why I put it there. It has been too long since I created the patch. That said, the test case requires Power 10 do to the comparison check using built-in vec_all_eq but that is another issue. The built-in generates the xxsel instruction that is an ISA 2.06 instruction. So, I would say it should to into the ISA 2.06 section. I moved it to the ISA 2.06 section. For consistency with the previous patches/feedback, the descriptions are being dropped and replaced with the instance being a new extension of the built-in that is documented in the PVIPR. > >> Vector Shift Left Double Bit Immediate >> @smallexample >> @exdent vector signed char vec_sldb (vector signed char, vector signed char, >> diff
[Bug target/99531] [11 Regression] Performance regression since gcc 9 (argument passing / register allocation)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99531 --- Comment #12 from Oleg Endo --- (In reply to Oleg Endo from comment #11) > > This caused PR 115148 I absolutely lack the imagination to see the connection of the change in #c6 and PR 115148. This is the change in the output code that results in the problem on SH: .LVL108: bt/s.L178 ! mov #-1,r0 !, @@ -1832,36 +1830,39 @@ .byte .L215-.L190 .byte .L181-.L190 .LVL109: - .align 1 -.L192: .LBE111: .LBE110: .loc 1 234 9 .loc 1 234 14 + .align 1 +.L287: + .align 1 +.L288: Any ideas or suggestions are appreciated.
Results for 13.3.1 20240521 [releases/gcc-13 r13-8789-g9433e308e0] (GCC) testsuite on powerpc64-unknown-linux-gnu
git commit g:9433e308e0ca48822aa5e3a9875aac1f86cbac72 gcc-descr r13-8789-g9433e308e0ca48 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: Tue May 21 22:48:07 UTC 2024 (revision r13-8789-g9433e308e0) Native configuration is powerpc64-unknown-linux-gnu === g++ tests === Running target unix/-m32 FAIL: g++.dg/modules/xtreme-header-5_c.C -std=c++2a (test for excess errors) FAIL: g++.dg/modules/xtreme-header-5_c.C -std=c++2b (test for excess errors) === g++ Summary for unix/-m32 === # of expected passes226116 # of unexpected failures2 # of expected failures 1929 # of unsupported tests 10898 Running target unix/-m64 === g++ Summary for unix/-m64 === # of expected passes235076 # of expected failures 1937 # of unsupported tests 11086 === g++ Summary === # of expected passes461192 # of unexpected failures2 # of expected failures 3866 # of unsupported tests 21984 /home/gccbuild/build/nightly/build-gcc-13/gcc/xg++ version 13.3.1 20240521 [releases/gcc-13 r13-8789-g9433e308e0] (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 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-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
Results for 15.0.0 20240521 (experimental) [remotes/origin/HEAD r15-760-g826a7d3d19] (GCC) testsuite on powerpc64le-unknown-linux-gnu
-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/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/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 passes178680 # of unexpected failures125 # of unexpected successes 13 # of expected failures 1602 # of unsupported tests 5041 /home/gccbuild/build/nightly/build-gcc-trunk/gcc/xgcc version 15.0.0 20240521 (experimental) [remotes/origin/HEAD r15-760-g826a7d3d19] (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.dg/ieee/comparisons_3.F90 -O0 execution test FAIL: gfortran.dg/ieee/comparisons_3.F90 -O1 execution test FAIL: gfortran.dg/ieee/comparisons_3.F90 -O2 execution test FAIL: gfortran.dg/ieee/comparisons_3.F90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test FAIL: gfortran.dg/ieee/comparisons_3.F90 -O3 -g execution test FAIL:
Results for 15.0.0 20240521 (experimental) [master revision gcc-15-760-g826a7d3d19d] (GCC) testsuite on arm-unknown-eabi
-function-bodies enumNonsecure0 UNRESOLVED: gcc.target/arm/cmse/extend-return.c -O3 -g check-function-bodies shortSignNonsecure0 UNRESOLVED: gcc.target/arm/cmse/extend-return.c -O3 -g check-function-bodies shortUnsignNonsecure0 UNRESOLVED: gcc.target/arm/cmse/extend-return.c -O3 -g check-function-bodies signNonsecure0 UNRESOLVED: gcc.target/arm/cmse/extend-return.c -O3 -g check-function-bodies unsignNonsecure0 FAIL: gcc.target/arm/cmse/extend-return.c -O3 -g (internal compiler error: in extract_insn, at recog.cc:2812) FAIL: gcc.target/arm/cmse/extend-return.c -O3 -g (test for excess errors) UNRESOLVED: gcc.target/arm/cmse/extend-return.c -Os check-function-bodies boolNonsecure0 UNRESOLVED: gcc.target/arm/cmse/extend-return.c -Os check-function-bodies enumNonsecure0 UNRESOLVED: gcc.target/arm/cmse/extend-return.c -Os check-function-bodies shortSignNonsecure0 UNRESOLVED: gcc.target/arm/cmse/extend-return.c -Os check-function-bodies shortUnsignNonsecure0 UNRESOLVED: gcc.target/arm/cmse/extend-return.c -Os check-function-bodies signNonsecure0 UNRESOLVED: gcc.target/arm/cmse/extend-return.c -Os check-function-bodies unsignNonsecure0 FAIL: gcc.target/arm/cmse/extend-return.c -Os (internal compiler error: in extract_insn, at recog.cc:2812) FAIL: gcc.target/arm/cmse/extend-return.c -Os (test for excess errors) FAIL: gcc.target/arm/mve/intrinsics/pr97327.c (test for excess errors) === gcc Summary === # of expected passes154370 # of unexpected failures178 # of unexpected successes 3 # of expected failures 901 # of unresolved testcases 58 # of unsupported tests 5215 /home/tcwg-buildslave/workspace/tcwg_gnu_0/abe/builds/destdir/x86_64-pc-linux-gnu/bin/arm-eabi-gcc version 15.0.0 20240521 (experimental) [master revision gcc-15-760-g826a7d3d19d] (GCC) Host is x86_64-pc-linux-gnu === g++ tests === Running target qemu/-mthumb/-march=armv8-m.base/-mtune=cortex-m23/-mfloat-abi=soft/-mfpu=auto 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: g++.dg/cpp2a/decomp2.C -std=gnu++14 (test for excess errors) UNRESOLVED: g++.dg/cpp2a/decomp2.C -std=gnu++14 compilation failed to produce executable FAIL: g++.dg/cpp2a/decomp2.C -std=gnu++17 (test for excess errors) UNRESOLVED: g++.dg/cpp2a/decomp2.C -std=gnu++17 compilation failed to produce executable FAIL: g++.dg/cpp2a/decomp2.C -std=gnu++20 (test for excess errors) UNRESOLVED: g++.dg/cpp2a/decomp2.C -std=gnu++20 compilation failed to produce executable FAIL: g++.dg/opt/pr97315-1.C -std=gnu++14 (test for excess errors) FAIL: g++.dg/opt/pr97315-1.C -st
Results for 13.3.1 20240521 [releases/gcc-13 r13-8789-g9433e308e0c] (GCC) testsuite on x86_64-pc-linux-gnu
s (test for excess errors) FAIL: gcc.dg/pr96573.c scan-tree-dump optimized "__builtin_bswap|VEC_PERM_EXPR[^\\n\\r]*7, 6, 5, 4, 3, 2, 1, 0" FAIL: c-c++-common/goacc/kernels-loop-g.c (test for excess errors) XPASS: gcc.dg/plugin/infoleak-vfio_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/scev-3.c scan-tree-dump-times ivopts "" 1 FAIL: gcc.dg/tree-ssa/scev-4.c scan-tree-dump-times ivopts "" 1 FAIL: gcc.dg/tree-ssa/scev-5.c scan-tree-dump-times ivopts "" 1 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 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/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/pr78794.c scan-assembler pandn FAIL: gcc.target/i386/pr97873-1.c scan-assembler pabsq 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/-m32 === # of expected passes182158 # of unexpected failures37 # of unexpected successes 14 # of expected failures 1438 # of unsupported tests 3283 === gcc Summary === # of expected passes368837 # of unexpected failures80 # of unexpected successes 19 # of expected failures 2869 # of unsupported tests 5729 /export/home/haochenj/src/gcc-13-regression/bld/gcc/xgcc version 13.3.1 20240521 [releases/gcc-13 r13-8789-g9433e308e0c] (GCC) === gfortran tests === Running target unix === gfortran Summary for unix === # of expected passes68531 # of expected failures 259 # of unsupported tests 78 Running target unix/-m32 === gfortran Summary for unix/-m32 === # of expected passes68209 # of expected failures 261 # of unsupported tests 230 === gfortran Summary === # of expected passes136740 # of expected failures 520 # of unsupported tests 308 /export/home/haochenj/src/gcc-13-regression/bld/gcc/gfortran version 13.3.1 20240521 [releases/gcc-13 r13-
Regressions on native/releases/gcc-13 at commit r13-8786 vs commit r13-8784 on Linux/x86_64
Regressions on releases/gcc-13 at commit r13-8786 vs commit r13-8784 on Linux/x86_64 New failures: New passes: FAIL: gcc-dg-lto-pr113359-2-01.exe scan-wpa-ipa-dump icf "Semantic equality hit:geta/.*getb/" FAIL: gcc.dg/lto/pr113359-2 c_lto_pr113359-2_0.o assemble, -O2 -flto -fno-strict-aliasing -fno-ipa-cp --disable-tree-esra -fdump-ipa-icf-details FAIL: gcc.dg/lto/pr113359-2 c_lto_pr113359-2_0.o-c_lto_pr113359-2_1.o execute -O2 -flto -fno-strict-aliasing -fno-ipa-cp --disable-tree-esra -fdump-ipa-icf-details FAIL: libgomp.c/../libgomp.c-c++-common/for-11.c execution test
Results for 13.3.1 20240521 [releases/gcc-13 r13-8786-g5ed32d00a7b] (GCC) testsuite on i686-pc-linux-gnu
FAIL: gcc.target/i386/pr103144-shift-1.c scan-tree-dump-times vect "vectorized 1 loops" 6 FAIL: gcc.target/i386/pr71321.c scan-assembler-not lea.*0 FAIL: gcc.target/i386/pr78794.c scan-assembler pandn 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/pr95126-m32-3.c scan-assembler pushl[ t]*\$2 FAIL: gcc.target/i386/pr95126-m32-3.c scan-assembler-not movzwl FAIL: gcc.target/i386/pr95126-m32-4.c scan-assembler pushl[ t]*\$131073 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 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 FAIL: gcc.target/i386/sse4-pr39821.c scan-tree-dump-times vect "vectorized 1 loops in function" 6 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-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 === gcc Summary === # of expected passes184989 # of unexpected failures209 # of unexpected successes 31 # of expected failures 1464 # of unresolved testcases 114 # of unsupported tests 3582 /home/haochenj/src/gcc-13-regression/bld/gcc/xgcc version 13.3.1 20240521 [releases/gcc-13 r13-8786-g5ed32d00a7b] (GCC) === gfortran tests === Running target unix UNRESOLVED: gfortran.dg/weak-1.f90 -O UNRESOLVED: gfortran.dg/weak-2.f90 -O UNRESOLVED: gfortran.dg/weak-3.f90 -O === gfortran Summary === # of expected passes68210 # of expected failures 261 # of unresolved testcases 3 # of unsupported tests 219 /home/haochenj/src/gcc-13-regression/bld/gcc/gfortran version 13.3.1 20240521 [releases/gcc-13 r13-8786-g5ed32d00a7b] (GCC) === g++ tests === Running target unix 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, 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/asan_test.C -O2 AddressSanitizer_StrtolOOBTest Strtol(array, NULL, 36) execution test FAIL: g++.dg/asan/asan_test.C -O2 AddressSanitizer_StrtollOOBTest Strtol(array + 3, NULL, 0)
Results for 15.0.0 20240521 (experimental) [master r15-756-g20e6f36771d] (GCC) testsuite on s390x-ibm-linux-gnu default
e-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions (test for bogus messages, line 17) FAIL: gcc.dg/torture/pr113026-2.c -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions (test for bogus messages, line 9) FAIL: gcc.dg/torture/pr113026-2.c -O3 -g (test for bogus messages, line 17) FAIL: gcc.dg/torture/pr113026-2.c -O3 -g (test for bogus messages, line 9) FAIL: gcc.dg/tree-ssa/abs-4.c scan-tree-dump-times optimized "= .COPYSIGN" 3 FAIL: gcc.dg/tree-ssa/backprop-6.c scan-tree-dump-times backprop "Deleting[^n]* = .COPYSIGN" 3 FAIL: gcc.dg/tree-ssa/copy-sign-2.c scan-tree-dump-times optimized ".COPYSIGN" 1 FAIL: gcc.dg/tree-ssa/copy-sign-2.c scan-tree-dump-times optimized "ABS" 1 FAIL: gcc.dg/tree-ssa/update-threading.c scan-tree-dump-times optimized "Invalid sum" 0 FAIL: c-c++-common/tsan/tls_race.c -O0 output pattern test FAIL: c-c++-common/tsan/tls_race.c -O2 output pattern test 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/s390/arch13/sel-1.c scan-assembler-times \\tselgr(?:h|le)\\t 1 FAIL: gcc.target/s390/arch13/sel-1.c scan-assembler-times \\tselr(?:h|le)\\t 1 FAIL: gcc.target/s390/ifcvt-one-insn-bool.c scan-assembler lochinh\\t%r.?,1 FAIL: gcc.target/s390/ifcvt-one-insn-char.c scan-assembler locrnh\\t%r.?,%r.? FAIL: gcc.target/s390/loc-1.c scan-assembler \\tlocghine\\t%r2,-1 FAIL: gcc.target/s390/loc-1.c scan-assembler \\tlocgrne\\t%r2,%r4 FAIL: gcc.target/s390/nobp-table-jump-inline-z10.c scan-assembler section\\t.s390_indirect_jump FAIL: gcc.target/s390/nobp-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) FAIL: gcc.target/s390/vector/vec-scalar-cmp-1.c scan-assembler eq:\\n[^:]*\\twfcdb\\t%v[0-9]*,%v[0-9]*\\n\\t[^:]+\\tlocghie\\t%r2,1 FAIL: gcc.target/s390/vector/vec-scalar-cmp-1.c scan-assembler ge:\\n[^:]*\\twfkdb\\t%v[0-9]*,%v[0-9]*\\n\\t[^:]+\\tlocghihe\\t%r2,1 FAIL: gcc.target/s390/vector/vec-scalar-cmp-1.c scan-assembler gt:\\n[^:]*\\twfkdb\\t%v[0-9]*,%v[0-9]*\\n\\t[^:]+\\tlocghih\\t%r2,1 FAIL: gcc.target/s390/vector/vec-scalar-cmp-1.c scan-assembler le:\\n[^:]*\\twfkdb\\t%v[0-9]*,%v[0-9]*\\n\\t[^:]+\\tlocghile\\t%r2,1 FAIL: gcc.target/s390/vector/vec-scalar-cmp-1.c scan-assembler lt:\\n[^:]*\\twfkdb\\t%v[0-9]*,%v[0-9]*\\n\\t[^:]+\\tlocghil\\t%r2,1 FAIL: gcc.target/s390/vector/vec-scalar-cmp-1.c scan-assembler ne:\\n[^:]*\\twfcdb\\t%v[0-9]*,%v[0-9]*\\n\\t[^:]+\\tlocghine\\t%r2,1 === gcc Summary for unix/-m64 === # of expected passes181146 # of unexpected failures160 # of unexpected successes 17 # of expected failures 1468 # of unsupported tests 4321 === gcc Summary === # of expected passes359194 # of unexpected failures340 # of unexpected successes 31 # of expected failures 2937 # of unsupported tests 9260 -default/gcc/xgcc version 15.0.0 20240521 (experimental) [master r15-756-g20e6f36771d] (GCC) === gdc tests === Running target unix/-m31 FAIL: gdc.test/runnable/sdtor.d -O2 execution test FAIL: gdc.test/runnable/sdtor.d -O2 -finline-functions execution test FAIL: gdc.test/runnable/sdtor.d -O2 -finline-functions -frelease -funittest execution test FAIL: gdc.test/runnable/sdtor.d -O2 -finline-functions -frelease -funittest -g execution test FAIL: gdc.test/runnable/sdtor.d -O2 -finline-functions -frelease -funittest -g -shared-libphobos execution test FAIL: gdc.test/runnable/sdtor.d -O2 -finline-functions -frelease -funittest -shared-libphobo
Results for 14.1.1 20240521 [releases/gcc-14 r14-10225-gedde60a53c7] (GCC) testsuite on i686-pc-linux-gnu
86/avx512vl-broadcast-pr87767-1.c scan-assembler-times vpbroadcastd[t ]+%(?:r|e)[^\\n]*, %xmm[0-9]+ 3 FAIL: gcc.target/i386/avx512vl-broadcast-pr87767-1.c scan-assembler-times vpbroadcastd[t ]+%(?:r|e)[^\\n]*, %ymm[0-9]+ 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/xorsign.c scan-tree-dump-times vect "vectorized 2 loops" 1 === gcc Summary === # of expected passes 196326 # of unexpected failures229 # of u
Regressions on releases/gcc-14 at commit r14-10226 vs commit r14-10225 on Linux/x86_64
Regressions on releases/gcc-14 at commit r14-10226 vs commit r14-10225 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 14.1.1 20240521 [releases/gcc-14 r14-10226-gcaf43cc9e5c] (GCC) testsuite on x86_64-pc-linux-gnu
es and|test 20 FAIL: gcc.dg/tree-ssa/slsr-31.c scan-tree-dump-times optimized " * 2" 1 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 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/xorsign.c scan-tree-dump-times vect "vectorized 2 loops" 1 === gcc Summary for unix/-m32 === # of expected passes197707 # of unexpected failures159 # of unexpected successes 30 # of expected failures 1552 # of unsupported tests 4078 === gcc Summary === # of expected passes401742 # of unexpected failures318 # of unexpected successes 50 # of expected failures 3098 # of unsupported tests 7370 /export/home/haochenj/src/gcc-14-regression/bld/gcc/xgcc version 14.1.1 20240521 [releases/gcc-14 r14-10226-gcaf43cc9e5c] (GCC) === gfortran tests === Running target unix === gfortran Summary for unix === # of expected passes70087 # of expected failures 273 # of unsupported tests
[Bug libstdc++/79384] Clang doesn't like variant's std::visit
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79384 Jonathan Wakely changed: What|Removed |Added Resolution|--- |WORKSFORME Status|NEW |RESOLVED --- Comment #1 from Jonathan Wakely --- I can't reproduce this now. It might have been the same as Bug 90397 which was fixed for 9.2, or it might have been related to https://bugs.llvm.org/show_bug.cgi?id=31852 The test case compiles fine with clang 17 and libstdc++ headers from GCC 7.5, 8.x, 9.2, or later.
Results for 15.0.0 20240521 (experimental) [master r15-760-g826a7d3d19] (GCC) testsuite on powerpc64-unknown-linux-gnu
git commit g:826a7d3d19d3ebf04e21d6f1c89eb341a36fb5d1 gcc-descr r15-760-g826a7d3d19d3eb 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: Tue May 21 20:59:59 UTC 2024 (revision r15-760-g826a7d3d19) 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 passes251799 # of unexpected failures1 # of expected failures 2615 # of unsupported tests 11551 Running target unix/-m64 === g++ Summary for unix/-m64 === # of expected passes260821 # of expected failures 2620 # of unsupported tests 11724 === g++ Summary === # of expected passes512620 # of unexpected failures1 # of expected failures 5235 # of unsupported tests 23275 /home/gccbuild/build/nightly/build-gcc-trunk/gcc/xg++ version 15.0.0 20240521 (experimental) [master r15-760-g826a7d3d19] (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
[Bug c++/107800] confusing message with to_address in C++17
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107800 Jonathan Wakely changed: What|Removed |Added Resolution|--- |FIXED Status|ASSIGNED|RESOLVED --- Comment #12 from Jonathan Wakely --- Fixed for 13.4 and 14.2
[gcc r13-8789] libstdc++: testsuite: Enhance codecvt_unicode with tests for length()
https://gcc.gnu.org/g:9433e308e0ca48822aa5e3a9875aac1f86cbac72 commit r13-8789-g9433e308e0ca48822aa5e3a9875aac1f86cbac72 Author: Dimitrij Mijoski Date: Wed Oct 18 12:52:20 2023 +0200 libstdc++: testsuite: Enhance codecvt_unicode with tests for length() We can test codecvt::length() with the same data that we test codecvt::in(). For each call of in() we add another call to length(). Some additional small cosmentic changes are applied. libstdc++-v3/ChangeLog: * testsuite/22_locale/codecvt/codecvt_unicode.h: Test length() (cherry picked from commit 59a7d38997ec4d8a606c97b00e1a8b697edd1316) Diff: --- .../testsuite/22_locale/codecvt/codecvt_unicode.h | 123 ++--- 1 file changed, 110 insertions(+), 13 deletions(-) diff --git a/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode.h b/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode.h index d3ae42fac13..42270c50f14 100644 --- a/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode.h +++ b/libstdc++-v3/testsuite/22_locale/codecvt/codecvt_unicode.h @@ -17,7 +17,6 @@ #include #include -#include #include struct test_offsets_ok @@ -79,6 +78,11 @@ utf8_to_utf32_in_ok (const std::codecvt ) VERIFY (char_traits::compare (out, exp, t.out_size) == 0); if (t.out_size < array_size (out)) VERIFY (out[t.out_size] == 0); + + state = {}; + auto len = cvt.length (state, in, in + t.in_size, t.out_size); + VERIFY (len >= 0); + VERIFY (static_cast (len) == t.in_size); } for (auto t : offsets) @@ -99,6 +103,11 @@ utf8_to_utf32_in_ok (const std::codecvt ) VERIFY (char_traits::compare (out, exp, t.out_size) == 0); if (t.out_size < array_size (out)) VERIFY (out[t.out_size] == 0); + + state = {}; + auto len = cvt.length (state, in, in + t.in_size, array_size (out)); + VERIFY (len >= 0); + VERIFY (static_cast (len) == t.in_size); } } @@ -163,6 +172,11 @@ utf8_to_utf32_in_partial (const std::codecvt ) == 0); if (t.expected_out_next < array_size (out)) VERIFY (out[t.expected_out_next] == 0); + + state = {}; + auto len = cvt.length (state, in, in + t.in_size, t.out_size); + VERIFY (len >= 0); + VERIFY (static_cast (len) == t.expected_in_next); } } @@ -303,6 +317,11 @@ utf8_to_utf32_in_error (const std::codecvt ) if (t.expected_out_next < array_size (out)) VERIFY (out[t.expected_out_next] == 0); + state = {}; + auto len = cvt.length (state, in, in + t.in_size, t.out_size); + VERIFY (len >= 0); + VERIFY (static_cast (len) == t.expected_in_next); + in[t.replace_pos] = old_char; } } @@ -334,7 +353,7 @@ utf32_to_utf8_out_ok (const std::codecvt ) VERIFY (char_traits::length (in) == 4); VERIFY (char_traits::length (exp) == 10); - const test_offsets_ok offsets[] = {{0, 0}, {1, 1}, {2, 3}, {3, 6}, {4, 10}}; + test_offsets_ok offsets[] = {{0, 0}, {1, 1}, {2, 3}, {3, 6}, {4, 10}}; for (auto t : offsets) { ExternT out[array_size (exp) - 1] = {}; @@ -374,7 +393,7 @@ utf32_to_utf8_out_partial (const std::codecvt ) VERIFY (char_traits::length (in) == 4); VERIFY (char_traits::length (exp) == 10); - const test_offsets_partial offsets[] = { + test_offsets_partial offsets[] = { {1, 0, 0, 0}, // no space for first CP {2, 1, 1, 1}, // no space for second CP @@ -528,6 +547,11 @@ utf8_to_utf16_in_ok (const std::codecvt ) VERIFY (char_traits::compare (out, exp, t.out_size) == 0); if (t.out_size < array_size (out)) VERIFY (out[t.out_size] == 0); + + state = {}; + auto len = cvt.length (state, in, in + t.in_size, t.out_size); + VERIFY (len >= 0); + VERIFY (static_cast (len) == t.in_size); } for (auto t : offsets) @@ -548,6 +572,11 @@ utf8_to_utf16_in_ok (const std::codecvt ) VERIFY (char_traits::compare (out, exp, t.out_size) == 0); if (t.out_size < array_size (out)) VERIFY (out[t.out_size] == 0); + + state = {}; + auto len = cvt.length (state, in, in + t.in_size, array_size (out)); + VERIFY (len >= 0); + VERIFY (static_cast (len) == t.in_size); } } @@ -617,6 +646,11 @@ utf8_to_utf16_in_partial (const std::codecvt ) == 0); if (t.expected_out_next < array_size (out)) VERIFY (out[t.expected_out_next] == 0); + + state = {}; + auto len = cvt.length (state, in, in + t.in_size, t.out_size); + VERIFY (len >= 0); + VERIFY (static_cast (len) == t.expected_in_next); } } @@ -757,6 +791,11 @@ utf8_to_utf16_in_error (const std::codecvt ) if (t.expected_out_next < array_size (out)) VERIFY (out[t.expected_out_next] == 0); + state = {}; + auto len = cvt.length (state, in, in + t.in_size, t.out_size); + VERIFY (len >= 0); + VERIFY (static_cast (len) == t.expected_in_next); +
[Bug libstdc++/108976] codecvt for Unicode allows surrogate code points
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108976 Jonathan Wakely changed: What|Removed |Added Resolution|--- |FIXED Status|NEW |RESOLVED --- Comment #15 from Jonathan Wakely --- Fixed for 13.4 and 14.1
[gcc r13-8788] libstdc++: Fix handling of surrogate CP in codecvt [PR108976]
https://gcc.gnu.org/g:bd5e672303f5f777e8927a746d3ee42db21d871b commit r13-8788-gbd5e672303f5f777e8927a746d3ee42db21d871b Author: Dimitrij Mijoski Date: Thu Sep 28 21:38:11 2023 +0200 libstdc++: Fix handling of surrogate CP in codecvt [PR108976] This patch fixes the handling of surrogate code points in all standard facets for transcoding Unicode that are based on std::codecvt. Surrogate code points should always be treated as error. On the other hand surrogate code units can only appear in UTF-16 and only when they come in a proper pair. Additionally, it fixes a bug in std::codecvt_utf16::in() when odd number of bytes were given in the range [from, from_end), error was returned always. The last byte in such range does not form a full UTF-16 code unit and we can not make any decisions for error, instead partial should be returned. The testsuite for testing these facets was updated in the following order: 1. All functions that test codecvts that work with UTF-8 were refactored and made more generic so they accept codecvt that works with the char type char8_t. 2. The same functions were updated with new test cases for transcoding errors and now additionally test for surrogates, overlong UTF-8 sequences, code points out of the Unicode range, and more tests for missing leading and trailing code units. 3. New tests were added to test codecvt_utf16 in both of its variants, UTF-16 <-> UTF-32/UCS-4 and UTF-16 <-> UCS-2. libstdc++-v3/ChangeLog: PR libstdc++/108976 * src/c++11/codecvt.cc (read_utf8_code_point): Fix handing of surrogates in UTF-8. (ucs4_out): Fix handling of surrogates in UCS-4 -> UTF-8. (ucs4_in): Fix handling of range with odd number of bytes. (ucs4_out): Fix handling of surrogates in UCS-4 -> UTF-16. (ucs2_out): Fix handling of surrogates in UCS-2 -> UTF-16. (ucs2_in): Fix handling of range with odd number of bytes. (__codecvt_utf16_base::do_in): Likewise. (__codecvt_utf16_base::do_in): Likewise. (__codecvt_utf16_base::do_in): Likewise. * testsuite/22_locale/codecvt/codecvt_unicode.cc: Renames, add tests for codecvt_utf16 and codecvt_utf16. * testsuite/22_locale/codecvt/codecvt_unicode.h: Refactor UTF-8 testing functions for char8_t, add more test cases for errors, add testing functions for codecvt_utf16. * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: Renames, add tests for codecvt_utf16. * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc (test06): Fix test. * testsuite/22_locale/codecvt/codecvt_unicode_char8_t.cc: New test. (cherry picked from commit a8b9c32da787ea0bfbfc9118ac816fa7be4b1bc8) Diff: --- libstdc++-v3/src/c++11/codecvt.cc | 18 +- .../testsuite/22_locale/codecvt/codecvt_unicode.cc | 38 +- .../testsuite/22_locale/codecvt/codecvt_unicode.h | 1799 +++- .../22_locale/codecvt/codecvt_unicode_char8_t.cc | 53 + .../22_locale/codecvt/codecvt_unicode_wchar_t.cc | 32 +- .../22_locale/codecvt/codecvt_utf16/79980.cc |2 +- 6 files changed, 1493 insertions(+), 449 deletions(-) diff --git a/libstdc++-v3/src/c++11/codecvt.cc b/libstdc++-v3/src/c++11/codecvt.cc index 02f05752de8..2cc812cfc34 100644 --- a/libstdc++-v3/src/c++11/codecvt.cc +++ b/libstdc++-v3/src/c++11/codecvt.cc @@ -284,6 +284,8 @@ namespace return invalid_mb_sequence; if (c1 == 0xE0 && c2 < 0xA0) [[unlikely]] // overlong return invalid_mb_sequence; + if (c1 == 0xED && c2 >= 0xA0) [[unlikely]] // surrogate + return invalid_mb_sequence; if (avail < 3) [[unlikely]] return incomplete_mb_character; char32_t c3 = (unsigned char) from[2]; @@ -484,6 +486,8 @@ namespace while (from.size()) { const char32_t c = from[0]; + if (0xD800 <= c && c <= 0xDFFF) [[unlikely]] + return codecvt_base::error; if (c > maxcode) [[unlikely]] return codecvt_base::error; if (!write_utf8_code_point(to, c)) [[unlikely]] @@ -508,7 +512,7 @@ namespace return codecvt_base::error; to = codepoint; } -return from.size() ? codecvt_base::partial : codecvt_base::ok; +return from.nbytes() ? codecvt_base::partial : codecvt_base::ok; } // ucs4 -> utf16 @@ -521,6 +525,8 @@ namespace while (from.size()) { const char32_t c = from[0]; + if (0xD800 <= c && c <= 0xDFFF) [[unlikely]] + return codecvt_base::error; if (c > maxcode) [[unlikely]] return codecvt_base::error; if (!write_utf16_code_point(to, c, mode)) [[unlikely]] @@ -653,7 +659,7 @@ namespace while (from.size() &&
[gcc r13-8787] c++: Fix std dialect hint for std::to_address [PR107800]
https://gcc.gnu.org/g:0a9df2c711f40e067cd57707d8e623136ae4efbe commit r13-8787-g0a9df2c711f40e067cd57707d8e623136ae4efbe Author: Jonathan Wakely Date: Tue May 21 13:16:33 2024 +0100 c++: Fix std dialect hint for std::to_address [PR107800] The correct dialect for std::to_address is cxx20 not cxx11. gcc/cp/ChangeLog: PR libstdc++/107800 * cxxapi-data.csv : Change dialect to cxx20. * std-name-hint.gperf: Regenerate. * std-name-hint.h: Regenerate. (cherry picked from commit 826a7d3d19d3ebf04e21d6f1c89eb341a36fb5d1) Diff: --- gcc/cp/cxxapi-data.csv | 2 +- gcc/cp/std-name-hint.gperf | 2 +- gcc/cp/std-name-hint.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/gcc/cp/cxxapi-data.csv b/gcc/cp/cxxapi-data.csv index eb6dbcd6057..aecad73a7e8 100644 --- a/gcc/cp/cxxapi-data.csv +++ b/gcc/cp/cxxapi-data.csv @@ -460,7 +460,7 @@ # unimplemented ,default_accessor,1,no # unimplemented ,mdspan,1,cxx23 ,pointer_traits,1,cxx11 -,to_address,1,cxx11 +,to_address,1,cxx20 ,align,1,cxx11 ,assume_aligned,1,cxx20 ,allocator_arg_t,1,cxx11 diff --git a/gcc/cp/std-name-hint.gperf b/gcc/cp/std-name-hint.gperf index 758e74f77d6..a46c7f3e68f 100644 --- a/gcc/cp/std-name-hint.gperf +++ b/gcc/cp/std-name-hint.gperf @@ -220,7 +220,7 @@ pointer_traits, "", cxx11 reinterpret_pointer_cast, "", cxx17 shared_ptr, "", cxx11 static_pointer_cast, "", cxx11 -to_address, "", cxx11 +to_address, "", cxx20 uninitialized_construct_using_allocator, "", cxx20 unique_ptr, "", cxx11 uses_allocator, "", cxx11 diff --git a/gcc/cp/std-name-hint.h b/gcc/cp/std-name-hint.h index 5848fca6f0e..8503d195145 100644 --- a/gcc/cp/std-name-hint.h +++ b/gcc/cp/std-name-hint.h @@ -291,7 +291,7 @@ std_name_hint_lookup::find (const char *str, size_t len) #line 472 "std-name-hint.gperf" {"variant_npos", "", cxx17}, #line 223 "std-name-hint.gperf" - {"to_address", "", cxx11}, + {"to_address", "", cxx20}, #line 460 "std-name-hint.gperf" {"pair", "", cxx98}, #line 269 "std-name-hint.gperf"
[Bug libstdc++/108976] codecvt for Unicode allows surrogate code points
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108976 --- Comment #14 from GCC Commits --- The releases/gcc-13 branch has been updated by Jonathan Wakely : https://gcc.gnu.org/g:bd5e672303f5f777e8927a746d3ee42db21d871b commit r13-8788-gbd5e672303f5f777e8927a746d3ee42db21d871b Author: Dimitrij Mijoski Date: Thu Sep 28 21:38:11 2023 +0200 libstdc++: Fix handling of surrogate CP in codecvt [PR108976] This patch fixes the handling of surrogate code points in all standard facets for transcoding Unicode that are based on std::codecvt. Surrogate code points should always be treated as error. On the other hand surrogate code units can only appear in UTF-16 and only when they come in a proper pair. Additionally, it fixes a bug in std::codecvt_utf16::in() when odd number of bytes were given in the range [from, from_end), error was returned always. The last byte in such range does not form a full UTF-16 code unit and we can not make any decisions for error, instead partial should be returned. The testsuite for testing these facets was updated in the following order: 1. All functions that test codecvts that work with UTF-8 were refactored and made more generic so they accept codecvt that works with the char type char8_t. 2. The same functions were updated with new test cases for transcoding errors and now additionally test for surrogates, overlong UTF-8 sequences, code points out of the Unicode range, and more tests for missing leading and trailing code units. 3. New tests were added to test codecvt_utf16 in both of its variants, UTF-16 <-> UTF-32/UCS-4 and UTF-16 <-> UCS-2. libstdc++-v3/ChangeLog: PR libstdc++/108976 * src/c++11/codecvt.cc (read_utf8_code_point): Fix handing of surrogates in UTF-8. (ucs4_out): Fix handling of surrogates in UCS-4 -> UTF-8. (ucs4_in): Fix handling of range with odd number of bytes. (ucs4_out): Fix handling of surrogates in UCS-4 -> UTF-16. (ucs2_out): Fix handling of surrogates in UCS-2 -> UTF-16. (ucs2_in): Fix handling of range with odd number of bytes. (__codecvt_utf16_base::do_in): Likewise. (__codecvt_utf16_base::do_in): Likewise. (__codecvt_utf16_base::do_in): Likewise. * testsuite/22_locale/codecvt/codecvt_unicode.cc: Renames, add tests for codecvt_utf16 and codecvt_utf16. * testsuite/22_locale/codecvt/codecvt_unicode.h: Refactor UTF-8 testing functions for char8_t, add more test cases for errors, add testing functions for codecvt_utf16. * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: Renames, add tests for codecvt_utf16. * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc (test06): Fix test. * testsuite/22_locale/codecvt/codecvt_unicode_char8_t.cc: New test. (cherry picked from commit a8b9c32da787ea0bfbfc9118ac816fa7be4b1bc8)
[Bug c++/107800] confusing message with to_address in C++17
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107800 --- Comment #11 from GCC Commits --- The releases/gcc-13 branch has been updated by Jonathan Wakely : https://gcc.gnu.org/g:0a9df2c711f40e067cd57707d8e623136ae4efbe commit r13-8787-g0a9df2c711f40e067cd57707d8e623136ae4efbe Author: Jonathan Wakely Date: Tue May 21 13:16:33 2024 +0100 c++: Fix std dialect hint for std::to_address [PR107800] The correct dialect for std::to_address is cxx20 not cxx11. gcc/cp/ChangeLog: PR libstdc++/107800 * cxxapi-data.csv : Change dialect to cxx20. * std-name-hint.gperf: Regenerate. * std-name-hint.h: Regenerate. (cherry picked from commit 826a7d3d19d3ebf04e21d6f1c89eb341a36fb5d1)
Results for 15.0.0 20240521 (experimental) [master r15-759-gf0c0bced62b] (GCC) testsuite on x86_64-pc-linux-gnu
o-fat-lto-objects -DPREVENT_OPTIMIZATION line 24 sizeof (a) == 17 * sizeof (short) XPASS: gcc.dg/plugin/infoleak-vfio_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-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 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 passes197675 # of unexpected failures160 # of unexpected successes 30 # of expected failures 1552 # of unsupported tests 4076 === gcc Summary === # of expected passes401707 # of unexpected failures322 # of unexpected successes 50 # of expected failures 3098 # of unsupported tests 7351 /export/home/haochenj/src/gcc-reg
[gcc r14-10227] c++: Fix std dialect hint for std::to_address [PR107800]
https://gcc.gnu.org/g:5b96d547ce71b8f03ddbc2318c64618110839e20 commit r14-10227-g5b96d547ce71b8f03ddbc2318c64618110839e20 Author: Jonathan Wakely Date: Tue May 21 13:16:33 2024 +0100 c++: Fix std dialect hint for std::to_address [PR107800] The correct dialect for std::to_address is cxx20 not cxx11. gcc/cp/ChangeLog: PR libstdc++/107800 * cxxapi-data.csv : Change dialect to cxx20. * std-name-hint.gperf: Regenerate. * std-name-hint.h: Regenerate. (cherry picked from commit 826a7d3d19d3ebf04e21d6f1c89eb341a36fb5d1) Diff: --- gcc/cp/cxxapi-data.csv | 2 +- gcc/cp/std-name-hint.gperf | 2 +- gcc/cp/std-name-hint.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/gcc/cp/cxxapi-data.csv b/gcc/cp/cxxapi-data.csv index 75ee1b3ac92..1cbf774acd7 100644 --- a/gcc/cp/cxxapi-data.csv +++ b/gcc/cp/cxxapi-data.csv @@ -460,7 +460,7 @@ # unimplemented ,default_accessor,1,no # unimplemented ,mdspan,1,cxx23 ,pointer_traits,1,cxx11 -,to_address,1,cxx11 +,to_address,1,cxx20 ,align,1,cxx11 ,assume_aligned,1,cxx20 ,allocator_arg_t,1,cxx11 diff --git a/gcc/cp/std-name-hint.gperf b/gcc/cp/std-name-hint.gperf index b26bc6949ba..4fb23da40a6 100644 --- a/gcc/cp/std-name-hint.gperf +++ b/gcc/cp/std-name-hint.gperf @@ -220,7 +220,7 @@ pointer_traits, "", cxx11 reinterpret_pointer_cast, "", cxx17 shared_ptr, "", cxx11 static_pointer_cast, "", cxx11 -to_address, "", cxx11 +to_address, "", cxx20 uninitialized_construct_using_allocator, "", cxx20 unique_ptr, "", cxx11 uses_allocator, "", cxx11 diff --git a/gcc/cp/std-name-hint.h b/gcc/cp/std-name-hint.h index e37d769c1ce..231689355d1 100644 --- a/gcc/cp/std-name-hint.h +++ b/gcc/cp/std-name-hint.h @@ -291,7 +291,7 @@ std_name_hint_lookup::find (const char *str, size_t len) #line 472 "std-name-hint.gperf" {"variant_npos", "", cxx17}, #line 223 "std-name-hint.gperf" - {"to_address", "", cxx11}, + {"to_address", "", cxx20}, #line 460 "std-name-hint.gperf" {"pair", "", cxx98}, #line 269 "std-name-hint.gperf"
[Bug c++/107800] confusing message with to_address in C++17
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107800 --- Comment #10 from GCC Commits --- The releases/gcc-14 branch has been updated by Jonathan Wakely : https://gcc.gnu.org/g:5b96d547ce71b8f03ddbc2318c64618110839e20 commit r14-10227-g5b96d547ce71b8f03ddbc2318c64618110839e20 Author: Jonathan Wakely Date: Tue May 21 13:16:33 2024 +0100 c++: Fix std dialect hint for std::to_address [PR107800] The correct dialect for std::to_address is cxx20 not cxx11. gcc/cp/ChangeLog: PR libstdc++/107800 * cxxapi-data.csv : Change dialect to cxx20. * std-name-hint.gperf: Regenerate. * std-name-hint.h: Regenerate. (cherry picked from commit 826a7d3d19d3ebf04e21d6f1c89eb341a36fb5d1)
Re: [PATCH v5 1/5] Improve must tail in RTL backend
> I see. I do wonder how we should deal with the inherent > dependence on optimization for [[musttail]] to work then? "Solve" > the problem with good documentation? For now that's good enough I think. If it's a significant problem it can always be improved later. > Offer a -fignore-musttail > option to allow a -O0 build to at least succeed? But then [[musttail]] > would rather be [[shouldtail]] and can no longer be for correctness? I don't think ignore-musttail is a good idea because an interpreter relying on this would almost certainly die very quickly after overflowing its stack. The feature is only useful when it can be relied on. > How does clang solve this? clang++ 17 seems to handle both cases (large struct in memory or struct fitting into registers) without optimization. I haven't checked the LLVM source on the exact details. -Andi
Results for 15.0.0 20240521 (experimental) [remotes/origin/HEAD r15-758-g9926c40a90] (GCC) testsuite on powerpc64le-unknown-linux-gnu
-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/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/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 passes178680 # of unexpected failures125 # of unexpected successes 13 # of expected failures 1602 # of unsupported tests 5041 /home/gccbuild/build/nightly/build-gcc-trunk/gcc/xgcc version 15.0.0 20240521 (experimental) [remotes/origin/HEAD r15-758-g9926c40a90] (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.dg/ieee/comparisons_3.F90 -O0 execution test FAIL: gfortran.dg/ieee/comparisons_3.F90 -O1 execution test FAIL: gfortran.dg/ieee/comparisons_3.F90 -O2 execution test FAIL: gfortran.dg/ieee/comparisons_3.F90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test FAIL: gfortran.dg/ieee/comparisons_3.F90 -O3 -g execution test FAIL:
Results for 15.0.0 20240521 (experimental) [master r15-758-g9926c40a902] (GCC) testsuite on i686-pc-linux-gnu
asses 196294 # of unexpected failures230 # of unexpected successes 27 # of expected failures 1502 # of unresolved testcases 114 # of unsupported tests 4196 /home/haochenj/src/gcc-regression/bld/gcc/xgcc version 15.0.0 20240521 (experimental) [master r15-758-g9926c40a902] (GCC) === gfortran tests === Running target unix UNRESOLVED: gfortran.dg/weak-1.f90 -O UNRESOLVED: gfortran.dg/weak-2.f90 -O UNRESOLVED: gfortran.dg/weak-3.f90 -O === gfortran Summary === # of expected passes69835 # of expected failures 275 # of unresolved testcases 3 # of unsupported tests 233 /home/haochenj/src/gcc-regression/bld/gcc/gfortran version 15.0.0 20240521 (experimental) [master r15-758-g9926c40a902] (GCC) === g++ tests === Running target unix UNRESOLVED: g++.dg/debug/dwarf2/inline-var-1.C -std=gnu++14 UNRESOLVED: g++.dg/debug/dwarf2/inline-var-1.C -std=gnu++17 UNRESOLVED: g++.dg/debug/dwarf2/inline-var-1.C -std=gnu++20 UNRESOLVED: g++.dg/debug/dwarf2/inline-var-1.C -std=gnu++98 UNRESOLVED: g++.dg/debug/dwarf2/inline-var-2.C -std=gnu++14 UNRESOLVED: g++.dg/debug/dwarf2/inline-var-2.C -std=gnu++17 UNRESOLVED: g++.dg/debug/dwarf2/inline-var-2.C -std=gnu++20 UNRESOLVED: g++.dg/debug/dwarf2/inline-var-2.C -std=gnu++98 UNRESOLVED: g++.dg/debug/dwarf2/inline-var-3.C -std=gnu++14 UNRESOLVED: g++.dg/debug/dwarf2/inline-var-3.C -std=gnu++17 UNRESOLVED: g++.dg/debug/dwarf2/inline-var-3.C -std=gnu++20 UNRESOLVED: g++.dg/debug/dwarf2/inline-var-3.C -std=gnu++98 UNRESOLVED: c-c++-common/Waddress-5.c -std=gnu++14 UNRESOLVED: c-c++-common/Waddress-5.c -std=gnu++17 UNRESOLVED: c-c++-common/Waddress-5.c -std=gnu++20 UNRESOLVED: c-c++-common/Waddress-5.c -std=gnu++98 UNRESOLVED: g++.dg/abi/anon2.C -std=c++14 UNRESOLVED: g++.dg/abi/anon2.C -std=c++17 UNRESOLVED: g++.dg/abi/anon2.C -std=c++20 UNRESOLVED: g++.dg/abi/anon2.C -std=c++98 UNRESOLVED: g++.dg/abi/anon3.C -std=c++14 UNRESOLVED: g++.dg/abi/anon3.C -std=c++17 UNRESOLVED: g++.dg/abi/anon3.C -std=c++20 UNRESOLVED: g++.dg/abi/anon3.C -std=c++98 UNRESOLVED: g++.dg/abi/mangle40.C -std=gnu++14 UNRESOLVED: g++.dg/abi/mangle40.C -std=gnu++17 UNRESOLVED: g++.dg/abi/mangle40.C -std=gnu++20 UNRESOLVED: g++.dg/abi/mangle40.C -std=gnu++98 UNRESOLVED: g++.dg/abi/rtti3.C -std=c++14 UNRESOLVED: g++.dg/abi/rtti3.C -std=c++17 UNRESOLVED: g++.dg/abi/rtti3.C -std=c++20 UNRESOLVED: g++.dg/abi/rtti3.C -std=c++98 UNRESOLVED: g++.dg/abi/thunk3.C -std=c++14 UNRESOLVED: g++.dg/abi/thunk3.C -std=c++17 UNRESOLVED: g++.dg/abi/thunk3.C -std=c++20 UNRESOLVED: g++.dg/abi/thunk3.C -std=c++98 UNRESOLVED: g++.dg/abi/thunk4.C -std=c++14 UNRESOLVED: g++.dg/abi/thunk4.C -std=c++17 UNRESOLVED: g++.dg/abi/thunk4.C -std=c++20 UNRESOLVED: g++.dg/abi/thunk4.C -std=c++98 UNRESOLVED: g++.dg/abi/thunk5.C -std=c++14 UNRESOLVED: g++.dg/abi/thunk5.C -std=c++17 UNRESOLVED: g++.dg/abi/thunk5.C -std=c++20 UNRESOLVED: g++.dg/abi/thunk5.C -std=c++98 UNRESOLVED: g++.dg/cpp0x/lambda/lambda-mangle.C -std=gnu++14 UNRESOLVED: g++.dg/cpp0x/lambda/lambda-mangle.C -std=gnu++17 UNRESOLVED: g++.dg/cpp0x/lambda/lambda-mangle.C -std=gnu++20 UNRESOLVED: g++.dg/cpp0x/lambda/lambda-mangle.C -std=gnu++98 UNRESOLVED: g++.dg/cpp0x/lambda/lambda-mangle6.C -std=gnu++14 UNRESOLVED: g++.dg/cpp0x/lambda/lambda-mangle6.C -std=gnu++17 UNRESOLVED: g++.dg/cpp0x/lambda/lambda-mangle6.C -std=gnu++20 UNRESOLVED: g++.dg/cpp0x/lambda/lambda-mangle6.C -std=gnu++98 UNRESOLVED: g++.dg/cpp0x/pr84497.C -std=c++14 UNRESOLVED: g++.dg/cpp0x/pr84497.C -std=c++17 UNRESOLVED: g++.dg/cpp0x/pr84497.C -std=c++20 UNRESOLVED: g++.dg/cpp0x/pr84497.C -std=c++98 UNRESOLVED: g++.dg/cpp1z/decomp41.C -std=gnu++14 UNRESOLVED: g++.dg/cpp1z/decomp41.C -std=gnu++17 UNRESOLVED: g++.dg/cpp1z/decomp41.C -std=gnu++20 UNRESOLVED: g++.dg/cpp1z/decomp41.C -std=gnu++98 UNRESOLVED: g++.dg/cpp1z/inline-var1.C -std=gnu++14 UNRESOLVED: g++.dg/cpp1z/inline-var1.C -std=gnu++17 UNRESOLVED: g++.dg/cpp1z/inline-var1.C -std=gnu++20 UNRESOLVED: g++.dg/cpp1z/inline-var1.C -std=gnu++98 UNRESOLVED: g++.dg/cpp2a/lambda-mangle.C -std=gnu++14 UNRESOLVED: g++.dg/cpp2a/lambda-mangle.C -std=gnu++17 UNRESOLVED: g++.dg/cpp2a/lambda-mangle.C -std=gnu++20 UNRESOLVED: g++.dg/cpp2a/lambda-mangle.C -std=gnu++98 UNRESOLVED: g++.dg/eh/ia64-2.C -std=gnu++14 UNRESOLVED: g++.dg/eh/ia64-2.C -std=gnu++17 UNRESOLVED: g++.dg/eh/ia64-2.C -std=gnu++20 UNRESOLVED: g++.dg/eh/ia64-2.C -std=gnu++98 UNRESOLVED: g++.dg/eh/weak1.C -std=gnu++14 UNRESOLVED: g++.dg/eh/weak1.C -std=gnu++17 UNRESOLVED: g++.dg/eh/weak1.C -std=gnu++20 UNRESOLVED: g++.dg/eh/weak1.C -std=gnu++98 UNRESOLVED: g++.dg/ext/attr-copy.C -std=gnu++14 UNRESOLVED: g++.dg/ext/attr-copy.C -std=gnu++17 UNRESOLVED: g++.dg/ext/attr-copy.C -std=gnu++20 UNRESOLVED: g++.dg/ext/attr-copy.C -std=gnu++98 UNRESOLVED: g++.dg/ext/tmplattr9.C -std=gnu++14 UNRESOLVED: g++.dg
Re: [PATCH] c++: canonicity of fn types w/ complex eh specs [PR115159]
On 5/21/24 17:27, Patrick Palka wrote: On Tue, 21 May 2024, Jason Merrill wrote: On 5/21/24 15:36, Patrick Palka wrote: Bootstrapped and regtested on x86_64-pc-linux-gnu, does this look OK for trunk? Alternatively, I considered fixing this by incrementing comparing_specializations around the call to comp_except_specs in cp_check_qualified_type, but generally for types whose identity depends on whether comparing_specializations is set we need to use structural equality anyway IIUC. Why not both? I figured the latter change isn't necessary/observable since comparing_specializations would only make a difference for complex exception specifications, and with this patch we won't even call cp_check_qualified_type on a complex eh spec. My concern is that if we're building a function type multiple times with the same noexcept-spec, this patch would mean creating multiple equivalent function types instead of reusing one already created for the same function. + bool complex_p = (cr && cr != noexcept_true_spec + && !UNPARSED_NOEXCEPT_SPEC_P (cr)); Why treat unparsed specs differently from parsed ones? Unparsed specs are unique according to cp_tree_equal, so in turn function types with unparsed specs are unique, so it should be safe to treat such types as canonical. I'm not sure if this optimization matters though; I'm happy to remove this case. The idea that this optimization could make a difference raised the concern above. Jason
Re: [RFC][PATCH] PR tree-optimization/109071 - -Warray-bounds false positive warnings due to code duplication from jump threading
On Tue, 2024-05-21 at 15:13 +, Qing Zhao wrote: > Thanks for the comments and suggestions. > > > On May 15, 2024, at 10:00, David Malcolm > > wrote: > > > > On Tue, 2024-05-14 at 15:08 +0200, Richard Biener wrote: > > > On Mon, 13 May 2024, Qing Zhao wrote: > > > > > > > -Warray-bounds is an important option to enable linux kernal to > > > > keep > > > > the array out-of-bound errors out of the source tree. > > > > > > > > However, due to the false positive warnings reported in > > > > PR109071 > > > > (-Warray-bounds false positive warnings due to code duplication > > > > from > > > > jump threading), -Warray-bounds=1 cannot be added on by > > > > default. > > > > > > > > Although it's impossible to elinimate all the false positive > > > > warnings > > > > from -Warray-bounds=1 (See PR104355 Misleading -Warray-bounds > > > > documentation says "always out of bounds"), we should minimize > > > > the > > > > false positive warnings in -Warray-bounds=1. > > > > > > > > The root reason for the false positive warnings reported in > > > > PR109071 is: > > > > > > > > When the thread jump optimization tries to reduce the # of > > > > branches > > > > inside the routine, sometimes it needs to duplicate the code > > > > and > > > > split into two conditional pathes. for example: > > > > > > > > The original code: > > > > > > > > void sparx5_set (int * ptr, struct nums * sg, int index) > > > > { > > > > if (index >= 4) > > > > warn (); > > > > *ptr = 0; > > > > *val = sg->vals[index]; > > > > if (index >= 4) > > > > warn (); > > > > *ptr = *val; > > > > > > > > return; > > > > } > > > > > > > > With the thread jump, the above becomes: > > > > > > > > void sparx5_set (int * ptr, struct nums * sg, int index) > > > > { > > > > if (index >= 4) > > > > { > > > > warn (); > > > > *ptr = 0; // Code duplications since "warn" does > > > > return; > > > > *val = sg->vals[index]; // same this line. > > > > // In this path, since it's > > > > under > > > > the condition > > > > // "index >= 4", the compiler > > > > knows > > > > the value > > > > // of "index" is larger then 4, > > > > therefore the > > > > // out-of-bound warning. > > > > warn (); > > > > } > > > > else > > > > { > > > > *ptr = 0; > > > > *val = sg->vals[index]; > > > > } > > > > *ptr = *val; > > > > return; > > > > } > > > > > > > > We can see, after the thread jump optimization, the # of > > > > branches > > > > inside > > > > the routine "sparx5_set" is reduced from 2 to 1, however, due > > > > to > > > > the > > > > code duplication (which is needed for the correctness of the > > > > code), > > > > we > > > > got a false positive out-of-bound warning. > > > > > > > > In order to eliminate such false positive out-of-bound warning, > > > > > > > > A. Add one more flag for GIMPLE: is_splitted. > > > > B. During the thread jump optimization, when the basic blocks > > > > are > > > > duplicated, mark all the STMTs inside the original and > > > > duplicated > > > > basic blocks as "is_splitted"; > > > > C. Inside the array bound checker, add the following new > > > > heuristic: > > > > > > > > If > > > > 1. the stmt is duplicated and splitted into two conditional > > > > paths; > > > > + 2. the warning level < 2; > > > > + 3. the current block is not dominating the exit block > > > > Then not report the warning. > > > > > > > > The false positive warnings are moved from -Warray-bounds=1 to > > > > -Warray-bounds=2 now. > > > > > > > > Bootstrapped and regression tested on both x86 and aarch64. > > > > adjusted > > > > -Warray-bounds-61.c due to the false positive warnings. > > > > > > > > Let me know if you have any comments and suggestions. > > > > > > At the last Cauldron I talked with David Malcolm about these kind > > > of > > > issues and thought of instead of suppressing diagnostics to > > > record > > > how a block was duplicated. For jump threading my idea was to > > > record > > > the condition that was proved true when entering the path and do > > > this > > > by recording the corresponding locations > > Is only recording the location for the TRUE path enough? > We might need to record the corresponding locations for both TRUE and > FALSE paths since the VRP might be more accurate on both paths. > Is only recording the location is enough? > Do we need to record the pointer to the original condition stmt? Just to be clear: I don't plan to work on this myself (I have far too much already to work on...); I'm assuming Richard Biener is hoping/planning to implement this himself. But feel free to ask me any questions about the diagnostic_path machinery within the diagnostics subsystem. [...snip...] Regards Dave
Re: [PATCH] c++: canonicity of fn types w/ complex eh specs [PR115159]
On Tue, 21 May 2024, Patrick Palka wrote: > On Tue, 21 May 2024, Jason Merrill wrote: > > > On 5/21/24 15:36, Patrick Palka wrote: > > > Bootstrapped and regtested on x86_64-pc-linux-gnu, does this look > > > OK for trunk? > > > > > > Alternatively, I considered fixing this by incrementing > > > comparing_specializations around the call to comp_except_specs in > > > cp_check_qualified_type, but generally for types whose identity > > > depends on whether comparing_specializations is set we need to > > > use structural equality anyway IIUC. > > > > Why not both? > > I figured the latter change isn't necessary/observable since > comparing_specializations would only make a difference for complex > exception specifications, and with this patch we won't even call > cp_check_qualified_type on a complex eh spec. > > > > > > + bool complex_p = (cr && cr != noexcept_true_spec > > > + && !UNPARSED_NOEXCEPT_SPEC_P (cr)); > > > > Why treat unparsed specs differently from parsed ones? > > Unparsed specs are unique according to cp_tree_equal, so in turn > function types with unparsed specs are unique, so it should be safe to > treat such types as canonical. I'm not sure if this optimization > matters though; I'm happy to remove this case. FWIW if we do get rid of this case then I think in fixup_deferred_exception_variants we can assert TYPE_STRUCTURAL_EQUALITY_P is already set instead of having to set it. > > > > > Jason > > > > >
Re: [PATCH] c++: canonicity of fn types w/ complex eh specs [PR115159]
On Tue, 21 May 2024, Jason Merrill wrote: > On 5/21/24 15:36, Patrick Palka wrote: > > Bootstrapped and regtested on x86_64-pc-linux-gnu, does this look > > OK for trunk? > > > > Alternatively, I considered fixing this by incrementing > > comparing_specializations around the call to comp_except_specs in > > cp_check_qualified_type, but generally for types whose identity > > depends on whether comparing_specializations is set we need to > > use structural equality anyway IIUC. > > Why not both? I figured the latter change isn't necessary/observable since comparing_specializations would only make a difference for complex exception specifications, and with this patch we won't even call cp_check_qualified_type on a complex eh spec. > > > + bool complex_p = (cr && cr != noexcept_true_spec > > + && !UNPARSED_NOEXCEPT_SPEC_P (cr)); > > Why treat unparsed specs differently from parsed ones? Unparsed specs are unique according to cp_tree_equal, so in turn function types with unparsed specs are unique, so it should be safe to treat such types as canonical. I'm not sure if this optimization matters though; I'm happy to remove this case. > > Jason > >
Results for 15.0.0 20240521 (experimental) [master revision gcc-15-751-g7b215c86762] (GCC) testsuite on arm-unknown-eabi
-g scan-assembler msr\\tAPSR_nzcvqg, lr FAIL: gcc.target/arm/cmse/mainline/8m/soft/cmse-5.c -march=armv8-m.main+fp -mthumb -mfloat-abi=soft -Os scan-assembler msr\\tAPSR_nzcvqg, lr FAIL: gcc.target/arm/cmse/mainline/8m/softfp-sp/cmse-5.c -march=armv8-m.main+fp -mthumb -O0 scan-assembler msr\\tAPSR_nzcvqg, lr FAIL: gcc.target/arm/cmse/mainline/8m/softfp-sp/cmse-5.c -march=armv8-m.main+fp -mthumb -O1 scan-assembler msr\\tAPSR_nzcvqg, lr FAIL: gcc.target/arm/cmse/mainline/8m/softfp-sp/cmse-5.c -march=armv8-m.main+fp -mthumb -O2 scan-assembler msr\\tAPSR_nzcvqg, lr FAIL: gcc.target/arm/cmse/mainline/8m/softfp-sp/cmse-5.c -march=armv8-m.main+fp -mthumb -O3 -g scan-assembler msr\\tAPSR_nzcvqg, lr FAIL: gcc.target/arm/cmse/mainline/8m/softfp-sp/cmse-5.c -march=armv8-m.main+fp -mthumb -Os scan-assembler msr\\tAPSR_nzcvqg, lr FAIL: gcc.target/arm/cmse/mainline/8m/softfp/cmse-5.c -march=armv8-m.main+fp -mthumb -O0 scan-assembler msr\\tAPSR_nzcvqg, lr FAIL: gcc.target/arm/cmse/mainline/8m/softfp/cmse-5.c -march=armv8-m.main+fp -mthumb -O1 scan-assembler msr\\tAPSR_nzcvqg, lr FAIL: gcc.target/arm/cmse/mainline/8m/softfp/cmse-5.c -march=armv8-m.main+fp -mthumb -O2 scan-assembler msr\\tAPSR_nzcvqg, lr FAIL: gcc.target/arm/cmse/mainline/8m/softfp/cmse-5.c -march=armv8-m.main+fp -mthumb -O3 -g scan-assembler msr\\tAPSR_nzcvqg, lr FAIL: gcc.target/arm/cmse/mainline/8m/softfp/cmse-5.c -march=armv8-m.main+fp -mthumb -Os scan-assembler msr\\tAPSR_nzcvqg, lr FAIL: gcc.target/arm/simd/mve-vabs.c scan-assembler-times memmove 3 FAIL: gcc.target/arm/simd/mve-vshr.c scan-assembler-times vneg.s[0-9]+tq[0-9]+, q[0-9]+ 6 FAIL: gcc.target/arm/simd/mve-vshr.c scan-assembler-times vshl.s[0-9]+tq[0-9]+, q[0-9]+ 3 FAIL: gcc.target/arm/simd/mve-vshr.c scan-assembler-times vshl.u[0-9]+tq[0-9]+, q[0-9]+ 3 === gcc Summary === # of expected passes166348 # of unexpected failures283 # of expected failures 1016 # of unresolved testcases 1 # of unsupported tests 9470 /home/tcwg-buildslave/workspace/tcwg_gnu_1/abe/builds/destdir/x86_64-pc-linux-gnu/bin/arm-eabi-gcc version 15.0.0 20240521 (experimental) [master revision gcc-15-751-g7b215c86762] (GCC) Host is x86_64-pc-linux-gnu === g++ tests === Running target qemu/-mthumb/-march=armv8-m.main+dsp+fp/-mtune=cortex-m33/-mfloat-abi=hard/-mfpu=auto 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: g++.dg/cpp2a/decomp2.C -std=gnu++14 (test for excess errors) UNRESOLVED: g++.dg/cpp2a/decomp2.C -std=gnu++14 compilation failed to produce executable FAIL: g++.dg/cpp2a/decomp2.C -
Re: [PATCH] c++: canonicity of fn types w/ complex eh specs [PR115159]
On 5/21/24 15:36, Patrick Palka wrote: Bootstrapped and regtested on x86_64-pc-linux-gnu, does this look OK for trunk? Alternatively, I considered fixing this by incrementing comparing_specializations around the call to comp_except_specs in cp_check_qualified_type, but generally for types whose identity depends on whether comparing_specializations is set we need to use structural equality anyway IIUC. Why not both? + bool complex_p = (cr && cr != noexcept_true_spec + && !UNPARSED_NOEXCEPT_SPEC_P (cr)); Why treat unparsed specs differently from parsed ones? Jason
[Bug sanitizer/115172] Invalid -fsanitize=bool sanitization of variable from named address space
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115172 --- Comment #7 from Jakub Jelinek --- (In reply to Fedor Pchelkin from comment #6) > (In reply to Uroš Bizjak from comment #5) > > (In reply to Jakub Jelinek from comment #4) > > > Created attachment 58261 [details] > > > gcc15-pr115172.patch > > > > > > Full untested patch. > > > > I can confirm that this patch fixes boot for the kernel config from > > PR115172#43. > > Yep. I may confirm, too. Thanks for the prompt fix! > > If all goes well, is it expected to land in 14.2 and 13.4? If it is approved yes. 14.2 is expected likely in July this year, but 13.4 roughly in a year from now, as it just missed 13.3 (released today).
[PATCH] strlen: Fix up !si->full_string_p handling in count_nonzero_bytes_addr [PR115152]
Hi! The following testcase is miscompiled because strlen_pass::count_nonzero_bytes_addr doesn't handle correctly the !si->full_string_p case. If si->full_string_p, it correctly computes minlen and maxlen as minimum and maximum length of the '\0' terminated stgring and clears *nulterm (ie. makes sure !full_string_p in the ultimate caller) if minlen is equal or larger than nbytes and so '\0' isn't guaranteed to be among those bytes. But in the !si->full_string_p case, all we know is that there are [minlen,maxlen] non-zero bytes followed by unknown bytes, so effectively the maxlen is infinite (but caller cares about only the first nbytes bytes) and furthermore, we never know if there is any '\0' char among those, so *nulterm needs to be always cleared. Fixed thusly, bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk and affected release branches? 2024-05-21 Jakub Jelinek PR tree-optimization/115152 * tree-ssa-strlen.cc (strlen_pass::count_nonzero_bytes_addr): If !si->full_string_p, clear *nulterm and set maxlen to nbytes. * gcc.dg/pr115152.c: New test. --- gcc/tree-ssa-strlen.cc.jj 2024-04-29 11:00:45.0 +0200 +++ gcc/tree-ssa-strlen.cc 2024-05-21 13:43:31.031208000 +0200 @@ -4829,7 +4829,7 @@ strlen_pass::count_nonzero_bytes_addr (t if (maxlen + 1 < nbytes) return false; - if (nbytes <= minlen) + if (nbytes <= minlen || !si->full_string_p) *nulterm = false; if (nbytes < minlen) @@ -4839,6 +4839,9 @@ strlen_pass::count_nonzero_bytes_addr (t maxlen = nbytes; } + if (!si->full_string_p) + maxlen = nbytes; + if (minlen < lenrange[0]) lenrange[0] = minlen; if (lenrange[1] < maxlen) --- gcc/testsuite/gcc.dg/pr115152.c.jj 2024-05-21 13:46:02.793214348 +0200 +++ gcc/testsuite/gcc.dg/pr115152.c 2024-05-21 12:49:38.791626073 +0200 @@ -0,0 +1,17 @@ +/* PR tree-optimization/115152 */ +/* { dg-do run } */ +/* { dg-options "-O3 -fno-tree-fre -fno-tree-dominator-opts -fno-tree-loop-im" } */ + +int a, b, c, d; +signed char e[1] = { 1 }; + +int +main () +{ + for (a = 0; a < 3; a++) +for (b = 0; b < 2; b++) + c = e[0] = e[0] ^ d; + if (!c) +__builtin_abort (); + return 0; +} Jakub
[committed] c++: Fix std dialect hint for std::to_address [PR107800]
Tested x86_64-linux. Committed as obvious. I'll backport it too. -- >8 -- The correct dialect for std::to_address is cxx20 not cxx11. gcc/cp/ChangeLog: PR libstdc++/107800 * cxxapi-data.csv : Change dialect to cxx20. * std-name-hint.gperf: Regenerate. * std-name-hint.h: Regenerate. --- gcc/cp/cxxapi-data.csv | 2 +- gcc/cp/std-name-hint.gperf | 2 +- gcc/cp/std-name-hint.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/gcc/cp/cxxapi-data.csv b/gcc/cp/cxxapi-data.csv index 75ee1b3ac92..1cbf774acd7 100644 --- a/gcc/cp/cxxapi-data.csv +++ b/gcc/cp/cxxapi-data.csv @@ -460,7 +460,7 @@ # unimplemented ,default_accessor,1,no # unimplemented ,mdspan,1,cxx23 ,pointer_traits,1,cxx11 -,to_address,1,cxx11 +,to_address,1,cxx20 ,align,1,cxx11 ,assume_aligned,1,cxx20 ,allocator_arg_t,1,cxx11 diff --git a/gcc/cp/std-name-hint.gperf b/gcc/cp/std-name-hint.gperf index b26bc6949ba..4fb23da40a6 100644 --- a/gcc/cp/std-name-hint.gperf +++ b/gcc/cp/std-name-hint.gperf @@ -220,7 +220,7 @@ pointer_traits, "", cxx11 reinterpret_pointer_cast, "", cxx17 shared_ptr, "", cxx11 static_pointer_cast, "", cxx11 -to_address, "", cxx11 +to_address, "", cxx20 uninitialized_construct_using_allocator, "", cxx20 unique_ptr, "", cxx11 uses_allocator, "", cxx11 diff --git a/gcc/cp/std-name-hint.h b/gcc/cp/std-name-hint.h index e37d769c1ce..231689355d1 100644 --- a/gcc/cp/std-name-hint.h +++ b/gcc/cp/std-name-hint.h @@ -291,7 +291,7 @@ std_name_hint_lookup::find (const char *str, size_t len) #line 472 "std-name-hint.gperf" {"variant_npos", "", cxx17}, #line 223 "std-name-hint.gperf" - {"to_address", "", cxx11}, + {"to_address", "", cxx20}, #line 460 "std-name-hint.gperf" {"pair", "", cxx98}, #line 269 "std-name-hint.gperf" -- 2.45.1
[gcc r15-760] c++: Fix std dialect hint for std::to_address [PR107800]
https://gcc.gnu.org/g:826a7d3d19d3ebf04e21d6f1c89eb341a36fb5d1 commit r15-760-g826a7d3d19d3ebf04e21d6f1c89eb341a36fb5d1 Author: Jonathan Wakely Date: Tue May 21 13:16:33 2024 +0100 c++: Fix std dialect hint for std::to_address [PR107800] The correct dialect for std::to_address is cxx20 not cxx11. gcc/cp/ChangeLog: PR libstdc++/107800 * cxxapi-data.csv : Change dialect to cxx20. * std-name-hint.gperf: Regenerate. * std-name-hint.h: Regenerate. Diff: --- gcc/cp/cxxapi-data.csv | 2 +- gcc/cp/std-name-hint.gperf | 2 +- gcc/cp/std-name-hint.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/gcc/cp/cxxapi-data.csv b/gcc/cp/cxxapi-data.csv index 75ee1b3ac92..1cbf774acd7 100644 --- a/gcc/cp/cxxapi-data.csv +++ b/gcc/cp/cxxapi-data.csv @@ -460,7 +460,7 @@ # unimplemented ,default_accessor,1,no # unimplemented ,mdspan,1,cxx23 ,pointer_traits,1,cxx11 -,to_address,1,cxx11 +,to_address,1,cxx20 ,align,1,cxx11 ,assume_aligned,1,cxx20 ,allocator_arg_t,1,cxx11 diff --git a/gcc/cp/std-name-hint.gperf b/gcc/cp/std-name-hint.gperf index b26bc6949ba..4fb23da40a6 100644 --- a/gcc/cp/std-name-hint.gperf +++ b/gcc/cp/std-name-hint.gperf @@ -220,7 +220,7 @@ pointer_traits, "", cxx11 reinterpret_pointer_cast, "", cxx17 shared_ptr, "", cxx11 static_pointer_cast, "", cxx11 -to_address, "", cxx11 +to_address, "", cxx20 uninitialized_construct_using_allocator, "", cxx20 unique_ptr, "", cxx11 uses_allocator, "", cxx11 diff --git a/gcc/cp/std-name-hint.h b/gcc/cp/std-name-hint.h index e37d769c1ce..231689355d1 100644 --- a/gcc/cp/std-name-hint.h +++ b/gcc/cp/std-name-hint.h @@ -291,7 +291,7 @@ std_name_hint_lookup::find (const char *str, size_t len) #line 472 "std-name-hint.gperf" {"variant_npos", "", cxx17}, #line 223 "std-name-hint.gperf" - {"to_address", "", cxx11}, + {"to_address", "", cxx20}, #line 460 "std-name-hint.gperf" {"pair", "", cxx98}, #line 269 "std-name-hint.gperf"
[Bug c++/107800] confusing message with to_address in C++17
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107800 --- Comment #9 from GCC Commits --- The master branch has been updated by Jonathan Wakely : https://gcc.gnu.org/g:826a7d3d19d3ebf04e21d6f1c89eb341a36fb5d1 commit r15-760-g826a7d3d19d3ebf04e21d6f1c89eb341a36fb5d1 Author: Jonathan Wakely Date: Tue May 21 13:16:33 2024 +0100 c++: Fix std dialect hint for std::to_address [PR107800] The correct dialect for std::to_address is cxx20 not cxx11. gcc/cp/ChangeLog: PR libstdc++/107800 * cxxapi-data.csv : Change dialect to cxx20. * std-name-hint.gperf: Regenerate. * std-name-hint.h: Regenerate.
[PATCH] ubsan: Use right address space for MEM_REF created for bool/enum sanitization [PR115172]
Hi! The following testcase is miscompiled, because -fsanitize=bool,enum creates a MEM_REF without propagating there address space qualifiers, so what should be normally loaded using say %gs:/%fs: segment prefix isn't. Together with asan it then causes that load to be sanitized. Fixed thusly, bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk and release branches? 2024-05-21 Jakub Jelinek PR sanitizer/115172 * ubsan.cc (instrument_bool_enum_load): If rhs is not in generic address space, use qualified version of utype with the right address space. Formatting fix. * gcc.dg/asan/pr115172.c: New test. --- gcc/ubsan.cc.jj 2024-03-22 09:23:37.695296775 +0100 +++ gcc/ubsan.cc2024-05-21 12:10:24.261454107 +0200 @@ -1776,13 +1776,17 @@ instrument_bool_enum_load (gimple_stmt_i || TREE_CODE (gimple_assign_lhs (stmt)) != SSA_NAME) return; + addr_space_t as = TYPE_ADDR_SPACE (TREE_TYPE (rhs)); + if (as != TYPE_ADDR_SPACE (utype)) +utype = build_qualified_type (utype, TYPE_QUALS (utype) +| ENCODE_QUAL_ADDR_SPACE (as)); bool ends_bb = stmt_ends_bb_p (stmt); location_t loc = gimple_location (stmt); tree lhs = gimple_assign_lhs (stmt); tree ptype = build_pointer_type (TREE_TYPE (rhs)); tree atype = reference_alias_ptr_type (rhs); gimple *g = gimple_build_assign (make_ssa_name (ptype), - build_fold_addr_expr (rhs)); + build_fold_addr_expr (rhs)); gimple_set_location (g, loc); gsi_insert_before (gsi, g, GSI_SAME_STMT); tree mem = build2 (MEM_REF, utype, gimple_assign_lhs (g), --- gcc/testsuite/gcc.dg/asan/pr115172.c.jj 2024-05-21 17:28:18.302815400 +0200 +++ gcc/testsuite/gcc.dg/asan/pr115172.c2024-05-21 22:50:43.272753785 +0200 @@ -0,0 +1,20 @@ +/* PR sanitizer/115172 */ +/* { dg-do compile { target i?86-*-* x86_64-*-* } } */ +/* { dg-options "-O2 -fsanitize=address,bool -ffat-lto-objects -fdump-tree-asan1" } */ +/* { dg-final { scan-tree-dump-not "\.ASAN_CHECK " "asan1" } } */ + +#ifdef __x86_64__ +#define SEG __seg_gs +#else +#define SEG __seg_fs +#endif + +extern struct S { _Bool b; } s; +void bar (void); + +void +foo (void) +{ + if (*(volatile _Bool SEG *) (__UINTPTR_TYPE__) ) +bar (); +} Jakub
Results for 13.3.1 20240521 [releases/gcc-13 r13-8786-g5ed32d00a7b] (GCC) testsuite on x86_64-pc-linux-gnu
s (test for excess errors) FAIL: gcc.dg/pr96573.c scan-tree-dump optimized "__builtin_bswap|VEC_PERM_EXPR[^\\n\\r]*7, 6, 5, 4, 3, 2, 1, 0" FAIL: c-c++-common/goacc/kernels-loop-g.c (test for excess errors) XPASS: gcc.dg/plugin/infoleak-vfio_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/scev-3.c scan-tree-dump-times ivopts "" 1 FAIL: gcc.dg/tree-ssa/scev-4.c scan-tree-dump-times ivopts "" 1 FAIL: gcc.dg/tree-ssa/scev-5.c scan-tree-dump-times ivopts "" 1 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 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/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/pr78794.c scan-assembler pandn FAIL: gcc.target/i386/pr97873-1.c scan-assembler pabsq 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/-m32 === # of expected passes182158 # of unexpected failures37 # of unexpected successes 14 # of expected failures 1438 # of unsupported tests 3283 === gcc Summary === # of expected passes368837 # of unexpected failures80 # of unexpected successes 19 # of expected failures 2869 # of unsupported tests 5729 /export/home/haochenj/src/gcc-13-regression/bld/gcc/xgcc version 13.3.1 20240521 [releases/gcc-13 r13-8786-g5ed32d00a7b] (GCC) === gfortran tests === Running target unix === gfortran Summary for unix === # of expected passes68531 # of expected failures 259 # of unsupported tests 78 Running target unix/-m32 === gfortran Summary for unix/-m32 === # of expected passes68209 # of expected failures 261 # of unsupported tests 230 === gfortran Summary === # of expected passes136740 # of expected failures 520 # of unsupported tests 308 /export/home/haochenj/src/gcc-13-regression/bld/gcc/gfortran version 13.3.1 20240521 [releases/gcc-13 r13-
Regressions on releases/gcc-14 at commit r14-10225 vs commit r14-10224 on Linux/x86_64
Regressions on releases/gcc-14 at commit r14-10225 vs commit r14-10224 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 14.1.1 20240521 [releases/gcc-14 r14-10225-gedde60a53c7] (GCC) testsuite on x86_64-pc-linux-gnu
ernel_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-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 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/xorsign.c scan-tree-dump-times vect "vectorized 2 loops" 1 === gcc Summary for unix/-m32 === # of expected passes197707 # of unexpected failures159 # of unexpected successes 30 # of expected failures 1552 # of unsupported tests 4078 === gcc Summary === # of expected passes401741 # of unexpected failures319 # of unexpected successes 50 # of expected failures 3098 # of unsupported tests 7370 /export/home/haochenj/src/gcc-14-regression/bld/gcc/xgcc version 14.1.1 20240521 [releases/gcc-14 r14-10225-gedde60a53c7] (GCC) === gfortran tests === Running target unix === gfortran Summary for unix === # of expected passes
Results for 15.0.0 20240521 (experimental) [master r15-758-g9926c40a90] (GCC) testsuite on powerpc64-unknown-linux-gnu
git commit g:9926c40a902edbc665919d508ef0c36f362f9c41 gcc-descr r15-758-g9926c40a902edb 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: Tue May 21 19:04:28 UTC 2024 (revision r15-758-g9926c40a90) 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 passes251796 # of unexpected failures1 # of expected failures 2615 # of unsupported tests 11550 Running target unix/-m64 === g++ Summary for unix/-m64 === # of expected passes260818 # of expected failures 2620 # of unsupported tests 11723 === g++ Summary === # of expected passes512614 # of unexpected failures1 # of expected failures 5235 # of unsupported tests 23273 /home/gccbuild/build/nightly/build-gcc-trunk/gcc/xg++ version 15.0.0 20240521 (experimental) [master r15-758-g9926c40a90] (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
[Bug c++/115139] [14 Regression] Enum inside variadic template class can't define one of self with usage another value from this enum
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115139 Patrick Palka changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #4 from Patrick Palka --- Fixed for GCC 14.2, thanks for the bug report.
[gcc r14-10226] c++: folding non-dep enumerator from current inst [PR115139]
https://gcc.gnu.org/g:caf43cc9e5c0b3265b55e5a0dc77fc55e9618c77 commit r14-10226-gcaf43cc9e5c0b3265b55e5a0dc77fc55e9618c77 Author: Patrick Palka Date: Tue May 21 15:54:10 2024 -0400 c++: folding non-dep enumerator from current inst [PR115139] After the tsubst_copy removal r14-4796-g3e3d73ed5e85e7 GCC 14 ICEs during fold_non_dependent_expr for 'e1 | e2' below ultimately because we no longer exit early when substituting the CONST_DECLs for e1 and e2 with args=NULL_TREE and instead proceed to substitute the class context A (also with args=NULL_TREE) which ends up ICEing from tsubst_pack_expansion (due to processing_template_decl being cleared). Incidentally, the ICE went away on trunk ever since the tsubst_aggr_type removal r15-123-gf04dc89a991ddc since it changed the CONST_DECL case of tsubst_expr to use tsubst to substitute the context, which short circuits for empty args and so avoids the ICE. This patch fixes this ICE for GCC 14 by narrowly restoring the early exit for empty args that would've happened in tsubst_copy when substituting an enumerator CONST_DECL. We might as well apply this to trunk too, as a small optimization. PR c++/115139 gcc/cp/ChangeLog: * pt.cc (tsubst_expr) : Exit early if args is empty. gcc/testsuite/ChangeLog: * g++.dg/template/non-dependent33.C: New test. Reviewed-by: Marek Polacek Reviewed-by: Jason Merrill (cherry picked from commit f0c0bced62b9c728ed1e672747aa234d918da22c) Diff: --- gcc/cp/pt.cc| 2 +- gcc/testsuite/g++.dg/template/non-dependent33.C | 13 + 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/gcc/cp/pt.cc b/gcc/cp/pt.cc index e9882f2a3e0..ba47620ec59 100644 --- a/gcc/cp/pt.cc +++ b/gcc/cp/pt.cc @@ -21524,7 +21524,7 @@ tsubst_expr (tree t, tree args, tsubst_flags_t complain, tree in_decl) if (DECL_TEMPLATE_PARM_P (t)) RETURN (RECUR (DECL_INITIAL (t))); - if (!uses_template_parms (DECL_CONTEXT (t))) + if (!args || !uses_template_parms (DECL_CONTEXT (t))) RETURN (t); /* Unfortunately, we cannot just call lookup_name here. diff --git a/gcc/testsuite/g++.dg/template/non-dependent33.C b/gcc/testsuite/g++.dg/template/non-dependent33.C new file mode 100644 index 000..ea5b41fba93 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/non-dependent33.C @@ -0,0 +1,13 @@ +// PR c++/115139 +// { dg-do compile { target c++11 } } + +template +class A { + enum E { +e1 = 1, +e2 = 2, +e3 = e1 | e2, + }; +}; + +template class A;