diff options
author | Sanjay Patel <spatel@rotateright.com> | 2018-06-26 16:30:00 +0000 |
---|---|---|
committer | Sanjay Patel <spatel@rotateright.com> | 2018-06-26 16:30:00 +0000 |
commit | 3575f0c0b3787b97084c0e25c6d8fcb31e99ea62 (patch) | |
tree | 0913b91f85da0cab8f30d121bb0b09412e4f7b68 /clang/lib/Driver/Compilation.cpp | |
parent | bbfc18b5b5a599cc3c4b341063d898a3f9ecf2f8 (diff) | |
download | bcm5719-llvm-3575f0c0b3787b97084c0e25c6d8fcb31e99ea62.tar.gz bcm5719-llvm-3575f0c0b3787b97084c0e25c6d8fcb31e99ea62.zip |
[InstCombine] fold urem with sext bool divisor
Similar to other patches in this series:
https://reviews.llvm.org/rL335512
https://reviews.llvm.org/rL335527
https://reviews.llvm.org/rL335597
https://reviews.llvm.org/rL335616
...this is filling a gap in analysis that is exposed by an unrelated select-of-constants transform.
I didn't see a way to unify the sext cases because each div/rem opcode results in a different fold.
Note that in this case, the backend might want to convert the select into math:
Name: sext urem
%e = sext i1 %x to i32
%r = urem i32 %y, %e
=>
%c = icmp eq i32 %y, -1
%z = zext i1 %c to i32
%r = add i32 %z, %y
llvm-svn: 335622
Diffstat (limited to 'clang/lib/Driver/Compilation.cpp')
0 files changed, 0 insertions, 0 deletions