aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2020-07-09 10:41:03 -0700
committerCraig Topper <craig.topper@intel.com>2020-07-09 10:51:29 -0700
commit918e6531863187d65895fd68bbc622369b3d79f3 (patch)
tree5f3da60483698cf1d308783ac0577713f5e5044f /llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
parent8769611f0af2598177d8d03ad6dbbe064210bfed (diff)
downloadllvm-918e6531863187d65895fd68bbc622369b3d79f3.zip
llvm-918e6531863187d65895fd68bbc622369b3d79f3.tar.gz
llvm-918e6531863187d65895fd68bbc622369b3d79f3.tar.bz2
[X86] Immediately call LowerShift from lowerBuildVectorToBitOp.
If we don't immediately lower the vector shift, the splat constant vector we created may get turned into a constant pool load before we get around to lowering the shift. This makes it a lot more difficult to create a shift by constant. Sometimes we fail to see through the constant pool at all and end up trying to lower as if it was a variable shift. This requires custom handling and may create an unsupported vselect on pre-sse-4.1 targets. Since we're after LegalizeVectorOps we are unable to legalize the unsupported vselect as that code is in LegalizeVectorOps rather than LegalizeDAG. So calling LowerShift immediately ensures that we get see the splat constant. Fixes PR46527. Differential Revision: https://reviews.llvm.org/D83455
Diffstat (limited to 'llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp')
0 files changed, 0 insertions, 0 deletions