* expr.c (compress_float_constant): Copy the narrow constant into
a new pseudo before extending it to its final width.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112991
138bc75d-0d04-0410-961f-
82ee72b054a4
2006-04-16 Roger Sayle <roger@eyesopen.com>
+
+ PR middle-end/25474
+ * expr.c (compress_float_constant): Copy the narrow constant into
+ a new pseudo before extending it to its final width.
+
+2006-04-16 Roger Sayle <roger@eyesopen.com>
Andrew Pinski <pinskia@gcc.gnu.org>
Dale Johannesen <dalej@apple.com>
}
else
continue;
-
+
+ /* For CSE's benefit, force the compressed constant pool entry
+ into a new pseudo. This constant may be used in different modes,
+ and if not, combine will put things back together for us. */
+ trunc_y = force_reg (srcmode, trunc_y);
emit_unop_insn (ic, x, trunc_y, UNKNOWN);
last_insn = get_last_insn ();