https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79487
--- Comment #5 from Andreas Krebbel <krebbel at gcc dot gnu.org> --- the real_convert invocation has been added with: commit 21be42575a11522f5b73d88da65f681711c335a0 Author: jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Thu Mar 24 18:58:58 2011 +0000 PR debug/48204 * simplify-rtx.c (simplify_const_unary_operation): Call real_convert when changing mode class with FLOAT_EXTEND. * gcc.dg/dfp/pr48204.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@171423 138bc75d-0d04-0410-961f-82ee72b054a4 Perhaps we have to do the real_convert unconditionally?! Usually most of the constants are probably converted on tree level. For decimal float the convert is added late during RTL expansion because that's the point were it SD mode operations are lacking.