/*
 * stpcpy - copy a string returning pointer to end.
 *
 * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
 * See https://llvm.org/LICENSE.txt for license information.
 * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 */

#define BUILD_STPCPY 1

#include "strcpy-sve.S"
