v4i64 and v8i64 are only synthesizable when NEON is available.
authorEvan Cheng <evan.cheng@apple.com>
Sat, 15 May 2010 02:20:21 +0000 (02:20 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Sat, 15 May 2010 02:20:21 +0000 (02:20 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103855 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMISelLowering.cpp

index 9db641172d7c29f0ad467584a3ddf99d9ce08fca..49dd9514b527563a1008f0af9c50ab624e2da856 100644 (file)
@@ -585,10 +585,12 @@ TargetRegisterClass *ARMTargetLowering::getRegClassFor(EVT VT) const {
   // Map v4i64 to QQ registers but do not make the type legal. Similarly map
   // v8i64 to QQQQ registers. v4i64 and v8i64 are only used for REG_SEQUENCE to
   // load / store 4 to 8 consecutive D registers.
-  if (VT == MVT::v4i64)
-    return ARM::QQPRRegisterClass;
-  else if (VT == MVT::v8i64)
-    return ARM::QQQQPRRegisterClass;
+  if (Subtarget->hasNEON()) {
+    if (VT == MVT::v4i64)
+      return ARM::QQPRRegisterClass;
+    else if (VT == MVT::v8i64)
+      return ARM::QQQQPRRegisterClass;
+  }
   return TargetLowering::getRegClassFor(VT);
 }