https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127123
Bug ID: 127123
Summary: -march=novalake doesn't generate vprorq
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: ---
[hjl@gnu-tgl-3 gcc]$ cat /tmp/x.c
unsigned long long rot1(unsigned long long x) { return (x>>1) | (x<<63); }
[hjl@gnu-tgl-3 gcc]$ /usr/gcc-16.2.1-x32/bin/gcc -S -O2 /tmp/x.c -m32
-march=x86-64-v4
[hjl@gnu-tgl-3 gcc]$ cat x.s
.file "x.c"
.text
.p2align 4
.globl rot1
.type rot1, @function
rot1:
.LFB0:
.cfi_startproc
vmovq 4(%esp), %xmm0
vprorq $1, %xmm0, %xmm0
vmovd %xmm0, %eax
vpextrd $1, %xmm0, %edx
ret
.cfi_endproc
.LFE0:
.size rot1, .-rot1
.ident "GCC: (GNU) 16.2.1 20260810"
.section .note.GNU-stack,"",@progbits
[hjl@gnu-tgl-3 gcc]$ /usr/gcc-16.2.1-x32/bin/gcc -S -O2 /tmp/x.c -m32
-march=novalake
[hjl@gnu-tgl-3 gcc]$ cat x.s
.file "x.c"
.text
.p2align 4
.globl rot1
.type rot1, @function
rot1:
.LFB0:
.cfi_startproc
movl 4(%esp), %eax
movl 8(%esp), %edx
movl %eax, %ecx
shrdl $1, %edx, %eax
shrdl $1, %ecx, %edx
ret
.cfi_endproc
.LFE0:
.size rot1, .-rot1
.ident "GCC: (GNU) 16.2.1 20260810"
.section .note.GNU-stack,"",@progbits
[hjl@gnu-tgl-3 gcc]$
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