summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/AMDGPU/SIISelLowering.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
index 8b9447bf20c..0d71bdd269a 100644
--- a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+++ b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
@@ -6600,13 +6600,14 @@ SDValue SITargetLowering::performExtractVectorEltCombine(
SDValue Vec = N->getOperand(0);
SelectionDAG &DAG = DCI.DAG;
- if (Vec.getOpcode() == ISD::FNEG && allUsesHaveSourceMods(N)) {
+ if ((Vec.getOpcode() == ISD::FNEG ||
+ Vec.getOpcode() == ISD::FABS) && allUsesHaveSourceMods(N)) {
SDLoc SL(N);
EVT EltVT = N->getValueType(0);
SDValue Idx = N->getOperand(1);
SDValue Elt = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, SL, EltVT,
Vec.getOperand(0), Idx);
- return DAG.getNode(ISD::FNEG, SL, EltVT, Elt);
+ return DAG.getNode(Vec.getOpcode(), SL, EltVT, Elt);
}
return SDValue();
OpenPOWER on IntegriCloud