diff options
| author | Eli Friedman <eli.friedman@gmail.com> | 2011-07-26 20:38:49 +0000 |
|---|---|---|
| committer | Eli Friedman <eli.friedman@gmail.com> | 2011-07-26 20:38:49 +0000 |
| commit | 06b8b571b2f9e700da569f886f925178a12079e1 (patch) | |
| tree | 11eec241d2dc58dfc446cab9b2c146b654163052 /llvm | |
| parent | 5a1d214c4a74a0463f79e97fba34ab6215bf40ea (diff) | |
| download | bcm5719-llvm-06b8b571b2f9e700da569f886f925178a12079e1.tar.gz bcm5719-llvm-06b8b571b2f9e700da569f886f925178a12079e1.zip | |
Add obvious missing case to switch. PR10497.
llvm-svn: 136130
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp | 3 | ||||
| -rw-r--r-- | llvm/test/CodeGen/X86/split-vector-bitcast.ll | 12 |
2 files changed, 13 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp b/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp index c8454bf28ee..8747d276e78 100644 --- a/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp @@ -524,12 +524,11 @@ void DAGTypeLegalizer::SplitVecRes_BITCAST(SDNode *N, SDValue &Lo, // Handle some special cases efficiently. switch (getTypeAction(InVT)) { - default: - assert(false && "Unknown type action!"); case TargetLowering::TypeLegal: case TargetLowering::TypePromoteInteger: case TargetLowering::TypeSoftenFloat: case TargetLowering::TypeScalarizeVector: + case TargetLowering::TypeWidenVector: break; case TargetLowering::TypeExpandInteger: case TargetLowering::TypeExpandFloat: diff --git a/llvm/test/CodeGen/X86/split-vector-bitcast.ll b/llvm/test/CodeGen/X86/split-vector-bitcast.ll new file mode 100644 index 00000000000..55ba07dc6c8 --- /dev/null +++ b/llvm/test/CodeGen/X86/split-vector-bitcast.ll @@ -0,0 +1,12 @@ +; RUN: llc < %s -march=x86 -mattr=-sse2,+sse | grep addps + +; PR10497 +; (This is primarily checking that this construct doesn't crash.) +define void @a(<2 x float>* %a, <2 x i32>* %b) { + %cc = load <2 x float>* %a + %c = fadd <2 x float> %cc, %cc + %dd = bitcast <2 x float> %c to <2 x i32> + %d = add <2 x i32> %dd, %dd + store <2 x i32> %d, <2 x i32>* %b + ret void +} |

