https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71231
--- Comment #5 from Uroš Bizjak <ubizjak at gmail dot com> --- Actually, rnflow gets miscompiled, but scripts doesn't detect the failure. Current mainline produces following results: 0: 0:24.469 -> Compare results 45 , 53 3852 3934 2.07999992 45 , 69 1805 1728 4.26999998 45 , 205 3379 3454 2.16999984 53 , 61 10863 11000 1.25000000 53 , 181 3137 3049 2.80999994 61 , 69 33011 33083 0.219999999 61 , 77 32262 32419 0.479999989 61 , 85 19449 19619 0.870000005 61 , 101 5129 5215 1.64999998 61 , 109 3287 3396 3.21000004 ... whereas the right results are: 0: 0:15.064 -> Compare results 45 , 69 1805 1873 3.62999988 53 , 61 10863 10709 1.41999996 53 , 69 9477 9552 0.789999962 53 , 189 5196 5278 1.54999995 61 , 69 33011 32902 0.329999983 61 , 141 1960 1848 5.71000004 61 , 149 2341 2415 3.05999994 61 , 165 4410 4561 3.30999994 61 , 173 6823 6909 1.24000001 61 , 189 13230 13363 1.00000000 Manually adding back missing AND in the resulting source: .L333: imull $843314861, %ecx, %edx pxor %xmm0, %xmm0 addl $453816693, %edx andl $2147483647, %edx <-- this instruction should be there! cmpl $-1, %eax cvtsi2ss %edx, %xmm0 movl %edx, %ecx mulss %xmm1, %xmm0 je .L334 cmpl $1, %eax jne .L333 cmpl %r10d, %r15d jge .L336 gets back correct results.