[X86][ArgumentPromotion] Allow Argument Promotion if caller and callee disagree on...
authorCraig Topper <craig.topper@intel.com>
Fri, 24 Apr 2020 22:46:31 +0000 (15:46 -0700)
committerCraig Topper <craig.topper@intel.com>
Fri, 24 Apr 2020 22:47:02 +0000 (15:47 -0700)
commite4a9190ad7b20a12476e3cccc30e842c0a93f1bb
tree55eab71614cb754236b57a1468376d4d48c06e5b
parentfef4ddf2f4d15351f672380f2a20c0a1bfac2234
[X86][ArgumentPromotion] Allow Argument Promotion if caller and callee disagree on 512-bit vectors support if the arguments are scalar.

If one of caller/callee has disabled ZMM registers due to
prefer-vector-width=256, we were previously
disabling argument promotion as the ABI might be incompatible since
one side will split 512-bit vectors in this case.

But if we can see that the types are all scalar this shouldn't be
a problem.

This patch assumes that pointer element type reflects the type that
the argument will be promoted to.

Differential Revision: https://reviews.llvm.org/D78770
llvm/lib/Target/X86/X86TargetTransformInfo.cpp
llvm/test/Transforms/ArgumentPromotion/X86/min-legal-vector-width.ll