https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107275
--- Comment #3 from avieira at gcc dot gnu.org --- The prodding helped! The problem is that dce was indeed removing the ASM as it wasn't recognizing it as a stmt that was live. This is because ifcvt would have normally bailed out when encountering such an asm stmt when doing 'find_data_references_in_loop'. I have a patch that fixes this, will test it and post it upstream. My plan is to bring forward the references check, as we do not need to lower bitfields if that fails, given loop-vectorization will fail altogether anyway.