[Bug target/119473] [15 Regression] __builtin_ia32_vaesdec_v32qi() emits wrong base register with -mvaes -O2 -mapxf -m64
lin1.hu at intel dot com
gcc-bugzilla@gcc.gnu.org
Wed Mar 26 08:20:18 GMT 2025
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119473
--- Comment #1 from Hu Lin <lin1.hu at intel dot com> ---
Created attachment 60888
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=60888&action=edit
Untested fix.
I add set_addr "isa" "avx, vaes_avx512vl" like aesenc pattern.
current output like:
.file "pr119473.c"
.text
.p2align 4
.globl foo
.type foo, @function
foo:
.LFB0:
.cfi_startproc
vmovdqa (%rcx), %ymm0
movq %r26, %rax
vaesdec (%rax), %ymm0, %ymm0
vmovdqa %ymm0, (%rdx)
vmovdqa (%rcx), %ymm0
vaesdeclast (%rax), %ymm0, %ymm0
vmovdqa %ymm0, (%rdx)
vmovdqa (%rcx), %ymm0
vaesenc (%rax), %ymm0, %ymm0
vmovdqa %ymm0, (%rdx)
vmovdqa (%rcx), %ymm0
vaesenclast (%rax), %ymm0, %ymm0
vmovdqa %ymm0, (%rdx)
vzeroupper
ret
.cfi_endproc
.LFE0:
.size foo, .-foo
.ident "GCC: (GNU) 15.0.1 20250326 (experimental)"
.section .note.GNU-stack,"",@progbits
More information about the Gcc-bugs
mailing list