https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114576
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|[13 |[14
|regression][config/i386] |regression][config/i386]
|GCC 14/trunk emits |GCC 14/trunk emits
|VEX-prefixed AES |VEX-prefixed AES
|instruction without AVX |instruction without AVX
|enabled |enabled
Target Milestone|--- |14.0
Keywords| |wrong-code
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(define_insn "aesenc"
[(set (match_operand:V2DI 0 "register_operand" "=x,x,v")
(unspec:V2DI [(match_operand:V2DI 1 "register_operand" "0,x,v")
(match_operand:V2DI 2 "vector_operand" "xja,xm,vm")]
UNSPEC_AESENC))]
"TARGET_AES || (TARGET_VAES && TARGET_AVX512VL)"
"@
aesenc\t{%2, %0|%0, %2}
vaesenc\t{%2, %1, %0|%0, %1, %2}
vaesenc\t{%2, %1, %0|%0, %1, %2}"
[(set_attr "isa" "noavx,aes,avx512vl")
(set_attr "type" "sselog1")
(set_attr "addr" "gpr16,*,*")
(set_attr "prefix_extra" "1")
(set_attr "prefix" "orig,vex,evex")
(set_attr "btver2_decode" "double,double,double")
(set_attr "mode" "TI")])
r14-104-g24a8acc1662c37
Also, since -mvaes indicates that we could use VEX encoding for ymm, we
should imply AVX for VAES.