[PATCH] D113661: [X86][FP16] Avoid to generate VZEXT_MOVL with i16

LuoYuanke via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 11 04:53:00 PST 2021


LuoYuanke added a comment.

Should we support VZEXT_MOVL for i16 with VMOVSHZrr just like what we support VZEXT_MOVL for i32?

  diff --git a/llvm/lib/Target/X86/X86InstrAVX512.td b/llvm/lib/Target/X86/X86InstrAVX512.td
  index 8aee96e1c504..4dca5490b26f 100644
  --- a/llvm/lib/Target/X86/X86InstrAVX512.td
  +++ b/llvm/lib/Target/X86/X86InstrAVX512.td
  @@ -4659,6 +4659,8 @@ let Predicates = [HasAVX512] in {
   let Predicates = [HasFP16] in {
     def : Pat<(v8f16 (X86vzmovl (v8f16 VR128X:$src))),
               (VMOVSHZrr (v8f16 (AVX512_128_SET0)), VR128X:$src)>;
  +  def : Pat<(v8i16 (X86vzmovl (v8i16 VR128X:$src))),
  +            (VMOVSHZrr (v8i16 (AVX512_128_SET0)), VR128X:$src)>;
  
     // FIXME we need better canonicalization in dag combine
     def : Pat<(v16f16 (X86vzmovl (v16f16 VR256X:$src))),


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D113661/new/

https://reviews.llvm.org/D113661



More information about the llvm-commits mailing list