[LLVMdev] How doesn't llvm generate IR for logical negate operation

Bruce Hoult bruce at hoult.org
Fri Apr 10 17:22:52 PDT 2015


LLVM doesn't have a "logical neg" (or "not") operator. That's a C thing. Do
a compare against 0 to create an i1 result, then zero extend the i1 to the
size of integer result you want.


On Sat, Apr 11, 2015 at 12:07 PM, zhi chen <zchenhn at gmail.com> wrote:

> How can I generate LLVM IR for both logical NEG (!)? For example, if I
> have Int32Ty a,
>
> For the bitwise NEG(~):
>
> c = ~a ;
>
> I can use the following API from LLVM:
>
> BinaryOperator *neg = BinaryOperator::CreateNeg(nbits, "bitwiseNEG", insertBefore);
>
> How, if I want to generate logical NEG:
>
> c = !a;
>
> what should I do for this?
>
> Thanks
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150411/a81a72db/attachment.html>


More information about the llvm-dev mailing list