https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86828
--- Comment #11 from janus at gcc dot gnu.org --- (In reply to Uroš Bizjak from comment #10) > (In reply to janus from comment #9) > > (In reply to Richard Biener from comment #8) > > > More details are needed here. > > > > What exactly do you need? > > Can you try with valgrind? I'm afraid that valgrind still does not support knl and skylake instructions, at least the latest release 3.14 does not seem to do it: $ valgrind ./a.out ==5650== Memcheck, a memory error detector ==5650== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. ==5650== Using Valgrind-3.14.0 and LibVEX; rerun with -h for copyright info ==5650== Command: ./a.out ==5650== vex amd64->IR: unhandled instruction bytes: 0x62 0xF1 0xFD 0x48 0x6F 0x5 0x3E 0x6 0x0 0x0 vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0 vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x0 ESC=NONE vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0 ==5650== valgrind: Unrecognised instruction at address 0x108a78. ==5650== at 0x108A78: knl_bug (c0.f90:15) ==5650== by 0x108A78: main (c0.f90:17) ==5650== Your program just tried to execute an instruction that Valgrind ==5650== did not recognise. There are two possible reasons for this. ==5650== 1. Your program has a bug and erroneously jumped to a non-code ==5650== location. If you are running Memcheck and you just saw a ==5650== warning about a bad jump, it's probably your program's fault. ==5650== 2. The instruction is legitimate but Valgrind doesn't handle it, ==5650== i.e. it's Valgrind's fault. If you think this is the case or ==5650== you are not sure, please let us know and we'll try to fix it. ==5650== Either way, Valgrind will now raise a SIGILL signal which will ==5650== probably kill your program. Program received signal SIGILL: Illegal instruction. Backtrace for this error: #0 0x4e582da in ??? #1 0x4e57503 in ??? #2 0x525af1f in ??? #3 0x108a78 in ??? #4 0x523db96 in ??? #5 0x108bc9 in ??? #6 0xffffffffffffffff in ??? ==5650== ==5650== Process terminating with default action of signal 4 (SIGILL) ==5650== at 0x525AE75: raise (raise.c:46) ==5650== by 0x525AF1F: ??? (in /lib/x86_64-linux-gnu/libc-2.27.so) ==5650== by 0x108A77: knl_bug (c0.f90:15) ==5650== by 0x108A77: main (c0.f90:17) ==5650== ==5650== HEAP SUMMARY: ==5650== in use at exit: 5,484 bytes in 18 blocks ==5650== total heap usage: 22 allocs, 4 frees, 13,624 bytes allocated ==5650== ==5650== LEAK SUMMARY: ==5650== definitely lost: 0 bytes in 0 blocks ==5650== indirectly lost: 0 bytes in 0 blocks ==5650== possibly lost: 0 bytes in 0 blocks ==5650== still reachable: 5,484 bytes in 18 blocks ==5650== suppressed: 0 bytes in 0 blocks ==5650== Rerun with --leak-check=full to see details of leaked memory ==5650== ==5650== For counts of detected and suppressed errors, rerun with: -v ==5650== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) Illegal instruction (core dumped)