Mesa (main): r300: Remove unused RC_OPCODE_XPD.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Dec 16 17:06:31 UTC 2021


Module: Mesa
Branch: main
Commit: a982d0baf3a9a9ff13d191cf7a61ec34b995eb15
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a982d0baf3a9a9ff13d191cf7a61ec34b995eb15

Author: Emma Anholt <emma at anholt.net>
Date:   Wed Dec  8 12:19:56 2021 -0800

r300: Remove unused RC_OPCODE_XPD.

Nothing generates it in the backend.

Reviewed-by: Adam Jackson <ajax at redhat.com>
Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14211>

---

 src/gallium/drivers/r300/compiler/radeon_opcodes.c  |  7 -------
 src/gallium/drivers/r300/compiler/radeon_opcodes.h  |  3 ---
 .../drivers/r300/compiler/radeon_program_alu.c      | 21 +--------------------
 src/gallium/drivers/r300/r300_reg.h                 |  1 -
 4 files changed, 1 insertion(+), 31 deletions(-)

diff --git a/src/gallium/drivers/r300/compiler/radeon_opcodes.c b/src/gallium/drivers/r300/compiler/radeon_opcodes.c
index efc54725da9..e3043c23d53 100644
--- a/src/gallium/drivers/r300/compiler/radeon_opcodes.c
+++ b/src/gallium/drivers/r300/compiler/radeon_opcodes.c
@@ -344,12 +344,6 @@ const struct rc_opcode_info rc_opcodes[MAX_RC_OPCODE] = {
 		.HasDstReg = 1,
 		.IsComponentwise = 1
 	},
-	{
-		.Opcode = RC_OPCODE_XPD,
-		.Name = "XPD",
-		.NumSrcRegs = 2,
-		.HasDstReg = 1
-	},
 	{
 		.Opcode = RC_OPCODE_TEX,
 		.Name = "TEX",
@@ -549,7 +543,6 @@ void rc_compute_sources_for_writemask(
 			srcmasks[1] |= RC_MASK_XY;
 			break;
 		case RC_OPCODE_DP3:
-		case RC_OPCODE_XPD:
 			srcmasks[0] |= RC_MASK_XYZ;
 			srcmasks[1] |= RC_MASK_XYZ;
 			break;
diff --git a/src/gallium/drivers/r300/compiler/radeon_opcodes.h b/src/gallium/drivers/r300/compiler/radeon_opcodes.h
index 472fd23be05..837374eaa7a 100644
--- a/src/gallium/drivers/r300/compiler/radeon_opcodes.h
+++ b/src/gallium/drivers/r300/compiler/radeon_opcodes.h
@@ -176,9 +176,6 @@ typedef enum {
 	/** vec4 instruction: dst.c = (abs(src0.c) - fract(abs(src0.c))) * sgn(src0.c) */
 	RC_OPCODE_TRUNC,
 
-	/** special instruction, see ARB_fragment_program */
-	RC_OPCODE_XPD,
-
 	RC_OPCODE_TEX,
 	RC_OPCODE_TXB,
 	RC_OPCODE_TXD,
diff --git a/src/gallium/drivers/r300/compiler/radeon_program_alu.c b/src/gallium/drivers/r300/compiler/radeon_program_alu.c
index 1b9c09f97b2..37d7167cd96 100644
--- a/src/gallium/drivers/r300/compiler/radeon_program_alu.c
+++ b/src/gallium/drivers/r300/compiler/radeon_program_alu.c
@@ -615,29 +615,12 @@ static void transform_SWZ(struct radeon_compiler* c,
 	inst->U.I.Opcode = RC_OPCODE_MOV;
 }
 
-static void transform_XPD(struct radeon_compiler* c,
-	struct rc_instruction* inst)
-{
-	struct rc_dst_register dst = try_to_reuse_dst(c, inst);
-
-	emit2(c, inst->Prev, RC_OPCODE_MUL, 0, dst,
-		swizzle(inst->U.I.SrcReg[0], RC_SWIZZLE_Z, RC_SWIZZLE_X, RC_SWIZZLE_Y, RC_SWIZZLE_W),
-		swizzle(inst->U.I.SrcReg[1], RC_SWIZZLE_Y, RC_SWIZZLE_Z, RC_SWIZZLE_X, RC_SWIZZLE_W));
-	emit3(c, inst->Prev, RC_OPCODE_MAD, &inst->U.I, inst->U.I.DstReg,
-		swizzle(inst->U.I.SrcReg[0], RC_SWIZZLE_Y, RC_SWIZZLE_Z, RC_SWIZZLE_X, RC_SWIZZLE_W),
-		swizzle(inst->U.I.SrcReg[1], RC_SWIZZLE_Z, RC_SWIZZLE_X, RC_SWIZZLE_Y, RC_SWIZZLE_W),
-		negate(srcreg(RC_FILE_TEMPORARY, dst.Index)));
-
-	rc_remove_instruction(inst);
-}
-
-
 /**
  * Can be used as a transformation for @ref radeonClauseLocalTransform,
  * no userData necessary.
  *
  * Eliminates the following ALU instructions:
- *  CEIL, DPH, DST, FLR, LIT, LRP, POW, SEQ, SFL, SGE, SGT, SLE, SLT, SNE, SUB, SWZ, XPD
+ *  CEIL, DPH, DST, FLR, LIT, LRP, POW, SEQ, SFL, SGE, SGT, SLE, SLT, SNE, SUB, SWZ
  * using:
  *  MOV, ADD, MUL, MAD, FRC, DP3, LG2, EX2, CMP
  *
@@ -674,7 +657,6 @@ int radeonTransformALU(
 	case RC_OPCODE_SUB: transform_SUB(c, inst); return 1;
 	case RC_OPCODE_SWZ: transform_SWZ(c, inst); return 1;
 	case RC_OPCODE_TRUNC: transform_TRUNC(c, inst); return 1;
-	case RC_OPCODE_XPD: transform_XPD(c, inst); return 1;
 	default:
 		return 0;
 	}
@@ -913,7 +895,6 @@ int r300_transform_vertex_alu(
 	case RC_OPCODE_SUB: transform_SUB(c, inst); return 1;
 	case RC_OPCODE_SWZ: transform_SWZ(c, inst); return 1;
 	case RC_OPCODE_TRUNC: transform_vertex_TRUNC(c, inst); return 1;
-	case RC_OPCODE_XPD: transform_XPD(c, inst); return 1;
 	default:
 		return 0;
 	}
diff --git a/src/gallium/drivers/r300/r300_reg.h b/src/gallium/drivers/r300/r300_reg.h
index 56be6d690d9..80583538c77 100644
--- a/src/gallium/drivers/r300/r300_reg.h
+++ b/src/gallium/drivers/r300/r300_reg.h
@@ -1900,7 +1900,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
  *  - CMPH: If ARG2 > 0.5, return ARG0, else return ARG1
  *  - CMP: If ARG2 < 0, return ARG1, else return ARG0
  *  - FLR: use FRC+MAD
- *  - XPD: use MAD+MAD
  *  - SGE, SLT: use MAD+CMP
  *  - RSQ: use ABS modifier for argument
  *  - Use OUTC_REPL_ALPHA to write results of an alpha-only operation



More information about the mesa-commit mailing list