Index: testsuite/gcc.target/i386/pr43067.c =================================================================== --- testsuite/gcc.target/i386/pr43067.c (revision 0) +++ testsuite/gcc.target/i386/pr43067.c (revision 0) @@ -0,0 +1,15 @@ +/* { dg-do compile } */ +/* { dg-options "-O1 -mxop -ftree-vectorize -fschedule-insns" } */ + +union { + int i32[10240]; + long long i64[10240]; +} a, b, c; + +void imul32_to_64 (void) +{ + int i; + + for (i = 0; i < 10240; i++) + a.i64[i] = (long long) b.i32[i] * c.i32[i]; +} Index: config/i386/sse.md =================================================================== --- config/i386/sse.md (revision 156928) +++ config/i386/sse.md (working copy) @@ -10422,7 +10422,7 @@ { operands[3] = CONST0_RTX (V2DImode); } - [(set_attr "type" "ssemuladd") + [(set_attr "type" "ssemul") (set_attr "mode" "TI")]) (define_insn "xop_pmacsdqh" @@ -10484,7 +10484,7 @@ { operands[3] = CONST0_RTX (V2DImode); } - [(set_attr "type" "ssemuladd") + [(set_attr "type" "ssemul") (set_attr "mode" "TI")]) ;; XOP parallel integer multiply/add instructions for the intrinisics