To properly implement __builtin_ffs for SI mode, implement clz and
(for >= z17) ctz for SI mode. Otherwise, gcc falls back to a libcall
which causes problems for Linux kernel code.
Also adjust the C?Z_DEFINED_VALUE_AT_ZERO macros to return 2. Since
the optabs now return exactly the value set by these macros, return
value 2 is more appropriate and leads to better code.