addメンバ関数の引数(x)の所有権を、クラスの中の配列(vec)に移動させたい場合、std::moveをどこで使えばいいかわかりません。

struct A{
 vector<vector<int>> vec;
 void add(vector<int> &&x){
  ここで、std::moveを使ってpush_backに渡すべきか、渡さなくてもよいのか、わかりません。
  1) vec.push_back(std::move(x));
  2) vec.push_back(x);
  どっちが正なのか?・・・
};
〜〜〜〜
vector<int> x;
A a;
a.add(std::move(x));