All pow(x, a) transformations (where a = 0.5, 0.25, 0.75, 1/3 or 2/3) to sqrt/cbrt calls are done in DAGCombine except pow(x,0.5) --> sqrt(x). The last transformation is implemented LibCallSimplifier::optimizePow.
This patch is proposing to move the rest off the pow(x, a) transformations to LibCallSimplifier::optimizePow. That will move these transformations to earlier step in compiler pipeline.
The motivation for that was this patch https://reviews.llvm.org/D101759 (MASS call transformation for PPC machines). So that we will get these transformations before reaching to MASS scalar pass.
declare SqrtTmp inside the only block that uses it.