1. A computer implemented method comprising: copying, from one or more registers, a set of indices and a corresponding set of mask elements to an index array; generating a set of addresses from the set of indices in the index array for at least each corresponding mask element having a first value; accessing an address from the set of addresses to load a corresponding data element if a corresponding mask element has said first value; writing the corresponding data element at an in-register position in a destination vector register according to a respective in-register position an index, from the set of indices, corresponding to the accessed address from the set of addresses; and changing the values of corresponding mask elements from the first value to a second value responsive to completion of their respective loads.