diff options
| author | Craig Topper <craig.topper@intel.com> | 2019-04-10 21:42:08 +0000 |
|---|---|---|
| committer | Craig Topper <craig.topper@intel.com> | 2019-04-10 21:42:08 +0000 |
| commit | 61f31cbcb2c22f9954a24c700db3038eb4d61ee3 (patch) | |
| tree | d3fc355161a7a3044faaa60e9495f05a29a6e2d3 /llvm/lib/CodeGen | |
| parent | 4a32ce39b79da1e8e3711807278524ee23933927 (diff) | |
| download | bcm5719-llvm-61f31cbcb2c22f9954a24c700db3038eb4d61ee3.tar.gz bcm5719-llvm-61f31cbcb2c22f9954a24c700db3038eb4d61ee3.zip | |
[X86] Teach foldMaskedShiftToScaledMask to look through an any_extend from i32 to i64 between the and & shl
foldMaskedShiftToScaledMask tries to reorder and & shl to enable the shl to fold into an LEA. But if there is an any_extend between them it doesn't work.
This patch modifies the code to look through any_extend from i32 to i64 when the and mask only uses bits that weren't from the extended part.
This will prevent a regression from D60358 caused by 64-bit SHL being narrowed to 32-bits when their upper bits aren't demanded.
Differential Revision: https://reviews.llvm.org/D60532
llvm-svn: 358139
Diffstat (limited to 'llvm/lib/CodeGen')
0 files changed, 0 insertions, 0 deletions

