[llvm-dev] Signed or unsigned EQ/NEQ
Nikodemus Siivola via llvm-dev
llvm-dev at lists.llvm.org
Sat Nov 18 03:06:18 PST 2017
Can you figure out the induction variable range?
If it is within [0, signed-max], then both signed and unsigned operations
produce the same result, no?
On Sat, Nov 18, 2017 at 12:22 PM, David Chisnall via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> On 17 Nov 2017, at 21:11, Dounia Khaldi via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
> > The problem is that CmpInst::ICMP_EQ and CmpInst::ICMP_NE are neither
> signed nor unsigned in LLVM. Also, I did not find a way to find out if the
> integer operands of the CmpInst are signed or unsigned. Apparently, LLVM
> does not distinguish in its type system between signed and unsigned
> variables. So, I am not able to generate the appropriate signed or unsigned
> ICMP_(S|U)LT or ICMP_(S|U)GT.
> In what way would you expect a signed and unsigned integer to differ in
> equality comparison? Two integers are equal if they have the same bit
> pattern, they are not equal if they do not. If you want help in
> constructing a signed and unsigned notion of equality then you’ll first
> have to define what you want it to mean, or you are unlikely to find anyone
> able to help.
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev