[all-commits] [llvm/llvm-project] 2d0383: DAGCombiner optimization for pow(x, 0.75) and pow(x...

Masoud Ataei Jaliseh via All-commits all-commits at lists.llvm.org
Fri Jun 12 07:03:03 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 2d038370bb6b02864822e9e764efeb0a2a3e13b5
      https://github.com/llvm/llvm-project/commit/2d038370bb6b02864822e9e764efeb0a2a3e13b5
  Author: Masoud Ataei <msd.ataei at gmail.com>
  Date:   2020-06-12 (Fri, 12 Jun 2020)

  Changed paths:
    M llvm/lib/Target/PowerPC/PPCLowerMASSVEntries.cpp
    A llvm/test/CodeGen/PowerPC/pow_massv_075_025exp.ll
    A llvm/test/CodeGen/PowerPC/powf_massv_075_025exp.ll

  Log Message:
  -----------
  DAGCombiner optimization for pow(x,0.75) and pow(x,0.25) on double and single precision even in case massv function is asked

Here, I am proposing to add an special case for massv powf4/powd2 function (SIMD counterpart of powf/pow function in MASSV library) in MASSV pass to get later optimizations like conversion from pow(x,0.75) and pow(x,0.25) for double and single precision to sequence of sqrt's in the DAGCombiner in vector float case. My reason for doing this is: the optimized pow(x,0.75) and pow(x,0.25) for double and single precision to sequence of sqrt's is faster than powf4/powd2 on P8 and P9.

In case MASSV functions is called, and if the exponent of pow is 0.75 or 0.25, we will get the sequence of sqrt's and if exponent is not 0.75 or 0.25 we will get the appropriate MASSV function.

Reviewed By: steven.zhang

Tags: #LLVM #PowerPC

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




More information about the All-commits mailing list