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