diff --git a/bin/hipify-perl b/bin/hipify-perl index 8a4afeb6..484d180d 100755 --- a/bin/hipify-perl +++ b/bin/hipify-perl @@ -4543,7 +4543,9 @@ sub simpleSubstitutions { subst("cublasCtrmv_v2_64", "hipblasCtrmv_v2_64", "library"); subst("cublasCtrsm", "hipblasCtrsm_v2", "library"); subst("cublasCtrsmBatched", "hipblasCtrsmBatched_v2", "library"); + subst("cublasCtrsm_64", "hipblasCtrsm_v2_64", "library"); subst("cublasCtrsm_v2", "hipblasCtrsm_v2", "library"); + subst("cublasCtrsm_v2_64", "hipblasCtrsm_v2_64", "library"); subst("cublasCtrsv", "hipblasCtrsv_v2", "library"); subst("cublasCtrsv_64", "hipblasCtrsv_v2_64", "library"); subst("cublasCtrsv_v2", "hipblasCtrsv_v2", "library"); @@ -4693,7 +4695,9 @@ sub simpleSubstitutions { subst("cublasDtrmv_v2_64", "hipblasDtrmv_64", "library"); subst("cublasDtrsm", "hipblasDtrsm", "library"); subst("cublasDtrsmBatched", "hipblasDtrsmBatched", "library"); + subst("cublasDtrsm_64", "hipblasDtrsm_64", "library"); subst("cublasDtrsm_v2", "hipblasDtrsm", "library"); + subst("cublasDtrsm_v2_64", "hipblasDtrsm_64", "library"); subst("cublasDtrsv", "hipblasDtrsv", "library"); subst("cublasDtrsv_64", "hipblasDtrsv_64", "library"); subst("cublasDtrsv_v2", "hipblasDtrsv", "library"); @@ -4940,7 +4944,9 @@ sub simpleSubstitutions { subst("cublasStrmv_v2_64", "hipblasStrmv_64", "library"); subst("cublasStrsm", "hipblasStrsm", "library"); subst("cublasStrsmBatched", "hipblasStrsmBatched", "library"); + subst("cublasStrsm_64", "hipblasStrsm_64", "library"); subst("cublasStrsm_v2", "hipblasStrsm", "library"); + subst("cublasStrsm_v2_64", "hipblasStrsm_64", "library"); subst("cublasStrsv", "hipblasStrsv", "library"); subst("cublasStrsv_64", "hipblasStrsv_64", "library"); subst("cublasStrsv_v2", "hipblasStrsv", "library"); @@ -5112,7 +5118,9 @@ sub simpleSubstitutions { subst("cublasZtrmv_v2_64", "hipblasZtrmv_v2_64", "library"); subst("cublasZtrsm", "hipblasZtrsm_v2", "library"); subst("cublasZtrsmBatched", "hipblasZtrsmBatched_v2", "library"); + subst("cublasZtrsm_64", "hipblasZtrsm_v2_64", "library"); subst("cublasZtrsm_v2", "hipblasZtrsm_v2", "library"); + subst("cublasZtrsm_v2_64", "hipblasZtrsm_v2_64", "library"); subst("cublasZtrsv", "hipblasZtrsv_v2", "library"); subst("cublasZtrsv_64", "hipblasZtrsv_v2_64", "library"); subst("cublasZtrsv_v2", "hipblasZtrsv_v2", "library"); @@ -11645,8 +11653,6 @@ sub warnHipOnlyUnsupportedFunctions { "cudnnAdvInferVersionCheck", "cudnnActivationStruct", "cublasZtrttp", - "cublasZtrsm_v2_64", - "cublasZtrsm_64", "cublasZtrsmBatched_64", "cublasZtpttr", "cublasZmatinvBatched", @@ -11666,8 +11672,6 @@ sub warnHipOnlyUnsupportedFunctions { "cublasSwapEx_64", "cublasSwapEx", "cublasStrttp", - "cublasStrsm_v2_64", - "cublasStrsm_64", "cublasStrsmBatched_64", "cublasStpttr", "cublasSmatinvBatched", @@ -11760,8 +11764,6 @@ sub warnHipOnlyUnsupportedFunctions { "cublasGemmBatchedEx_64", "cublasFree", "cublasDtrttp", - "cublasDtrsm_v2_64", - "cublasDtrsm_64", "cublasDtrsmBatched_64", "cublasDtpttr", "cublasDmatinvBatched", @@ -11769,8 +11771,6 @@ sub warnHipOnlyUnsupportedFunctions { "cublasDgemmGroupedBatched", "cublasDdgmm_64", "cublasCtrttp", - "cublasCtrsm_v2_64", - "cublasCtrsm_64", "cublasCtrsmBatched_64", "cublasCtpttr", "cublasCsyrkEx_64", diff --git a/docs/tables/CUBLAS_API_supported_by_HIP.md b/docs/tables/CUBLAS_API_supported_by_HIP.md index 0076949a..6c300f3b 100644 --- a/docs/tables/CUBLAS_API_supported_by_HIP.md +++ b/docs/tables/CUBLAS_API_supported_by_HIP.md @@ -1569,9 +1569,9 @@ |`cublasCtrmm_v2`| | | | |`hipblasCtrmm_v2`|6.0.0| | | | | |`cublasCtrmm_v2_64`|12.0| | | |`hipblasCtrmm_v2_64`|6.3.0| | | |6.3.0| |`cublasCtrsm`| | | | |`hipblasCtrsm_v2`|6.0.0| | | | | -|`cublasCtrsm_64`|12.0| | | | | | | | | | +|`cublasCtrsm_64`|12.0| | | |`hipblasCtrsm_v2_64`|6.3.0| | | |6.3.0| |`cublasCtrsm_v2`| | | | |`hipblasCtrsm_v2`|6.0.0| | | | | -|`cublasCtrsm_v2_64`|12.0| | | | | | | | | | +|`cublasCtrsm_v2_64`|12.0| | | |`hipblasCtrsm_v2_64`|6.3.0| | | |6.3.0| |`cublasDgemm`| | | | |`hipblasDgemm`|1.8.2| | | | | |`cublasDgemmBatched`| | | | |`hipblasDgemmBatched`|1.8.2| | | | | |`cublasDgemmBatched_64`|12.0| | | |`hipblasDgemmBatched_64`|6.3.0| | | |6.3.0| @@ -1605,9 +1605,9 @@ |`cublasDtrmm_v2`| | | | |`hipblasDtrmm`|3.2.0| |6.0.0| | | |`cublasDtrmm_v2_64`|12.0| | | |`hipblasDtrmm_64`|6.3.0| | | |6.3.0| |`cublasDtrsm`| | | | |`hipblasDtrsm`|1.8.2| | | | | -|`cublasDtrsm_64`|12.0| | | | | | | | | | +|`cublasDtrsm_64`|12.0| | | |`hipblasDtrsm_64`|6.3.0| | | |6.3.0| |`cublasDtrsm_v2`| | | | |`hipblasDtrsm`|1.8.2| | | | | -|`cublasDtrsm_v2_64`|12.0| | | | | | | | | | +|`cublasDtrsm_v2_64`|12.0| | | |`hipblasDtrsm_64`|6.3.0| | | |6.3.0| |`cublasGemmGroupedBatchedEx`|12.5| | | | | | | | | | |`cublasGemmGroupedBatchedEx_64`|12.5| | | | | | | | | | |`cublasHSHgemvBatched`|11.6| | | | | | | | | | @@ -1657,9 +1657,9 @@ |`cublasStrmm_v2`| | | | |`hipblasStrmm`|3.2.0| |6.0.0| | | |`cublasStrmm_v2_64`|12.0| | | |`hipblasStrmm_64`|6.3.0| | | |6.3.0| |`cublasStrsm`| | | | |`hipblasStrsm`|1.8.2| | | | | -|`cublasStrsm_64`|12.0| | | | | | | | | | +|`cublasStrsm_64`|12.0| | | |`hipblasStrsm_64`|6.3.0| | | |6.3.0| |`cublasStrsm_v2`| | | | |`hipblasStrsm`|1.8.2| | | | | -|`cublasStrsm_v2_64`|12.0| | | | | | | | | | +|`cublasStrsm_v2_64`|12.0| | | |`hipblasStrsm_64`|6.3.0| | | |6.3.0| |`cublasTSSgemvBatched`|11.6| | | | | | | | | | |`cublasTSSgemvBatched_64`|12.0| | | | | | | | | | |`cublasTSSgemvStridedBatched`|11.6| | | | | | | | | | @@ -1715,9 +1715,9 @@ |`cublasZtrmm_v2`| | | | |`hipblasZtrmm_v2`|6.0.0| | | | | |`cublasZtrmm_v2_64`|12.0| | | |`hipblasZtrmm_v2_64`|6.3.0| | | |6.3.0| |`cublasZtrsm`| | | | |`hipblasZtrsm_v2`|6.0.0| | | | | -|`cublasZtrsm_64`|12.0| | | | | | | | | | +|`cublasZtrsm_64`|12.0| | | |`hipblasZtrsm_v2_64`|6.3.0| | | |6.3.0| |`cublasZtrsm_v2`| | | | |`hipblasZtrsm_v2`|6.0.0| | | | | -|`cublasZtrsm_v2_64`|12.0| | | | | | | | | | +|`cublasZtrsm_v2_64`|12.0| | | |`hipblasZtrsm_v2_64`|6.3.0| | | |6.3.0| ## **8. BLAS-like Extension** diff --git a/docs/tables/CUBLAS_API_supported_by_HIP_and_ROC.md b/docs/tables/CUBLAS_API_supported_by_HIP_and_ROC.md index 09ee7a09..89d3f9b9 100644 --- a/docs/tables/CUBLAS_API_supported_by_HIP_and_ROC.md +++ b/docs/tables/CUBLAS_API_supported_by_HIP_and_ROC.md @@ -1569,9 +1569,9 @@ |`cublasCtrmm_v2`| | | | |`hipblasCtrmm_v2`|6.0.0| | | | |`rocblas_ctrmm`|3.5.0| |6.0.0| | | |`cublasCtrmm_v2_64`|12.0| | | |`hipblasCtrmm_v2_64`|6.3.0| | | |6.3.0|`rocblas_ctrmm_64`|6.3.0| | | |6.3.0| |`cublasCtrsm`| | | | |`hipblasCtrsm_v2`|6.0.0| | | | |`rocblas_ctrsm`|3.5.0| | | | | -|`cublasCtrsm_64`|12.0| | | | | | | | | |`rocblas_ctrsm_64`|6.2.0| | | | | +|`cublasCtrsm_64`|12.0| | | |`hipblasCtrsm_v2_64`|6.3.0| | | |6.3.0|`rocblas_ctrsm_64`|6.2.0| | | | | |`cublasCtrsm_v2`| | | | |`hipblasCtrsm_v2`|6.0.0| | | | |`rocblas_ctrsm`|3.5.0| | | | | -|`cublasCtrsm_v2_64`|12.0| | | | | | | | | |`rocblas_ctrsm_64`|6.2.0| | | | | +|`cublasCtrsm_v2_64`|12.0| | | |`hipblasCtrsm_v2_64`|6.3.0| | | |6.3.0|`rocblas_ctrsm_64`|6.2.0| | | | | |`cublasDgemm`| | | | |`hipblasDgemm`|1.8.2| | | | |`rocblas_dgemm`|1.5.0| | | | | |`cublasDgemmBatched`| | | | |`hipblasDgemmBatched`|1.8.2| | | | |`rocblas_dgemm_batched`|3.5.0| | | | | |`cublasDgemmBatched_64`|12.0| | | |`hipblasDgemmBatched_64`|6.3.0| | | |6.3.0|`rocblas_dgemm_batched_64`|6.3.0| | | |6.3.0| @@ -1605,9 +1605,9 @@ |`cublasDtrmm_v2`| | | | |`hipblasDtrmm`|3.2.0| |6.0.0| | |`rocblas_dtrmm`|3.5.0| |6.0.0| | | |`cublasDtrmm_v2_64`|12.0| | | |`hipblasDtrmm_64`|6.3.0| | | |6.3.0|`rocblas_dtrmm_64`|6.3.0| | | |6.3.0| |`cublasDtrsm`| | | | |`hipblasDtrsm`|1.8.2| | | | |`rocblas_dtrsm`|1.5.0| | | | | -|`cublasDtrsm_64`|12.0| | | | | | | | | |`rocblas_dtrsm_64`|6.2.0| | | | | +|`cublasDtrsm_64`|12.0| | | |`hipblasDtrsm_64`|6.3.0| | | |6.3.0|`rocblas_dtrsm_64`|6.2.0| | | | | |`cublasDtrsm_v2`| | | | |`hipblasDtrsm`|1.8.2| | | | |`rocblas_dtrsm`|1.5.0| | | | | -|`cublasDtrsm_v2_64`|12.0| | | | | | | | | |`rocblas_dtrsm_64`|6.2.0| | | | | +|`cublasDtrsm_v2_64`|12.0| | | |`hipblasDtrsm_64`|6.3.0| | | |6.3.0|`rocblas_dtrsm_64`|6.2.0| | | | | |`cublasGemmGroupedBatchedEx`|12.5| | | | | | | | | | | | | | | | |`cublasGemmGroupedBatchedEx_64`|12.5| | | | | | | | | | | | | | | | |`cublasHSHgemvBatched`|11.6| | | | | | | | | |`rocblas_hshgemv_batched`|6.0.0| | | | | @@ -1657,9 +1657,9 @@ |`cublasStrmm_v2`| | | | |`hipblasStrmm`|3.2.0| |6.0.0| | |`rocblas_strmm`|3.5.0| |6.0.0| | | |`cublasStrmm_v2_64`|12.0| | | |`hipblasStrmm_64`|6.3.0| | | |6.3.0|`rocblas_strmm_64`|6.3.0| | | |6.3.0| |`cublasStrsm`| | | | |`hipblasStrsm`|1.8.2| | | | |`rocblas_strsm`|1.5.0| | | | | -|`cublasStrsm_64`|12.0| | | | | | | | | |`rocblas_strsm_64`|6.2.0| | | | | +|`cublasStrsm_64`|12.0| | | |`hipblasStrsm_64`|6.3.0| | | |6.3.0|`rocblas_strsm_64`|6.2.0| | | | | |`cublasStrsm_v2`| | | | |`hipblasStrsm`|1.8.2| | | | |`rocblas_strsm`|1.5.0| | | | | -|`cublasStrsm_v2_64`|12.0| | | | | | | | | |`rocblas_strsm_64`|6.2.0| | | | | +|`cublasStrsm_v2_64`|12.0| | | |`hipblasStrsm_64`|6.3.0| | | |6.3.0|`rocblas_strsm_64`|6.2.0| | | | | |`cublasTSSgemvBatched`|11.6| | | | | | | | | |`rocblas_tssgemv_batched`|6.0.0| | | | | |`cublasTSSgemvBatched_64`|12.0| | | | | | | | | |`rocblas_tssgemv_batched_64`|6.2.0| | | | | |`cublasTSSgemvStridedBatched`|11.6| | | | | | | | | |`rocblas_tssgemv_strided_batched`|6.0.0| | | | | @@ -1715,9 +1715,9 @@ |`cublasZtrmm_v2`| | | | |`hipblasZtrmm_v2`|6.0.0| | | | |`rocblas_ztrmm`|3.5.0| |6.0.0| | | |`cublasZtrmm_v2_64`|12.0| | | |`hipblasZtrmm_v2_64`|6.3.0| | | |6.3.0|`rocblas_ztrmm_64`|6.3.0| | | |6.3.0| |`cublasZtrsm`| | | | |`hipblasZtrsm_v2`|6.0.0| | | | |`rocblas_ztrsm`|3.5.0| | | | | -|`cublasZtrsm_64`|12.0| | | | | | | | | |`rocblas_ztrsm_64`|6.2.0| | | | | +|`cublasZtrsm_64`|12.0| | | |`hipblasZtrsm_v2_64`|6.3.0| | | |6.3.0|`rocblas_ztrsm_64`|6.2.0| | | | | |`cublasZtrsm_v2`| | | | |`hipblasZtrsm_v2`|6.0.0| | | | |`rocblas_ztrsm`|3.5.0| | | | | -|`cublasZtrsm_v2_64`|12.0| | | | | | | | | |`rocblas_ztrsm_64`|6.2.0| | | | | +|`cublasZtrsm_v2_64`|12.0| | | |`hipblasZtrsm_v2_64`|6.3.0| | | |6.3.0|`rocblas_ztrsm_64`|6.2.0| | | | | ## **8. BLAS-like Extension** diff --git a/src/CUDA2HIP_BLAS_API_functions.cpp b/src/CUDA2HIP_BLAS_API_functions.cpp index 436db2a6..59470f93 100644 --- a/src/CUDA2HIP_BLAS_API_functions.cpp +++ b/src/CUDA2HIP_BLAS_API_functions.cpp @@ -541,13 +541,13 @@ const std::map CUDA_BLAS_FUNCTION_MAP { // TRSM {"cublasStrsm", {"hipblasStrsm", "rocblas_strsm", CONV_LIB_FUNC, API_BLAS, SEC::BLAS_LEVEL_3, HIP_SUPPORTED_V2_ONLY}}, - {"cublasStrsm_64", {"hipblasStrsm_64", "rocblas_strsm_64", CONV_LIB_FUNC, API_BLAS, SEC::BLAS_LEVEL_3, HIP_UNSUPPORTED}}, + {"cublasStrsm_64", {"hipblasStrsm_64", "rocblas_strsm_64", CONV_LIB_FUNC, API_BLAS, SEC::BLAS_LEVEL_3}}, {"cublasDtrsm", {"hipblasDtrsm", "rocblas_dtrsm", CONV_LIB_FUNC, API_BLAS, SEC::BLAS_LEVEL_3, HIP_SUPPORTED_V2_ONLY}}, - {"cublasDtrsm_64", {"hipblasDtrsm_64", "rocblas_dtrsm_64", CONV_LIB_FUNC, API_BLAS, SEC::BLAS_LEVEL_3, HIP_UNSUPPORTED}}, + {"cublasDtrsm_64", {"hipblasDtrsm_64", "rocblas_dtrsm_64", CONV_LIB_FUNC, API_BLAS, SEC::BLAS_LEVEL_3}}, {"cublasCtrsm", {"hipblasCtrsm_v2", "rocblas_ctrsm", CONV_LIB_FUNC, API_BLAS, SEC::BLAS_LEVEL_3, HIP_SUPPORTED_V2_ONLY}}, - {"cublasCtrsm_64", {"hipblasCtrsm_64", "rocblas_ctrsm_64", CONV_LIB_FUNC, API_BLAS, SEC::BLAS_LEVEL_3, HIP_UNSUPPORTED}}, + {"cublasCtrsm_64", {"hipblasCtrsm_v2_64", "rocblas_ctrsm_64", CONV_LIB_FUNC, API_BLAS, SEC::BLAS_LEVEL_3}}, {"cublasZtrsm", {"hipblasZtrsm_v2", "rocblas_ztrsm", CONV_LIB_FUNC, API_BLAS, SEC::BLAS_LEVEL_3, HIP_SUPPORTED_V2_ONLY}}, - {"cublasZtrsm_64", {"hipblasZtrsm_64", "rocblas_ztrsm_64", CONV_LIB_FUNC, API_BLAS, SEC::BLAS_LEVEL_3, HIP_UNSUPPORTED}}, + {"cublasZtrsm_64", {"hipblasZtrsm_v2_64", "rocblas_ztrsm_64", CONV_LIB_FUNC, API_BLAS, SEC::BLAS_LEVEL_3}}, // TRMM {"cublasStrmm", {"hipblasStrmm", "rocblas_strmm", CONV_LIB_FUNC, API_BLAS, SEC::BLAS_LEVEL_3, HIP_SUPPORTED_V2_ONLY}}, @@ -908,13 +908,13 @@ const std::map CUDA_BLAS_FUNCTION_MAP { // TRSM {"cublasStrsm_v2", {"hipblasStrsm", "rocblas_strsm", CONV_LIB_FUNC, API_BLAS, SEC::BLAS_LEVEL_3}}, - {"cublasStrsm_v2_64", {"hipblasStrsm_64", "rocblas_strsm_64", CONV_LIB_FUNC, API_BLAS, SEC::BLAS_LEVEL_3, HIP_UNSUPPORTED}}, + {"cublasStrsm_v2_64", {"hipblasStrsm_64", "rocblas_strsm_64", CONV_LIB_FUNC, API_BLAS, SEC::BLAS_LEVEL_3}}, {"cublasDtrsm_v2", {"hipblasDtrsm", "rocblas_dtrsm", CONV_LIB_FUNC, API_BLAS, SEC::BLAS_LEVEL_3}}, - {"cublasDtrsm_v2_64", {"hipblasDtrsm_64", "rocblas_dtrsm_64", CONV_LIB_FUNC, API_BLAS, SEC::BLAS_LEVEL_3, HIP_UNSUPPORTED}}, + {"cublasDtrsm_v2_64", {"hipblasDtrsm_64", "rocblas_dtrsm_64", CONV_LIB_FUNC, API_BLAS, SEC::BLAS_LEVEL_3}}, {"cublasCtrsm_v2", {"hipblasCtrsm_v2", "rocblas_ctrsm", CONV_LIB_FUNC, API_BLAS, SEC::BLAS_LEVEL_3}}, - {"cublasCtrsm_v2_64", {"hipblasCtrsm_64", "rocblas_ctrsm_64", CONV_LIB_FUNC, API_BLAS, SEC::BLAS_LEVEL_3, HIP_UNSUPPORTED}}, + {"cublasCtrsm_v2_64", {"hipblasCtrsm_v2_64", "rocblas_ctrsm_64", CONV_LIB_FUNC, API_BLAS, SEC::BLAS_LEVEL_3}}, {"cublasZtrsm_v2", {"hipblasZtrsm_v2", "rocblas_ztrsm", CONV_LIB_FUNC, API_BLAS, SEC::BLAS_LEVEL_3}}, - {"cublasZtrsm_v2_64", {"hipblasZtrsm_64", "rocblas_ztrsm_64", CONV_LIB_FUNC, API_BLAS, SEC::BLAS_LEVEL_3, HIP_UNSUPPORTED}}, + {"cublasZtrsm_v2_64", {"hipblasZtrsm_v2_64", "rocblas_ztrsm_64", CONV_LIB_FUNC, API_BLAS, SEC::BLAS_LEVEL_3}}, // TRMM {"cublasStrmm_v2", {"hipblasStrmm", "rocblas_strmm", CONV_LIB_FUNC, API_BLAS, SEC::BLAS_LEVEL_3}}, @@ -2070,6 +2070,10 @@ const std::map HIP_BLAS_FUNCTION_VER_MAP { {"hipblasDtrmm_64", {HIP_6030, HIP_0, HIP_0, HIP_LATEST}}, {"hipblasCtrmm_v2_64", {HIP_6030, HIP_0, HIP_0, HIP_LATEST}}, {"hipblasZtrmm_v2_64", {HIP_6030, HIP_0, HIP_0, HIP_LATEST}}, + {"hipblasStrsm_64", {HIP_6030, HIP_0, HIP_0, HIP_LATEST}}, + {"hipblasDtrsm_64", {HIP_6030, HIP_0, HIP_0, HIP_LATEST}}, + {"hipblasCtrsm_v2_64", {HIP_6030, HIP_0, HIP_0, HIP_LATEST}}, + {"hipblasZtrsm_v2_64", {HIP_6030, HIP_0, HIP_0, HIP_LATEST}}, {"rocblas_status_to_string", {HIP_3050, HIP_0, HIP_0 }}, {"rocblas_sscal", {HIP_1050, HIP_0, HIP_0 }}, diff --git a/tests/unit_tests/synthetic/libraries/cublas2hipblas_v2.cu b/tests/unit_tests/synthetic/libraries/cublas2hipblas_v2.cu index 89919766..1f92cd9a 100644 --- a/tests/unit_tests/synthetic/libraries/cublas2hipblas_v2.cu +++ b/tests/unit_tests/synthetic/libraries/cublas2hipblas_v2.cu @@ -3112,6 +3112,34 @@ int main() { // CHECK-NEXT: blasStatus = hipblasZtrmm_v2_64(blasHandle, blasSideMode, blasFillMode, blasOperation, blasDiagType, m_64, n_64, &dcomplexa, &dcomplexA, lda_64, &dcomplexB, ldb_64, &dcomplexC, ldc_64); blasStatus = cublasZtrmm_64(blasHandle, blasSideMode, blasFillMode, blasOperation, blasDiagType, m_64, n_64, &dcomplexa, &dcomplexA, lda_64, &dcomplexB, ldb_64, &dcomplexC, ldc_64); blasStatus = cublasZtrmm_v2_64(blasHandle, blasSideMode, blasFillMode, blasOperation, blasDiagType, m_64, n_64, &dcomplexa, &dcomplexA, lda_64, &dcomplexB, ldb_64, &dcomplexC, ldc_64); + + // CUDA: CUBLASAPI cublasStatus_t CUBLASWINAPI cublasStrsm_v2_64(cublasHandle_t handle, cublasSideMode_t side, cublasFillMode_t uplo, cublasOperation_t trans, cublasDiagType_t diag, int64_t m, int64_t n, const float* alpha, const float* A, int64_t lda, float* B, int64_t ldb); + // HIP: HIPBLAS_EXPORT hipblasStatus_t hipblasStrsm_64(hipblasHandle_t handle, hipblasSideMode_t side, hipblasFillMode_t uplo, hipblasOperation_t transA, hipblasDiagType_t diag, int64_t m, int64_t n, const float* alpha, const float* AP, int64_t lda, float* BP, int64_t ldb); + // CHECK: blasStatus = hipblasStrsm_64(blasHandle, blasSideMode, blasFillMode, blasOperation, blasDiagType, m_64, n_64, &fa, &fA, lda_64, &fB, ldb_64); + // CHECK-NEXT: blasStatus = hipblasStrsm_64(blasHandle, blasSideMode, blasFillMode, blasOperation, blasDiagType, m_64, n_64, &fa, &fA, lda_64, &fB, ldb_64); + blasStatus = cublasStrsm_64(blasHandle, blasSideMode, blasFillMode, blasOperation, blasDiagType, m_64, n_64, &fa, &fA, lda_64, &fB, ldb_64); + blasStatus = cublasStrsm_v2_64(blasHandle, blasSideMode, blasFillMode, blasOperation, blasDiagType, m_64, n_64, &fa, &fA, lda_64, &fB, ldb_64); + + // CUDA: CUBLASAPI cublasStatus_t CUBLASWINAPI cublasDtrsm_v2_64(cublasHandle_t handle, cublasSideMode_t side, cublasFillMode_t uplo, cublasOperation_t trans, cublasDiagType_t diag,int64_t m, int64_t n, const double* alpha, const double* A, int64_t lda, double* B, int64_t ldb); + // HIP: HIPBLAS_EXPORT hipblasStatus_t hipblasDtrsm_64(hipblasHandle_t handle, hipblasSideMode_t side, hipblasFillMode_t uplo, hipblasOperation_t transA, hipblasDiagType_t diag, int64_t m, int64_t n, const double* alpha, const double* AP, int64_t lda, double* BP, int64_t ldb); + // CHECK: blasStatus = hipblasDtrsm_64(blasHandle, blasSideMode, blasFillMode, blasOperation, blasDiagType, m_64, n_64, &da, &dA, lda_64, &dB, ldb_64); + // CHECK-NEXT: blasStatus = hipblasDtrsm_64(blasHandle, blasSideMode, blasFillMode, blasOperation, blasDiagType, m_64, n_64, &da, &dA, lda_64, &dB, ldb_64); + blasStatus = cublasDtrsm_64(blasHandle, blasSideMode, blasFillMode, blasOperation, blasDiagType, m_64, n_64, &da, &dA, lda_64, &dB, ldb_64); + blasStatus = cublasDtrsm_v2_64(blasHandle, blasSideMode, blasFillMode, blasOperation, blasDiagType, m_64, n_64, &da, &dA, lda_64, &dB, ldb_64); + + // CUDA: CUBLASAPI cublasStatus_t CUBLASWINAPI cublasCtrsm_v2_64(cublasHandle_t handle, cublasSideMode_t side, cublasFillMode_t uplo, cublasOperation_t trans, cublasDiagType_t diag, int64_t m, int64_t n, const cuComplex* alpha, const cuComplex* A, int64_t lda, cuComplex* B, int64_t ldb); + // HIP: HIPBLAS_EXPORT hipblasStatus_t hipblasCtrsm_v2_64(hipblasHandle_t handle, hipblasSideMode_t side, hipblasFillMode_t uplo, hipblasOperation_t transA, hipblasDiagType_t diag, int64_t m, int64_t n, const hipComplex* alpha, const hipComplex* AP, int64_t lda, hipComplex* BP, int64_t ldb); + // CHECK: blasStatus = hipblasCtrsm_v2_64(blasHandle, blasSideMode, blasFillMode, blasOperation, blasDiagType, m_64, n_64, &complexa, &complexA, lda_64, &complexB, ldb_64); + // CHECK-NEXT: blasStatus = hipblasCtrsm_v2_64(blasHandle, blasSideMode, blasFillMode, blasOperation, blasDiagType, m_64, n_64, &complexa, &complexA, lda_64, &complexB, ldb_64); + blasStatus = cublasCtrsm_64(blasHandle, blasSideMode, blasFillMode, blasOperation, blasDiagType, m_64, n_64, &complexa, &complexA, lda_64, &complexB, ldb_64); + blasStatus = cublasCtrsm_v2_64(blasHandle, blasSideMode, blasFillMode, blasOperation, blasDiagType, m_64, n_64, &complexa, &complexA, lda_64, &complexB, ldb_64); + + // CUDA: CUBLASAPI cublasStatus_t CUBLASWINAPI cublasZtrsm_v2_64(cublasHandle_t handle, cublasSideMode_t side, cublasFillMode_t uplo, cublasOperation_t trans, cublasDiagType_t diag, int64_t m, int64_t n, const cuDoubleComplex* alpha, const cuDoubleComplex* A, int64_t lda, cuDoubleComplex* B, int64_t ldb); + // HIP: HIPBLAS_EXPORT hipblasStatus_t hipblasZtrsm_v2_64(hipblasHandle_t handle, hipblasSideMode_t side, hipblasFillMode_t uplo, hipblasOperation_t transA, hipblasDiagType_t diag, int64_t m, int64_t n, const hipDoubleComplex* alpha, const hipDoubleComplex* AP, int64_t lda, hipDoubleComplex* BP, int64_t ldb); + // CHECK: blasStatus = hipblasZtrsm_v2_64(blasHandle, blasSideMode, blasFillMode, blasOperation, blasDiagType, m_64, n_64, &dcomplexa, &dcomplexA, lda_64, &dcomplexB, ldb_64); + // CHECK-NEXT: blasStatus = hipblasZtrsm_v2_64(blasHandle, blasSideMode, blasFillMode, blasOperation, blasDiagType, m_64, n_64, &dcomplexa, &dcomplexA, lda_64, &dcomplexB, ldb_64); + blasStatus = cublasZtrsm_64(blasHandle, blasSideMode, blasFillMode, blasOperation, blasDiagType, m_64, n_64, &dcomplexa, &dcomplexA, lda_64, &dcomplexB, ldb_64); + blasStatus = cublasZtrsm_v2_64(blasHandle, blasSideMode, blasFillMode, blasOperation, blasDiagType, m_64, n_64, &dcomplexa, &dcomplexA, lda_64, &dcomplexB, ldb_64); #endif return 0;