As per the c++ when the user-declare move-constructor compiler deletes the copy constructor.
so modified the std::reduce(begin, end, init) so it does not require copy constructor and behavior matches with
std::reduce(begin, end, init,op).
It fixes this https://bugs.llvm.org/show_bug.cgi?id=43013