[all-commits] [llvm/llvm-project] 6e6f9a: [AArch64][SVE] Improve sve.convert.to.svbool lowering
Peter Waller via All-commits
all-commits at lists.llvm.org
Wed May 12 02:58:09 PDT 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 6e6f9a636b1917f366821fb0a5c37cde19634c7a
https://github.com/llvm/llvm-project/commit/6e6f9a636b1917f366821fb0a5c37cde19634c7a
Author: Peter Waller <peter.waller at arm.com>
Date: 2021-05-12 (Wed, 12 May 2021)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/test/CodeGen/AArch64/sve-intrinsics-reinterpret.ll
Log Message:
-----------
[AArch64][SVE] Improve sve.convert.to.svbool lowering
The sve.convert.to.svbool lowering has the effect of widening a logical
<M x i1> vector representing lanes into a physical <16 x i1> vector
representing bits in a predicate register.
In general, if converting to svbool, the contents of lanes in the
physical register might not be known. For sve.convert.to.svbool the new
lanes are specified to be zeroed, requiring 'and' instructions to mask
off the new lanes. For lanes coming from a ptrue or a comparison,
however, they are known to be zero.
CodeGen Before:
ptrue p0.s, vl16
ptrue p1.s
ptrue p2.b
and p0.b, p2/z, p0.b, p1.b
ret
After:
ptrue p0.s, vl16
ret
Differential Revision: https://reviews.llvm.org/D101544
More information about the All-commits
mailing list