From: Craig Topper Date: Fri, 18 Jan 2013 08:41:28 +0000 (+0000) Subject: Calculate vector element size more directly for VINSERTF128/VEXTRACTF128 immediate... X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=5141d97d3ee9afca936bc870e67c53e1ed05f790;p=oota-llvm.git Calculate vector element size more directly for VINSERTF128/VEXTRACTF128 immediate handling. Also use MVT since this only called on legal types during pattern matching. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172797 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/X86/X86ISelLowering.cpp b/lib/Target/X86/X86ISelLowering.cpp index 4d982a40216..2b6ff3602a4 100644 --- a/lib/Target/X86/X86ISelLowering.cpp +++ b/lib/Target/X86/X86ISelLowering.cpp @@ -4011,9 +4011,8 @@ bool X86::isVEXTRACTF128Index(SDNode *N) { uint64_t Index = cast(N->getOperand(1).getNode())->getZExtValue(); - unsigned VL = N->getValueType(0).getVectorNumElements(); - unsigned VBits = N->getValueType(0).getSizeInBits(); - unsigned ElSize = VBits / VL; + MVT VT = N->getValueType(0).getSimpleVT(); + unsigned ElSize = VT.getVectorElementType().getSizeInBits(); bool Result = (Index * ElSize) % 128 == 0; return Result; @@ -4030,9 +4029,8 @@ bool X86::isVINSERTF128Index(SDNode *N) { uint64_t Index = cast(N->getOperand(2).getNode())->getZExtValue(); - unsigned VL = N->getValueType(0).getVectorNumElements(); - unsigned VBits = N->getValueType(0).getSizeInBits(); - unsigned ElSize = VBits / VL; + MVT VT = N->getValueType(0).getSimpleVT(); + unsigned ElSize = VT.getVectorElementType().getSizeInBits(); bool Result = (Index * ElSize) % 128 == 0; return Result;