blob: c836c58c641372961e6574206b05e2edd427e2a7 [file] [log] [blame]
Name Strings
cl_amd_media_ops
#pragma OPENCL EXTENSION cl_amd_media_ops : enable
Contributors
Benedict Gaster, AMD
Michael Houston, AMD
Giduthuri Radha, AMD
Micah Villmow, AMD
Bixia Zheng, AMD
Version
Version 1, March 28, 2010
Number
OpenCL Extension #9
Status
Complete, shipping as part of ATi Stream SDK 2.1
Extension Type
OpenCL compiler directive for extensions
Dependencies
None
Overview
The directive when enabled adds the following built-in functions to
the OpenCL language.
Note: typen denote opencl scalar type {n = 1} and vector types {n =
4, 8, 16}.
Build-in Function
uint amd_pack(float4 src)
Description
dst = ((((uint)src.s0) & 0xff) )
+ ((((uint)src.s1) & 0xff) << 8)
+ ((((uint)src.s2) & 0xff) << 16)
+ ((((uint)src.s3) & 0xff) << 24)
Build-in Function
floatn amd_unpack3(unitn src)
Description
dst.s0 = (float)((src.s0 >> 24) & 0xff)
similar operation applied to other components of the vectors
Build-in Function
floatn amd_unpack2 (unitn src)
Description
dst.s0 = (float)((src.s0 >> 16) & 0xff)
similar operation applied to other components of the vectors
Build-in Function
floatn amd_unpack1 (unitn src)
Description
dst.s0 = (float)((src.s0 >> 8) & 0xff)
similar operation applied to other components of the vectors
Build-in Function
floatn amd_unpack0 (unitn src)
Description
dst.s0 = (float)(src.s0 & 0xff)
similar operation applied to other components of the vectors
Build-in Function
uintn amd_bitalign (uintn src0, uintn src1, uintn src2)
Description
dst.s0 = (uint) (((((long)src0.s0) << 32) | (long)src1.s0) >> (src2.s0 & 31))
similar operation applied to other components of the vectors.
Build-in Function
uintn amd_bytealign (uintn src0, uintn src1, uintn src2)
Description
dst.s0 = (uint) (((((long)src0.s0) << 32) | (long)src1.s0) >> ((src2.s0 & 3)*8))
similar operation applied to other components of the vectors
Build-in Function
uintn amd_lerp (uintn src0, uintn src1, uintn src2)
Description
dst.s0 = (((((src0.s0 >> 0) & 0xff) + ((src1.s0 >> 0) & 0xff) + ((src2.s0 >> 0) & 1)) >> 1) << 0) +
(((((src0.s0 >> 8) & 0xff) + ((src1.s0 >> 8) & 0xff) + ((src2.s0 >> 8) & 1)) >> 1) << 8) +
(((((src0.s0 >> 16) & 0xff) + ((src1.s0 >> 16) & 0xff) + ((src2.s0 >> 16) & 1)) >> 1) << 16) +
(((((src0.s0 >> 24) & 0xff) + ((src1.s0 >> 24) & 0xff) + ((src2.s0 >> 24) & 1)) >> 1) << 24);
similar operation applied to other components of the vectors
Build-in Function
uintn amd_sad (uintn src0, uintn src1, uintn src2)
Description
dst.s0 = src2.s0 +
abs(((src0.s0 >> 0) & 0xff) - ((src1.s0 >> 0) & 0xff)) +
abs(((src0.s0 >> 8) & 0xff) - ((src1.s0 >> 8) & 0xff)) +
abs(((src0.s0 >> 16) & 0xff) - ((src1.s0 >> 16) & 0xff)) +
abs(((src0.s0 >> 24) & 0xff) - ((src1.s0 >> 24) & 0xff));
similar operation applied to other components of the vectors
Build-in Function
uintn amd_sadhi (uintn src0, uintn src1n, uintn src2)
Description
dst.s0 = src2.s0 +
(abs(((src0.s0 >> 0) & 0xff) - ((src1.s0 >> 0) & 0xff)) << 16) +
(abs(((src0.s0 >> 8) & 0xff) - ((src1.s0 >> 8) & 0xff)) << 16) +
(abs(((src0.s0 >> 16) & 0xff) - ((src1.s0 >> 16) & 0xff)) << 16) +
(abs(((src0.s0 >> 24) & 0xff) - ((src1.s0 >> 24) & 0xff)) << 16);
similar operation applied to other components of the vectors
Build-in Function
uint amd_sad4(uint4 src0, uint4 src1, uint src2)
Description
dst = src2 +
abs(((src0.s0 >> 0) & 0xff) - ((src1.s0 >> 0) & 0xff)) +
abs(((src0.s0 >> 8) & 0xff) - ((src1.s0 >> 8) & 0xff)) +
abs(((src0.s0 >> 16) & 0xff) - ((src1.s0 >> 16) & 0xff)) +
abs(((src0.s0 >> 24) & 0xff) - ((src1.s0 >> 24) & 0xff)) +
abs(((src0.s1 >> 0) & 0xff) - ((src1.s0 >> 0) & 0xff)) +
abs(((src0.s1 >> 8) & 0xff) - ((src1.s1 >> 8) & 0xff)) +
abs(((src0.s1 >> 16) & 0xff) - ((src1.s1 >> 16) & 0xff)) +
abs(((src0.s1 >> 24) & 0xff) - ((src1.s1 >> 24) & 0xff)) +
abs(((src0.s2 >> 0) & 0xff) - ((src1.s2 >> 0) & 0xff)) +
abs(((src0.s2 >> 8) & 0xff) - ((src1.s2 >> 8) & 0xff)) +
abs(((src0.s2 >> 16) & 0xff) - ((src1.s2 >> 16) & 0xff)) +
abs(((src0.s2 >> 24) & 0xff) - ((src1.s2 >> 24) & 0xff)) +
abs(((src0.s3 >> 0) & 0xff) - ((src1.s3 >> 0) & 0xff)) +
abs(((src0.s3 >> 8) & 0xff) - ((src1.s3 >> 8) & 0xff)) +
abs(((src0.s3 >> 16) & 0xff) - ((src1.s3 >> 16) & 0xff)) +
abs(((src0.s3 >> 24) & 0xff) - ((src1.s3 >> 24) & 0xff));
Header File
None
New Types
None
New Procedures and Functions
None