https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72736
--- Comment #6 from Jeffrey Walton <noloader at gmail dot com> --- (In reply to James Greenhalgh from comment #5) > (In reply to Jeffrey Walton from comment #4) > > Thanks, and sorry to waste your time with it. > > > > Before I spin up another report that wastes a lot time, does this look like > > another issue with me (likely), or an issue with GCC (unlikely): > > > > internal compiler error: in expand_shift_1, at expmed.c:2318 > > result = (r1 != r2); > > > > Here's a quick copy/paste of the relevant pieces. I'll do the minimal > > working example if needed. > > > > > > // Executed with a sig_handler guard > > volatile bool result = true; > > ... > > > > const poly64_t a1={1}, b1={2}; > > const poly64x2_t a2={1}, b2={2}; > > const poly128_t r1 = vmull_p64(a1, b1); > > const poly128_t r2 = vmull_high_p64(a2, b2); > > > > result = (r1 != r2); > > Internal compiler errors are almost never *your* fault, the compiler should > gracefully handle most of what you throw at it. If you can build a minimum > working example that would be handy ... OK, thanks. Done at https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72738 . > (though note that GCC 4.9 is getting old > now, and the branch is due to close permanently in the very near future, so > unless this reproduces on 5/6/trunk we're probably past the point where it > would get looked at and fixed). Yeah, it is a bit dated. Debian is still supplying 4.9 with Jessie stable, so its fairly ubiquitous. Its on nearly every test machine I have, including IoT gadgets like BeagleBones, CunieTrucks, Raspberry Pi's, Banana Pi's, and HiKeys.