Bug 98827 - [11 regression] gcc.target/powerpc/vsx-builtin-7.c assembler counts off after r11-6857
Summary: [11 regression] gcc.target/powerpc/vsx-builtin-7.c assembler counts off after...
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: target (show other bugs)
Version: 11.0
: P3 normal
Target Milestone: 11.0
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-01-25 21:08 UTC by seurer
Modified: 2021-02-26 12:34 UTC (History)
1 user (show)

See Also:
Host: powerpc64-linux-gnu
Target: powerpc64-linux-gnu
Build: powerpc64-linux-gnu
Known to work:
Known to fail:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description seurer 2021-01-25 21:08:19 UTC
g:b29225597584b697762585e0b707b7cb4b427650, r11-6857
make  -k check-gcc RUNTESTFLAGS="powerpc.exp=gcc.target/powerpc/vsx-builtin-7.c"
FAIL: gcc.target/powerpc/vsx-builtin-7.c scan-assembler-times \\mrldic\\M 64
FAIL: gcc.target/powerpc/vsx-builtin-7.c scan-assembler-times xxpermdi 4
# of expected passes		4
# of unexpected failures	2

Note that this fails only on big endian.
Comment 1 Xionghu Luo (luoxhu@gcc.gnu.org) 2021-01-26 01:40:48 UTC
Strange that I see only xxpermdi fail, should be 4 instead of 12. rldic passes for m64, what's your configuration please?



                === gcc tests ===

Schedule of variations:
    unix/-m32
    unix/-m64

Running target unix/-m32
Running /home/luoxhu/workspace/gcc/gcc/testsuite/gcc.target/powerpc/powerpc.exp ...
PASS: gcc.target/powerpc/vsx-builtin-7.c (test for excess errors)
PASS: gcc.target/powerpc/vsx-builtin-7.c scan-assembler-times \\mrldic\\M 0
PASS: gcc.target/powerpc/vsx-builtin-7.c scan-assembler-times vspltisb 2
PASS: gcc.target/powerpc/vsx-builtin-7.c scan-assembler-times vspltish 2
PASS: gcc.target/powerpc/vsx-builtin-7.c scan-assembler-times vspltisw 2
PASS: gcc.target/powerpc/vsx-builtin-7.c scan-assembler-times xxpermdi 4
                === gcc Summary for unix/-m32 ===

# of expected passes            6
Running target unix/-m64
Running /home/luoxhu/workspace/gcc/gcc/testsuite/gcc.target/powerpc/powerpc.exp ...
PASS: gcc.target/powerpc/vsx-builtin-7.c (test for excess errors)
PASS: gcc.target/powerpc/vsx-builtin-7.c scan-assembler-times \\mrldic\\M 64
PASS: gcc.target/powerpc/vsx-builtin-7.c scan-assembler-times vspltisb 2
PASS: gcc.target/powerpc/vsx-builtin-7.c scan-assembler-times vspltish 2
PASS: gcc.target/powerpc/vsx-builtin-7.c scan-assembler-times vspltisw 2
PASS: gcc.target/powerpc/vsx-builtin-7.c scan-assembler-times xxpermdi 4
                === gcc Summary for unix/-m64 ===

# of expected passes            6

                === gcc Summary ===

# of expected passes            12
/home/luoxhu/workspace/build/gcc/xgcc  version 11.0.0 20210125 (experimental) (GCC)

luoxhu@bns:~/workspace/build$ gcc/xgcc -v
Using built-in specs.
COLLECT_GCC=gcc/xgcc
Target: powerpc64-unknown-linux-gnu
Configured with: ../gcc/configure --enable-languages=c,c++,fortran --prefix=/home/luoxhu/local/gcc/ --disable-bootstrap --with-cpu=power7 --disable-libsanitizer : (reconfigured) ../gcc/configure --prefix=/home/luoxhu/local/gcc/ --disable-bootstrap --with-cpu=power7 --disable-libsanitizer CC=/opt/gcc81/bin/gcc CXX=/opt/gcc81/bin/g++ --enable-languages=c,c++,fortran,lto --no-create --no-recursion
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 11.0.0 20210125 (experimental) (GCC)
Comment 2 seurer 2021-01-26 15:14:25 UTC
On power 8 I used:

configure --enable-languages=c,fortran,c++ --with-cpu=power8 --disable-bootstrap --disable-multilib

On power 7 it was the same but --with-cpu=power7
Comment 3 Xionghu Luo (luoxhu@gcc.gnu.org) 2021-01-27 01:45:17 UTC
I know it now, the r11-6858 did some changes the P8 code generation, so the latest failure also changes.

https://gcc.gnu.org/pipermail/gcc-testresults/2021-January/651154.html

current failures are:

FAIL: gcc.dg/vect/vect-outer-call-1.c scan-tree-dump vect "OUTER LOOP VECTORIZED"
FAIL: gcc.dg/vect/vect-strided-a-u8-i2-gap.c -flto -ffat-lto-objects  scan-tree-dump-times vect "vectorized 1 loops" 1
FAIL: gcc.dg/vect/vect-strided-a-u8-i2-gap.c scan-tree-dump-times vect "vectorized 1 loops" 1
FAIL: gcc.target/powerpc/20050603-3.c scan-assembler-not \\\\mrldic
FAIL: gcc.target/powerpc/rlwimi-2.c scan-assembler-times (?n)^\\\\s+[a-z] 20217
FAIL: gcc.target/powerpc/vsx-builtin-7.c scan-assembler-times xxpermdi 11
XPASS: gcc.target/powerpc/ppc-fortran/ieee128-math.f90   -O  (test for excess errors)

only xxpermdi need be updated to 4.
Comment 4 GCC Commits 2021-01-28 03:35:19 UTC
The master branch has been updated by Xiong Hu Luo <luoxhu@gcc.gnu.org>:

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

commit r11-6947-gfbe37371cf372b84d5b7f1a6f5f0971a513dd5fa
Author: Xionghu Luo <luoxhu@linux.ibm.com>
Date:   Wed Jan 27 20:24:03 2021 -0600

    rs6000: Fix vec insert ilp32 ICE and test failures [PR98799]
    
    UNSPEC_SI_FROM_SF is not supported when TARGET_DIRECT_MOVE_64BIT
    is false for -m32, don't generate VIEW_CONVERT_EXPR(ARRAY_REF) for
    variable vector insert.  Remove rs6000_expand_vector_set_var helper
    function, adjust the p8 and p9 definitions position and make them
    static.
    
    The previous commit r11-6858 missed check m32, This patch is tested pass
    on P7BE{m32,m64}/P8BE{m32,m64}/P8LE/P9LE with
    RUNTESTFLAGS="--target_board =unix'{-m32,-m64}'" for BE targets.
    
    gcc/ChangeLog:
    
    2021-01-27  Xionghu Luo  <luoxhu@linux.ibm.com>
                David Edelsohn  <dje.gcc@gmail.com>
    
            PR target/98799
            * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
            Don't generate VIEW_CONVERT_EXPR for fcode ALTIVEC_BUILTIN_VEC_INSERT
            when -m32.
            * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
            Delete.
            * config/rs6000/rs6000.c (rs6000_expand_vector_set): Remove the
            wrapper call rs6000_expand_vector_set_var for cleanup.  Call
            rs6000_expand_vector_set_var_p9 and rs6000_expand_vector_set_var_p8
            directly.
            (rs6000_expand_vector_set_var): Delete.
            (rs6000_expand_vector_set_var_p9): Make static.
            (rs6000_expand_vector_set_var_p8): Make static.
    
    gcc/testsuite/ChangeLog:
    
    2021-01-27  Xionghu Luo  <luoxhu@linux.ibm.com>
    
            PR target/98827
            * gcc.target/powerpc/fold-vec-insert-char-p8.c: Adjust ilp32.
            * gcc.target/powerpc/fold-vec-insert-char-p9.c: Likewise.
            * gcc.target/powerpc/fold-vec-insert-double.c: Likewise.
            * gcc.target/powerpc/fold-vec-insert-float-p8.c: Likewise.
            * gcc.target/powerpc/fold-vec-insert-float-p9.c: Likewise.
            * gcc.target/powerpc/fold-vec-insert-int-p8.c: Likewise.
            * gcc.target/powerpc/fold-vec-insert-int-p9.c: Likewise.
            * gcc.target/powerpc/fold-vec-insert-longlong.c: Likewise.
            * gcc.target/powerpc/fold-vec-insert-short-p8.c: Likewise.
            * gcc.target/powerpc/fold-vec-insert-short-p9.c: Likewise.
            * gcc.target/powerpc/pr79251.p8.c: Likewise.
            * gcc.target/powerpc/pr79251.p9.c: Likewise.
            * gcc.target/powerpc/vsx-builtin-7.c: Likewise.
            * gcc.target/powerpc/pr79251-run.c: Build and run with vsx
            option.
Comment 5 Richard Biener 2021-02-26 12:34:07 UTC
I assume fixed.