Comment 9 for bug 1837525

Revision history for this message
bugproxy (bugproxy) wrote : Comment bridged from LTC Bugzilla

------- Comment From <email address hidden> 2019-10-22 07:53 EDT-------
(In reply to comment #16)
> Rebuilding eoan gcc-9.2.1 and comparing test results between -march=zEC12 &
> -march=z13 -mtune=z15
>
> There appear to be (a) improved test results (FAIL->PASS) (b) not supported
> tests anymore (PASS->missing) (c) regressed tests (PASS->FAIL). This needs
> investigating. I will publish raw logs (massaged to reduce non-reproducible
> directory names) shortly. Here are some highlights.
>
> Regressions:
>
> -PASS: gcc.dg/attr-vector_size.c LP64 (test for errors, line 33)
> -PASS: gcc.dg/attr-vector_size.c LP64 (test for errors, line 60)
> -PASS: gcc.dg/attr-vector_size.c (test for excess errors)
> +FAIL: gcc.dg/attr-vector_size.c (internal compiler error)

That one indeed needs to be fixed. I'll post a patch. However, the test only checks what gcc does when trying to define huge vector data types. These are way beyond practical uses. So this should be no limitation with real workloads.

> +FAIL: gcc.dg/attr-vector_size.c LP64 (test for errors, line 33)
> +FAIL: gcc.dg/attr-vector_size.c LP64 (test for errors, line 60)
> +FAIL: gcc.dg/attr-vector_size.c (test for excess errors)
>
> -PASS: gcc.dg/tree-ssa/gen-vect-11.c scan-tree-dump-times vect "vectorized 1
> loops" 1
> +FAIL: gcc.dg/tree-ssa/gen-vect-11.c scan-tree-dump-times vect "vectorized 1
> loops" 1
>
> -PASS: gcc.dg/tree-ssa/gen-vect-26.c scan-tree-dump-times vect "Vectorizing
> an unaligned access" 0
> -PASS: gcc.dg/tree-ssa/gen-vect-26.c scan-tree-dump-times vect "Alignment of
> access forced using peeling" 1
> +FAIL: gcc.dg/tree-ssa/gen-vect-26.c scan-tree-dump-times vect "Vectorizing
> an unaligned access" 0
> +FAIL: gcc.dg/tree-ssa/gen-vect-26.c scan-tree-dump-times vect "Alignment of
> access forced using peeling" 1
>
> -PASS: gcc.dg/tree-ssa/gen-vect-28.c scan-tree-dump-times vect "Vectorizing
> an unaligned access" 0
> -PASS: gcc.dg/tree-ssa/gen-vect-28.c scan-tree-dump-times vect "Alignment of
> access forced using peeling" 1
> +FAIL: gcc.dg/tree-ssa/gen-vect-28.c scan-tree-dump-times vect "Vectorizing
> an unaligned access" 0
> +FAIL: gcc.dg/tree-ssa/gen-vect-28.c scan-tree-dump-times vect "Alignment of
> access forced using peeling" 1
>
> -PASS: gcc.dg/tree-ssa/gen-vect-32.c scan-tree-dump-times vect "vectorized 1
> loops" 1
> +FAIL: gcc.dg/tree-ssa/gen-vect-32.c scan-tree-dump-times vect "vectorized 1
> loops" 1

These tests check whether certain vectorizations take place or not. They are very fragile. I'll have a look but that's definitely not critical.

>
> Now some of the odd things:
>
> Old tests that passed, that have disappeared (50 tests): (Eeek!)
>
> gcc.target/s390/md/andc-splitter-1.c -O1 execution test
> gcc.target/s390/md/andc-splitter-1.c -O2 execution test
> gcc.target/s390/md/andc-splitter-1.c -O3 execution test
> gcc.target/s390/md/andc-splitter-1.c -Os execution test
> gcc.target/s390/md/andc-splitter-2.c -O1 execution test
> gcc.target/s390/md/andc-splitter-2.c -O2 execution test
> gcc.target/s390/md/andc-splitter-2.c -O3 execution test
> gcc.target/s390/md/andc-splitter-2.c -Os execution test
> gcc.target/s390/md/atomic_compare_exchange-1.c -O0 execution test
> gcc.target/s390/md/atomic_compare_exchange-1.c -O1 execution test
> gcc.target/s390/md/atomic_compare_exchange-1.c -O2 execution test
> gcc.target/s390/md/atomic_compare_exchange-1.c -O3 execution test
> gcc.target/s390/md/atomic_compare_exchange-1.c -Os execution test
> gcc.target/s390/md/atomic_compare_exchange-1.c execution test
> gcc.target/s390/md/atomic_exchange-1.c -O0 execution test
> gcc.target/s390/md/atomic_exchange-1.c -O1 execution test
> gcc.target/s390/md/atomic_exchange-1.c -O2 execution test
> gcc.target/s390/md/atomic_exchange-1.c -O3 execution test
> gcc.target/s390/md/atomic_exchange-1.c -Os execution test
> gcc.target/s390/md/atomic_exchange-1.c execution test
> gcc.target/s390/md/setmem_long-1.c -O1 execution test
> gcc.target/s390/md/setmem_long-1.c -O2 execution test
> gcc.target/s390/md/setmem_long-1.c -O3 execution test
> gcc.target/s390/md/setmem_long-1.c -Os execution test
> gfortran.dg/guality/arg1.f90 -O3 -fomit-frame-pointer -funroll-loops
> -fpeel-loops -ftracer -finline-functions line 14 a(10) == 10
>
> So, these tests do exist, are compiled, but then not executed, as if these
> are no longer supported to be executed on -march=z13?
> Or do our QEMU KVM virtual machines lack some settings on the LPAR in HMC or
> on the QEMU VM cmdline to execute them?

We have implemented a mechanism to check whether a testcase can be run safely on the current hardware when using the compile options of the current testcase. This doesn't appear to work anymore. I can reproduce it on lpar as well - so no need to worry about your set up.

Thanks for reporting the regressions. We will address these asap. However, none of these are any blocking issues for switching to -march=z13.