Skip to content

Commit e6827be

Browse files
committed
selection dag sucks
1 parent e5661fe commit e6827be

File tree

3 files changed

+15
-2
lines changed

3 files changed

+15
-2
lines changed

llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -793,7 +793,7 @@ void AMDGPUDAGToDAGISel::Select(SDNode *N) {
793793
}
794794
}
795795

796-
if (N->getOpcode() == ISD::FADD) {
796+
if (N->getOpcode() == ISD::FADD && false) {
797797
llvm::dbgs() << "N->dump()\n";
798798
N->dump();
799799
MySelectCode(N);
@@ -1717,6 +1717,11 @@ bool AMDGPUDAGToDAGISel::SelectBUFSOffset(SDValue ByteOffsetNode,
17171717
return true;
17181718
}
17191719

1720+
bool AMDGPUDAGToDAGISel::MaxsComplexPatternPackedFP(SDNode *N) const {
1721+
N->dump();
1722+
return false;
1723+
}
1724+
17201725
// Find a load or store from corresponding pattern root.
17211726
// Roots may be build_vector, bitconvert or their combinations.
17221727
static MemSDNode* findMemSDNode(SDNode *N) {

llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ class AMDGPUDAGToDAGISel : public SelectionDAGISel {
152152
bool SelectMUBUFOffset(SDValue Addr, SDValue &SRsrc, SDValue &Soffset,
153153
SDValue &Offset) const;
154154
bool SelectBUFSOffset(SDValue Addr, SDValue &SOffset) const;
155+
bool MaxsComplexPatternPackedFP(SDNode *Parent, SDValue Addr, SDValue &SOffset) const;
155156

156157
bool SelectFlatOffsetImpl(SDNode *N, SDValue Addr, SDValue &VAddr,
157158
SDValue &Offset, uint64_t FlatVariant) const;
@@ -276,6 +277,8 @@ class AMDGPUDAGToDAGISel : public SelectionDAGISel {
276277
void SelectWAVE_ADDRESS(SDNode *N);
277278
void SelectSTACKRESTORE(SDNode *N);
278279

280+
bool MaxsComplexPatternPackedFP(SDNode *N) const;
281+
279282
protected:
280283
// Include the pieces autogenerated from the target description.
281284
#include "AMDGPUGenDAGISel.inc"

llvm/lib/Target/AMDGPU/VOP3PInstructions.td

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1144,11 +1144,16 @@ def MAIInstInfoTable : GenericTable {
11441144
let PrimaryKeyName = "getMAIInstInfoHelper";
11451145
}
11461146

1147+
def my_any_fadd : PatFrags<(ops node:$lhs, node:$rhs),
1148+
[(strict_fadd node:$lhs, node:$rhs), (fadd node:$lhs, node:$rhs)]> {
1149+
let PredicateCode = [{ return MaxsComplexPatternPackedFP(N); }];
1150+
}
1151+
11471152
let isCommutable = 1, isReMaterializable = 1 in {
11481153
let SubtargetPredicate = HasPackedFP32Ops in {
11491154
defm V_PK_FMA_F32 : VOP3PInst<"v_pk_fma_f32", VOP3P_Profile<VOP_V2F32_V2F32_V2F32_V2F32, VOP3_PACKED>, any_fma>;
11501155
defm V_PK_MUL_F32 : VOP3PInst<"v_pk_mul_f32", VOP3P_Profile<VOP_V2F32_V2F32_V2F32, VOP3_PACKED>, any_fmul>;
1151-
defm V_PK_ADD_F32 : VOP3PInst<"v_pk_add_f32", VOP3P_Profile<VOP_V2F32_V2F32_V2F32, VOP3_PACKED>, any_fadd>;
1156+
defm V_PK_ADD_F32 : VOP3PInst<"v_pk_add_f32", VOP3P_Profile<VOP_V2F32_V2F32_V2F32, VOP3_PACKED>, my_any_fadd>;
11521157
} // End SubtargetPredicate = HasPackedFP32Ops
11531158

11541159
let SubtargetPredicate = HasPkMovB32, isAsCheapAsAMove = 1 in

0 commit comments

Comments
 (0)