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