On Thu, Jun 5, 2025 at 3:29 AM Hu, Lin1 <[email protected]> wrote:
>
> Hi,
>
> Some vmovvdup pattern's type attribute is sselog1 and then mem attribute is
> both. Modify type attribute according to other patterns about vmovvdup.
>
> Bootstrapped and regtested on x86_64-linux-pc-gnu, OK for trunk?
OK.
Thanks,
Uros.
>
> BRs,
> Lin
>
> gcc/ChangeLog:
>
> * config/i386/sse.md
> (avx512f_movddup512<mask_name>): Change sselog1 to ssemov.
> (avx_movddup256<mask_name>): Ditto.
> (*vec_dupv2di): Change alternative 4's type attribute from sselog1
> to ssemov.
> ---
> gcc/config/i386/sse.md | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
> index aea5e2cad7e..c40b0fd4997 100644
> --- a/gcc/config/i386/sse.md
> +++ b/gcc/config/i386/sse.md
> @@ -13418,7 +13418,7 @@ (define_insn "avx512f_movddup512<mask_name>"
> (const_int 6) (const_int 14)])))]
> "TARGET_AVX512F"
> "vmovddup\t{%1, %0<mask_operand2>|%0<mask_operand2>, %1}"
> - [(set_attr "type" "sselog1")
> + [(set_attr "type" "ssemov")
> (set_attr "prefix" "evex")
> (set_attr "mode" "V8DF")])
>
> @@ -13449,7 +13449,7 @@ (define_insn "avx_movddup256<mask_name>"
> (const_int 2) (const_int 6)])))]
> "TARGET_AVX && <mask_avx512vl_condition>"
> "vmovddup\t{%1, %0<mask_operand2>|%0<mask_operand2>, %1}"
> - [(set_attr "type" "sselog1")
> + [(set_attr "type" "ssemov")
> (set_attr "prefix" "<mask_prefix>")
> (set_attr "mode" "V4DF")])
>
> @@ -27839,7 +27839,7 @@ (define_insn "*vec_dupv2di"
> %vmovddup\t{%1, %0|%0, %1}
> movlhps\t%0, %0"
> [(set_attr "isa" "sse2_noavx,avx,avx512f,sse3,noavx")
> - (set_attr "type" "sselog1,sselog1,ssemov,sselog1,ssemov")
> + (set_attr "type" "sselog1,sselog1,ssemov,ssemov,ssemov")
> (set_attr "prefix" "orig,maybe_evex,evex,maybe_vex,orig")
> (set (attr "mode")
> (cond [(and (eq_attr "alternative" "2")
> --
> 2.31.1
>