diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3b2b76adca6d7f43665522d90332911ebc6ea20f..116d6c4d6cc636db6dff82f7e8ac4de21f580b5e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2014-04-11  Steve Ellcey  <sellcey@mips.com>
+	    Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/60556
+	* expr.c (convert_move): Use emit_store_flag_force instead of
+	emit_store_flag.  Pass lowpart_mode instead of VOIDmode as 5th
+	argument to it.
+
 2014-04-11  Richard Biener  <rguenther@suse.de>
 
 	PR middle-end/60797
diff --git a/gcc/expr.c b/gcc/expr.c
index ebf136ed5a30ff9e55b009586260e8f4f3a992e7..72e440119e433197d6a322e36afcdf1edd6db708 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -551,9 +551,9 @@ convert_move (rtx to, rtx from, int unsignedp)
       if (unsignedp)
 	fill_value = const0_rtx;
       else
-	fill_value = emit_store_flag (gen_reg_rtx (word_mode),
-				      LT, lowfrom, const0_rtx,
-				      VOIDmode, 0, -1);
+	fill_value = emit_store_flag_force (gen_reg_rtx (word_mode),
+					    LT, lowfrom, const0_rtx,
+					    lowpart_mode, 0, -1);
 
       /* Fill the remaining words.  */
       for (i = GET_MODE_SIZE (lowpart_mode) / UNITS_PER_WORD; i < nwords; i++)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index ea812303c35d163ec7efe7d0ba411d7f41c6f7d4..0675d469f94564df678976ba77d0e9c89207af2b 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2014-04-11  Steve Ellcey  <sellcey@mips.com>
+	    Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/60556
+	* gcc.c-torture/compile/pr60556.c: New test.
+
 2014-04-11  Richard Biener  <rguenther@suse.de>
 
 	PR middle-end/60797
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr60556.c b/gcc/testsuite/gcc.c-torture/compile/pr60556.c
new file mode 100644
index 0000000000000000000000000000000000000000..c775432f8bb084f9a61c35c905db7c32ed605cb9
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr60556.c
@@ -0,0 +1,8 @@
+/* PR middle-end/60556 */
+
+int g (int);
+
+unsigned long long f (void)
+{
+ return (unsigned long long)(long)&g;
+}