[PATCH] CodeGenPrepare: Avoid and/or i1 in select conditions.
Matthias Braun
matze at braunis.de
Fri Feb 13 13:34:49 PST 2015
Submit again (last time the patch/phabricator version got mixed up...):
This transforms
select(N0&N1, X, Y) => select(N0, select(N1, X, Y), Y)
select(N0|N1, X, Y) => select(N0, X, select(N1, X, Y))
for targets where performing and/or on i1 results implies using an
integer register for a compare result.
REPOSITORY
rL LLVM
http://reviews.llvm.org/D7622
Files:
include/llvm/Target/TargetLowering.h
lib/CodeGen/CodeGenPrepare.cpp
lib/Target/PowerPC/PPCISelLowering.h
test/CodeGen/R600/or.ll
test/CodeGen/X86/jump_sign.ll
test/CodeGen/X86/zext-sext.ll
test/Transforms/CodeGenPrepare/AArch64/select_and_or.ll
test/Transforms/CodeGenPrepare/PowerPC/lit.local.cfg
test/Transforms/CodeGenPrepare/PowerPC/select_and_or.ll
test/Transforms/CodeGenPrepare/X86/select_and_or.ll
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D7622.19927.patch
Type: text/x-patch
Size: 14137 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150213/450082da/attachment.bin>
More information about the llvm-commits
mailing list