how to use gather intrinsic

Hi all,

I wanted to load a value twice at the same time. I found that gather intrinsic is able to do this. The following is what I can do in my mind:

  1. get the loading address
  2. Shuffle it to make a <2xtype*> value
  3. use gather intrinsic to load a <2xtype> value

however, I am not sure how to use the gather intrinsic. Do I have to check the type first and use then different version of it, e.g. llvm.masked.gather.v4f32, llvm.masked.gather.v2f64, etc?
Or there is a more general way to implement it? Does anyone have any expertise on it? Any help would be appreciated.