1263320SdimPull in r199186 from upstream llvm trunk (by Jakob Stoklund Olesen):
2263320Sdim
3263320Sdim  Switch the NEON register class from QPR to DPair.
4263320Sdim
5263320Sdim  The already allocatable DPair superclass contains odd-even D register
6263320Sdim  pair in addition to the even-odd pairs in the QPR register class. There
7263320Sdim  is no reason to constrain the set of D register pairs that can be used
8263320Sdim  for NEON values. Any NEON instructions that require a Q register will
9263320Sdim  automatically constrain the register class to QPR.
10263320Sdim
11263320Sdim  The allocation order for DPair begins with the QPR registers, so
12263320Sdim  register allocation is unlikely to change much.
13263320Sdim
14263320SdimIntroduced here: http://svn.freebsd.org/changeset/base/262261
15263320Sdim
16263320SdimIndex: lib/Target/ARM/ARMISelLowering.cpp
17263320Sdim===================================================================
18263320Sdim--- lib/Target/ARM/ARMISelLowering.cpp
19263320Sdim+++ lib/Target/ARM/ARMISelLowering.cpp
20263320Sdim@@ -156,7 +156,7 @@ void ARMTargetLowering::addDRTypeForNEON(MVT VT) {
21263320Sdim }
22263320Sdim 
23263320Sdim void ARMTargetLowering::addQRTypeForNEON(MVT VT) {
24263320Sdim-  addRegisterClass(VT, &ARM::QPRRegClass);
25263320Sdim+  addRegisterClass(VT, &ARM::DPairRegClass);
26263320Sdim   addTypeForNEON(VT, MVT::v2f64, MVT::v4i32);
27263320Sdim }
28263320Sdim 
29