Multiplication of two n-bit numbers A and B can be understood as a sum of shifts:

```
 (A << i1) + (A << i2) + ... 

```

where i1, i2, ... are numbers of bits that are set to 1 in B.

Now lets replace PLUS with OR to get new operation I actually need:

```
 (A << i1) | (A << i2) | ... 

```

This operation is quite similar to regular multiplication for which there exists many faster algorithms (Schönhage-Strassen for example).
Is a similar algorithm for operation I presented here?

The size of the numbers is 6000 bits. 

**edit:**
For some reason I have no link/button to post comments (any idea why?) so I will edit my question insead.
I indeed search for faster than O(n^2) algorithm for the operation defined above.
And yes, I am aware that it is not ordinary multiplication.