===================================================================
@@ -2474,12 +2474,12 @@ (define_expand "reduc_plus_scal_v4df"
"TARGET_AVX"
{
rtx tmp = gen_reg_rtx (V4DFmode);
- rtx tmp2 = gen_reg_rtx (V4DFmode);
- rtx vec_res = gen_reg_rtx (V4DFmode);
+ rtx tmp2 = gen_reg_rtx (V2DFmode);
+ rtx vec_res = gen_reg_rtx (V2DFmode);
emit_insn (gen_avx_haddv4df3 (tmp, operands[1], operands[1]));
- emit_insn (gen_avx_vperm2f128v4df3 (tmp2, tmp, tmp, GEN_INT (1)));
- emit_insn (gen_addv4df3 (vec_res, tmp, tmp2));
- emit_insn (gen_vec_extractv4dfdf (operands[0], vec_res, const0_rtx));
+ emit_insn (gen_vec_extract_hi_v4df (tmp2, tmp));
+ emit_insn (gen_addv2df3 (vec_res, gen_lowpart (V2DFmode, tmp), tmp2));
+ emit_insn (gen_vec_extractv2dfdf (operands[0], vec_res, const0_rtx));
DONE;
})