[PATCH] Teach builtin clz, ctz, and popcount to be const
richard at metafoo.co.uk
Tue Jun 11 12:26:57 PDT 2013
On Tue, Jun 11, 2013 at 8:01 AM, Justin Bogner <mail at justinbogner.com>wrote:
> Joerg Sonnenberg wrote:
> > On Tue, Jun 11, 2013 at 12:18:55AM -0600, Justin Bogner wrote:
> >> The clz, ctz, and popcount builtins are trivial to add constant folded
> >> implementations of, and gcc accepts them in const contexts.
> > Can you test the constant folding with
> > char foo[f(x) == val ? 1 : -1];
> > or so?
> Do you mean something like this?
A testcase which is less likely to pass by accident would be better (for
instance, your popcount tests would succeed if the builtin just returned
its argument, and tests with a '1' in the sign bit would be useful).
You should also ensure that __builtin_clz(0) and __builtin_ctz(0) are not
treated as constants.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the cfe-commits