https://gcc.gnu.org/bugzilla/show_bug.cgi?id=26656
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Component|tree-optimization |target Target| |x86_64 --- Comment #9 from Andrew Pinski <pinskia at gcc dot gnu.org> --- flagQuestion: .L2: cmpb %bpl, (%r12,%rax) setb %cl addl %ecx, %ecx orb %cl, (%rbx,%rax) addq $1, %rax cmpq $100000000, %rax jne .L2 flagQuestionWorkaround: .L7: cmpb %bpl, (%r12,%rax) setb %cl addl %ecx, %ecx orb %cl, (%rbx,%rax) addq $1, %rax cmpq $100000000, %rax jne .L7 flagIf: .L12: cmpb %bl, (%r12,%rax) jnb .L11 orb $2, 0(%rbp,%rax) .L11: addq $1, %rax cmpq $100000000, %rax jne .L12 flagIfWorkaround: .L16: cmpb %bpl, (%r12,%rax) setb %cl addl %ecx, %ecx orb %cl, (%rbx,%rax) addq $1, %rax cmpq $100000000, %rax jne .L16 There is not much be done with flagIf really since it is a conditional load/store.