On 15.06.2023 09:45, Hongtao Liu wrote: > On Thu, Jun 15, 2023 at 3:07 PM Uros Bizjak via Gcc-patches > <gcc-patches@gcc.gnu.org> wrote: >> On Thu, Jun 15, 2023 at 8:03 AM Jan Beulich via Gcc-patches >> <gcc-patches@gcc.gnu.org> wrote: >>> + case 3: >>> + return "%vmovddup\t{%1, %0|%0, %1}"; >>> + case 4: >>> + return "movlhps\t%0, %0"; >>> + default: >>> + gcc_unreachable (); >>> + } >>> +} >>> + [(set_attr "isa" "sse2_noavx,avx,avx512f,sse3,noavx") >>> + (set_attr "type" "sselog1,sselog1,ssemov,sselog1,ssemov") >>> + (set_attr "prefix" "orig,maybe_evex,evex,maybe_vex,orig") >>> + (set_attr "mode" "TI,TI,TI,DF,V4SF") > alternative 2 should be XImode when !TARGET_AVX512VL.
This gives me a chance to actually raise a related question I stumbled across several times: Which operand does the mode attribute actually describe? I've seen places where it's the source, but I've also seen places where it's the destination. Because of this mix I wasn't really sure that getting this attribute entirely correct is actually necessary, and hence I hoped it would be okay to not further complicate the attribute here. Jan