[all-commits] [llvm/llvm-project] 36c76d: [AArch64][SVE] Add a pass for SVE intrinsic optimi...
kmclaughlin-arm via All-commits
all-commits at lists.llvm.org
Tue Apr 14 02:55:18 PDT 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 36c76de6789c2503e800ec37243aa13698c59928
https://github.com/llvm/llvm-project/commit/36c76de6789c2503e800ec37243aa13698c59928
Author: Kerry McLaughlin <kerry.mclaughlin at arm.com>
Date: 2020-04-14 (Tue, 14 Apr 2020)
Changed paths:
M llvm/lib/Target/AArch64/AArch64.h
M llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
M llvm/lib/Target/AArch64/CMakeLists.txt
A llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp
M llvm/test/CodeGen/AArch64/O3-pipeline.ll
A llvm/test/CodeGen/AArch64/sve-intrinsic-opts-ptest.ll
A llvm/test/CodeGen/AArch64/sve-intrinsic-opts-reinterpret.ll
Log Message:
-----------
[AArch64][SVE] Add a pass for SVE intrinsic optimisations
Summary:
Creates the SVEIntrinsicOpts pass. In this patch, the pass tries
to remove unnecessary reinterpret intrinsics which convert to
and from svbool_t (llvm.aarch64.sve.convert.[to|from].svbool)
For example, the reinterprets below are redundant:
%1 = call <vscale x 16 x i1> @llvm.aarch64.sve.convert.to.svbool.nxv4i1(<vscale x 4 x i1> %a)
%2 = call <vscale x 4 x i1> @llvm.aarch64.sve.convert.from.svbool.nxv4i1(<vscale x 16 x i1> %1)
The pass also looks for ptest intrinsics and phi instructions where
the operands are being needlessly converted to and from svbool_t.
Reviewers: sdesmalen, andwar, efriedma, cameron.mcinally, c-rhodes, rengolin
Reviewed By: efriedma
Subscribers: mgorny, tschuett, kristof.beyls, hiraditya, rkruppe, psnobl, danielkiss, cfe-commits, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D76078
More information about the All-commits
mailing list