Index: llvm/lib/Target/X86/X86TargetTransformInfo.cpp =================================================================== --- llvm/lib/Target/X86/X86TargetTransformInfo.cpp +++ llvm/lib/Target/X86/X86TargetTransformInfo.cpp @@ -118,7 +118,8 @@ unsigned X86TTIImpl::getNumberOfRegisters(unsigned ClassID) const { bool Vector = (ClassID == 1); - if (Vector && !ST->hasSSE1()) + // SSE2 is required for integer vectors limiting usefulness with SSE1. + if (Vector && !ST->hasSSE2()) return 0; if (ST->is64Bit()) { @@ -136,7 +137,8 @@ return 512; if (ST->hasAVX() && PreferVectorWidth >= 256) return 256; - if (ST->hasSSE1() && PreferVectorWidth >= 128) + // SSE2 is required for integer vectors limiting usefulness of SSE1. + if (ST->hasSSE2() && PreferVectorWidth >= 128) return 128; return 0; }