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.