Prefer even-odd D-register pairs.
[oota-llvm.git] / lib / Target / ARM / ARMRegisterInfo.td
index 1327fb840e80c7771ddabc5625682b4e5632c961..1466e983f3be3ff07d1fb669c3bed3b298deb4d2 100644 (file)
@@ -314,7 +314,8 @@ def TuplesOE2D : RegisterTuples<[dsub_0, dsub_1],
 def DPair : RegisterClass<"ARM", [v16i8, v8i16, v4i32, v2i64, v4f32, v2f64],
                           128, (interleave QPR, TuplesOE2D)> {
   // Allocate starting at non-VFP2 registers D16-D31 first.
-  let AltOrders = [(rotl DPair, 16)];
+  // Prefer even-odd pairs as they are easier to copy.
+  let AltOrders = [(add (rotl QPR, 8), (rotl DPair, 16))];
   let AltOrderSelect = [{ return 1; }];
 }