cgOp (LMkVec ety c) xs | c == length xs = do
  nxs <- mapM (unbox (FArith (ATInt (ITFixed ety)))) xs
  vec <- foldM (\v (e, i) -> inst $ InsertElement v e (ConstantOperand (C.Int 32 i)) [])
               (ConstantOperand $ C.Vector (replicate c (C.Undef (IntegerType . fromIntegral $ nativeTyWidth ety))))
               (zip nxs [0..])
  box (FArith (ATInt (ITVec ety c))) vec
cgOp (LMkVec ety c) xs | c == length xs = do
  nxs <- mapM (unbox (FArith (ATInt (ITFixed ety)))) xs
  vec <- foldM (\v (e, i) -> inst $ InsertElement v e (ConstantOperand (C.Int 32 i)) [])
               (ConstantOperand $ C.Vector (replicate c (C.Undef (IntegerType . fromIntegral $ nativeTyWidth ety))))
               (zip nxs [0..])
  box (FArith (ATInt (ITVec ety c))) vec
cgOp (LMkVec ety c) xs | c == length xs = do
  nxs <- mapM (unbox (FArith (ATInt (ITFixed ety)))) xs
  vec <- foldM (\v (e, i) -> inst $ InsertElement v e (ConstantOperand (C.Int 32 i)) [])
               (ConstantOperand $ C.Vector (replicate c (C.Undef (IntegerType . fromIntegral $ nativeTyWidth ety))))
               (zip nxs [0..])
  box (FArith (ATInt (ITVec ety c))) vec