Commit b2b262e3 by Joern Rennecke Committed by Joern Rennecke

re PR middle-end/59049 (Two VOIDmode constant in comparison passed to cstoresi4)

        PR middle-end/59049
        * expmed.c (emit_store_flag): Fail for const-const comparison.

From-SVN: r204682
parent c733374a
2013-11-11 Joern Rennecke <joern.rennecke@embecosm.com>
PR middle-end/59049
* expmed.c (emit_store_flag): Fail for const-const comparison.
2013-11-11 Tristan Gingold <gingold@adacore.com>
Eric Botcazou <ebotcazou@adacore.com>
......@@ -5401,6 +5401,13 @@ emit_store_flag (rtx target, enum rtx_code code, rtx op0, rtx op1,
rtx subtarget;
rtx tem, last, trueval;
/* If we compare constants, we shouldn't use a store-flag operation,
but a constant load. We can get there via the vanilla route that
usually generates a compare-branch sequence, but will in this case
fold the comparison to a constant, and thus elide the branch. */
if (CONSTANT_P (op0) && CONSTANT_P (op1))
return NULL_RTX;
tem = emit_store_flag_1 (target, code, op0, op1, mode, unsignedp, normalizep,
target_mode);
if (tem)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment