This is code compiled with Intel icpc C++ compiler, version 18.0.1 20171018 output from valgrind --tool=callgrind: vex amd64->IR: unhandled instruction bytes: 0xF3 0xF 0x1E 0xFA 0x55 0x48 0x89 0xE5 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=0F vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=1 ==846== valgrind: Unrecognised instruction at address 0x460e40. ==846== at 0x460E40: __svml_irem8_l9 (in ....) [ ... stack back trace ... ] ==846== Your program just tried to execute an instruction that Valgrind ==846== did not recognise. There are two possible reasons for this. ==846== 1. Your program has a bug and erroneously jumped to a non-code ==846== location. If you are running Memcheck and you just saw a ==846== warning about a bad jump, it's probably your program's fault. ==846== 2. The instruction is legitimate but Valgrind doesn't handle it, ==846== i.e. it's Valgrind's fault. If you think this is the case or ==846== you are not sure, please let us know and we'll try to fix it. ==846== Either way, Valgrind will now raise a SIGILL signal which will ==846== probably kill your program. ==846== ==846== Process terminating with default action of signal 4 (SIGILL) ==846== Illegal opcode at address 0x460E40 ==846== at 0x460E40: __svml_irem8_l9 (in ...) [ ... stack back trace ... ] ==846== ==846== Events : Ir ==846== Collected : 0 ==846== ==846== I refs: 0 Illegal instruction (core dumped)
3.11.0 is pretty old. Can you re-test with 3.13.0 or better with the latest git trunk sources?