The checking enabled build ICEs for me at same spot as for you 0x0000000001475505 <+165>: punpcklqdq %xmm2,%xmm3 0x0000000001475509 <+169>: movaps %xmm3,0x30(%rsp) 0x000000000147550e <+174>: callq 0x10949d0 <hash_table<const_fixed_hasher, false, xcallocator>::iterator::slide()> 0x0000000001475513 <+179>: mov %r12,0x20(%rsp) 0x0000000001475518 <+184>: mov %rbx,0x28(%rsp) 0x000000000147551d <+189>: jmp 0x1475548 <gt_clear_caches_gt_emit_rtl_h()+232> => 0x000000000147551f <+191>: mov (%r14),%rdi 0x0000000001475522 <+194>: cmp $0x1,%rdi 0x0000000001475526 <+198>: jbe 0x1475535 <gt_clear_caches_gt_emit_rtl_h()+213> 0x0000000001475528 <+200>: callq 0x1094a30 <ggc_marked_p(void const*)> 0x000000000147552d <+205>: test %eax,%eax 0x000000000147552f <+207>: je 0x14757c2 <gt_clear_caches_gt_emit_rtl_h()+866> 0x0000000001475535 <+213>: add $0x8,%r14 0x0000000001475539 <+217>: lea 0x20(%rsp),%rdi 0x000000000147553e <+222>: mov %r14,0x20(%rsp) 0x0000000001475543 <+227>: callq 0x10949d0 <hash_table<const_fixed_hasher, false, xcallocator>::iterator::slide()> 0x0000000001475548 <+232>: mov 0x20(%rsp),%r14
So same loop merging slide, also vectorized code around.