https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79390
--- Comment #6 from rguenther at suse dot de <rguenther at suse dot de> --- On Fri, 24 Feb 2017, ubizjak at gmail dot com wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79390 > > Uroš Bizjak <ubizjak at gmail dot com> changed: > > What |Removed |Added > ---------------------------------------------------------------------------- > CC| |jakub at gcc dot gnu.org > > --- Comment #5 from Uroš Bizjak <ubizjak at gmail dot com> --- > (In reply to Richard Biener from comment #4) > > On trunk I see with -fno-split-paths: > > > > .L5: > > movq (%r14,%rdx,8), %rcx > > vmovsd (%rcx,%rbx), %xmm0 > > vandpd %xmm3, %xmm0, %xmm0 > > vucomisd %xmm1, %xmm0 > > jbe .L4 > > vmovapd %xmm0, %xmm1 > > movl %edx, %r9d > > .L4: > > addq $1, %rdx > > cmpq %rdi, %rdx > > jne .L5 > > This looks similar to PR79389, where two problems were exposed. In addition to > split-paths issue, perhaps something disturbed RTL if-conversion to generate > jump instead of cmova? > > .L4: > movq (%r15,%rax,8), %rcx > vmovsd (%rcx,%rbx), %xmm0 > vandpd %xmm3, %xmm0, %xmm0 > vucomisd %xmm1, %xmm0 > vmaxsd %xmm1, %xmm0, %xmm1 > cmova %eax, %edx > addq $1, %rax > cmpl %eax, %r14d > jg .L4 Note the path-splitting I noticed in comment#1 is not mitigated by the recent cost-model fixes (a threading opportunity is still detected - a non-existig one though).