http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48143
Andrey Belevantsev <abel at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ubizjak at gmail dot com --- Comment #2 from Andrey Belevantsev <abel at gcc dot gnu.org> 2011-03-18 14:35:30 UTC --- We ICE because we again issue more than issue_rate insns. And this happens because we hit an insn which does not modify the DFA state at all, thus we do not account for it when checking that we obey issue_rate limits. The insn is coming from sse2_cvtps2pd pattern of sse.md and it doesn't have a reservation (has "nothing"). I don't have any idea how the pattern attributes should be fixed, but the following seems to work on the test case. Uros, does this make sense? diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index ba2bf24..71c4bb7 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -2878,6 +2878,7 @@ (set_attr "prefix" "maybe_vex") (set_attr "mode" "V2DF") (set_attr "prefix_data16" "0") + (set_attr "athlon_decode" "double") (set_attr "amdfam10_decode" "direct") (set_attr "bdver1_decode" "double")])