xref: /aosp_15_r20/external/mesa3d/src/nouveau/codegen/nv50_ir_lowering_gm107.h (revision 6104692788411f58d303aa86923a9ff6ecaded22)
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