1 #include "nv50_ir_lowering_nvc0.h" 2 3 namespace nv50_ir { 4 5 class GM107LoweringPass : public NVC0LoweringPass 6 { 7 public: GM107LoweringPass(Program * p)8 GM107LoweringPass(Program *p) : NVC0LoweringPass(p) {} 9 protected: 10 using NVC0LoweringPass::visit; 11 bool visit(Instruction *) override; 12 13 bool handleManualTXD(TexInstruction *) override; 14 bool handleDFDX(Instruction *); 15 bool handlePFETCH(Instruction *); 16 bool handlePOPCNT(Instruction *); 17 bool handleSUQ(TexInstruction *); 18 }; 19 20 class GM107LegalizeSSA : public NVC0LegalizeSSA 21 { 22 protected: 23 using NVC0LegalizeSSA::visit; 24 bool visit(Instruction *) override; 25 26 void handlePFETCH(Instruction *); 27 void handleLOAD(Instruction *); 28 void handleQUADON(Instruction *); 29 void handleQUADPOP(Instruction *); 30 }; 31 32 } // namespace nv50_ir 33