[FastISel][ARM] Fall-back to constant pool loads when materializing an i32 constant.

FastEmit_i won't always succeed to materialize an i32 constant and just fail.
This would trigger a fall-back to SelectionDAG, which is really not necessary.

This fix will first fall-back to a constant pool load to materialize the constant
before giving up for good.

This fixes <rdar://problem/18022633>.

llvm-svn: 215682
diff --git a/llvm/lib/Target/ARM/ARMFastISel.cpp b/llvm/lib/Target/ARM/ARMFastISel.cpp
index 5cb6d9a..a6c5198 100644
--- a/llvm/lib/Target/ARM/ARMFastISel.cpp
+++ b/llvm/lib/Target/ARM/ARMFastISel.cpp
@@ -547,7 +547,8 @@
   }
 
   if (Subtarget->useMovt(*FuncInfo.MF))
-    return FastEmit_i(VT, VT, ISD::Constant, CI->getZExtValue());
+    if (FastEmit_i(VT, VT, ISD::Constant, CI->getZExtValue()))
+      return true;
 
   // Load from constant pool.  For now 32-bit only.
   if (VT != MVT::i32)