https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72736
--- Comment #4 from Jeffrey Walton <noloader at gmail dot com> --- 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);