Displaying 2 results from an estimated 2 matches for "isminvalue".
Did you mean:
ismaxvalue
2014 Jul 01
2
[LLVMdev] Probable error in InstCombine
I've found what appears to be a bug in instcombine. Specifically, the transformation of -(X/C) to X/(-C) is invalid if C == INT_MIN.
Specifically, if I have
> define i32 @foo(i32 %x) #0 {
> entry:
> %div = sdiv i32 %x, -2147483648
> %sub = sub nsw i32 0, %div
> ret i32 %sub
> }
then opt -instcombine will produce
> define i32 @foo(i32 %x) #0 {
> entry:
> %sub
2008 Jun 05
0
[LLVMdev] A question about CBackend.cpp
...y)
943 Out << CI->getZExtValue() << 'u';
944 else if (Ty->getPrimitiveSizeInBits() > 32)
945 Out << CI->getZExtValue() << "ull";
946 else {
947 Out << "((";
948 printSimpleType(Out, Ty, false) << ')';
949 if (CI->isMinValue(true))
950 Out << CI->getZExtValue() << 'u';
951 else
952 Out << CI->getSExtValue();
953 Out << ')';
954 }
955 return;
956 }
In line 946 to line 954, the "else" branch is for bitwidth from 2 to 31,
the question is why only for CI is MinValue...