https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109549

            Bug ID: 109549
           Summary: [14 Regression] cmov6.c test fail after commit
                    r14-53-g675b1a7f113adb1d737adaf78b4fd90be7a0ed1a
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: haochen.jiang at intel dot com
  Target Milestone: ---

After commit r14-53-g675b1a7f113adb1d737adaf78b4fd90be7a0ed1a with the fix of
removing @gol fix, we got a scan asm fail for gcc.target/i386/cmov6.c.

We can reproduce that by command:

make check-gcc RUNTESTFLAGS="i386.exp=cmov6.c --target_board='unix{-m32,}'"

The previous codegen is:

foo:
.LFB0:
        .cfi_startproc
        movl    4(%esp), %eax
        movl    $20, %edx
        testl   %eax, %eax
        movl    $10, %eax
        cmovne  8(%esp), %edx
        cmove   12(%esp), %eax
        movl    %edx, 8(%esp)
        movl    %eax, 4(%esp)
        jmp     bar
        .cfi_endproc

The current codegen is:

foo:
.LFB0:
        .cfi_startproc
        movl    4(%esp), %ecx
        movl    8(%esp), %edx
        movl    12(%esp), %eax
        testl   %ecx, %ecx
        je      .L3
        movl    $10, %eax
        movl    %edx, 8(%esp)
        movl    %eax, 4(%esp)
        jmp     bar
        .p2align 4,,7
        .p2align 3
.L3:
        movl    $20, %edx
        movl    %eax, 4(%esp)
        movl    %edx, 8(%esp)
        jmp     bar
        .cfi_endproc

BTW, I saw Andrew's patch fixing cmov:

https://gcc.gnu.org/pipermail/gcc-patches/2023-April/616088.html

Is that related?

Reply via email to