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

            Bug ID: 69399
           Summary: [5/6 Regression] wrong code with -O and int128 (due to
                    ccp?)
           Product: gcc
           Version: 6.0
            Status: UNCONFIRMED
          Keywords: wrong-code
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: zsojka at seznam dot cz
  Target Milestone: ---
              Host: x86_64-pc-linux-gnu
            Target: x86_64-*-gnux32, aarch64-*, powerpc64-*, sparc64-*

Created attachment 37411
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37411&action=edit
reduced testcase

Compiler output:
$ x86_64-pc-linux-gnux32-gcc -O testcase.c
$ ./a.out 
Aborted

$ x86_64-pc-linux-gnux32-gcc -O testcase.c -fno-tree-ccp
$ ./a.out 

$ x86_64-pc-linux-gnux32-gcc -v                   
Using built-in specs.
COLLECT_GCC=/repo/gcc-trunk/binary-latest-x32/bin/x86_64-pc-linux-gnux32-gcc
COLLECT_LTO_WRAPPER=/repo/gcc-trunk/binary-trunk-232548-checking-yes-rtl-df-nographite-x32/bin/../libexec/gcc/x86_64-pc-linux-gnux32/6.0.0/lto-wrapper
Target: x86_64-pc-linux-gnux32
Configured with: /repo/gcc-trunk//configure --enable-languages=c,c++
--enable-checking=yes,rtl,df --without-cloog --without-ppl --without-isl
--with-abi=mx32 --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu
--target=x86_64-pc-linux-gnux32 --with-ld=/usr/bin/x86_64-pc-linux-gnux32-ld
--with-as=/usr/bin/x86_64-pc-linux-gnux32-as
--with-sysroot=/usr/x86_64-pc-linux-gnux32 --disable-libstdcxx-pch
--prefix=/repo/gcc-trunk//binary-trunk-232548-checking-yes-rtl-df-nographite-x32
Thread model: posix
gcc version 6.0.0 20160119 (experimental) (GCC) 

The first broken dump seems to be .ccp1:

__attribute__((noclone, noinline))
foo (u64D.1749 uD.1751)
{
  u64D.1749 u_1(D) = uD.1751;
  u128D.1750 vD.1754;
  long long unsigned intD.14 _2;

;;   basic block 2, loop depth 0, count 0, freq 0, maybe hot
;;    prev block 0, next block 1, flags: (NEW, REACHABLE)
;;    pred:       ENTRY (FALLTHRU,EXECUTABLE)
  _2 = u_1(D) | 4294967169;
  v_3 = (u128D.1750) _2;
  # VUSE <.MEM_6(D)>
  return 4294967169;
;;    succ:       EXIT

}


Tested revisions:
trunk r232548 - FAIL (native x86_64-pc-linux-gnu has PASS here)
5-branch r232545 - FAIL
4_[6789]-branch - OK

Reply via email to