aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorJun Bum Lim <junbuml@codeaurora.org>2015-09-14 16:19:52 +0000
committerJun Bum Lim <junbuml@codeaurora.org>2015-09-14 16:19:52 +0000
commit34b9bd0435a1e8f97bf97e08a2da37d8c01e80ec (patch)
tree5151aba4e563c5cd02743ea5c39d743d184edd63 /clang/lib/CodeGen/CodeGenModule.cpp
parent11282dcac637499e15ae1e58208d895515f3e8bf (diff)
downloadllvm-34b9bd0435a1e8f97bf97e08a2da37d8c01e80ec.zip
llvm-34b9bd0435a1e8f97bf97e08a2da37d8c01e80ec.tar.gz
llvm-34b9bd0435a1e8f97bf97e08a2da37d8c01e80ec.tar.bz2
Improve ISel using across lane min/max reduction
In vectorized integer min/max reduction code, the final "reduce" step is sub-optimal. In AArch64, this change wll combine : %svn0 = vector_shuffle %0, undef<2,3,u,u> %smax0 = smax %0, svn0 %svn3 = vector_shuffle %smax0, undef<1,u,u,u> %sc = setcc %smax0, %svn3, gt %n0 = extract_vector_elt %sc, #0 %n1 = extract_vector_elt %smax0, #0 %n2 = extract_vector_elt $smax0, #1 %result = select %n0, %n1, n2 becomes : %1 = smaxv %0 %result = extract_vector_elt %1, 0 This change extends r246790. llvm-svn: 247575
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions