Commit Graph

10 Commits

Author SHA1 Message Date
Yaxun Sam Liu 11c91c2fdd Fix ambiguity of __clz and __clzll 2018-08-31 18:07:57 -04:00
Aaron Enye Shi 1f871736e5 Add func attributes to match ocml and ockl 2018-07-10 18:27:32 +00:00
Aaron Enye Shi d1323f4f9b Remove activelanemask asm using ockl and llvm instrinsics
Replace implementation of __any and __all functions using OCKL functions and replaced __ballot implementation to use llvm intrinsic llvm.amdgcn.icmp.i32 instead of calls to __activelanemask_v4_b64_b1 which is not convergent.
2018-07-10 17:56:57 +00:00
Yaxun (Sam) Liu 5ec7973a6f Add workaround __local_to_generic 2018-07-09 17:56:33 +00:00
Aaron Enye Shi 47d78e372e Implement min/max functions in HIP header
Remove using hc::precise_math min and max. Instead we can use ocml directly for device and std:: for host.
2018-07-05 20:15:41 +00:00
Aaron Enye Shi 930a16bccd Implement Memory Fence Functions in header
Enabled __llvm_fence_* functions for seq_cst.
2018-07-04 23:35:24 +00:00
Aaron Enye Shi 07de5cb334 Workaround cast warning of smaller integer type for __to_local
For now, guard the __to_local function for device compile only since a local pointer should be same size as unsigned int on GPU compile. Also change to void* instead of char*.
2018-07-04 20:52:55 +00:00
Aaron Enye Shi 8ac864c2e3 Replace __hip_hc_ir_ inline asm with __ockl_* functions 2018-06-20 20:40:14 +00:00
Aaron Enye Shi e02fc7e680 Implement device_functions.cpp into HIP headers
Move all Integer Intrinsics, device_functions.cpp definitions and HIP specific device functions into HIP headers. Implement the device functions using llvm_intrinsics and device-libs functions instead of calling hc::__* functions. Remove device_functions.cpp since everything is now defined in header.
2018-06-20 17:39:23 +00:00
Aaron Enye Shi cfe37484c9 Split __llvm and device lib funcs into new headers 2018-06-20 17:39:06 +00:00