diff options
author | Richard Henderson <rth@redhat.com> | 2012-06-25 13:41:51 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2012-06-25 13:41:51 -0700 |
commit | 379eaa6f239853b087fb3276cea41580f8ef3efa (patch) | |
tree | 5843144fdef13348e42295e011e4488ae32b5bab /gcc | |
parent | ac3571084f208475425446c9d9f16aa16b9ed6ee (diff) | |
download | gcc-379eaa6f239853b087fb3276cea41580f8ef3efa.zip gcc-379eaa6f239853b087fb3276cea41580f8ef3efa.tar.gz gcc-379eaa6f239853b087fb3276cea41580f8ef3efa.tar.bz2 |
i386: Use vpmacsdd for mulv4si3
From-SVN: r188958
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/i386/sse.md | 6 |
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 673275a..068d150 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2012-06-25 Richard Henderson <rth@redhat.com> + * config/i386.sse.md (mul<VI4_AVX2>3): Use xop_pmacsdd. + +2012-06-25 Richard Henderson <rth@redhat.com> + * config/i386/i386.c (ix86_rtx_costs) [MULT]: Only apply XOP cost to V16QImode. (ix86_expand_vec_interleave): New. diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index 4c12581..93cd9d7 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -5564,6 +5564,12 @@ operands[2] = force_const_mem (<MODE>mode, operands[2]); ix86_fixup_binary_operands_no_copy (MULT, <MODE>mode, operands); } + else if (TARGET_XOP) + { + rtx z = force_reg (<MODE>mode, CONST0_RTX (<MODE>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]); |