diff options
author | Sizov Nikita <s.nikita.v@gmail.com> | 2024-04-06 23:41:24 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-06 21:41:24 +0100 |
commit | d38bff460acb4fe3156d90ec739da49344db14ca (patch) | |
tree | 01f6c1b7af6c9396a07be0ad26574fb7a788dd90 /llvm/lib/CodeGen/DFAPacketizer.cpp | |
parent | 4cb110a84f587d3c65b85d79ab6fc8aa5489fb86 (diff) | |
download | llvm-d38bff460acb4fe3156d90ec739da49344db14ca.zip llvm-d38bff460acb4fe3156d90ec739da49344db14ca.tar.gz llvm-d38bff460acb4fe3156d90ec739da49344db14ca.tar.bz2 |
[AArch64] SimplifyDemandedBitsForTargetNode - add AArch64ISD::BICi handling (#76644)
Fold BICi if all destination bits are already known to be zeroes
```llvm
define <8 x i16> @haddu_known(<8 x i8> %a0, <8 x i8> %a1) {
%x0 = zext <8 x i8> %a0 to <8 x i16>
%x1 = zext <8 x i8> %a1 to <8 x i16>
%hadd = call <8 x i16> @llvm.aarch64.neon.uhadd.v8i16(<8 x i16> %x0, <8 x i16> %x1)
%res = and <8 x i16> %hadd, <i16 511, i16 511, i16 511, i16 511,i16 511, i16 511, i16 511, i16 511>
ret <8 x i16> %res
}
declare <8 x i16> @llvm.aarch64.neon.uhadd.v8i16(<8 x i16>, <8 x i16>)
```
```
haddu_known: // @haddu_known
ushll v0.8h, v0.8b, #0
ushll v1.8h, v1.8b, #0
uhadd v0.8h, v0.8h, v1.8h
bic v0.8h, #254, lsl #8 <-- this one will be removed as we know high bits are zero extended
ret
```
Fixes #53881
Fixes #53622
Diffstat (limited to 'llvm/lib/CodeGen/DFAPacketizer.cpp')
0 files changed, 0 insertions, 0 deletions