Add new Qualcomm extension cl_qcom_ext_host_ptr_iocoherent.
diff --git a/extensions/qcom/cl_qcom_ext_host_ptr_iocoherent.txt b/extensions/qcom/cl_qcom_ext_host_ptr_iocoherent.txt
new file mode 100644
index 0000000..1f2eed7
--- /dev/null
+++ b/extensions/qcom/cl_qcom_ext_host_ptr_iocoherent.txt
@@ -0,0 +1,80 @@
+Name Strings
+
+    cl_qcom_ext_host_ptr_iocoherent
+
+Contributors
+
+    Balaji Calidas, Qualcomm Technologies, Inc.
+    Manali Torpe, Qualcomm Innovation Center, Inc.
+    Sreelakshmi Haridas Maruthur, Qualcomm Innovation Center, Inc.
+
+Contact
+
+    bcalidas at qti dot qualcomm dot com
+
+Version
+
+    Version 4, 2018/03/06
+
+Number
+
+    OpenCL Extension #TBD
+
+Status
+
+    Shipping
+
+Extension Type
+
+    OpenCL device extension
+
+Dependencies
+
+    OpenCL 1.1 is required.
+    cl_qcom_ext_host_ptr is required.
+
+    This extension extends the functionality of cl_qcom_ext_host_ptr.
+
+Overview
+
+    This extension extends the functionality provided by cl_qcom_ext_host_ptr by
+    adding a new host cache policy. It allows applications to specify a new
+    value, CL_MEM_HOST_IOCOHERENT_QCOM, for
+    cl_mem_ext_host_ptr::host_cache_policy. When the application selects this
+    value for host cache policy, the imported allocation is mapped as
+    io-coherent for the GPU. This in turn avoids the need for the OpenCL driver
+    to explicitly issue CPU cache operation calls. Although GPU performance can
+    be slower in some cases for io-coherent allocations, the overall performance
+    can improve due to the elimination of explicit CPU cache operations.
+
+Header File
+
+    cl_ext.h
+
+New Tokens
+
+    Modification to handling of <host_ptr> argument of clCreateBuffer,
+    clCreateImage2D and clCreateImage3D when CL_MEM_EXT_HOST_PTR_QCOM is
+    specified in the <flags> argument.
+
+    New accepted value for cl_mem_ext_host_ptr::host_cache_policy:
+
+        CL_MEM_HOST_IOCOHERENT_QCOM                0x40A9
+
+    As described in the cl_qcom_ext_host_ptr spec, when CL_MEM_EXT_HOST_PTR_QCOM
+    is enabled in the <flags> argument, then <host_ptr> is interpreted as a
+    pointer to cl_mem_ext_host_ptr. The application must initialize
+    cl_mem_ext_host_ptr::host_cache_policy to one of CL_MEM_HOST_UNCACHED_QCOM,
+    CL_MEM_HOST_WRITEBACK_QCOM, or CL_MEM_HOST_IOCOHERENT_QCOM according to the
+    cache policy used in the host for this memory allocation.
+    CL_MEM_HOST_IOCOHERENT_QCOM can only be specified when the memory was
+    originally allocated as cached. Use of this value with an uncached
+    allocation will lead to undefined results.
+
+Revision History
+
+    Revision 1, 2018/01/03: Initial version.
+    Revision 2, 2018/01/15: Minor edits.
+    Revision 3, 2018/01/19: Formatting and misc changes. No functional changes.
+    Revision 4, 2018/03/06: Corrected token value.
+