http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60879
Bug ID: 60879 Summary: Wrong decision in decide_alg Product: gcc Version: 4.10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: hjl.tools at gmail dot com CC: ubizjak at gmail dot com decide_alg has /* Very tiny blocks are best handled via the loop, REP is expensive to setup. */ else if (expected_size != -1 && expected_size < 4) return loop_1_byte; We use 1-byte loop on fixed size 1, 2 and 3. We should simply unroll loop.