From 379eaa6f239853b087fb3276cea41580f8ef3efa Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Mon, 25 Jun 2012 13:41:51 -0700 Subject: [PATCH] i386: Use vpmacsdd for mulv4si3 From-SVN: r188958 --- gcc/ChangeLog | 4 ++++ gcc/config/i386/sse.md | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 673275ab7ff..068d1500b84 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2012-06-25 Richard Henderson + + * config/i386.sse.md (mul3): Use xop_pmacsdd. + 2012-06-25 Richard Henderson * config/i386/i386.c (ix86_rtx_costs) [MULT]: Only apply XOP cost diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index 4c125815f06..93cd9d7ee6b 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -5564,6 +5564,12 @@ operands[2] = force_const_mem (mode, operands[2]); ix86_fixup_binary_operands_no_copy (MULT, mode, operands); } + else if (TARGET_XOP) + { + rtx z = force_reg (mode, CONST0_RTX (mode)); + emit_insn (gen_xop_pmacsdd (operands[0], operands[1], operands[2], z)); + DONE; + } else { ix86_expand_sse2_mulv4si3 (operands[0], operands[1], operands[2]); -- 2.30.2