aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimple-array-bounds.h
diff options
context:
space:
mode:
authorTamar Christina <tamar.christina@arm.com>2021-07-26 10:23:21 +0100
committerTamar Christina <tamar.christina@arm.com>2021-07-26 10:23:21 +0100
commit1ab2270036dc0f2a13442ce682267bc7433ffb34 (patch)
tree4ad12bccc165ec641db1d0c97d99193450fec9ad /gcc/gimple-array-bounds.h
parent2050ac1a547eebe7de4af98b57429a934e75fff4 (diff)
downloadgcc-1ab2270036dc0f2a13442ce682267bc7433ffb34.zip
gcc-1ab2270036dc0f2a13442ce682267bc7433ffb34.tar.gz
gcc-1ab2270036dc0f2a13442ce682267bc7433ffb34.tar.bz2
AArch64: correct dot-product RTL patterns for aarch64.
The previous fix for this problem was wrong due to a subtle difference between where NEON expects the RMW values and where intrinsics expects them. The insn pattern is modeled after the intrinsics and so needs an expand for the vectorizer optab to switch the RTL. However operand[3] is not expected to be written to so the current pattern is bogus. Instead I rewrite the RTL to be in canonical ordering and merge them. gcc/ChangeLog: * config/aarch64/aarch64-simd-builtins.def (sdot, udot): Rename to.. (sdot_prod, udot_prod): ... This. * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): Merged into... (<sur>dot_prod<vsi2qi>): ... this. (aarch64_<sur>dot_lane<vsi2qi>, aarch64_<sur>dot_laneq<vsi2qi>): Change operands order. (<sur>sadv16qi): Use new operands order. * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32): Use new RTL ordering.
Diffstat (limited to 'gcc/gimple-array-bounds.h')
0 files changed, 0 insertions, 0 deletions