https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69238
Bug ID: 69238 Summary: [4.9/5/6 Regression] gcc.dg/vect/vect-multitypes-1.c FAILs with -O2 -fno-dce -fno-forward-propagate -fno-rerun-cse-after-loop -funroll-loops Product: gcc Version: 6.0 Status: UNCONFIRMED Keywords: wrong-code Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: zsojka at seznam dot cz Target Milestone: --- Host: x86_64-pc-linux-gnu Target: powerpc-unknown-linux-gnu Created attachment 37311 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37311&action=edit reduced testcase 4.7 - trunk FAILs @ powerpc64 4.8 - trunk FAILs @ powerpc 4.9 FAILs @ i686 Output (qemu userspace emulation): $ powerpc-unknown-linux-gnu-gcc -v Using built-in specs. COLLECT_GCC=/repo/gcc-trunk/binary-latest-powerpc/bin/powerpc-unknown-linux-gnu-gcc COLLECT_LTO_WRAPPER=/repo/gcc-trunk/binary-trunk-232261-checking-yes-rtl-df-nographite-powerpc/bin/../libexec/gcc/powerpc-unknown-linux-gnu/6.0.0/lto-wrapper Target: powerpc-unknown-linux-gnu Configured with: /repo/gcc-trunk//configure --enable-languages=c,c++ --enable-checking=yes,rtl,df --without-cloog --without-ppl --without-isl --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --target=powerpc-unknown-linux-gnu --with-ld=/usr/bin/powerpc-unknown-linux-gnu-ld --with-as=/usr/bin/powerpc-unknown-linux-gnu-as --with-sysroot=/usr/powerpc-unknown-linux-gnu --disable-libstdcxx-pch --prefix=/repo/gcc-trunk//binary-trunk-232261-checking-yes-rtl-df-nographite-powerpc Thread model: posix gcc version 6.0.0 20160112 (experimental) (GCC) $ powerpc-unknown-linux-gnu-gcc -O2 -fno-dce -fno-forward-propagate -fno-rerun-cse-after-loop -funroll-loops testcase.c $ ./a.out Invalid data memory access: 0x00000000 NIP 10000e08 LR 10000a40 CTR 00000003 XER 00000000 CPU#0 MSR 00006040 HID0 00000000 HF 00006000 idx 0 TB 00002617 11241216437041 GPR00 0000000000000000 00000000f6ffe7a0 00000000100ba4c0 0000000000000000 GPR04 0000000000000000 0000000000000000 00000000100b1fbe 0000000000000000 GPR08 00000000100b200c 00000000100b1fbe 00000000100b1f4c 0000000000000000 GPR12 0000000000000000 00000000100b8df8 0000000000000000 0000000000000000 GPR16 0000000000000000 0000000000000000 0000000000000000 0000000000000000 GPR20 0000000000000000 0000000000000000 0000000000000000 0000000000000000 GPR24 00000000100b1fc0 0000000000000000 0000000000000000 0000000000000000 GPR28 00000000100b1f4c 00000000100b1ee0 00000000100b200c 0000000000000000 CR 42000048 [ G E - - - - G L ] RES ffffffff FPR00 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR04 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR08 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR12 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR16 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR20 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR24 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPR28 0000000000000000 0000000000000000 0000000000000000 0000000000000000 FPSCR 00000000 qemu: uncaught target signal 11 (Segmentation fault) - core dumped Segmentation fault (gdb) disassemble ... 0x0000000010001288 <+392>: sth r25,4(r5) 0x000000001000128c <+396>: lhzu r29,10(r30) 0x0000000010001290 <+400>: lwz r30,20(r23) => 0x0000000010001294 <+404>: lhz r23,0(r3) 0x0000000010001298 <+408>: cmpld cr7,r9,r11 0x000000001000129c <+412>: lhzu r31,12(r4) 0x00000000100012a0 <+416>: addi r6,r10,4 ... (gdb) info reg ... r3 0x0 0 ... r3 doesn't seem to ever hold a valid address (contrary to PR69195), so it shouldn't be used as a base register. Tested revisions: trunk r232261 - FAIL (powerpc, powerpc64) 5-branch r232044 - FAIL (powerpc, powerpc64) 4_9-branch r232043 - FAIL (powerpc, powerpc64, i686) 4_8-branch r224828 - FAIL (powerpc, powerpc64) 4_7-branch r211571 - FAIL (powerpc64) 4_6-branch r197894 - OK 4_5-branch r189152 - OK 4_4-branch r185318 - OK