diff options
author | Yingwei Zheng <dtcxzyw2333@gmail.com> | 2023-09-11 02:26:47 +0800 |
---|---|---|
committer | Yingwei Zheng <dtcxzyw2333@gmail.com> | 2023-09-11 02:26:47 +0800 |
commit | 32ad45556e9c673d2b6daba4a3b7993ad4e8e9ac (patch) | |
tree | 5e37b439e173e46dacaeeb7cf3f8ac76392d240b /llvm/tools/llvm-objdump/llvm-objdump.cpp | |
parent | fd453e2381d6f3b3db96a6812830472b6c217e7d (diff) | |
download | llvm-32ad45556e9c673d2b6daba4a3b7993ad4e8e9ac.zip llvm-32ad45556e9c673d2b6daba4a3b7993ad4e8e9ac.tar.gz llvm-32ad45556e9c673d2b6daba4a3b7993ad4e8e9ac.tar.bz2 |
[InstCombine] Add test cases from PR62898. NFC.
This patch adds some test cases from https://github.com/llvm/llvm-project/issues/62898.
As nikic noted in the issue, we should start by implementing a generalization of the fold `smin(X, Y) < Z -> X < Z` when `Y > Z` is implied by constant folds/invariants/dom conditions.
```
define i1 @src(i32 %x, i32 %y, i32 %z) {
%cmp = icmp sgt i32 %y, %z
br i1 %cmp, label %if, label %end
if:
%cond = call i32 @llvm.smin.i32(i32 %x, i32 %y)
%tobool = icmp slt i32 %cond, %z
ret i1 %tobool
end:
ret i1 false
}
define i1 @tgt(i32 %x, i32 %y, i32 %z) {
%cmp = icmp sgt i32 %y, %z
br i1 %cmp, label %if, label %end
if:
%tobool = icmp slt i32 %x, %z
ret i1 %tobool
end:
ret i1 false
}
declare i32 @llvm.smin.i32(i32, i32)
```
Alive2: https://alive2.llvm.org/ce/z/dK9vXz
This patch also adds some generalized test cases like the above.
Reviewed By: goldstein.w.n
Differential Revision: https://reviews.llvm.org/D156227
Diffstat (limited to 'llvm/tools/llvm-objdump/llvm-objdump.cpp')
0 files changed, 0 insertions, 0 deletions