[PATCH] D48128: [ARM] Parallel DSP IR Pass
Sjoerd Meijer via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Jun 13 07:46:44 PDT 2018
SjoerdMeijer created this revision.
SjoerdMeijer added reviewers: samparker, eli.friedman, rengolin, t.p.northover, john.brawn.
Herald added subscribers: chrib, kristof.beyls, mgorny, mehdi_amini.
Herald added a reviewer: javed.absar.
Armv6 introduced instructions to perform 32-bit SIMD operations. The purpose of
this pass is to do some straightforward IR pattern matching to create ACLE DSP
intrinsics, which map on these 32-bit SIMD operations. Because this is based on
simple pattern matching and it is Arm specific, we thought a separate IR pass
that runs late would be a good place to do this rather than e.g. the SLP
vectoriser.
Currently, only the SMLAD instruction gets recognised. This does two
multiplications with 16-bit operands, and stores the result in an accumulator.
Support for more of these DSP instructions will be added later. This triggers
on a matrix-multiply kernel in a popular benchmark.
https://reviews.llvm.org/D48128
Files:
include/llvm/InitializePasses.h
include/llvm/Transforms/Scalar.h
lib/Target/ARM/ARMTargetMachine.cpp
lib/Transforms/IPO/PassManagerBuilder.cpp
lib/Transforms/Scalar/CMakeLists.txt
lib/Transforms/Scalar/ParallelDSP.cpp
lib/Transforms/Scalar/Scalar.cpp
test/Transforms/ParallelDSP/smlad0.ll
test/Transforms/ParallelDSP/smlad1.ll
test/Transforms/ParallelDSP/smlad2.ll
test/Transforms/ParallelDSP/smlad3.ll
test/Transforms/ParallelDSP/smlad4.ll
test/Transforms/ParallelDSP/smlad5.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D48128.151165.patch
Type: text/x-patch
Size: 35817 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180613/44d122ef/attachment-0001.bin>
More information about the llvm-commits
mailing list