patch for V8QI load splitting applied to sh.md

Joern Rennecke joern.rennecke@superh.com
Fri Oct 11 04:46:00 GMT 2002


-- 
--------------------------
SuperH (UK) Ltd.
2410 Aztec West / Almondsbury / BRISTOL / BS32 4QX
T:+44 1454 465658
-------------- next part --------------
Fri Oct 11 12:34:33 2002  J"orn Rennecke <joern.rennecke@superh.com>

	* sh.md (movv8qi_i+2): For V8QI destinations, generate V4HI
	register for mperm_w operation.

Index: sh.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/sh/sh.md,v
retrieving revision 1.122
diff -p -F^( -r1.122 sh.md
*** sh.md	9 Oct 2002 15:07:19 -0000	1.122
--- sh.md	11 Oct 2002 11:33:53 -0000
*************** (define_split
*** 9160,9166 ****
    if (unit_size > 2)
      operands[2] = gen_mshflo_l (operands[0], operands[0], operands[0]);
    else
!     operands[2] = gen_mperm_w0 (operands[0], operands[0]);
    operands[0] = gen_rtx_REG (DImode, true_regnum (operands[0]));
    operands[1] = XVECEXP (operands[1], 0, 0);
    if (unit_size < 2)
--- 9160,9170 ----
    if (unit_size > 2)
      operands[2] = gen_mshflo_l (operands[0], operands[0], operands[0]);
    else
!     {
!       if (unit_size < 2)
! 	operands[0] = gen_rtx_REG (V4HImode, true_regnum (operands[0]));
!       operands[2] = gen_mperm_w0 (operands[0], operands[0]);
!     }
    operands[0] = gen_rtx_REG (DImode, true_regnum (operands[0]));
    operands[1] = XVECEXP (operands[1], 0, 0);
    if (unit_size < 2)


More information about the Gcc-patches mailing list