re PR tree-optimization/35642 (short * short multiplication not vectorized on Power)

PR tree-optimization/35642
	* config/rs6000/altivec.md (mulv8hi3): Implement.


Co-Authored-By: Ira Rosen <irar@il.ibm.com>

From-SVN: r140083
This commit is contained in:
Dorit Nuzman 2008-09-07 08:54:00 +00:00 committed by Ira Rosen
parent c0cf64a287
commit cc54af2085
4 changed files with 37 additions and 1 deletions

View file

@ -1,3 +1,9 @@
2008-09-07 Dorit Nuzman <dorit@il.ibm.com>
Ira Rosen <irar@il.ibm.com>
PR tree-optimization/35642
* config/rs6000/altivec.md (mulv8hi3): Implement.
2008-09-06 Jeff Law <law@redhat.com>
* h8300.h (IRA_COVER_CLASSES): Define.

View file

@ -647,6 +647,28 @@
DONE;
}")
(define_expand "mulv8hi3"
[(use (match_operand:V8HI 0 "register_operand" ""))
(use (match_operand:V8HI 1 "register_operand" ""))
(use (match_operand:V8HI 2 "register_operand" ""))]
"TARGET_ALTIVEC"
"
{
rtx odd = gen_reg_rtx (V4SImode);
rtx even = gen_reg_rtx (V4SImode);
rtx high = gen_reg_rtx (V4SImode);
rtx low = gen_reg_rtx (V4SImode);
emit_insn (gen_altivec_vmulesh (even, operands[1], operands[2]));
emit_insn (gen_altivec_vmulosh (odd, operands[1], operands[2]));
emit_insn (gen_altivec_vmrghw (high, even, odd));
emit_insn (gen_altivec_vmrglw (low, even, odd));
emit_insn (gen_altivec_vpkuwum (operands[0], high, low));
DONE;
}")
;; Fused multiply subtract
(define_insn "altivec_vnmsubfp"

View file

@ -1,3 +1,10 @@
2008-09-07 Dorit Nuzman <dorit@il.ibm.com>
Ira Rosen <irar@il.ibm.com>
PR tree-optimization/35642
* lib/target-supports.exp (check_effective_target_vect_short_mult):
Add powerpc.
2008-09-07 Victor Kaplansky <victork@il.ibm.com>
PR testsuite/37334

View file

@ -2093,7 +2093,8 @@ proc check_effective_target_vect_short_mult { } {
if { [istarget ia64-*-*]
|| [istarget spu-*-*]
|| [istarget i?86-*-*]
|| [istarget x86_64-*-*] } {
|| [istarget x86_64-*-*]
|| [istarget powerpc*-*-*] } {
set et_vect_short_mult_saved 1
}
}