https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116264
Bug ID: 116264 Summary: Spurious {NF}s in APX code Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: andi-gcc at firstfloor dot org Target Milestone: --- Target: x86_64-linux unsigned fclear(unsigned a, unsigned b) { if (a & (1 << 10)) b &= ~(1 << 20); return b; } gives cc1 -O2 tbitifconv.c -march=skylake -mapxf -quiet fclear: .LFB1: .cfi_startproc {nf} andl $-1048577, %esi, %eax andl $1024, %edi cmove %esi, %eax ret .cfi_endproc The {nf} seems to be useless because this is the first instruction and there is no live condition code. Of course it's just a bit set so doesn't cost anything but it may point to more general problems in how {nf} is placed.