From 9a2c1d3c46e6f24f978513244daad5c9b94e4556 Mon Sep 17 00:00:00 2001 From: Duncan Sands Date: Mon, 20 Oct 2008 16:24:25 +0000 Subject: [PATCH] Teach getTypeToTransformTo to return something sensible for vectors being scalarized. Note that this method can't return anything very sensible when splitting non-power-of-two vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57839 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Target/TargetLowering.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/include/llvm/Target/TargetLowering.h b/include/llvm/Target/TargetLowering.h index 85e90af5adf..2884ab72040 100644 --- a/include/llvm/Target/TargetLowering.h +++ b/include/llvm/Target/TargetLowering.h @@ -209,10 +209,11 @@ public: return NVT; } - if (VT.isVector()) - return MVT::getVectorVT(VT.getVectorElementType(), - VT.getVectorNumElements() / 2); - if (VT.isInteger()) { + if (VT.isVector()) { + unsigned NumElts = VT.getVectorNumElements(); + MVT EltVT = VT.getVectorElementType(); + return (NumElts == 1) ? EltVT : MVT::getVectorVT(EltVT, NumElts / 2); + } else if (VT.isInteger()) { MVT NVT = VT.getRoundIntegerType(); if (NVT == VT) // Size is a power of two - expand to half the size. -- 2.34.1