[all-commits] [llvm/llvm-project] d871ef: [instcombine] remove fsub to fneg hacks; only emit...

Simon Moll via All-commits all-commits at lists.llvm.org
Tue Mar 10 08:57:22 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: d871ef4e6ade3797c73cbc54d9214513ee6c7468
      https://github.com/llvm/llvm-project/commit/d871ef4e6ade3797c73cbc54d9214513ee6c7468
  Author: Simon Moll <simon.moll at emea.nec.com>
  Date:   2020-03-10 (Tue, 10 Mar 2020)

  Changed paths:
    M clang/test/CodeGen/fma-builtins-constrained.c
    M llvm/include/llvm/IR/PatternMatch.h
    M llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
    M llvm/test/Transforms/InstCombine/X86/x86-avx512.ll
    M llvm/test/Transforms/InstCombine/cos-1.ll
    M llvm/test/Transforms/InstCombine/fadd.ll
    M llvm/test/Transforms/InstCombine/fast-math.ll
    M llvm/test/Transforms/InstCombine/fdiv.ll
    M llvm/test/Transforms/InstCombine/fmul.ll
    M llvm/test/Transforms/InstCombine/fneg.ll
    M llvm/test/Transforms/InstCombine/fpextend.ll
    M llvm/test/Transforms/InstCombine/fsub.ll
    M llvm/test/Transforms/InstCombine/maximum.ll
    M llvm/test/Transforms/InstCombine/maxnum.ll
    M llvm/test/Transforms/InstCombine/minimum.ll
    M llvm/test/Transforms/InstCombine/minnum.ll
    M llvm/test/Transforms/InstCombine/operand-complexity.ll
    M llvm/test/Transforms/InstCombine/vec_shuffle.ll

  Log Message:
  -----------
  [instcombine] remove fsub to fneg hacks; only emit fneg

Summary: Rewrite the fsub-0.0 idiom to fneg and always emit fneg for fp
negation. This also extends the scalarization cost in instcombine for unary
operators to result in the same IR rewrites for fneg as for the idiom.

Reviewed By: cameron.mcinally

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




More information about the All-commits mailing list