if a constant can't be an immediate, add it to the constant pool

llvm-svn: 30566
diff --git a/llvm/test/Regression/CodeGen/ARM/constants.ll b/llvm/test/Regression/CodeGen/ARM/constants.ll
new file mode 100644
index 0000000..9d5fb8e
--- /dev/null
+++ b/llvm/test/Regression/CodeGen/ARM/constants.ll
@@ -0,0 +1,31 @@
+; RUN: llvm-as < %s | llc -march=arm &&
+; RUN: llvm-as < %s | llc -march=arm | grep "mov r0, #0" | wc -l | grep 1 &&
+; RUN: llvm-as < %s | llc -march=arm | grep "mov r0, #255" | wc -l | grep 1 &&
+; RUN: llvm-as < %s | llc -march=arm | grep "mov r0, #256" | wc -l | grep 1 &&
+; RUN: llvm-as < %s | llc -march=arm | grep ".word.*257" | wc -l | grep 1 &&
+; RUN: llvm-as < %s | llc -march=arm | grep "mov r0, #-1073741761" | wc -l | grep 1 &&
+; RUN: llvm-as < %s | llc -march=arm | grep "mov r0, #1008" | wc -l | grep 1
+
+uint %f1() {
+  ret uint 0
+}
+
+uint %f2() {
+  ret uint 255
+}
+
+uint %f3() {
+  ret uint 256
+}
+
+uint %f4() {
+  ret uint 257
+}
+
+uint %f5() {
+  ret uint 3221225535
+}
+
+uint %f6() {
+  ret uint 1008
+}