[all-commits] [llvm/llvm-project] c0e399: [ARM] Add more tests for vecreduce soft float lega...

Nikita Popov via All-commits all-commits at lists.llvm.org
Mon Sep 14 11:42:31 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: c0e3996bc7087a27e685c734480c0b92ff427d37
      https://github.com/llvm/llvm-project/commit/c0e3996bc7087a27e685c734480c0b92ff427d37
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2020-09-14 (Mon, 14 Sep 2020)

  Changed paths:
    A llvm/test/CodeGen/ARM/vecreduce-fmax-legalization-soft-float.ll
    A llvm/test/CodeGen/ARM/vecreduce-fmin-legalization-soft-float.ll
    A llvm/test/CodeGen/ARM/vecreduce-fmul-legalization-soft-float.ll

  Log Message:
  -----------
  [ARM] Add more tests for vecreduce soft float legalization (NFC)

This mirrors the existing fadd tests to fmul, fmin and fmax.


  Commit: 53f36f06afbc02d1ab96e3789b41ddeafe31f40e
      https://github.com/llvm/llvm-project/commit/53f36f06afbc02d1ab96e3789b41ddeafe31f40e
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2020-09-14 (Mon, 14 Sep 2020)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
    M llvm/lib/Target/ARM/ARMTargetTransformInfo.h
    M llvm/test/CodeGen/ARM/vecreduce-fadd-legalization-soft-float.ll
    M llvm/test/CodeGen/ARM/vecreduce-fmax-legalization-soft-float.ll
    M llvm/test/CodeGen/ARM/vecreduce-fmin-legalization-soft-float.ll
    M llvm/test/CodeGen/ARM/vecreduce-fmul-legalization-soft-float.ll
    M llvm/test/CodeGen/X86/vector-reduce-fmax-nnan.ll
    M llvm/test/CodeGen/X86/vector-reduce-fmin-nnan.ll

  Log Message:
  -----------
  [Legalize][ARM][X86] Add float legalization for VECREDUCE

This adds SoftenFloatRes, PromoteFloatRes and SoftPromoteHalfRes
legalizations for VECREDUCE, to fill the remaining hole in the SDAG
legalization. These legalizations simply expand the reduction and
let it be recursively legalized. For the PromoteFloatRes case at
least it is possible to do better than that, but it's pretty tricky
(because we need to consider the interaction of three different
vector legalizations and the type promotion) and probably not
really worthwhile.

I haven't added ExpandFloatRes support, as I am not familiar with
ppc_fp128.

Differential Revision: https://reviews.llvm.org/D87569


Compare: https://github.com/llvm/llvm-project/compare/23a2b03221c5...53f36f06afbc


More information about the All-commits mailing list