cgOp (LUpdateVec ety c) [v,i,e] = do
  let fty = FArith (ATInt (ITVec ety c))
  nv <- unbox fty v
  ni <- unbox (FArith (ATInt (ITFixed IT32))) i
  ne <- unbox (FArith (ATInt (ITFixed ety))) e
  nv' <- inst $ InsertElement nv ne ni []
  box fty nv'
cgOp (LUpdateVec ety c) [v,i,e] = do
  let fty = FArith (ATInt (ITVec ety c))
  nv <- unbox fty v
  ni <- unbox (FArith (ATInt (ITFixed IT32))) i
  ne <- unbox (FArith (ATInt (ITFixed ety))) e
  nv' <- inst $ InsertElement nv ne ni []
  box fty nv'
cgOp (LUpdateVec ety c) [v,i,e] = do
  let fty = FArith (ATInt (ITVec ety c))
  nv <- unbox fty v
  ni <- unbox (FArith (ATInt (ITFixed IT32))) i
  ne <- unbox (FArith (ATInt (ITFixed ety))) e
  nv' <- inst $ InsertElement nv ne ni []
  box fty nv'