[X86] Add support for passing 'prefer-vector-width' function attribute into X86Subtar...
authorCraig Topper <craig.topper@intel.com>
Sat, 20 Jan 2018 00:26:08 +0000 (00:26 +0000)
committerCraig Topper <craig.topper@intel.com>
Sat, 20 Jan 2018 00:26:08 +0000 (00:26 +0000)
commit0d797a34d8be0707c4f17e88d7d22004d844fbf4
treee350faaa70f176cdc5da5f9d6826a26d54defdfc
parent2f8af79927c5902900a7ddeef2300ea92a9fcf22
[X86] Add support for passing 'prefer-vector-width' function attribute into X86Subtarget and exposing via X86's getRegisterWidth TTI interface.

This will cause the vectorizers to do some limiting of the vector widths they create. This is not a strict limit. There are reasons I know of that the loop vectorizer will generate larger vectors for.

I've written this in such a way that the interface will only return a properly supported width(0/128/256/512) even if the attribute says something funny like 384 or 10.

This has been split from D41895 with the remainder in a follow up commit.

llvm-svn: 323015
llvm/lib/Target/X86/X86.td
llvm/lib/Target/X86/X86Subtarget.cpp
llvm/lib/Target/X86/X86Subtarget.h
llvm/lib/Target/X86/X86TargetMachine.cpp
llvm/lib/Target/X86/X86TargetTransformInfo.cpp
llvm/test/Transforms/LoopVectorize/X86/avx512.ll