Commit cc54af20 by Dorit Nuzman Committed by Ira Rosen

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
parent c0cf64a2
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> 2008-09-06 Jeff Law <law@redhat.com>
* h8300.h (IRA_COVER_CLASSES): Define. * h8300.h (IRA_COVER_CLASSES): Define.
......
...@@ -647,6 +647,28 @@ ...@@ -647,6 +647,28 @@
DONE; 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 ;; Fused multiply subtract
(define_insn "altivec_vnmsubfp" (define_insn "altivec_vnmsubfp"
......
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> 2008-09-07 Victor Kaplansky <victork@il.ibm.com>
PR testsuite/37334 PR testsuite/37334
......
...@@ -2093,7 +2093,8 @@ proc check_effective_target_vect_short_mult { } { ...@@ -2093,7 +2093,8 @@ proc check_effective_target_vect_short_mult { } {
if { [istarget ia64-*-*] if { [istarget ia64-*-*]
|| [istarget spu-*-*] || [istarget spu-*-*]
|| [istarget i?86-*-*] || [istarget i?86-*-*]
|| [istarget x86_64-*-*] } { || [istarget x86_64-*-*]
|| [istarget powerpc*-*-*] } {
set et_vect_short_mult_saved 1 set et_vect_short_mult_saved 1
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment