Article View: comp.std.c
Article #5142Re: the logical xor operator!
From: John F. Haugh II
Date: Sun, 26 Jun 1988 15:29
Date: Sun, 26 Jun 1988 15:29
40 lines
2377 bytes
2377 bytes
In article <1310@ark.cs.vu.nl> maart@cs.vu.nl (Maarten Litmaath) writes:
>Of course the way to come around the deficiency is:
>
> if (!(expr1) != !(expr2)) {
> ...
> }
>
>but this only works if !0 always evaluates to the same value (viz. 1), that is,
>the optimizer is not allowed to f*ck around with the comparison.
>!0 is indeed a constant, isn't it?
>--
>I'd rather live in Russia |Maarten Litmaath @ Free U Amsterdam:
> than in South-Africa... |maart@cs.vu.nl, mcvax!botter!ark!maart
[ hey, chris, here is topic #2 for your posting ]
which, as this discussion went a few months ago, is exactly the case. the
code you've writen above, modulo any blindness on my part, should work perfect
as an exclusive-or function. remember, exclusive-or is the not-equivalant
operator, it returns true when the two operands are not boolean equivalant.
the implied comparision against zero is performed automagically in the case
of || and &&.
as far as the optimizer is concerned, it should still be able to perform
any optimizations which would be allowed for any other boolean operators,
except you can't short circuit != or == as you can && and ||. in particular,
i believe (a == 0)^(b == 0) most likely can't be as well optimized as
(a == 0)!=(b == 0). i can't prove this to be true, but i very well suspect
it may be.
- john.
ps - your .signature is thought provoking. i can't decide whether i'd
rather live in a large communist country which oppresses blacks
or a small capitalist country which oppresses blacks. hard choice.
--
John F. Haugh II +--------- Cute Chocolate Quote ---------
HASA, Division "S" | "USENET should not be confused with
UUCP: killer!rpp386!jfh | something that matters, like CHOCOLATE"
DOMAIN: jfh@rpp386.uucp | -- with my apologizes
Technical Details
Message-ID:
<3254@rpp386.UUCP>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!mailrus!ames!killer!vector!rpp386!jfhReferences:
<haddock.4604> <1719@ogcvax.ogc.edu> <1309@ark.cs.vu.nl> <1310@ark.cs.vu.nl>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!mailrus!ames!killer!vector!rpp386!jfh From: jfh@rpp386.UUCP (John F. Haugh II) Newsgroups: comp.std.c Subject: Re: the logical xor operator! Message-ID: <3254@rpp386.UUCP> Date: 26 Jun 88 15:29:06 GMT References: <haddock.4604> <1719@ogcvax.ogc.edu> <1309@ark.cs.vu.nl> <1310@ark.cs.vu.nl> Reply-To: jfh@rpp386.UUCP (The Beach Bum) Organization: Big "D" Home for Wayward Hackers Lines: 40