Remove vpmacsdql instruction from multiplication
From-SVN: r211702
This commit is contained in:
parent
debd8f30b9
commit
2bd4bfee7e
@ -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
|
||||
|
@ -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
|
||||
{
|
||||
|
@ -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.
|
||||
|
@ -33,4 +33,3 @@ int main ()
|
||||
|
||||
/* { dg-final { scan-assembler "vpmulld" } } */
|
||||
/* { dg-final { scan-assembler "vphadddq" } } */
|
||||
/* { dg-final { scan-assembler "vpmacsdql" } } */
|
||||
|
Loading…
x
Reference in New Issue
Block a user