diff options
author | Nate Begeman <natebegeman@mac.com> | 2007-11-27 19:28:48 +0000 |
---|---|---|
committer | Nate Begeman <natebegeman@mac.com> | 2007-11-27 19:28:48 +0000 |
commit | d73ab8884f5c95d2704be3c00af4cc3dba963da6 (patch) | |
tree | 476412a752708d1e7cc44f60bb2953d3650d557b /lib/CodeGen/SelectionDAG/TargetLowering.cpp | |
parent | 19914ed97ffc2a655628bf237e795703ad2c4476 (diff) |
Support returning non-power-of-2 vectors to unblock some work
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44371 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/SelectionDAG/TargetLowering.cpp')
-rw-r--r-- | lib/CodeGen/SelectionDAG/TargetLowering.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/CodeGen/SelectionDAG/TargetLowering.cpp b/lib/CodeGen/SelectionDAG/TargetLowering.cpp index eadfa1fbb2..2be31c8260 100644 --- a/lib/CodeGen/SelectionDAG/TargetLowering.cpp +++ b/lib/CodeGen/SelectionDAG/TargetLowering.cpp @@ -364,6 +364,13 @@ unsigned TargetLowering::getVectorTypeBreakdown(MVT::ValueType VT, unsigned NumVectorRegs = 1; + // FIXME: We don't support non-power-of-2-sized vectors for now. Ideally we + // could break down into LHS/RHS like LegalizeDAG does. + if (!isPowerOf2_32(NumElts)) { + NumVectorRegs = NumElts; + NumElts = 1; + } + // Divide the input until we get to a supported size. This will always // end with a scalar if the target doesn't support vectors. while (NumElts > 1 && |