i386: Remove redundant move in vnni pattern

Message ID 20240112022543.1380261-1-haochen.jiang@intel.com
State Unresolved
Headers
Series i386: Remove redundant move in vnni pattern |

Checks

Context Check Description
snail/gcc-patch-check warning Git am fail log

Commit Message

Jiang, Haochen Jan. 12, 2024, 2:25 a.m. UTC
  Hi all,

This patch removes all redundant set in vnni patterns.

Ok for trunk?

Thx,
Haochen

gcc/ChangeLog:

	* config/i386/sse.md (sdot_prod<mode>): Remove redundant SET.
	(usdot_prod<mode>): Ditto.
	(sdot_prod<mode>): Ditto.
	(udot_prod<mode>): Ditto.
---
 gcc/config/i386/sse.md | 4 ----
 1 file changed, 4 deletions(-)
  

Comments

liuhongt Jan. 12, 2024, 2:42 a.m. UTC | #1
> -----Original Message-----
> From: Jiang, Haochen <haochen.jiang@intel.com>
> Sent: Friday, January 12, 2024 10:26 AM
> To: gcc-patches@gcc.gnu.org
> Cc: Liu, Hongtao <hongtao.liu@intel.com>; ubizjak@gmail.com
> Subject: [PATCH] i386: Remove redundant move in vnni pattern
> 
> Hi all,
> 
> This patch removes all redundant set in vnni patterns.
> 
> Ok for trunk?
Ok.
> 
> Thx,
> Haochen
> 
> gcc/ChangeLog:
> 
> 	* config/i386/sse.md (sdot_prod<mode>): Remove redundant SET.
> 	(usdot_prod<mode>): Ditto.
> 	(sdot_prod<mode>): Ditto.
> 	(udot_prod<mode>): Ditto.
> ---
>  gcc/config/i386/sse.md | 4 ----
>  1 file changed, 4 deletions(-)
> 
> diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index
> 532738dcf94..acd10908d76 100644
> --- a/gcc/config/i386/sse.md
> +++ b/gcc/config/i386/sse.md
> @@ -16174,7 +16174,6 @@
>        operands[2] = lowpart_subreg (<sseunpackmode>mode,
>  				    force_reg (<MODE>mode, operands[2]),
>  				    <MODE>mode);
> -      emit_insn (gen_rtx_SET (operands[0], operands[3]));
>        emit_insn (gen_vpdpwssd_<SDOT_VPDP_SUF> (operands[0],
> operands[3],
>  					       operands[1], operands[2]));
>      }
> @@ -29963,7 +29962,6 @@
>    operands[2] = lowpart_subreg (<ssedvecmode>mode,
>  				force_reg (<MODE>mode, operands[2]),
>  				<MODE>mode);
> -  emit_insn (gen_rtx_SET (operands[0], operands[3]));
>    emit_insn (gen_vpdpbusd_<ssedvecmodelower> (operands[0],
> operands[3],
>  				  operands[1], operands[2]));
>    DONE;
> @@ -30780,7 +30778,6 @@
>        operands[2] = lowpart_subreg (<ssedvecmode>mode,
>  				    force_reg (<MODE>mode, operands[2]),
>  				    <MODE>mode);
> -      emit_insn (gen_rtx_SET (operands[0], operands[3]));
>        emit_insn (gen_vpdpbssd_<ssedvecmodelower> (operands[0],
> operands[3],
>  						  operands[1], operands[2]));
>      }
> @@ -30857,7 +30854,6 @@
>        operands[2] = lowpart_subreg (<ssedvecmode>mode,
>  				    force_reg (<MODE>mode, operands[2]),
>  				    <MODE>mode);
> -      emit_insn (gen_rtx_SET (operands[0], operands[3]));
>        emit_insn (gen_vpdpbuud_<ssedvecmodelower> (operands[0],
> operands[3],
>  						  operands[1], operands[2]));
>     }
> --
> 2.31.1
  

Patch

diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md
index 532738dcf94..acd10908d76 100644
--- a/gcc/config/i386/sse.md
+++ b/gcc/config/i386/sse.md
@@ -16174,7 +16174,6 @@ 
       operands[2] = lowpart_subreg (<sseunpackmode>mode,
 				    force_reg (<MODE>mode, operands[2]),
 				    <MODE>mode);
-      emit_insn (gen_rtx_SET (operands[0], operands[3]));
       emit_insn (gen_vpdpwssd_<SDOT_VPDP_SUF> (operands[0], operands[3],
 					       operands[1], operands[2]));
     }
@@ -29963,7 +29962,6 @@ 
   operands[2] = lowpart_subreg (<ssedvecmode>mode,
 				force_reg (<MODE>mode, operands[2]),
 				<MODE>mode);
-  emit_insn (gen_rtx_SET (operands[0], operands[3]));
   emit_insn (gen_vpdpbusd_<ssedvecmodelower> (operands[0], operands[3],
 				  operands[1], operands[2]));
   DONE;
@@ -30780,7 +30778,6 @@ 
       operands[2] = lowpart_subreg (<ssedvecmode>mode,
 				    force_reg (<MODE>mode, operands[2]),
 				    <MODE>mode);
-      emit_insn (gen_rtx_SET (operands[0], operands[3]));
       emit_insn (gen_vpdpbssd_<ssedvecmodelower> (operands[0], operands[3],
 						  operands[1], operands[2]));
     }
@@ -30857,7 +30854,6 @@ 
       operands[2] = lowpart_subreg (<ssedvecmode>mode,
 				    force_reg (<MODE>mode, operands[2]),
 				    <MODE>mode);
-      emit_insn (gen_rtx_SET (operands[0], operands[3]));
       emit_insn (gen_vpdpbuud_<ssedvecmodelower> (operands[0], operands[3],
 						  operands[1], operands[2]));
    }