On 08.10.2024 08:54, Hongtao Liu wrote:
> On Mon, Sep 30, 2024 at 3:33 PM Jan Beulich <jbeul...@suse.com> wrote:
>>
>> Commit a79d13a01f8c ("i386: Fix aes/vaes patterns [PR114576]") correctly
>> said "..., but we need to emit {evex} prefix in the assembly if AES ISA
>> is not enabled". Yet it did so only for the TARGET_AES insns. Going from
>> the alternative chosen in the TARGET_VAES insns isn't quite right: If
>> AES is (also) enabled, EVEX encoding would needlessly be forced.
>>
>> gcc/
>>
>>         * config/i386/sse.md (vaesdec_<mode>, vaesdeclast_<mode>,
>>         vaesenc_<mode>, vaesenclast_<mode>): Replace which_alternative
>>         check by TARGET_AES one.
>> ---
>> As an aside - {evex} (and other) pseudo-prefixes would better be avoided
>> anyway whenever possible, as those are getting in the way of code
>> putting in place macro overrides for certain insns: gas 2.43 rejects
>> such bogus placement of pseudo-prefixes.
>>
>> Is it, btw, correct that none of these insns have a "prefix" attribute?
> There's some automatic in i386.md to determine the prefix, rough, not
> very accurate.
> 
>   688;; Prefix used: original, VEX or maybe VEX.
>   689(define_attr "prefix" "orig,vex,maybe_vex,evex,maybe_evex"
>   690  (cond [(eq_attr "mode" "OI,V8SF,V4DF")
>   691           (const_string "vex")
>   692         (eq_attr "mode" "XI,V16SF,V8DF")
>   693           (const_string "evex")
>   694         (eq_attr "type" "ssemuladd")
>   695           (if_then_else (eq_attr "isa" "fma4")
>   696             (const_string "vex")
>   697             (const_string "maybe_evex"))
>   698         (eq_attr "type" "sse4arg")
>   699           (const_string "vex")
>   700        ]
>   701        (const_string "orig")))
>   702

I'm aware, and I raised the question because it seemed pretty clear to
me that it wouldn't get things right here.

>> ---
>> v2: Adjust (shrink) description.
> Ok for the patch.

Thanks. What about the 14.x branch?

Jan

Reply via email to