From: J"orn Rennecke Date: Fri, 11 Oct 2002 11:36:21 +0000 (+0000) Subject: sh.md (movv8qi_i+2): For V8QI destinations, generate V4HI register for mperm_w operation. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=750afc12b3b52eaa1082f95b486fd5314e64ff5d;p=gcc.git sh.md (movv8qi_i+2): For V8QI destinations, generate V4HI register for mperm_w operation. * sh.md (movv8qi_i+2): For V8QI destinations, generate V4HI register for mperm_w operation. From-SVN: r58051 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c2c29c58b03..8330920785c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Fri Oct 11 12:34:33 2002 J"orn Rennecke + + * sh.md (movv8qi_i+2): For V8QI destinations, generate V4HI + register for mperm_w operation. + Fri Oct 11 10:56:17 2002 J"orn Rennecke * emit-rtl.c (gen_lowpart_common): When asked to make a vector from diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md index 2c02ee37313..a27170922a1 100644 --- a/gcc/config/sh/sh.md +++ b/gcc/config/sh/sh.md @@ -9160,7 +9160,11 @@ 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]); + { + 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)