diff options
author | Sanjay Patel <spatel@rotateright.com> | 2020-07-03 15:34:55 -0400 |
---|---|---|
committer | Sanjay Patel <spatel@rotateright.com> | 2020-07-03 17:28:40 -0400 |
commit | 7fd8af1de052e5bb0e07adba1d2c9e58d1a8f6a4 (patch) | |
tree | 628dd4d6d26f9192957b030a49112bc46e64a08d /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | 5504d8b04a572dca9aec9eb21792958700f550c8 (diff) | |
download | llvm-7fd8af1de052e5bb0e07adba1d2c9e58d1a8f6a4.zip llvm-7fd8af1de052e5bb0e07adba1d2c9e58d1a8f6a4.tar.gz llvm-7fd8af1de052e5bb0e07adba1d2c9e58d1a8f6a4.tar.bz2 |
[InstCombine] fold mul of sext bools to 'and'
Alive2:
define i32 @src(i1 %x, i1 %y) {
%0:
%zx = sext i1 %x to i32
%zy = sext i1 %y to i32
%r = mul i32 %zx, %zy
ret i32 %r
}
=>
define i32 @tgt(i1 %x, i1 %y) {
%0:
%a = and i1 %x, %y
%r = zext i1 %a to i32
ret i32 %r
}
Transformation seems to be correct!
https://alive2.llvm.org/ce/z/gaPQxA
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions