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

            Bug ID: 126980
           Summary: -march=znver[456] doesn't honor -Os
           Product: gcc
           Version: 16.2.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: hjl.tools at gmail dot com
            Blocks: 126923
  Target Milestone: ---
            Target: x86

[hjl@gnu-tgl-3 tmp]$ cat x.c
int lookup1 (int i)
{
  int a[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
              16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 };
  return a[i];
}
[hjl@gnu-tgl-3 tmp]$ gcc -S -Os x.c -march=znver3
[hjl@gnu-tgl-3 tmp]$ cat x.s
        .file   "x.c"
        .text
        .section        .rodata
        .align 32
.LC0:
        .long   0
        .long   1
        .long   2
        .long   3
        .long   4
        .long   5
        .long   6
        .long   7
        .long   8
        .long   9
        .long   10
        .long   11
        .long   12
        .long   13
        .long   14
        .long   15
        .long   16
        .long   17
        .long   18
        .long   19
        .long   20
        .long   21
        .long   22
        .long   23
        .long   24
        .long   25
        .long   26
        .long   27
        .long   28
        .long   29
        .long   30
        .long   31
        .text
        .globl  lookup1
        .type   lookup1, @function
lookup1:
.LFB0:
        .cfi_startproc
        subq    $8, %rsp
        .cfi_def_cfa_offset 16
        movslq  %edi, %rax
        movl    $.LC0, %esi
        movl    $32, %ecx
        leaq    -120(%rsp), %rdi
        rep movsl
        movl    -120(%rsp,%rax,4), %eax
        popq    %rdx
        .cfi_def_cfa_offset 8
        ret
        .cfi_endproc
.LFE0:
        .size   lookup1, .-lookup1
        .ident  "GCC: (GNU) 16.2.1 20260819 (Red Hat 16.2.1-2)"
        .section        .note.GNU-stack,"",@progbits
[hjl@gnu-tgl-3 tmp]$ gcc -S -Os x.c -march=znver4
[hjl@gnu-tgl-3 tmp]$ cat x.s
        .file   "x.c"
        .text
        .globl  lookup1
        .type   lookup1, @function
lookup1:
.LFB0:
        .cfi_startproc
        movl    $1, %eax
        subq    $8, %rsp
        .cfi_def_cfa_offset 16
        movslq  %edi, %rdi
        salq    $32, %rax
        movq    %rax, -120(%rsp)
        movabsq $12884901890, %rax
        movq    %rax, -112(%rsp)
        movabsq $21474836484, %rax
        movq    %rax, -104(%rsp)
        movabsq $30064771078, %rax
        movq    %rax, -96(%rsp)
        movabsq $38654705672, %rax
        movq    %rax, -88(%rsp)
        movabsq $47244640266, %rax
        movq    %rax, -80(%rsp)
        movabsq $55834574860, %rax
        movq    %rax, -72(%rsp)
        movabsq $64424509454, %rax
        movq    %rax, -64(%rsp)
        movabsq $73014444048, %rax
        movq    %rax, -56(%rsp)
        movabsq $81604378642, %rax
        movq    %rax, -48(%rsp)
        movabsq $90194313236, %rax
        movq    %rax, -40(%rsp)
        movabsq $98784247830, %rax
        movq    %rax, -32(%rsp)
        movabsq $107374182424, %rax
        movq    %rax, -24(%rsp)
        movabsq $115964117018, %rax
        movq    %rax, -16(%rsp)
        movabsq $124554051612, %rax
        movq    %rax, -8(%rsp)
        movabsq $133143986206, %rax
        movq    %rax, (%rsp)
        movl    -120(%rsp,%rdi,4), %eax
        popq    %rdx
        .cfi_def_cfa_offset 8
        ret
        .cfi_endproc
.LFE0:
        .size   lookup1, .-lookup1
        .ident  "GCC: (GNU) 16.2.1 20260819 (Red Hat 16.2.1-2)"
        .section        .note.GNU-stack,"",@progbits
[hjl@gnu-tgl-3 tmp]$


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126923
[Bug 126923] Additional testsuite failures when configured with
--with-arch=native --with-cpu=native

Reply via email to