Given mul(zext(a), b), we can convert to a umull so long as we know that the top bits of b are zero. This uses MaskedValueIsZero to detect that case for NEON UMULL patterns.
Details
Details
Diff Detail
Diff Detail
| Paths 
 |  Differential  D140287  
[AArch64] Combine to UMULL if top bits are known zero ClosedPublic Authored by dmgreen on Dec 19 2022, 2:58 AM. 
Details Summary Given mul(zext(a), b), we can convert to a umull so long as we know that the top bits of b are zero. This uses MaskedValueIsZero to detect that case for NEON UMULL patterns. 
Diff Detail Event TimelineThis revision is now accepted and ready to land.Dec 19 2022, 3:21 AM This revision was landed with ongoing or failed builds.Dec 20 2022, 5:50 AM Closed by commit rG3c0c24e0c1d3: [AArch64] Combine to UMULL if top bits are known zero (authored by dmgreen).  ·  Explain Why This revision was automatically updated to reflect the committed changes. 
Revision Contents 
 
Diff 483888 llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
 
 llvm/test/CodeGen/AArch64/aarch64-dup-ext.ll
 llvm/test/CodeGen/AArch64/aarch64-smull.ll
 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"extend" or "extends"?