We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 5abe500 commit 71a396eCopy full SHA for 71a396e
llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
@@ -2585,6 +2585,11 @@ SDValue DAGTypeLegalizer::PromoteIntOp_ExpOp(SDNode *N) {
2585
: RTLIB::getLDEXP(N->getValueType(0));
2586
2587
if (LC == RTLIB::UNKNOWN_LIBCALL || !TLI.getLibcallName(LC)) {
2588
+ // Scalarize vector FPOWI instead of promoting the type. This allows the
2589
+ // scalar FPOWIs to be visited and converted to libcalls before promoting
2590
+ // the type.
2591
+ // FIXME: This should be done in LegalizeVectorOps/LegalizeDAG, but call
2592
+ // lowering needs the unpromoted EVT.
2593
if (IsPowI && N->getValueType(0).isVector())
2594
return DAG.UnrollVectorOp(N);
2595
SmallVector<SDValue, 3> NewOps(N->ops());
0 commit comments