             T* s_ptr = static_cast<T*>(internal::GetRawOffsetData(s));
             T* u_ptr = static_cast<T*>(internal::GetRawOffsetData(u));
             T* vt_ptr = static_cast<T*>(internal::GetRawOffsetData(vt));
-            if (!compute_uv) {
-                u_ptr = nullptr;
-                vt_ptr = nullptr;
-            }
 
             int *devInfo;
             CheckCudaError(cudaMalloc(&devInfo, sizeof(int)));

                u = Empty(Shape({mn, m}), dtype, device);
                vt = Empty(Shape({mn, n}), dtype, device);
            }
        }

        Array s = Empty(Shape({mn}), dtype, device);

                throw ChainerxError{"Unsuccessfull gesvd (SVD) execution. Info = ", devInfo_h};
            }

            if (trans_flag) {
                return std::make_tuple(std::move(u.Transpose()), std::move(s), std::move(vt.Transpose()));
            } else {
                return std::make_tuple(std::move(vt), std::move(s), std::move(u));
            }
        };

