Remove vpmacsdql instruction from multiplication

From-SVN: r211702
This commit is contained in:
Ganesh Gopalasubramanian 2014-06-16 11:02:31 +00:00 committed by Ganesh Gopalasubramanian
parent debd8f30b9
commit 2bd4bfee7e
4 changed files with 18 additions and 3 deletions

View File

@ -1,3 +1,9 @@
2014-06-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
* config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
handling 32-bit multiplication.
2014-06-16 Chung-Lin Tang <cltang@codesourcery.com>
PR middle-end/61430

View File

@ -45279,8 +45279,13 @@ ix86_expand_sse2_mulvxdi3 (rtx op0, rtx op1, rtx op2)
/* t4: ((B*E)+(A*F))<<32, ((D*G)+(C*H))<<32 */
emit_insn (gen_ashlv2di3 (t4, t3, GEN_INT (32)));
/* op0: (((B*E)+(A*F))<<32)+(B*F), (((D*G)+(C*H))<<32)+(D*H) */
emit_insn (gen_xop_pmacsdql (op0, op1, op2, t4));
/* Multiply lower parts and add all */
t5 = gen_reg_rtx (V2DImode);
emit_insn (gen_vec_widen_umult_even_v4si (t5,
gen_lowpart (V4SImode, op1),
gen_lowpart (V4SImode, op2)));
op0 = expand_binop (mode, add_optab, t5, t4, op0, 1, OPTAB_DIRECT);
}
else
{

View File

@ -1,3 +1,8 @@
2014-06-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
* gcc.target/i386/xop-imul64-vector.c: Remove the check for
vpmacsdql instruction.
2014-06-16 Yury Gribov <y.gribov@samsung.com>
* c-c++-common/asan/instrument-with-calls-1.c: New test.

View File

@ -33,4 +33,3 @@ int main ()
/* { dg-final { scan-assembler "vpmulld" } } */
/* { dg-final { scan-assembler "vphadddq" } } */
/* { dg-final { scan-assembler "vpmacsdql" } } */