@@ -597,6 +597,14 @@ class DXBuilder {
597597 systemValueNameAttr);
598598 }
599599
600+ Instruction buildDclInput (Operand operand, Location loc) {
601+ return dxsa::DclInput::create (builder, loc, operand);
602+ }
603+
604+ Instruction buildDclOutput (Operand operand, Location loc) {
605+ return dxsa::DclOutput::create (builder, loc, operand);
606+ }
607+
600608private:
601609 MLIRContext *context;
602610 ModuleOp module ;
@@ -1076,6 +1084,20 @@ class Parser {
10761084 return builder.buildDclInputPsSgv (*operand, *systemValueName, loc);
10771085 }
10781086
1087+ FailureOr<Instruction> parseDclInput (Location loc) {
1088+ auto operand = parseOperand ();
1089+ if (failed (operand))
1090+ return failure ();
1091+ return builder.buildDclInput (*operand, loc);
1092+ }
1093+
1094+ FailureOr<Instruction> parseDclOutput (Location loc) {
1095+ auto operand = parseOperand ();
1096+ if (failed (operand))
1097+ return failure ();
1098+ return builder.buildDclOutput (*operand, loc);
1099+ }
1100+
10791101 OptionalParseResult parseDclInstruction (uint32_t opcodeToken, Location loc,
10801102 Instruction &out) {
10811103 FailureOr<Instruction> result;
@@ -1116,6 +1138,12 @@ class Parser {
11161138 case D3D10_SB_OPCODE_DCL_INPUT_PS_SGV:
11171139 result = parseDclInputPsSgv (loc);
11181140 break ;
1141+ case D3D10_SB_OPCODE_DCL_INPUT:
1142+ result = parseDclInput (loc);
1143+ break ;
1144+ case D3D10_SB_OPCODE_DCL_OUTPUT:
1145+ result = parseDclOutput (loc);
1146+ break ;
11191147 default :
11201148 return std::nullopt ;
11211149 }
0 commit comments