diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3b14a383defe29444cb06a778e394ab6338ca8dc..c22b10f6f6d9be8a9fa699851c9e8615fb4df480 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2009-12-23  Ramana Radhakrishnan  <ramrad01@arm.com>
+
+	PR target/40670
+	* config/arm/arm.md: Split for Thumb1 as well.
+
 2009-12-22  Cary Coutant  <ccoutant@google.com>
 
 	PR debug/42454
diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md
index 367b00d70a65208ead3a2ae026f1d0e6859819d1..e79ef15fa7d57bd9cb5d4e97ad47eb1b631cb5a3 100644
--- a/gcc/config/arm/arm.md
+++ b/gcc/config/arm/arm.md
@@ -6073,7 +6073,7 @@
 (define_split
   [(set (match_operand:SF 0 "arm_general_register_operand" "")
 	(match_operand:SF 1 "immediate_operand" ""))]
-  "TARGET_32BIT
+  "TARGET_EITHER
    && reload_completed
    && GET_CODE (operands[1]) == CONST_DOUBLE"
   [(set (match_dup 2) (match_dup 3))]
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index afb5a9f1b27e9034f1a468f9e3e84cb7d234baca..b5717572077263de60b30efe3b8736c1233c1588 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2009-12-23  Ramana Radhakrishnan  <ramrad01@arm.com>
+
+	PR target/40670
+	* gcc.target/arm/pr40670.c: New test.
+	
 2009-12-23  Uros Bizjak  <ubizjak@gmail.com>
 
 	* gcc.target/alpha/20000715-1.c: Remove target selector.
diff --git a/gcc/testsuite/gcc.target/arm/pr40670.c b/gcc/testsuite/gcc.target/arm/pr40670.c
new file mode 100644
index 0000000000000000000000000000000000000000..24786385d7e9120003b0ef5cac3afe085c491ebc
--- /dev/null
+++ b/gcc/testsuite/gcc.target/arm/pr40670.c
@@ -0,0 +1,8 @@
+/* { dg-options "-mthumb -O2" }  */
+/* { dg-require-effective-target arm_thumb1_ok } */
+/* { dg-final { scan-assembler-not "ldr" } } */
+
+float foo (void)
+{
+  return 2.0;
+}