getelementptr confusion

Hi,
The original scalar GEP:

%scevgep = getelementptr i16, i16* %A, i32 %conv12

After adding bitcast vector it:

<1 x i16>%scevgep = getelementptr <1 x i16>, i16 %A, <1 x i32> %conv12

I want to scalar them back for gelementptr address calculation, then vector the lowered ISDNode again.

void SelectionDAGBuilder::visitGetElementPtr(const User &I) only supply const interface which make this hack very hard.

Any suggestion?