Integer multiplication x * y can be trivially done in O(k): k = logâ‚‚(min(x, y)). This is because we can do addition in constant time, adding all bits in parallel.
By combining many more adding units, we can do (fixed-size) multiplication in constant time, too: https://en.wikipedia.org/wiki/Dadda_multiplier