[all-commits] [llvm/llvm-project] ffb109: [AArch64][SVE] Support logical operation BIC with ...
Allen via All-commits
all-commits at lists.llvm.org
Thu Nov 10 17:16:50 PST 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: ffb109b6852d248c9d2e3202477dccf20aac7151
https://github.com/llvm/llvm-project/commit/ffb109b6852d248c9d2e3202477dccf20aac7151
Author: zhongyunde <zhongyunde at huawei.com>
Date: 2022-11-11 (Fri, 11 Nov 2022)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
M llvm/test/CodeGen/AArch64/sve-intrinsics-int-arith-merging.ll
A llvm/test/CodeGen/AArch64/sve-intrinsics-int-arith-merging.mir
Log Message:
-----------
[AArch64][SVE] Support logical operation BIC with DestructiveBinary patterns
Logical operation BIC with DestructiveBinary patterns is temporarily removed as
causes an assert (commit 3c382ed71f15), so try to fix that.
The most significant being that for pseudo instructions that do not have real instructions (including movpfx'd ones) that cover all combinations of register allocation, their expansion will be broken. This is the main reason the zeroing is an experimental feature because it has known bugs.
So we add an extra LSL for movprfx expand BIC_ZPZZ_ZERO A, P, A, A when necessary.
movprfx z0.s, p0/z, z0.s
lsl z0.b, p0/m, z0.b, #0
bic z0.s, p0/m, z0.s, z0.s
Depends on D88595
More information about the All-commits
mailing list