[PATCH] D109357: [GlobalISel] Add a combine for and(load , mask) -> zextload
Jay Foad via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 8 06:00:13 PDT 2021
foad added inline comments.
================
Comment at: llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp:668
+ Register PtrReg = LoadMI->getPointerReg();
+ unsigned NewSize = std::min((uint64_t)MaskVal.countTrailingOnes(),
+ LoadMI->getMemSizeInBits());
----------------
This looks like it will combine:
```
%1:_(s32) = G_CONSTANT i32 65535
%2:_(s32) = G_SEXTLOAD %0 :: (load (s8))
%3:_(s32) = G_AND %2, %1
```
into:
```
%2:_(s32) = G_ZEXTLOAD %0 :: (load (s8))
```
which would be wrong.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D109357/new/
https://reviews.llvm.org/D109357
More information about the llvm-commits
mailing list