http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46085

--- Comment #2 from H.J. Lu <hjl.tools at gmail dot com> 2010-10-19 21:32:05 
UTC ---
(define_expand "reduc_splus_v8sf"
  [(match_operand:V8SF 0 "register_operand" "")
   (match_operand:V8SF 1 "register_operand" "")]
  "TARGET_AVX"
{
  rtx tmp = gen_reg_rtx (V8SFmode);
  rtx tmp2 = gen_reg_rtx (V8SFmode);
  emit_insn (gen_avx_haddv8sf3 (tmp, operands[1], operands[1]));
  emit_insn (gen_avx_haddv8sf3 (tmp2, operands[1], operands[1]));
  emit_insn (gen_avx_haddv8sf3 (operands[0], tmp2, tmp2));
  DONE;
})

and

(define_expand "reduc_splus_v4df"
  [(match_operand:V4DF 0 "register_operand" "")
   (match_operand:V4DF 1 "register_operand" "")]
  "TARGET_AVX"
{
  rtx tmp = gen_reg_rtx (V4DFmode);
  emit_insn (gen_avx_haddv4df3 (tmp, operands[1], operands[1]));
  emit_insn (gen_avx_haddv4df3 (operands[0], tmp, tmp));
  DONE;
})

are incorrect.

Reply via email to