This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rGa249ffa42137: [HIP] Clean up llvm intrinsics using __asm (authored by ashi1). Herald added a project: clang. Herald added a subscriber: cfe-commits.
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D102427/new/ https://reviews.llvm.org/D102427 Files: clang/lib/Headers/__clang_hip_libdevice_declares.h Index: clang/lib/Headers/__clang_hip_libdevice_declares.h =================================================================== --- clang/lib/Headers/__clang_hip_libdevice_declares.h +++ clang/lib/Headers/__clang_hip_libdevice_declares.h @@ -138,14 +138,22 @@ __device__ __attribute__((const)) float __ocml_fma_rtp_f32(float, float, float); __device__ __attribute__((const)) float __ocml_fma_rtz_f32(float, float, float); -__device__ __attribute__((const)) float -__llvm_amdgcn_cos_f32(float) __asm("llvm.amdgcn.cos.f32"); -__device__ __attribute__((const)) float -__llvm_amdgcn_rcp_f32(float) __asm("llvm.amdgcn.rcp.f32"); -__device__ __attribute__((const)) float -__llvm_amdgcn_rsq_f32(float) __asm("llvm.amdgcn.rsq.f32"); -__device__ __attribute__((const)) float -__llvm_amdgcn_sin_f32(float) __asm("llvm.amdgcn.sin.f32"); +__device__ inline __attribute__((const)) float +__llvm_amdgcn_cos_f32(float __x) { + return __builtin_amdgcn_cosf(__x); +} +__device__ inline __attribute__((const)) float +__llvm_amdgcn_rcp_f32(float __x) { + return __builtin_amdgcn_rcpf(__x); +} +__device__ inline __attribute__((const)) float +__llvm_amdgcn_rsq_f32(float __x) { + return __builtin_amdgcn_rsqf(__x); +} +__device__ inline __attribute__((const)) float +__llvm_amdgcn_sin_f32(float __x) { + return __builtin_amdgcn_sinf(__x); +} // END INTRINSICS // END FLOAT @@ -269,10 +277,14 @@ __device__ __attribute__((const)) double __ocml_fma_rtz_f64(double, double, double); -__device__ __attribute__((const)) double -__llvm_amdgcn_rcp_f64(double) __asm("llvm.amdgcn.rcp.f64"); -__device__ __attribute__((const)) double -__llvm_amdgcn_rsq_f64(double) __asm("llvm.amdgcn.rsq.f64"); +__device__ inline __attribute__((const)) double +__llvm_amdgcn_rcp_f64(double __x) { + return __builtin_amdgcn_rcp(__x); +} +__device__ inline __attribute__((const)) double +__llvm_amdgcn_rsq_f64(double __x) { + return __builtin_amdgcn_rsq(__x); +} __device__ __attribute__((const)) _Float16 __ocml_ceil_f16(_Float16); __device__ _Float16 __ocml_cos_f16(_Float16);
Index: clang/lib/Headers/__clang_hip_libdevice_declares.h =================================================================== --- clang/lib/Headers/__clang_hip_libdevice_declares.h +++ clang/lib/Headers/__clang_hip_libdevice_declares.h @@ -138,14 +138,22 @@ __device__ __attribute__((const)) float __ocml_fma_rtp_f32(float, float, float); __device__ __attribute__((const)) float __ocml_fma_rtz_f32(float, float, float); -__device__ __attribute__((const)) float -__llvm_amdgcn_cos_f32(float) __asm("llvm.amdgcn.cos.f32"); -__device__ __attribute__((const)) float -__llvm_amdgcn_rcp_f32(float) __asm("llvm.amdgcn.rcp.f32"); -__device__ __attribute__((const)) float -__llvm_amdgcn_rsq_f32(float) __asm("llvm.amdgcn.rsq.f32"); -__device__ __attribute__((const)) float -__llvm_amdgcn_sin_f32(float) __asm("llvm.amdgcn.sin.f32"); +__device__ inline __attribute__((const)) float +__llvm_amdgcn_cos_f32(float __x) { + return __builtin_amdgcn_cosf(__x); +} +__device__ inline __attribute__((const)) float +__llvm_amdgcn_rcp_f32(float __x) { + return __builtin_amdgcn_rcpf(__x); +} +__device__ inline __attribute__((const)) float +__llvm_amdgcn_rsq_f32(float __x) { + return __builtin_amdgcn_rsqf(__x); +} +__device__ inline __attribute__((const)) float +__llvm_amdgcn_sin_f32(float __x) { + return __builtin_amdgcn_sinf(__x); +} // END INTRINSICS // END FLOAT @@ -269,10 +277,14 @@ __device__ __attribute__((const)) double __ocml_fma_rtz_f64(double, double, double); -__device__ __attribute__((const)) double -__llvm_amdgcn_rcp_f64(double) __asm("llvm.amdgcn.rcp.f64"); -__device__ __attribute__((const)) double -__llvm_amdgcn_rsq_f64(double) __asm("llvm.amdgcn.rsq.f64"); +__device__ inline __attribute__((const)) double +__llvm_amdgcn_rcp_f64(double __x) { + return __builtin_amdgcn_rcp(__x); +} +__device__ inline __attribute__((const)) double +__llvm_amdgcn_rsq_f64(double __x) { + return __builtin_amdgcn_rsq(__x); +} __device__ __attribute__((const)) _Float16 __ocml_ceil_f16(_Float16); __device__ _Float16 __ocml_cos_f16(_Float16);
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits