https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78186

            Bug ID: 78186
           Summary: FAIL: gcc.c-torture/execute/bf64-1.c execution test
                    because of revision 241664
           Product: gcc
           Version: 7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: amker at gcc dot gnu.org
  Target Milestone: ---

Hi, below commit

commit 17fc6eeba9352b97ba16d64fd1de9a5bdc081062
Author: segher <segher@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Fri Oct 28 20:56:28 2016 +0000

    combine: Improve change_zero_ext (fixes PR71847)

    This improves a few things in change_zero_ext.  Firstly, it should use
    the passed in pattern in recog_for_combine, not the pattern of the insn
    (they are not the same if the whole pattern was replaced).  Secondly,
    it handled zero_ext of a subreg, but with hard registers we do not get
    a subreg, instead the mode of the reg is changed.  So this handles that.
    Thirdly, after changing a zero_ext to an AND, the resulting RTL may become
    non-canonical, like (ior (ashift ..) (and ..)); the AND should be first,
    it is commutative.  And lastly, zero_extract as a set_dest wasn't handled
    at all, but now it is.

    This fixes the testcase in PR71847, and improves code generation in some
    other edge cases too.


        PR target/71847
        * combine.c (change_zero_ext): Handle zero_ext of hard registers.
        Swap commutative operands in new RTL if needed.  Handle zero_ext
        in the set_dest.
        (recog_for_combine): Pass *pnewpat to change_zero_ext instead of
        PATTERN (insn).


    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@241664
138bc75d-0d04-0410-961f-82ee72b054a4

causes test case failure on arm-none-linux-gnueabihf target:
FAIL: gcc.c-torture/execute/bf64-1.c -O1 execution test

GCC is configured as:
../gcc/configure --prefix=... --enable-languages=c,c++,fortran
--disable-bootstrap --disable-libsanitizer --disable-libgomp --disable-libitm
--disable-libssp --with-tune=cortex-a15 --with-fpu=neon --with-float=hard

Test is compiled as:
./gcc bf64-1.c -fno-diagnostics-show-caret -fdiagnostics-color=never -O2 -flto
-fuse-linker-plugin -fno-fat-lto-objects -w -lm -o ./bf64-1.exe -march=armv7-a

also fails with -O1 optimization level.

Thanks,
bin

Reply via email to