diff options
author | Pete Cooper <peter_cooper@apple.com> | 2012-04-03 22:57:55 +0000 |
---|---|---|
committer | Pete Cooper <peter_cooper@apple.com> | 2012-04-03 22:57:55 +0000 |
commit | 2ce63c73520cd6e715f9114589f802938b5db01f (patch) | |
tree | 894de6caa1343d4b049aeb841d4fd30133fe15a3 /lib/CodeGen/SelectionDAG/LegalizeTypes.h | |
parent | dda3a099a096588d435fdb855b52b0a203316de2 (diff) | |
download | llvm-2ce63c73520cd6e715f9114589f802938b5db01f.tar.gz llvm-2ce63c73520cd6e715f9114589f802938b5db01f.tar.bz2 llvm-2ce63c73520cd6e715f9114589f802938b5db01f.tar.xz |
Add VSELECT to LegalizeVectorTypes::ScalariseVectorResult. Previously it would crash if it encountered a 1 element VSELECT. Solution is slightly more complicated than just creating a SELET as we have to mask or sign extend the vector condition if it had different boolean contents from the scalar condition. Fixes <rdar://problem/11178095>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153976 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/SelectionDAG/LegalizeTypes.h')
-rw-r--r-- | lib/CodeGen/SelectionDAG/LegalizeTypes.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/CodeGen/SelectionDAG/LegalizeTypes.h b/lib/CodeGen/SelectionDAG/LegalizeTypes.h index 69c2100001..e8664458e9 100644 --- a/lib/CodeGen/SelectionDAG/LegalizeTypes.h +++ b/lib/CodeGen/SelectionDAG/LegalizeTypes.h @@ -521,6 +521,7 @@ private: SDValue ScalarizeVecRes_LOAD(LoadSDNode *N); SDValue ScalarizeVecRes_SCALAR_TO_VECTOR(SDNode *N); SDValue ScalarizeVecRes_SIGN_EXTEND_INREG(SDNode *N); + SDValue ScalarizeVecRes_VSELECT(SDNode *N); SDValue ScalarizeVecRes_SELECT(SDNode *N); SDValue ScalarizeVecRes_SELECT_CC(SDNode *N); SDValue ScalarizeVecRes_SETCC(SDNode *N); |