mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-14 16:33:28 +00:00
disable this instcombine xform, it miscompiles:
define i32 @main() { entry: %z = alloca i32 ; <i32*> [#uses=2] store i32 0, i32* %z %tmp = load i32* %z ; <i32> [#uses=1] %sub = sub i32 %tmp, 1 ; <i32> [#uses=1] %cmp = icmp ult i32 %sub, 0 ; <i1> [#uses=1] %retval = select i1 %cmp, i32 1, i32 0 ; <i32> [#uses=1] ret i32 %retval } into ret 1, instead of ret 0. Christopher, please investigate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45383 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
166a268656
commit
c48b138869
@ -4835,9 +4835,11 @@ Instruction *InstCombiner::visitICmpInst(ICmpInst &I) {
|
||||
if (ConstantInt *CI = dyn_cast<ConstantInt>(Op1)) {
|
||||
Value *A, *B;
|
||||
|
||||
#if 0
|
||||
// (icmp cond (sub A B) 0) -> (icmp cond A B)
|
||||
if (CI->isNullValue() && match(Op0, m_Sub(m_Value(A), m_Value(B))))
|
||||
return new ICmpInst(I.getPredicate(), A, B);
|
||||
#endif
|
||||
|
||||
switch (I.getPredicate()) {
|
||||
default: break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user